* [RFC PATCH 1/1] arm64: dts: rockchip: add Radxa CM5 and IO board @ 2025-05-14 17:38 Joseph Kogut 2025-05-15 8:43 ` Heiko Stübner 2025-05-15 12:33 ` Rob Herring (Arm) 0 siblings, 2 replies; 4+ messages in thread From: Joseph Kogut @ 2025-05-14 17:38 UTC (permalink / raw) To: Heiko Stuebner Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-rockchip, linux-kernel, Joseph Kogut, Steve deRosier Add initial support for the Radxa CM5 and the accompanying IO board, including ethernet, USB 2.0/3.0, PCIe 2.0, HDMI output, UART2 console, SD/eMMC, PMIC. Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> Reviewed-by: Steve deRosier <derosier@cal-sierra.com> --- This is my first attempt at submitting a new device tree upstream. Feedback is welcome on DT conventions, naming, or anything I may have missed. This is largely reversed from the Radxa kernel sources as a reference. arch/arm64/boot/dts/rockchip/Makefile | 1 + .../dts/rockchip/rk3588s-radxa-cm5-io.dts | 448 ++++++++++++++++++ .../boot/dts/rockchip/rk3588s-radxa-cm5.dtsi | 151 ++++++ 3 files changed, 600 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 3e8771ef69ba..6bbd506808a3 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -175,6 +175,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-radxa-cm5-io.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5b.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-rock-5a.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts new file mode 100644 index 000000000000..e3c2e00d0fa6 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts @@ -0,0 +1,448 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; +#include "rk3588s.dtsi" +#include "rk3588s-radxa-cm5.dtsi" + +/ { + model = "Radxa Compute Module 5 (CM5) IO Board"; + compatible = "radxa,cm5-io", "radxa,cm5", "rockchip,rk3588s"; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + hdmi-con { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_con_in: endpoint { + remote-endpoint = <&hdmi0_out_con>; + }; + }; + }; + + vcc12v_dcin: regulator-12v0-vcc-dcin { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_dcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + }; + + vcc5v0_host: vcc5v0-host-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_host_en>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc5v0_sys: regulator-5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc12v_dcin>; + }; + + vbus5v0_typec: vbus5v0-typec { + compatible = "regulator-fixed"; + regulator-name = "vbus5v0_typec"; + gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vbus5v0_typec_en>; + enable-active-high; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc3v3_pcie: regulator-3v3-vcc-pcie { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie2x1l0"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + regulator-boot-on; + regulator-always-on; + gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>; + startup-delay-us = <50000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_3v3_s0: pldo-reg4 { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&combphy0_ps { + status = "okay"; +}; + +&combphy2_psu { + status = "okay"; +}; + +&hdmi0_in { + hdmi0_in_vp0: endpoint { + remote-endpoint = <&vp0_out_hdmi0>; + }; +}; + +&hdmi0_out { + hdmi0_out_con: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; +}; + +&hdptxphy0 { + status = "okay"; +}; + +&i2c6 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c6m3_xfer>; + + fusb302: usb-typec@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio0>; + interrupts = <RK_PC4 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus5v0_typec>; + + connector { + compatible = "usb-c-connector"; + data-role = "dual"; + label = "USB-C"; + power-role = "dual"; + try-power-role = "source"; + source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; + sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>; + op-sink-microwatt = <1000000>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_orientation_switch: endpoint { + remote-endpoint = <&usbdp_phy0_orientation_switch>; + }; + }; + + port@1 { + reg = <1>; + usbc0_role_switch: endpoint { + remote-endpoint = <&usb_host0_xhci_role_switch>; + }; + }; + + port@2 { + reg = <2>; + usbc0_dp_altmode_mux: endpoint { + remote-endpoint = <&usbdp_phy0_dp_altmode_mux>; + }; + }; + }; + }; + }; +}; + +&pcie2x1l2 { + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie>; + status = "okay"; +}; + +&pinctrl { + fusb302 { + vbus5v0_typec_en: vbus5v0-typec-en { + rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + usbc0_int: usbc0-int { + rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + + +&sdhci { + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + max-frequency = <200000000>; + no-sdio; + no-mmc; + sd-uhs-sdr104; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>; + vmmc-supply = <&vcc_3v3_s3>; + vqmmc-supply = <&vccio_sd_s0>; + status = "okay"; +}; + +&spi2 { + assigned-clocks = <&cru CLK_SPI2>; + assigned-clock-rates = <200000000>; + num-cs = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>; + status = "okay"; + + pmic@0 { + compatible = "rockchip,rk806"; + reg = <0x0>; + interrupt-parent = <&gpio0>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, + <&rk806_dvs2_null>, <&rk806_dvs3_null>; + spi-max-frequency = <1000000>; + system-power-controller; + + vcc1-supply = <&vcc5v0_sys>; + vcc2-supply = <&vcc5v0_sys>; + vcc3-supply = <&vcc5v0_sys>; + vcc4-supply = <&vcc5v0_sys>; + vcc5-supply = <&vcc5v0_sys>; + vcc6-supply = <&vcc5v0_sys>; + vcc7-supply = <&vcc5v0_sys>; + vcc8-supply = <&vcc5v0_sys>; + vcc9-supply = <&vcc5v0_sys>; + vcc10-supply = <&vcc5v0_sys>; + vcc11-supply = <&vcc_2v0_pldo_s3>; + vcc12-supply = <&vcc5v0_sys>; + vcc13-supply = <&vdd2_ddr_s3>; + vcc14-supply = <&vdd2_ddr_s3>; + vcca-supply = <&vcc5v0_sys>; + + gpio-controller; + #gpio-cells = <2>; + + rk806_dvs1_null: dvs1-null-pins { + pins = "gpio_pwrctrl1"; + function = "pin_fun0"; + }; + + rk806_dvs2_null: dvs2-null-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + }; + + rk806_dvs3_null: dvs3-null-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun0"; + }; + + regulators { + vdd_gpu_s0: dcdc-reg1 { + regulator-name = "vdd_gpu_s0"; + regulator-boot-on; + regulator-enable-ramp-delay = <400>; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_lit_s0: dcdc-reg2 { + regulator-name = "vdd_cpu_lit_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vccio_sd_s0: pldo-reg5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vccio_sd_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd2_ddr_s3: dcdc-reg6 { + regulator-name = "vdd2_ddr_s3"; + regulator-always-on; + regulator-boot-on; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc_2v0_pldo_s3: dcdc-reg7 { + regulator-name = "vdd_2v0_pldo_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <2000000>; + regulator-max-microvolt = <2000000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <2000000>; + }; + }; + + vcc_3v3_s3: dcdc-reg8 { + regulator-name = "vcc_3v3_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3300000>; + }; + }; + }; + }; +}; + +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + rockchip,typec-vbus-det; + status = "okay"; +}; + +&u2phy2 { + status = "okay"; +}; + +&u2phy2_host { + status = "okay"; +}; + +&u2phy3 { + status = "okay"; +}; + +&u2phy3_host { + status = "okay"; +}; + +&uart2 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&uart2m0_xfer>; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host0_xhci { + dr_mode = "otg"; + usb-role-switch; + status = "okay"; + + port { + usb_host0_xhci_role_switch: endpoint { + remote-endpoint = <&usbc0_role_switch>; + }; + }; +}; + +&usb_host1_ehci { + status = "okay"; +}; + +&usb_host1_ohci { + status = "okay"; +}; + +&usbdp_phy0 { + status = "okay"; + mode-switch; + orientation-switch; + sbu1-dc-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>; + sbu2-dc-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>; + + port { + #address-cells = <1>; + #size-cells = <0>; + + usbdp_phy0_orientation_switch: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_orientation_switch>; + }; + + usbdp_phy0_dp_altmode_mux: endpoint@1 { + reg = <1>; + remote-endpoint = <&usbc0_dp_altmode_mux>; + }; + }; +}; + +&vop { + status = "okay"; +}; + +&vop_mmu { + status = "okay"; +}; + +&vp0 { + vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { + reg = <ROCKCHIP_VOP2_EP_HDMI0>; + remote-endpoint = <&hdmi0_in_vp0>; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi new file mode 100644 index 000000000000..ca208fa42347 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi @@ -0,0 +1,151 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +#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> + +/ { + compatible = "radxa,cm5", "rockchip,rk3588s"; + + aliases { + mmc0 = &sdmmc; + mmc1 = &sdhci; + mmc2 = &sdio; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + + led_sys: led-0 { + color = <LED_COLOR_ID_BLUE>; + default-state = "on"; + function = LED_FUNCTION_HEARTBEAT; + gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; +}; + +&cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; +}; + +&cpu_b1 { + cpu-supply = <&vdd_cpu_big0_s0>; +}; + +&cpu_b2 { + cpu-supply = <&vdd_cpu_big1_s0>; +}; + +&cpu_b3 { + cpu-supply = <&vdd_cpu_big1_s0>; +}; + +&cpu_l0 { + cpu-supply = <&vdd_cpu_lit_s0>; +}; + +&cpu_l1 { + cpu-supply = <&vdd_cpu_lit_s0>; +}; + +&cpu_l2 { + cpu-supply = <&vdd_cpu_lit_s0>; +}; + +&cpu_l3 { + cpu-supply = <&vdd_cpu_lit_s0>; +}; + +&gmac1 { + clock_in_out = "output"; + phy-handle = <&rgmii_phy1>; + phy-mode = "rgmii-id"; + phy-supply = <&vcc_3v3_s0>; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1_miim + &gmac1_tx_bus2 + &gmac1_rx_bus2 + &gmac1_rgmii_clk + &gmac1_rgmii_bus + &gmac1_clkinout>; + tx_delay = <0x41>; + rx_delay = <0x3a>; + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_gpu_s0>; + status = "okay"; +}; + +&hdmi0 { + status = "okay"; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0m2_xfer>; + status = "okay"; + + vdd_cpu_big0_s0: regulator@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_cpu_big0_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_big1_s0: regulator@43 { + compatible = "rockchip,rk8602"; + reg = <0x43>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_cpu_big1_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&mdio1 { + rgmii_phy1: phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x1>; + }; +}; + +&pd_gpu { + domain-supply = <&vdd_gpu_s0>; +}; + +&sdhci { + bus-width = <8>; + no-sdio; + no-sd; + non-removable; + max-frequency = <200000000>; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + mmc-hs200-1_8v; + status = "okay"; +}; + -- 2.49.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [RFC PATCH 1/1] arm64: dts: rockchip: add Radxa CM5 and IO board 2025-05-14 17:38 [RFC PATCH 1/1] arm64: dts: rockchip: add Radxa CM5 and IO board Joseph Kogut @ 2025-05-15 8:43 ` Heiko Stübner 2025-05-15 15:34 ` Joseph Kogut 2025-05-15 12:33 ` Rob Herring (Arm) 1 sibling, 1 reply; 4+ messages in thread From: Heiko Stübner @ 2025-05-15 8:43 UTC (permalink / raw) To: Joseph Kogut Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-rockchip, linux-kernel, Joseph Kogut, Steve deRosier Hi Joseph, Am Mittwoch, 14. Mai 2025, 19:38:56 Mitteleuropäische Sommerzeit schrieb Joseph Kogut: > Add initial support for the Radxa CM5 and the accompanying IO board, > including ethernet, USB 2.0/3.0, PCIe 2.0, HDMI output, UART2 console, > SD/eMMC, PMIC. > > Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> > Reviewed-by: Steve deRosier <derosier@cal-sierra.com> please don't add "offline" reviews to initial patch submissions. Review should happen in public, so I'd expect an actual mail from Steve as a reply to this patch, stating his Reviewed-by tag. After that, you'd add it to a possible v2. > --- > This is my first attempt at submitting a new device tree upstream. > Feedback is welcome on DT conventions, naming, or anything I may have > missed. > > This is largely reversed from the Radxa kernel sources as a reference. > > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../dts/rockchip/rk3588s-radxa-cm5-io.dts | 448 ++++++++++++++++++ > .../boot/dts/rockchip/rk3588s-radxa-cm5.dtsi | 151 ++++++ You'll need a 2nd patch to add the board compatible to the binding in https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/arm/rockchip.yaml You can take a look at the CM3-variant for how to do system-on-module plus baseboard variants. > 3 files changed, 600 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts > create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi > > diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile > index 3e8771ef69ba..6bbd506808a3 100644 > --- a/arch/arm64/boot/dts/rockchip/Makefile > +++ b/arch/arm64/boot/dts/rockchip/Makefile > @@ -175,6 +175,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb > +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-radxa-cm5-io.dtb please sort alphabetically > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5b.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-rock-5a.dtb [...] > diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts > new file mode 100644 > index 000000000000..e3c2e00d0fa6 > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts > @@ -0,0 +1,448 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > + > +/dts-v1/; some authorship / copyright thingy here maybe? > +&i2c6 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c6m3_xfer>; status as last property - aka here > +&pinctrl { > + fusb302 { > + vbus5v0_typec_en: vbus5v0-typec-en { > + rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + > + usbc0_int: usbc0-int { > + rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>; > + }; > + }; > + > + usb { > + vcc5v0_host_en: vcc5v0-host-en { > + rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > +}; > + > + double empty line > +&sdhci { > + status = "okay"; > +}; > + > +&u2phy0 { > + status = "okay"; > +}; > + > +&u2phy0_otg { > + rockchip,typec-vbus-det; I don't think this property exists in mainline ;-) . Please run something like make ARCH=arm64 CHECK_DTBS=y rockchip/rk3588s-radxa-cm5-io.dtb to make sure > + status = "okay"; > +}; > + > +&u2phy2 { > + status = "okay"; > +}; > + > +&u2phy2_host { > + status = "okay"; > +}; > + > +&u2phy3 { > + status = "okay"; > +}; > + > +&u2phy3_host { > + status = "okay"; > +}; > + > +&uart2 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&uart2m0_xfer>; status here please > +}; > + > +&usb_host0_ehci { > + status = "okay"; > +}; > + > +&usb_host0_ohci { > + status = "okay"; > +}; > + > +&usb_host0_xhci { > + dr_mode = "otg"; > + usb-role-switch; > + status = "okay"; > + > + port { > + usb_host0_xhci_role_switch: endpoint { > + remote-endpoint = <&usbc0_role_switch>; > + }; > + }; > +}; > + > +&usb_host1_ehci { > + status = "okay"; > +}; > + > +&usb_host1_ohci { > + status = "okay"; > +}; > + > +&usbdp_phy0 { > + status = "okay"; > + mode-switch; > + orientation-switch; > + sbu1-dc-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>; > + sbu2-dc-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>; > + > + port { > + #address-cells = <1>; > + #size-cells = <0>; > + > + usbdp_phy0_orientation_switch: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&usbc0_orientation_switch>; > + }; > + > + usbdp_phy0_dp_altmode_mux: endpoint@1 { > + reg = <1>; > + remote-endpoint = <&usbc0_dp_altmode_mux>; > + }; > + }; > +}; > + > +&vop { > + status = "okay"; > +}; > + > +&vop_mmu { > + status = "okay"; > +}; > + > +&vp0 { > + vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { > + reg = <ROCKCHIP_VOP2_EP_HDMI0>; > + remote-endpoint = <&hdmi0_in_vp0>; > + }; > +}; > diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi > new file mode 100644 > index 000000000000..ca208fa42347 > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi > @@ -0,0 +1,151 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) again copyright/authorship thingy? > + > +#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> > + > +/ { > + compatible = "radxa,cm5", "rockchip,rk3588s"; > + > + aliases { > + mmc0 = &sdmmc; > + mmc1 = &sdhci; > + mmc2 = &sdio; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + > + led_sys: led-0 { > + color = <LED_COLOR_ID_BLUE>; > + default-state = "on"; > + function = LED_FUNCTION_HEARTBEAT; > + gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + }; > + }; > +}; > + > + > +&gmac1 { > + clock_in_out = "output"; > + phy-handle = <&rgmii_phy1>; > + phy-mode = "rgmii-id"; > + phy-supply = <&vcc_3v3_s0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&gmac1_miim > + &gmac1_tx_bus2 > + &gmac1_rx_bus2 > + &gmac1_rgmii_clk > + &gmac1_rgmii_bus > + &gmac1_clkinout>; > + tx_delay = <0x41>; > + rx_delay = <0x3a>; doing rgmii-id should not need those delays > + status = "okay"; > +}; > + > +&gpu { > + mali-supply = <&vdd_gpu_s0>; > + status = "okay"; > +}; > + > +&hdmi0 { > + status = "okay"; > +}; > + Heiko ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFC PATCH 1/1] arm64: dts: rockchip: add Radxa CM5 and IO board 2025-05-15 8:43 ` Heiko Stübner @ 2025-05-15 15:34 ` Joseph Kogut 0 siblings, 0 replies; 4+ messages in thread From: Joseph Kogut @ 2025-05-15 15:34 UTC (permalink / raw) To: Heiko Stübner Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-rockchip, linux-kernel, Steve deRosier Hello Heiko, Thanks for your time and feedback, it's much appreciated. I'll address these issues and follow up with a v2. Best, Joseph ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFC PATCH 1/1] arm64: dts: rockchip: add Radxa CM5 and IO board 2025-05-14 17:38 [RFC PATCH 1/1] arm64: dts: rockchip: add Radxa CM5 and IO board Joseph Kogut 2025-05-15 8:43 ` Heiko Stübner @ 2025-05-15 12:33 ` Rob Herring (Arm) 1 sibling, 0 replies; 4+ messages in thread From: Rob Herring (Arm) @ 2025-05-15 12:33 UTC (permalink / raw) To: Joseph Kogut Cc: Conor Dooley, linux-kernel, Steve deRosier, devicetree, Heiko Stuebner, Krzysztof Kozlowski, linux-rockchip On Wed, 14 May 2025 10:38:56 -0700, Joseph Kogut wrote: > Add initial support for the Radxa CM5 and the accompanying IO board, > including ethernet, USB 2.0/3.0, PCIe 2.0, HDMI output, UART2 console, > SD/eMMC, PMIC. > > Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> > Reviewed-by: Steve deRosier <derosier@cal-sierra.com> > --- > This is my first attempt at submitting a new device tree upstream. > Feedback is welcome on DT conventions, naming, or anything I may have > missed. > > This is largely reversed from the Radxa kernel sources as a reference. > > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../dts/rockchip/rk3588s-radxa-cm5-io.dts | 448 ++++++++++++++++++ > .../boot/dts/rockchip/rk3588s-radxa-cm5.dtsi | 151 ++++++ > 3 files changed, 600 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts > create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5.dtsi > 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 This patch series was applied (using b4) to base: Base: attempting to guess base-commit... Base: tags/v6.15-rc5-760-g9934ab180511 (exact match) If this is not the correct base, please add 'base-commit' tag (or use b4 which does this automatically) New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/rockchip/' for 20250514173856.3677454-1-joseph.kogut@gmail.com: arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dtb: / (radxa,cm5-io): compatible: 'oneOf' conditional failed, one must be fixed: ['radxa,cm5-io', 'radxa,cm5', 'rockchip,rk3588s'] is too long ['radxa,cm5-io', 'radxa,cm5', 'rockchip,rk3588s'] is too short 'vamrs,ficus' was expected 'vamrs,rock960' was expected 'amarula,vyasa-rk3288' was expected 'radxa,cm5-io' is not one of ['anbernic,rg351m', 'anbernic,rg351v'] 'radxa,cm5-io' is not one of ['anbernic,rg353p', 'anbernic,rg353ps', 'anbernic,rg353v', 'anbernic,rg353vs', 'anbernic,rg503', 'anbernic,rg-arc-d', 'anbernic,rg-arc-s'] 'ariaboard,photonicat' was expected 'armsom,sige5' was expected 'armsom,sige7' was expected 'radxa,cm5-io' is not one of ['armsom,w3'] 'asus,rk3288-tinker' was expected 'asus,rk3288-tinker-s' was expected 'azw,beelink-a1' was expected 'bigtreetech,cb2-manta' was expected 'bigtreetech,pi2' was expected 'mundoreader,bq-curie2' was expected 'mundoreader,bq-edison2qc' was expected 'chipspark,popmetal-rk3288' was expected 'chipspark,rayeager-px2' was expected 'radxa,cm5-io' is not one of ['coolpi,pi-cm5-evb'] 'radxa,cm5-io' is not one of ['coolpi,pi-cm5-genbook'] 'coolpi,pi-4b' was expected 'edgeble,neural-compute-module-2-io' was expected 'edgeble,neural-compute-module-6a-io' was expected 'elgin,rv1108-r1' was expected 'embedfire,lubancat-1' was expected 'embedfire,lubancat-2' was expected 'engicam,px30-core-ctouch2' was expected 'engicam,px30-core-ctouch2-of10' was expected 'engicam,px30-core-edimm2.2' was expected 'radxa,cm5-io' is not one of ['mntre,reform2-rcore'] 'radxa,cm5-io' is not one of ['firefly,itx-3588j'] 'firefly,px30-jd4-core-mb' was expected 'radxa,cm5-io' is not one of ['firefly,firefly-rk3288', 'firefly,firefly-rk3288-beta'] 'firefly,firefly-rk3288-reload' was expected 'firefly,firefly-rk3399' was expected 'firefly,roc-rk3308-cc' was expected 'firefly,roc-rk3328-cc' was expected 'firefly,roc-rk3328-pc' was expected 'radxa,cm5-io' is not one of ['firefly,roc-rk3399-pc', 'firefly,roc-rk3399-pc-mezzanine'] 'radxa,cm5-io' is not one of ['firefly,roc-rk3399-pc-plus'] 'firefly,roc-rk3576-pc' was expected 'firefly,rk3566-roc-pc' was expected 'firefly,rk3568-roc-pc' was expected 'radxa,cm5-io' is not one of ['forlinx,ok3588-c'] 'radxa,cm5-io' is not one of ['friendlyarm,nanopi-r2c', 'friendlyarm,nanopi-r2c-plus', 'friendlyarm,nanopi-r2s', 'friendlyarm,nanopi-r2s-plus'] 'friendlyarm,nanopi-r3s' was expected 'radxa,cm5-io' is not one of ['friendlyarm,nanopc-t4', 'friendlyarm,nanopi-m4', 'friendlyarm,nanopi-m4b', 'friendlyarm,nanopi-neo4', 'friendlyarm,nanopi-r4s', 'friendlyarm,nanopi-r4s-enterprise'] 'radxa,cm5-io' is not one of ['friendlyarm,nanopi-r5c', 'friendlyarm,nanopi-r5s'] 'radxa,cm5-io' is not one of ['friendlyarm,nanopi-r6c', 'friendlyarm,nanopi-r6s'] 'radxa,cm5-io' is not one of ['friendlyarm,nanopc-t6', 'friendlyarm,nanopc-t6-lts'] 'radxa,cm5-io' is not one of ['friendlyarm,cm3588-nas'] 'gameforce,ace' was expected 'gameforce,chi' was expected 'geekbuying,geekbox' was expected 'geniatech,xpi-3128' was expected 'google,bob-rev13' was expected 'google,veyron-brain-rev0' was expected 'google,veyron-fievel-rev8' was expected 'google,gru-rev15' was expected 'google,veyron-jaq-rev5' was expected 'google,veyron-jerry-rev15' was expected 'google,kevin-rev15' was expected 'google,veyron-mickey-rev8' was expected 'google,veyron-mighty-rev5' was expected 'google,veyron-minnie-rev4' was expected 'google,veyron-pinky-rev2' was expected 'google,scarlet-rev15-sku0' was expected 'google,scarlet-rev15-sku7' was expected 'google,scarlet-rev15-sku2' was expected 'google,veyron-speedy-rev9' was expected 'google,veyron-tiger-rev8' was expected 'haochuangyi,h96-max-v58' was expected 'haoyu,marsboard-rk3066' was expected 'hardkernel,rk3326-odroid-go2' was expected 'hardkernel,rk3326-odroid-go2-v11' was expected 'hardkernel,rk3326-odroid-go3' was expected 'hardkernel,odroid-m1' was expected 'hardkernel,odroid-m1s' was expected 'hardkernel,odroid-m2' was expected 'hugsun,x99' was expected 'indiedroid,nova' was expected 'radxa,cm5-io' is not one of ['khadas,edge', 'khadas,edge-captain', 'khadas,edge-v'] 'khadas,edge2' was expected 'kobol,helios64' was expected 'mecer,xms6' was expected 'leez,p710' was expected 'lckfb,tspi-rk3566' was expected 'radxa,cm5-io' is not one of ['lunzn,fastrhino-r66s', 'lunzn,fastrhino-r68s'] 'mqmaker,miqi' was expected 'neardi,lba3368' was expected 'netxeon,r89' was expected 'openailab,eaidk-610' was expected 'xunlong,rk3399-orangepi' was expected 'phytec,rk3288-pcm-947' was expected 'pine64,pinebook-pro' was expected 'radxa,cm5-io' is not one of ['pine64,pinenote-v1.1', 'pine64,pinenote-v1.2'] 'pine64,pinephone-pro' was expected 'radxa,cm5-io' is not one of ['pine64,pinetab2-v0.1', 'pine64,pinetab2-v2.0'] 'pine64,rock64' was expected 'radxa,cm5-io' is not one of ['pine64,rockpro64-v2.1', 'pine64,rockpro64-v2.0'] 'radxa,cm5-io' is not one of ['pine64,quartz64-a', 'pine64,quartz64-b'] 'pine64,quartzpro64' was expected 'radxa,cm5-io' is not one of ['pine64,soquartz-blade', 'pine64,soquartz-cm4io', 'pine64,soquartz-model-a'] 'radxa,cm5-io' is not one of ['powkiddy,rgb10max3', 'powkiddy,rgb20sx', 'powkiddy,rgb30', 'powkiddy,rk2023', 'powkiddy,x55'] 'prt,mecsbc' was expected 'qnap,ts433' was expected 'radxa,cm5-io' is not one of ['radxa,cm3-io'] 'radxa,cm5-io' is not one of ['radxa,e25'] 'radxa,e20c' was expected 'radxa,e52c' was expected 'radxa,rock' was expected 'radxa,cm5-io' is not one of ['radxa,rockpi4a', 'radxa,rockpi4a-plus', 'radxa,rockpi4b', 'radxa,rockpi4b-plus', 'radxa,rockpi4c'] 'radxa,rock-4c-plus' was expected 'radxa,rock-4d' was expected 'radxa,rock-4se' was expected 'radxa,rockpi-e' was expected 'radxa,rockpi-n8' was expected 'radxa,rockpi-n10' was expected 'radxa,rockpis' was expected 'radxa,rock2-square' was expected 'radxa,rock3a' was expected 'radxa,rock-3b' was expected 'radxa,rock-3c' was expected 'radxa,rock-5-itx' was expected 'radxa,rock-5a' was expected 'radxa,rock-5b' was expected 'radxa,rock-5c' was expected 'radxa,rock-s0' was expected 'radxa,cm5-io' is not one of ['radxa,zero-3e', 'radxa,zero-3w'] 'relfor,saib' was expected 'rikomagic,mk808' was expected 'rockchip,rk3036-kylin' was expected 'rockchip,px3-evb' was expected 'rockchip,px30-evb' was expected 'rockchip,px5-evb' was expected 'rockchip,r88' was expected 'rockchip,rk3036-evb' was expected 'rockchip,rk3128-evb' was expected 'rockchip,rk3228-evb' was expected 'rockchip,rk3229-evb' was expected 'radxa,cm5-io' is not one of ['rockchip,rk3288-evb-act8846', 'rockchip,rk3288-evb-rk808'] 'rockchip,rk3308-evb' was expected 'rockchip,rk3328-evb' was expected 'rockchip,rk3368-evb-act8846' was expected 'rockchip,rk3399-evb' was expected 'rockchip,rk3399-sapphire' was expected 'rockchip,rk3399-sapphire-excavator' was expected 'rockchip,rk3566-box-demo' was expected 'rockchip,rk3568-evb1-v10' was expected 'rockchip,rk3576-evb1-v10' was expected 'rockchip,rk3588-evb1-v10' was expected 'rockchip,rk3588s-evb1-v10' was expected 'rockchip,rv1108-evb' was expected 'rockchip,rk3588-toybrick-x0' was expected 'sinovoip,rk3308-bpi-p2pro' was expected 'sinovoip,rk3568-bpi-r2pro' was expected 'itead,sonoff-ihost' was expected 'tsd,px30-ringneck-haikou' was expected 'tsd,rk3368-lion-haikou' was expected 'tsd,rk3399-puma-haikou' was expected 'tsd,rk3588-jaguar' was expected 'tsd,rk3588-tiger-haikou' was expected 'tronsmart,orion-r68-meta' was expected 'turing,rk1' was expected 'wolfvision,rk3568-pf5' was expected 'radxa,cm5-io' is not one of ['xunlong,orangepi-3b-v1.1', 'xunlong,orangepi-3b-v2.1'] 'radxa,cm5-io' is not one of ['xunlong,orangepi-5-max', 'xunlong,orangepi-5-plus', 'xunlong,orangepi-5-ultra'] 'radxa,cm5-io' is not one of ['xunlong,orangepi-r1-plus', 'xunlong,orangepi-r1-plus-lts'] 'radxa,cm5-io' is not one of ['xunlong,orangepi-5', 'xunlong,orangepi-5b'] 'zkmagic,a95x-z2' was expected 'rockchip,rk3399' was expected 'rockchip,rk3288' was expected 'rockchip,rk3326' was expected 'rockchip,rk3566' was expected 'rockchip,rk3568' was expected 'rockchip,rk3576' was expected 'rockchip,rk3588' was expected 'armsom,lm7' was expected 'rockchip,rk3328' was expected 'bigtreetech,cb2' was expected 'rockchip,rk3066a' was expected 'rockchip,rk3188' was expected 'coolpi,pi-cm5' was expected 'rockchip,rk3588s' was expected 'edgeble,neural-compute-module-2' was expected 'radxa,cm5' is not one of ['edgeble,neural-compute-module-6a', 'edgeble,neural-compute-module-6b'] 'rockchip,rv1108' was expected 'engicam,px30-core' was expected 'firefly,icore-3588q' was expected 'firefly,core-3588j' was expected 'firefly,px30-jd4-core' was expected 'rockchip,rk3308' was expected 'forlinx,fet3588-c' was expected 'friendlyarm,cm3588' was expected 'rockchip,rk3368' was expected 'rockchip,rk3128' was expected 'google,bob-rev12' was expected 'google,veyron-brain' was expected 'google,veyron-fievel-rev7' was expected 'google,gru-rev14' was expected 'google,veyron-jaq-rev4' was expected 'google,veyron-jerry-rev14' was expected 'google,kevin-rev14' was expected 'google,veyron-mickey-rev7' was expected 'google,veyron-mighty-rev4' was expected 'google,veyron-minnie-rev3' was expected 'google,veyron-pinky' was expected 'google,scarlet-rev15' was expected 'google,scarlet-rev15-sku4' was expected 'google,veyron-speedy-rev8' was expected 'google,veyron-tiger-rev7' was expected 'rockchip,rk3229' was expected 'phytec,rk3288-phycore-som' was expected 'pine64,pinenote' was expected 'pine64,pinetab2' was expected 'pine64,rockpro64' was expected 'pine64,soquartz' was expected 'radxa,cm3' was expected 'radxa,cm3i' was expected 'rockchip,rk3528' was expected 'rockchip,rk3582' was expected 'radxa,rockpi4' was expected 'vamrs,rk3288-vmarc-som' was expected 'vamrs,rk3399pro-vmarc-som' was expected 'rockchip,rv1109' was expected 'rockchip,rk3036' was expected 'rockchip,px3' was expected 'rockchip,px30' was expected 'rockchip,px5' was expected 'rockchip,rk3228' was expected 'radxa,cm5' is not one of ['rockchip,rv1126', 'rockchip,rv1109'] 'tsd,rk3588-tiger' was expected 'xunlong,orangepi-3b' was expected 'rockchip,rk3318' was expected 'rockchip,rv1126' was expected 'google,bob-rev11' was expected 'google,veyron' was expected 'google,veyron-fievel-rev6' was expected 'google,gru-rev13' was expected 'google,veyron-jaq-rev3' was expected 'google,veyron-jerry-rev13' was expected 'google,kevin-rev13' was expected 'google,veyron-mickey-rev6' was expected 'google,veyron-mighty-rev3' was expected 'google,veyron-minnie-rev2' was expected 'google,scarlet-rev14-sku0' was expected 'google,scarlet-rev14-sku7' was expected 'google,scarlet-rev15-sku6' was expected 'google,veyron-speedy-rev7' was expected 'google,veyron-tiger-rev6' was expected 'rockchip,rk3399pro' was expected from schema $id: http://devicetree.org/schemas/arm/rockchip.yaml# arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dtb: /: failed to match any schema with compatible: ['radxa,cm5-io', 'radxa,cm5', 'rockchip,rk3588s'] arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dtb: /: failed to match any schema with compatible: ['radxa,cm5-io', 'radxa,cm5', 'rockchip,rk3588s'] arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dtb: syscon@fd5d0000 (rockchip,rk3588-usb2phy-grf): usb2phy@0:otg-port: 'rockchip,typec-vbus-det' does not match any of the regexes: '^pinctrl-[0-9]+$' from schema $id: http://devicetree.org/schemas/soc/rockchip/grf.yaml# arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dtb: usb2phy@0 (rockchip,rk3588-usb2phy): otg-port: 'rockchip,typec-vbus-det' does not match any of the regexes: '^pinctrl-[0-9]+$' from schema $id: http://devicetree.org/schemas/phy/rockchip,inno-usb2phy.yaml# arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dtb: leds (gpio-leds): 'pinctrl-0' is a dependency of 'pinctrl-names' from schema $id: http://devicetree.org/schemas/pinctrl/pinctrl-consumer.yaml# ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-05-15 15:34 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-05-14 17:38 [RFC PATCH 1/1] arm64: dts: rockchip: add Radxa CM5 and IO board Joseph Kogut 2025-05-15 8:43 ` Heiko Stübner 2025-05-15 15:34 ` Joseph Kogut 2025-05-15 12:33 ` 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