* [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support
@ 2025-03-24 17:04 Sebastian Reichel
2025-03-24 17:04 ` [PATCH 1/5] arm64: dts: rockchip: move rock 5b to include file Sebastian Reichel
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Sebastian Reichel @ 2025-03-24 17:04 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Sebastian Reichel
This series adds support for the ROCK 5B+, which (as the name suggests)
is an improved version of the ROCK 5B. It also adds initial USB-C
support for both the ROCK 5B and the 5B+.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
Sebastian Reichel (5):
arm64: dts: rockchip: move rock 5b to include file
arm64: dts: rockchip: move rock 5b to include file
dt-bindings: arm: rockchip: Add Radxa ROCK 5B+
arm64: dts: rockchip: add Rock 5B+
arm64: dts: rockchip: add USB-C support for ROCK 5B and 5B+
.../devicetree/bindings/arm/rockchip.yaml | 5 +
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../boot/dts/rockchip/rk3588-rock-5b-plus.dts | 117 +++
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 952 +----------------
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi | 1087 ++++++++++++++++++++
5 files changed, 1220 insertions(+), 942 deletions(-)
---
base-commit: 76728fe54f547950f73c9dc446beb2e31604abd7
change-id: 20250324-rock5bp-for-upstream-fd85b00b593b
Best regards,
--
Sebastian Reichel <sre@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/5] arm64: dts: rockchip: move rock 5b to include file
2025-03-24 17:04 [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Sebastian Reichel
@ 2025-03-24 17:04 ` Sebastian Reichel
2025-03-24 17:04 ` [PATCH 2/5] " Sebastian Reichel
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Sebastian Reichel @ 2025-03-24 17:04 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Sebastian Reichel
Radxa released some more boards, which are based on the original
Rock 5B. Move its board description into an include file to avoid
unnecessary duplication.
NOTE: this should be merged with the following commit to ensure
bisectability. The rename happens in a separete commit during
development because git does not properly detect the rename when
the original filename is reused in the same commit. This means
1. it's a lot harder to review the changes
2. it's a lot harder to rebase the patch series
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
arch/arm64/boot/dts/rockchip/{rk3588-rock-5b.dts => rk3588-rock-5b.dtsi} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
similarity index 100%
rename from arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
rename to arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
--
2.47.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/5] arm64: dts: rockchip: move rock 5b to include file
2025-03-24 17:04 [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Sebastian Reichel
2025-03-24 17:04 ` [PATCH 1/5] arm64: dts: rockchip: move rock 5b to include file Sebastian Reichel
@ 2025-03-24 17:04 ` Sebastian Reichel
2025-05-08 14:46 ` Nicolas Frattaroli
2025-03-24 17:04 ` [PATCH 3/5] dt-bindings: arm: rockchip: Add Radxa ROCK 5B+ Sebastian Reichel
` (3 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Sebastian Reichel @ 2025-03-24 17:04 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Sebastian Reichel
Radxa released some more boards, which are based on the original
Rock 5B. Move its board description into an include file to avoid
unnecessary duplication.
NOTE: this should be merged with the previous commit to ensure
bisectability. The rename happens in a separete commit during
development because git does not properly detect the rename when
the original filename is reused in the same commit. This means
1. it's a lot harder to review the changes
2. it's a lot harder to rebase the patch series
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 52 ++++++++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi | 34 ----------------
2 files changed, 52 insertions(+), 34 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
new file mode 100644
index 0000000000000000000000000000000000000000..9407a7c9910ada1f6c803d2e15785a9cbd9bd655
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3588-rock-5b.dtsi"
+
+/ {
+ model = "Radxa ROCK 5B";
+ compatible = "radxa,rock-5b", "rockchip,rk3588";
+};
+
+&sdio {
+ max-frequency = <200000000>;
+ no-sd;
+ no-mmc;
+ non-removable;
+ bus-width = <4>;
+ cap-sdio-irq;
+ disable-wp;
+ keep-power-in-suspend;
+ wakeup-source;
+ sd-uhs-sdr12;
+ sd-uhs-sdr25;
+ sd-uhs-sdr50;
+ sd-uhs-sdr104;
+ vmmc-supply = <&vcc3v3_pcie2x1l0>;
+ vqmmc-supply = <&vcc_1v8_s3>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdiom0_pins>;
+ status = "okay";
+};
+
+&uart6 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart6m1_xfer &uart6m1_ctsn &uart6m1_rtsn>;
+ status = "okay";
+};
+
+&pinctrl {
+ usb {
+ vcc5v0_host_en: vcc5v0-host-en {
+ rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+&vcc5v0_host {
+ enable-active-high;
+ gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_host_en>;
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
index d22068475c5dc6cb885f878f3f527a66edf1ba70..dccb8492f9f0632abd96c3dafc723e01491abad5 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
@@ -8,9 +8,6 @@
#include "rk3588.dtsi"
/ {
- model = "Radxa ROCK 5B";
- compatible = "radxa,rock-5b", "rockchip,rk3588";
-
aliases {
mmc0 = &sdhci;
mmc1 = &sdmmc;
@@ -139,10 +136,6 @@ vcc5v0_host: regulator-vcc5v0-host {
regulator-always-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- enable-active-high;
- gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&vcc5v0_host_en>;
vin-supply = <&vcc5v0_sys>;
};
@@ -530,27 +523,6 @@ &sdmmc {
status = "okay";
};
-&sdio {
- max-frequency = <200000000>;
- no-sd;
- no-mmc;
- non-removable;
- bus-width = <4>;
- cap-sdio-irq;
- disable-wp;
- keep-power-in-suspend;
- wakeup-source;
- sd-uhs-sdr12;
- sd-uhs-sdr25;
- sd-uhs-sdr50;
- sd-uhs-sdr104;
- vmmc-supply = <&vcc3v3_pcie2x1l0>;
- vqmmc-supply = <&vcc_1v8_s3>;
- pinctrl-names = "default";
- pinctrl-0 = <&sdiom0_pins>;
- status = "okay";
-};
-
&sfc {
pinctrl-names = "default";
pinctrl-0 = <&fspim2_pins>;
@@ -565,12 +537,6 @@ flash@0 {
};
};
-&uart6 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart6m1_xfer &uart6m1_ctsn &uart6m1_rtsn>;
- status = "okay";
-};
-
&spi2 {
status = "okay";
assigned-clocks = <&cru CLK_SPI2>;
--
2.47.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/5] dt-bindings: arm: rockchip: Add Radxa ROCK 5B+
2025-03-24 17:04 [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Sebastian Reichel
2025-03-24 17:04 ` [PATCH 1/5] arm64: dts: rockchip: move rock 5b to include file Sebastian Reichel
2025-03-24 17:04 ` [PATCH 2/5] " Sebastian Reichel
@ 2025-03-24 17:04 ` Sebastian Reichel
2025-03-25 2:49 ` Rob Herring
2025-03-24 17:04 ` [PATCH 4/5] arm64: dts: rockchip: add Rock 5B+ Sebastian Reichel
` (2 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Sebastian Reichel @ 2025-03-24 17:04 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Sebastian Reichel
The Radxa ROCK 5B+ is an improved version of the ROCK 5B.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
index 650fb833d96ef67ea1bba33c0767777378a38fa7..fe1fe8fe52fa3594a0da8e0263cb46949436a021 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -946,6 +946,11 @@ properties:
- const: radxa,rock-5b
- const: rockchip,rk3588
+ - description: Radxa ROCK 5B+
+ items:
+ - const: radxa,rock-5b-plus
+ - const: rockchip,rk3588
+
- description: Radxa ROCK 5C
items:
- const: radxa,rock-5c
--
2.47.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/5] arm64: dts: rockchip: add Rock 5B+
2025-03-24 17:04 [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Sebastian Reichel
` (2 preceding siblings ...)
2025-03-24 17:04 ` [PATCH 3/5] dt-bindings: arm: rockchip: Add Radxa ROCK 5B+ Sebastian Reichel
@ 2025-03-24 17:04 ` Sebastian Reichel
2025-03-24 17:04 ` [PATCH 5/5] arm64: dts: rockchip: add USB-C support for ROCK 5B and 5B+ Sebastian Reichel
2025-03-25 3:13 ` [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Rob Herring (Arm)
5 siblings, 0 replies; 9+ messages in thread
From: Sebastian Reichel @ 2025-03-24 17:04 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Sebastian Reichel
Add ROCK 5B+, which is an improved version of the ROCK 5B with the
following changes:
* Memory LPDDR4X -> LPDDR5
* HDMI input connector size
* eMMC socket -> onboard
* M.2 E-Key is replaced by onboard RTL8852BE WLAN/BT
* M.2 M-Key 1x4 lanes is replaced by 2x2 lanes
* Added M.2 B-Key for USB connected WWAN modules (untested)
* Add second camera port (not yet supported in upstream Linux)
* Add dedicated USB-C port for device power (no impact in DT;
the existing port has not been changed and the new port is
handled by CH224D standalone chip)
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../boot/dts/rockchip/rk3588-rock-5b-plus.dts | 113 +++++++++++++++++++++
2 files changed, 114 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index 3e8771ef69ba1c1428117cc2ae29b84e13523e21..6525329fcf060aeb89382d184ca4c6c5c1d07088 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -164,6 +164,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5-itx.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-ep.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-srns.dtbo
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-plus.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-tiger-haikou.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-toybrick-x0.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-turing-rk1.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dts
new file mode 100644
index 0000000000000000000000000000000000000000..74c7b6502e4dda4b774f43c704ebaee350703c0d
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dts
@@ -0,0 +1,113 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3588-rock-5b.dtsi"
+
+/ {
+ model = "Radxa ROCK 5B+";
+ compatible = "radxa,rock-5b-plus", "rockchip,rk3588";
+
+ rfkill-wwan {
+ compatible = "rfkill-gpio";
+ label = "rfkill-m2-wwan";
+ radio-type = "wwan";
+ shutdown-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;
+ };
+
+ vcc3v3_4g: regulator-vcc3v3-4g {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+ /* pinctrl for the GPIO is requested by vcc3v3_pcie2x1l0 */
+ regulator-name = "vcc3v3_4g";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <50000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+
+ vcc3v3_wwan_pwr: regulator-vcc3v3-wwan {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&wwan_power_en>;
+ regulator-name = "vcc3v3_wwan_pwr";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&vcc3v3_4g>;
+ };
+};
+
+&gpio0 {
+ wwan-disable2-n-hog {
+ gpios = <RK_PB2 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "M.2 B-key W_DISABLE2#";
+ gpio-hog;
+ };
+};
+
+&gpio2 {
+ wwan-reset-n-hog {
+ gpios = <RK_PB3 GPIO_ACTIVE_LOW>;
+ output-low;
+ line-name = "M.2 B-key RESET#";
+ gpio-hog;
+ };
+
+ wwan-wake-n-hog {
+ gpios = <RK_PB2 GPIO_ACTIVE_LOW>;
+ input;
+ line-name = "M.2 B-key WoWWAN#";
+ gpio-hog;
+ };
+};
+
+&pcie30phy {
+ data-lanes = <1 1 2 2>;
+};
+
+&pcie3x2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie3x2_rst>;
+ reset-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
+ vpcie3v3-supply = <&vcc3v3_pcie30>;
+ status = "okay";
+};
+
+&pcie3x4 {
+ num-lanes = <2>;
+};
+
+&pinctrl {
+ wwan {
+ wwan_power_en: wwan-pwr-en {
+ rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ pcie3 {
+ pcie3x2_rst: pcie3x2-rst {
+ rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ usb {
+ vcc5v0_host_en: vcc5v0-host-en {
+ rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+&vcc5v0_host {
+ enable-active-high;
+ gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_host_en>;
+};
--
2.47.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5/5] arm64: dts: rockchip: add USB-C support for ROCK 5B and 5B+
2025-03-24 17:04 [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Sebastian Reichel
` (3 preceding siblings ...)
2025-03-24 17:04 ` [PATCH 4/5] arm64: dts: rockchip: add Rock 5B+ Sebastian Reichel
@ 2025-03-24 17:04 ` Sebastian Reichel
2025-03-25 3:13 ` [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Rob Herring (Arm)
5 siblings, 0 replies; 9+ messages in thread
From: Sebastian Reichel @ 2025-03-24 17:04 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Sebastian Reichel
Add hardware description for the USB-C port in the Radxa ROCK 5 Model
B and B+. This describes the OHCI, EHCI and XHCI USB parts, but not yet
the DisplayPort AltMode, since the bindings for that are not yet upstream.
The fusb302 node is marked with status "fail" on ROCK 5B, since the board
is usually powered through the USB-C port. Handling of errors can result
in hard resets, which removed the bus power for some time resulting in
a board reset.
The main problem right now is that devices are supposed to interact with
the power-supply within 5 seconds after the plug event according to the
USB PD specification. This is more or less impossible to achieve when
the kernel is the first software communicating with the power-supply.
Upstream U-Boot with fusb302 support overrides the status for the
fusb302 node to "okay". That way booting a kernel with the updated DT
on an old U-Boot avoids a reset loop.
This workaround is not needed for the ROCK 5B+, since fusb302 support
landed in U-Boot before the board support gets upstreamed. Apart from
that it also has a dedicated USB-C port with a standalone chip to supply
the board power.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
.../boot/dts/rockchip/rk3588-rock-5b-plus.dts | 4 +
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi | 137 +++++++++++++++++++++
2 files changed, 141 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dts
index 74c7b6502e4dda4b774f43c704ebaee350703c0d..70339920fd4951dff993a5799ae5db243f07bd6e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dts
@@ -105,6 +105,10 @@ vcc5v0_host_en: vcc5v0-host-en {
};
};
+&usbc0 {
+ status = "okay";
+};
+
&vcc5v0_host {
enable-active-high;
gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
index dccb8492f9f0632abd96c3dafc723e01491abad5..5e119f167cd8ccbd08ff2a2d4955489730ab85fb 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi
@@ -5,6 +5,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/soc/rockchip,vop2.h>
+#include <dt-bindings/usb/pd.h>
#include "rk3588.dtsi"
/ {
@@ -92,6 +93,15 @@ rfkill-bt {
shutdown-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
};
+ vcc12v_dcin: regulator-vcc12v-dcin {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc12v_dcin";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ };
+
vcc3v3_pcie2x1l0: regulator-vcc3v3-pcie2x1l0 {
compatible = "regulator-fixed";
enable-active-high;
@@ -146,6 +156,19 @@ vcc5v0_sys: regulator-vcc5v0-sys {
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc12v_dcin>;
+ };
+
+ vbus5v0_typec: vbus5v0-typec {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vbus5v0_typec_en>;
+ regulator-name = "vbus5v0_typec";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc5v0_sys>;
};
vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
@@ -309,6 +332,67 @@ regulator-state-mem {
};
};
+&i2c4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c4m1_xfer>;
+ status = "okay";
+
+ usbc0: usb-typec@22 {
+ compatible = "fcs,fusb302";
+ reg = <0x22>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&usbc0_int>;
+ vbus-supply = <&vbus5v0_typec>;
+ /*
+ * When the board is starting to send power-delivery messages
+ * too late (5 seconds according to the specification), the
+ * power-supply reacts with a hard-reset. That removes the
+ * power from VBUS for some time, which resets te whole board.
+ */
+ status = "fail";
+
+ usb_con: connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ data-role = "dual";
+ power-role = "sink";
+ try-power-role = "sink";
+ op-sink-microwatt = <1000000>;
+ sink-pdos =
+ <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>,
+ <PDO_VAR(5000, 20000, 5000)>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ usbc0_role_sw: endpoint {
+ remote-endpoint = <&dwc3_0_role_switch>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ usbc0_orien_sw: endpoint {
+ remote-endpoint = <&usbdp_phy0_orientation_switch>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ dp_altmode_mux: endpoint {
+ remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+ };
+ };
+ };
+ };
+ };
+};
+
&i2c6 {
status = "okay";
@@ -486,6 +570,14 @@ usb {
vcc5v0_host_en: vcc5v0-host-en {
rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};
+
+ usbc0_int: usbc0-int {
+ rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ vbus5v0_typec_en: vbus5v0-typec-en {
+ rockchip,pins = <2 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
};
};
@@ -871,6 +963,14 @@ &uart2 {
status = "okay";
};
+&u2phy0 {
+ status = "okay";
+};
+
+&u2phy0_otg {
+ status = "okay";
+};
+
&u2phy1 {
status = "okay";
};
@@ -898,6 +998,29 @@ &u2phy3_host {
status = "okay";
};
+&usbdp_phy0 {
+ mode-switch;
+ orientation-switch;
+ sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
+ sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usbdp_phy0_orientation_switch: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&usbc0_orien_sw>;
+ };
+
+ usbdp_phy0_dp_altmode_mux: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&dp_altmode_mux>;
+ };
+ };
+};
+
&usbdp_phy1 {
status = "okay";
};
@@ -910,6 +1033,20 @@ &usb_host0_ohci {
status = "okay";
};
+&usb_host0_xhci {
+ usb-role-switch;
+ status = "okay";
+
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dwc3_0_role_switch: endpoint {
+ remote-endpoint = <&usbc0_role_sw>;
+ };
+ };
+};
+
&usb_host1_ehci {
status = "okay";
};
--
2.47.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/5] dt-bindings: arm: rockchip: Add Radxa ROCK 5B+
2025-03-24 17:04 ` [PATCH 3/5] dt-bindings: arm: rockchip: Add Radxa ROCK 5B+ Sebastian Reichel
@ 2025-03-25 2:49 ` Rob Herring
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring @ 2025-03-25 2:49 UTC (permalink / raw)
To: Sebastian Reichel
Cc: Heiko Stuebner, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel
On Mon, Mar 24, 2025 at 06:04:24PM +0100, Sebastian Reichel wrote:
> The Radxa ROCK 5B+ is an improved version of the ROCK 5B.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
Same patch has already been acked here:
https://lore.kernel.org/all/20241226005845.46473-1-naoki@radxa.com/
>
> diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
> index 650fb833d96ef67ea1bba33c0767777378a38fa7..fe1fe8fe52fa3594a0da8e0263cb46949436a021 100644
> --- a/Documentation/devicetree/bindings/arm/rockchip.yaml
> +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
> @@ -946,6 +946,11 @@ properties:
> - const: radxa,rock-5b
> - const: rockchip,rk3588
>
> + - description: Radxa ROCK 5B+
> + items:
> + - const: radxa,rock-5b-plus
> + - const: rockchip,rk3588
> +
> - description: Radxa ROCK 5C
> items:
> - const: radxa,rock-5c
>
> --
> 2.47.2
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support
2025-03-24 17:04 [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Sebastian Reichel
` (4 preceding siblings ...)
2025-03-24 17:04 ` [PATCH 5/5] arm64: dts: rockchip: add USB-C support for ROCK 5B and 5B+ Sebastian Reichel
@ 2025-03-25 3:13 ` Rob Herring (Arm)
5 siblings, 0 replies; 9+ messages in thread
From: Rob Herring (Arm) @ 2025-03-25 3:13 UTC (permalink / raw)
To: Sebastian Reichel
Cc: linux-kernel, linux-rockchip, Conor Dooley, Krzysztof Kozlowski,
linux-arm-kernel, devicetree, Heiko Stuebner
On Mon, 24 Mar 2025 18:04:21 +0100, Sebastian Reichel wrote:
> This series adds support for the ROCK 5B+, which (as the name suggests)
> is an improved version of the ROCK 5B. It also adds initial USB-C
> support for both the ROCK 5B and the 5B+.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> Sebastian Reichel (5):
> arm64: dts: rockchip: move rock 5b to include file
> arm64: dts: rockchip: move rock 5b to include file
> dt-bindings: arm: rockchip: Add Radxa ROCK 5B+
> arm64: dts: rockchip: add Rock 5B+
> arm64: dts: rockchip: add USB-C support for ROCK 5B and 5B+
>
> .../devicetree/bindings/arm/rockchip.yaml | 5 +
> arch/arm64/boot/dts/rockchip/Makefile | 1 +
> .../boot/dts/rockchip/rk3588-rock-5b-plus.dts | 117 +++
> arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 952 +----------------
> arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi | 1087 ++++++++++++++++++++
> 5 files changed, 1220 insertions(+), 942 deletions(-)
> ---
> base-commit: 76728fe54f547950f73c9dc446beb2e31604abd7
> change-id: 20250324-rock5bp-for-upstream-fd85b00b593b
>
> Best regards,
> --
> Sebastian Reichel <sre@kernel.org>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/rockchip/' for 20250324-rock5bp-for-upstream-v1-0-6217edf15b19@kernel.org:
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: power-controller: power-domain@12: Unevaluated properties are not allowed ('domain-supply' was unexpected)
from schema $id: http://devicetree.org/schemas/power/rockchip,power-controller.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: vop@fdd90000: clocks: [[33, 605], [33, 604], [33, 609], [33, 610], [33, 611], [33, 612], [33, 603], [107], [108]] is too long
from schema $id: http://devicetree.org/schemas/display/rockchip/rockchip-vop2.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: vop@fdd90000: clock-names: ['aclk', 'hclk', 'dclk_vp0', 'dclk_vp1', 'dclk_vp2', 'dclk_vp3', 'pclk_vop', 'pll_hdmiphy0', 'pll_hdmiphy1'] is too long
from schema $id: http://devicetree.org/schemas/display/rockchip/rockchip-vop2.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: spdif-tx@fddb0000: compatible: 'oneOf' conditional failed, one must be fixed:
['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif'] is too long
'rockchip,rk3066-spdif' was expected
'rockchip,rk3228-spdif' was expected
'rockchip,rk3328-spdif' was expected
'rockchip,rk3366-spdif' was expected
'rockchip,rk3368-spdif' was expected
'rockchip,rk3399-spdif' was expected
'rockchip,rk3568-spdif' was expected
'rockchip,rk3588-spdif' is not one of ['rockchip,rk3128-spdif', 'rockchip,rk3188-spdif', 'rockchip,rk3288-spdif', 'rockchip,rk3308-spdif']
from schema $id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /spdif-tx@fddb0000: failed to match any schema with compatible: ['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: spdif-tx@fdde0000: compatible: 'oneOf' conditional failed, one must be fixed:
['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif'] is too long
'rockchip,rk3066-spdif' was expected
'rockchip,rk3228-spdif' was expected
'rockchip,rk3328-spdif' was expected
'rockchip,rk3366-spdif' was expected
'rockchip,rk3368-spdif' was expected
'rockchip,rk3399-spdif' was expected
'rockchip,rk3568-spdif' was expected
'rockchip,rk3588-spdif' is not one of ['rockchip,rk3128-spdif', 'rockchip,rk3188-spdif', 'rockchip,rk3288-spdif', 'rockchip,rk3308-spdif']
from schema $id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /spdif-tx@fdde0000: failed to match any schema with compatible: ['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /rng@fe378000: failed to match any schema with compatible: ['rockchip,rk3588-rng']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: spdif-tx@fe4e0000: compatible: 'oneOf' conditional failed, one must be fixed:
['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif'] is too long
'rockchip,rk3066-spdif' was expected
'rockchip,rk3228-spdif' was expected
'rockchip,rk3328-spdif' was expected
'rockchip,rk3366-spdif' was expected
'rockchip,rk3368-spdif' was expected
'rockchip,rk3399-spdif' was expected
'rockchip,rk3568-spdif' was expected
'rockchip,rk3588-spdif' is not one of ['rockchip,rk3128-spdif', 'rockchip,rk3188-spdif', 'rockchip,rk3288-spdif', 'rockchip,rk3308-spdif']
from schema $id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /spdif-tx@fe4e0000: failed to match any schema with compatible: ['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: spdif-tx@fe4f0000: compatible: 'oneOf' conditional failed, one must be fixed:
['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif'] is too long
'rockchip,rk3066-spdif' was expected
'rockchip,rk3228-spdif' was expected
'rockchip,rk3328-spdif' was expected
'rockchip,rk3366-spdif' was expected
'rockchip,rk3368-spdif' was expected
'rockchip,rk3399-spdif' was expected
'rockchip,rk3568-spdif' was expected
'rockchip,rk3588-spdif' is not one of ['rockchip,rk3128-spdif', 'rockchip,rk3188-spdif', 'rockchip,rk3288-spdif', 'rockchip,rk3308-spdif']
from schema $id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /spdif-tx@fe4f0000: failed to match any schema with compatible: ['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: spdif-tx@fddb8000: compatible: 'oneOf' conditional failed, one must be fixed:
['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif'] is too long
'rockchip,rk3066-spdif' was expected
'rockchip,rk3228-spdif' was expected
'rockchip,rk3328-spdif' was expected
'rockchip,rk3366-spdif' was expected
'rockchip,rk3368-spdif' was expected
'rockchip,rk3399-spdif' was expected
'rockchip,rk3568-spdif' was expected
'rockchip,rk3588-spdif' is not one of ['rockchip,rk3128-spdif', 'rockchip,rk3188-spdif', 'rockchip,rk3288-spdif', 'rockchip,rk3308-spdif']
from schema $id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /spdif-tx@fddb8000: failed to match any schema with compatible: ['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: spdif-tx@fdde8000: compatible: 'oneOf' conditional failed, one must be fixed:
['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif'] is too long
'rockchip,rk3066-spdif' was expected
'rockchip,rk3228-spdif' was expected
'rockchip,rk3328-spdif' was expected
'rockchip,rk3366-spdif' was expected
'rockchip,rk3368-spdif' was expected
'rockchip,rk3399-spdif' was expected
'rockchip,rk3568-spdif' was expected
'rockchip,rk3588-spdif' is not one of ['rockchip,rk3128-spdif', 'rockchip,rk3188-spdif', 'rockchip,rk3288-spdif', 'rockchip,rk3308-spdif']
from schema $id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /spdif-tx@fdde8000: failed to match any schema with compatible: ['rockchip,rk3588-spdif', 'rockchip,rk3568-spdif']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /hdmi_receiver@fdee0000: failed to match any schema with compatible: ['rockchip,rk3588-hdmirx-ctrler', 'snps,dw-hdmi-rx']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b-plus.dtb: /hdmi_receiver@fdee0000: failed to match any schema with compatible: ['rockchip,rk3588-hdmirx-ctrler', 'snps,dw-hdmi-rx']
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtb: vop@fdd90000: clocks: [[33, 605], [33, 604], [33, 609], [33, 610], [33, 611], [33, 612], [33, 603], [107], [108]] is too long
from schema $id: http://devicetree.org/schemas/display/rockchip/rockchip-vop2.yaml#
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/5] arm64: dts: rockchip: move rock 5b to include file
2025-03-24 17:04 ` [PATCH 2/5] " Sebastian Reichel
@ 2025-05-08 14:46 ` Nicolas Frattaroli
0 siblings, 0 replies; 9+ messages in thread
From: Nicolas Frattaroli @ 2025-05-08 14:46 UTC (permalink / raw)
To: Heiko Stuebner, linux-rockchip, Sebastian Reichel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, Sebastian Reichel
On Monday, 24 March 2025 18:04:23 Central European Summer Time Sebastian Reichel wrote:
> Radxa released some more boards, which are based on the original
> Rock 5B. Move its board description into an include file to avoid
> unnecessary duplication.
>
> NOTE: this should be merged with the previous commit to ensure
> bisectability. The rename happens in a separete commit during
> development because git does not properly detect the rename when
> the original filename is reused in the same commit. This means
>
> 1. it's a lot harder to review the changes
> 2. it's a lot harder to rebase the patch series
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 52 ++++++++++++++++++++++++
> arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dtsi | 34 ----------------
> 2 files changed, 52 insertions(+), 34 deletions(-)
>
Hello,
this isn't evident from the diff, but the move + these changes keep
vcc5v0_host_en in pinctrl in the shared .dtsi as far as I can tell. The
follow-up 5b-plus patch has the correct pinctrl as an override, and so
does the regular 5b for its respective vcc5v0_host_en, so it can just be
dropped from the shared .dtsi pinctrl.
Additionally, sbu1-dc-gpios and sbu2-dc-gpios need to be moved from the
shared .dtsi into rk3588-rock-5b.dts. The rest of the usbdp_phy0 node
is fine to stay in your shared dtsi, but in the follow-up rock-5b-plus.dts
patch, the rock-5b-plus.dts needs the sbu1 GPIO set to GPIO0 C4 and the
sbu2 GPIO set to GPIO0 C5.
Regards,
Nicolas Frattaroli
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-05-08 14:46 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-24 17:04 [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Sebastian Reichel
2025-03-24 17:04 ` [PATCH 1/5] arm64: dts: rockchip: move rock 5b to include file Sebastian Reichel
2025-03-24 17:04 ` [PATCH 2/5] " Sebastian Reichel
2025-05-08 14:46 ` Nicolas Frattaroli
2025-03-24 17:04 ` [PATCH 3/5] dt-bindings: arm: rockchip: Add Radxa ROCK 5B+ Sebastian Reichel
2025-03-25 2:49 ` Rob Herring
2025-03-24 17:04 ` [PATCH 4/5] arm64: dts: rockchip: add Rock 5B+ Sebastian Reichel
2025-03-24 17:04 ` [PATCH 5/5] arm64: dts: rockchip: add USB-C support for ROCK 5B and 5B+ Sebastian Reichel
2025-03-25 3:13 ` [PATCH 0/5] arm64: dts: rockchip: add ROCK 5B+ support Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).