Re: [PATCH v4 2/2] board: rockchip: add Radxa ROCK5A Rk3588 board

2023-07-26 Thread Kever Yang



On 2023/7/5 03:05, Eugen Hristev wrote:

ROCK 5A is a Rockchip RK3588S based SBC (Single Board Computer) by Radxa.

There are tree variants depending on the DRAM size : 4G, 8G and 16G.

Specifications:

  Rockchip Rk3588S SoC
  4x ARM Cortex-A76, 4x ARM Cortex-A55
  4/8/16GB memory LPDDR4x
  Mali G610MC4 GPU
  MIPI CSI 2 multiple lanes connector
  4-lane MIPI DSI connector
  Audio – 3.5mm earphone jack
  eMMC module connector
  uSD slot (up to 128GB)
  2x USB 2.0, 2x USB 3.0
  2x micro HDMI 2.1 ports, one up to 8Kp60, the other up to 4Kp60
  Gigabit Ethernet RJ45 with optional PoE support
  40-pin IO header including UART, SPI, I2C and 5V DC power in
  USB PD over USB Type-C
  Size: 85mm x 56mm (Raspberry Pi 4 form factor)

Kernel commits:
d1824cf95799 ("arm64: dts: rockchip: Add rock-5a board")
991f136c9f8d ("arm64: dts: rockchip: Update sdhci alias for rock-5a")
304c8a759953 ("arm64: dts: rockchip: Remove empty line from rock-5a")
cda0c2ea65a0 ("arm64: dts: rockchip: Fix RX delay for ethernet phy on 
rk3588s-rock5a")

Signed-off-by: Eugen Hristev 

Reviewed-by: Kever Yang 

Thanks,
- Kever

---
Resent with correct email addresses

Changes in v4:
- tweaked the defconfig as reviewed by Jonas
- moved some of bootph-all to rk3588s-u-boot.dtsi
- renamed fdt fixup function
Changes in v3:
- forgot to add defconfig and include file, added now, sorry
Changes in v2:
-fixed wrong Kconfig text (rk3588s instead of rk3588)
-changed doc name (rk3588s instead of rk3588)

  arch/arm/dts/Makefile   |  1 +
  arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi| 34 ++
  arch/arm/dts/rk3588s-rock-5a.dts| 73 +
  arch/arm/mach-rockchip/rk3588/Kconfig   | 28 
  board/radxa/rock5a-rk3588s/Kconfig  | 15 +
  board/radxa/rock5a-rk3588s/MAINTAINERS  |  6 ++
  board/radxa/rock5a-rk3588s/Makefile |  6 ++
  board/radxa/rock5a-rk3588s/rock5a-rk3588s.c | 39 +++
  configs/rock5a-rk3588s_defconfig| 72 
  doc/board/rockchip/rockchip.rst |  1 +
  include/configs/rock5a-rk3588s.h| 15 +
  11 files changed, 290 insertions(+)
  create mode 100644 arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
  create mode 100644 arch/arm/dts/rk3588s-rock-5a.dts
  create mode 100644 board/radxa/rock5a-rk3588s/Kconfig
  create mode 100644 board/radxa/rock5a-rk3588s/MAINTAINERS
  create mode 100644 board/radxa/rock5a-rk3588s/Makefile
  create mode 100644 board/radxa/rock5a-rk3588s/rock5a-rk3588s.c
  create mode 100644 configs/rock5a-rk3588s_defconfig
  create mode 100644 include/configs/rock5a-rk3588s.h

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 480269fa6065..cd9b96c5ba7c 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -174,6 +174,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
  dtb-$(CONFIG_ROCKCHIP_RK3588) += \
rk3588-edgeble-neu6a-io.dtb \
rk3588-evb1-v10.dtb \
+   rk3588s-rock-5a.dtb \
rk3588-rock-5b.dtb
  
  dtb-$(CONFIG_ROCKCHIP_RV1108) += \

diff --git a/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi 
b/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
new file mode 100644
index ..9bb0e4f89e11
--- /dev/null
+++ b/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Collabora Ltd.
+ */
+
+#include "rk3588s-u-boot.dtsi"
+#include 
+#include 
+#include 
+#include 
+
+/ {
+   aliases {
+   mmc1 = &sdmmc;
+   };
+
+   chosen {
+   u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci;
+   };
+};
+
+&sdmmc {
+   bus-width = <4>;
+   status = "okay";
+};
+
+&sdhci {
+   cap-mmc-highspeed;
+   mmc-ddr-1_8v;
+   mmc-hs200-1_8v;
+   pinctrl-names = "default";
+   pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_data_strobe 
&emmc_rstnout>;
+};
+
diff --git a/arch/arm/dts/rk3588s-rock-5a.dts b/arch/arm/dts/rk3588s-rock-5a.dts
new file mode 100644
index ..901825514f9d
--- /dev/null
+++ b/arch/arm/dts/rk3588s-rock-5a.dts
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include 
+#include 
+#include "rk3588s.dtsi"
+
+/ {
+   model = "Radxa ROCK 5 Model A";
+   compatible = "radxa,rock-5a", "rockchip,rk3588s";
+
+   aliases {
+   mmc0 = &sdhci;
+   serial2 = &uart2;
+   };
+
+   chosen {
+   stdout-path = "serial2:150n8";
+   };
+};
+
+&gmac1 {
+   clock_in_out = "output";
+   phy-handle = <&rgmii_phy1>;
+   phy-mode = "rgmii";
+   pinctrl-0 = <&gmac1_miim
+&gmac1_tx_bus2
+&gmac1_rx_bus2
+&gmac1_rgmii_clk
+&gmac1_rgmii_bus>;
+   pinctrl-names = "default";
+   tx_delay = <0x3a>;
+   rx_delay = <0x3e>;
+   status = "okay";
+};
+
+&mdio1 {
+  

[PATCH v4 2/2] board: rockchip: add Radxa ROCK5A Rk3588 board

2023-07-04 Thread Eugen Hristev
ROCK 5A is a Rockchip RK3588S based SBC (Single Board Computer) by Radxa.

There are tree variants depending on the DRAM size : 4G, 8G and 16G.

Specifications:

 Rockchip Rk3588S SoC
 4x ARM Cortex-A76, 4x ARM Cortex-A55
 4/8/16GB memory LPDDR4x
 Mali G610MC4 GPU
 MIPI CSI 2 multiple lanes connector
 4-lane MIPI DSI connector
 Audio – 3.5mm earphone jack
 eMMC module connector
 uSD slot (up to 128GB)
 2x USB 2.0, 2x USB 3.0
 2x micro HDMI 2.1 ports, one up to 8Kp60, the other up to 4Kp60
 Gigabit Ethernet RJ45 with optional PoE support
 40-pin IO header including UART, SPI, I2C and 5V DC power in
 USB PD over USB Type-C
 Size: 85mm x 56mm (Raspberry Pi 4 form factor)

Kernel commits:
d1824cf95799 ("arm64: dts: rockchip: Add rock-5a board")
991f136c9f8d ("arm64: dts: rockchip: Update sdhci alias for rock-5a")
304c8a759953 ("arm64: dts: rockchip: Remove empty line from rock-5a")
cda0c2ea65a0 ("arm64: dts: rockchip: Fix RX delay for ethernet phy on 
rk3588s-rock5a")

Signed-off-by: Eugen Hristev 
---
Resent with correct email addresses

Changes in v4:
- tweaked the defconfig as reviewed by Jonas
- moved some of bootph-all to rk3588s-u-boot.dtsi
- renamed fdt fixup function
Changes in v3:
- forgot to add defconfig and include file, added now, sorry
Changes in v2:
-fixed wrong Kconfig text (rk3588s instead of rk3588)
-changed doc name (rk3588s instead of rk3588)

 arch/arm/dts/Makefile   |  1 +
 arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi| 34 ++
 arch/arm/dts/rk3588s-rock-5a.dts| 73 +
 arch/arm/mach-rockchip/rk3588/Kconfig   | 28 
 board/radxa/rock5a-rk3588s/Kconfig  | 15 +
 board/radxa/rock5a-rk3588s/MAINTAINERS  |  6 ++
 board/radxa/rock5a-rk3588s/Makefile |  6 ++
 board/radxa/rock5a-rk3588s/rock5a-rk3588s.c | 39 +++
 configs/rock5a-rk3588s_defconfig| 72 
 doc/board/rockchip/rockchip.rst |  1 +
 include/configs/rock5a-rk3588s.h| 15 +
 11 files changed, 290 insertions(+)
 create mode 100644 arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
 create mode 100644 arch/arm/dts/rk3588s-rock-5a.dts
 create mode 100644 board/radxa/rock5a-rk3588s/Kconfig
 create mode 100644 board/radxa/rock5a-rk3588s/MAINTAINERS
 create mode 100644 board/radxa/rock5a-rk3588s/Makefile
 create mode 100644 board/radxa/rock5a-rk3588s/rock5a-rk3588s.c
 create mode 100644 configs/rock5a-rk3588s_defconfig
 create mode 100644 include/configs/rock5a-rk3588s.h

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 480269fa6065..cd9b96c5ba7c 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -174,6 +174,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
 dtb-$(CONFIG_ROCKCHIP_RK3588) += \
rk3588-edgeble-neu6a-io.dtb \
rk3588-evb1-v10.dtb \
+   rk3588s-rock-5a.dtb \
rk3588-rock-5b.dtb
 
 dtb-$(CONFIG_ROCKCHIP_RV1108) += \
diff --git a/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi 
b/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
new file mode 100644
index ..9bb0e4f89e11
--- /dev/null
+++ b/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Collabora Ltd.
+ */
+
+#include "rk3588s-u-boot.dtsi"
+#include 
+#include 
+#include 
+#include 
+
+/ {
+   aliases {
+   mmc1 = &sdmmc;
+   };
+
+   chosen {
+   u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci;
+   };
+};
+
+&sdmmc {
+   bus-width = <4>;
+   status = "okay";
+};
+
+&sdhci {
+   cap-mmc-highspeed;
+   mmc-ddr-1_8v;
+   mmc-hs200-1_8v;
+   pinctrl-names = "default";
+   pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_data_strobe 
&emmc_rstnout>;
+};
+
diff --git a/arch/arm/dts/rk3588s-rock-5a.dts b/arch/arm/dts/rk3588s-rock-5a.dts
new file mode 100644
index ..901825514f9d
--- /dev/null
+++ b/arch/arm/dts/rk3588s-rock-5a.dts
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include 
+#include 
+#include "rk3588s.dtsi"
+
+/ {
+   model = "Radxa ROCK 5 Model A";
+   compatible = "radxa,rock-5a", "rockchip,rk3588s";
+
+   aliases {
+   mmc0 = &sdhci;
+   serial2 = &uart2;
+   };
+
+   chosen {
+   stdout-path = "serial2:150n8";
+   };
+};
+
+&gmac1 {
+   clock_in_out = "output";
+   phy-handle = <&rgmii_phy1>;
+   phy-mode = "rgmii";
+   pinctrl-0 = <&gmac1_miim
+&gmac1_tx_bus2
+&gmac1_rx_bus2
+&gmac1_rgmii_clk
+&gmac1_rgmii_bus>;
+   pinctrl-names = "default";
+   tx_delay = <0x3a>;
+   rx_delay = <0x3e>;
+   status = "okay";
+};
+
+&mdio1 {
+   rgmii_phy1: ethernet-phy@1 {
+   /* RTL8211F */
+   compatible = "ethernet-phy-id001c.c916";
+

[PATCH v4 2/2] board: rockchip: add Radxa ROCK5A Rk3588 board

2023-07-04 Thread Eugen Hristev
ROCK 5A is a Rockchip RK3588S based SBC (Single Board Computer) by Radxa.

There are tree variants depending on the DRAM size : 4G, 8G and 16G.

Specifications:

 Rockchip Rk3588S SoC
 4x ARM Cortex-A76, 4x ARM Cortex-A55
 4/8/16GB memory LPDDR4x
 Mali G610MC4 GPU
 MIPI CSI 2 multiple lanes connector
 4-lane MIPI DSI connector
 Audio – 3.5mm earphone jack
 eMMC module connector
 uSD slot (up to 128GB)
 2x USB 2.0, 2x USB 3.0
 2x micro HDMI 2.1 ports, one up to 8Kp60, the other up to 4Kp60
 Gigabit Ethernet RJ45 with optional PoE support
 40-pin IO header including UART, SPI, I2C and 5V DC power in
 USB PD over USB Type-C
 Size: 85mm x 56mm (Raspberry Pi 4 form factor)

Kernel commits:
d1824cf95799 ("arm64: dts: rockchip: Add rock-5a board")
991f136c9f8d ("arm64: dts: rockchip: Update sdhci alias for rock-5a")
304c8a759953 ("arm64: dts: rockchip: Remove empty line from rock-5a")
cda0c2ea65a0 ("arm64: dts: rockchip: Fix RX delay for ethernet phy on 
rk3588s-rock5a")

Signed-off-by: Eugen Hristev 
---
Changes in v4:
- tweaked the defconfig as reviewed by Jonas
- moved some of bootph-all to rk3588s-u-boot.dtsi
- renamed fdt fixup function
Changes in v3:
- forgot to add defconfig and include file, added now, sorry
Changes in v2:
-fixed wrong Kconfig text (rk3588s instead of rk3588)
-changed doc name (rk3588s instead of rk3588)

 arch/arm/dts/Makefile   |  1 +
 arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi| 34 ++
 arch/arm/dts/rk3588s-rock-5a.dts| 73 +
 arch/arm/mach-rockchip/rk3588/Kconfig   | 28 
 board/radxa/rock5a-rk3588s/Kconfig  | 15 +
 board/radxa/rock5a-rk3588s/MAINTAINERS  |  6 ++
 board/radxa/rock5a-rk3588s/Makefile |  6 ++
 board/radxa/rock5a-rk3588s/rock5a-rk3588s.c | 39 +++
 configs/rock5a-rk3588s_defconfig| 72 
 doc/board/rockchip/rockchip.rst |  1 +
 include/configs/rock5a-rk3588s.h| 15 +
 11 files changed, 290 insertions(+)
 create mode 100644 arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
 create mode 100644 arch/arm/dts/rk3588s-rock-5a.dts
 create mode 100644 board/radxa/rock5a-rk3588s/Kconfig
 create mode 100644 board/radxa/rock5a-rk3588s/MAINTAINERS
 create mode 100644 board/radxa/rock5a-rk3588s/Makefile
 create mode 100644 board/radxa/rock5a-rk3588s/rock5a-rk3588s.c
 create mode 100644 configs/rock5a-rk3588s_defconfig
 create mode 100644 include/configs/rock5a-rk3588s.h

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 480269fa6065..cd9b96c5ba7c 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -174,6 +174,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3568) += \
 dtb-$(CONFIG_ROCKCHIP_RK3588) += \
rk3588-edgeble-neu6a-io.dtb \
rk3588-evb1-v10.dtb \
+   rk3588s-rock-5a.dtb \
rk3588-rock-5b.dtb
 
 dtb-$(CONFIG_ROCKCHIP_RV1108) += \
diff --git a/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi 
b/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
new file mode 100644
index ..9bb0e4f89e11
--- /dev/null
+++ b/arch/arm/dts/rk3588s-rock-5a-u-boot.dtsi
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Collabora Ltd.
+ */
+
+#include "rk3588s-u-boot.dtsi"
+#include 
+#include 
+#include 
+#include 
+
+/ {
+   aliases {
+   mmc1 = &sdmmc;
+   };
+
+   chosen {
+   u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci;
+   };
+};
+
+&sdmmc {
+   bus-width = <4>;
+   status = "okay";
+};
+
+&sdhci {
+   cap-mmc-highspeed;
+   mmc-ddr-1_8v;
+   mmc-hs200-1_8v;
+   pinctrl-names = "default";
+   pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_data_strobe 
&emmc_rstnout>;
+};
+
diff --git a/arch/arm/dts/rk3588s-rock-5a.dts b/arch/arm/dts/rk3588s-rock-5a.dts
new file mode 100644
index ..901825514f9d
--- /dev/null
+++ b/arch/arm/dts/rk3588s-rock-5a.dts
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include 
+#include 
+#include "rk3588s.dtsi"
+
+/ {
+   model = "Radxa ROCK 5 Model A";
+   compatible = "radxa,rock-5a", "rockchip,rk3588s";
+
+   aliases {
+   mmc0 = &sdhci;
+   serial2 = &uart2;
+   };
+
+   chosen {
+   stdout-path = "serial2:150n8";
+   };
+};
+
+&gmac1 {
+   clock_in_out = "output";
+   phy-handle = <&rgmii_phy1>;
+   phy-mode = "rgmii";
+   pinctrl-0 = <&gmac1_miim
+&gmac1_tx_bus2
+&gmac1_rx_bus2
+&gmac1_rgmii_clk
+&gmac1_rgmii_bus>;
+   pinctrl-names = "default";
+   tx_delay = <0x3a>;
+   rx_delay = <0x3e>;
+   status = "okay";
+};
+
+&mdio1 {
+   rgmii_phy1: ethernet-phy@1 {
+   /* RTL8211F */
+   compatible = "ethernet-phy-id001c.c916";
+   reg = <0x1>;
+   p