* [PATCH v2 0/2] Add support for rk3399 industry evaluation board
@ 2025-04-30 7:48 Chaoyi Chen
2025-04-30 7:48 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add " Chaoyi Chen
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Chaoyi Chen @ 2025-04-30 7:48 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Andrew Lunn, Conor Dooley, Sebastian Reichel, Jianfeng Liu,
Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, linux-kernel,
Kever Yang, Dragan Simic, linux-rockchip, devicetree,
FUKAUMI Naoki, Quentin Schulz, Alexey Charkov,
Krzysztof Kozlowski, Chaoyi Chen, Rob Herring, linux-arm-kernel
From: Chaoyi Chen <chaoyi.chen@rock-chips.com>
General feature for rk3399 industry evaluation board:
- Rockchip RK3399
- 4GB LPDDR4
- emmc5.1
- SDIO3.0 compatible TF card
- 1x HDMI2.0a TX
- 1x HDMI1.4b RX with TC358749XBG HDMI to MIPI CSI2 bridge chip
- 1x type-c DisplayPort
- 3x USB3.0 Host
- 1x USB2.0 Host
- 1x Ethernet / USB3.0 to Ethernet
Tested with HDMI/GPU/USB2.0/USB3.0/TF card/emmc.
Changes in v2:
- Link to V1: https://lore.kernel.org/all/20250427094211.246-1-kernel@airkyi.com/
- Remove gmac
- Add rk809 PMIC
- Add CPU supply
- Fix io-domain for sdmmc
- Enable vopl
Chaoyi Chen (2):
dt-bindings: arm: rockchip: Add rk3399 industry evaluation board
arm64: dts: rockchip: Add rk3399-evb-ind board
.../devicetree/bindings/arm/rockchip.yaml | 5 +
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../boot/dts/rockchip/rk3399-evb-ind.dts | 466 ++++++++++++++++++
3 files changed, 472 insertions(+)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts
--
2.49.0
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v2 1/2] dt-bindings: arm: rockchip: Add rk3399 industry evaluation board 2025-04-30 7:48 [PATCH v2 0/2] Add support for rk3399 industry evaluation board Chaoyi Chen @ 2025-04-30 7:48 ` Chaoyi Chen 2025-04-30 14:36 ` Rob Herring (Arm) 2025-04-30 7:48 ` [PATCH v2 2/2] arm64: dts: rockchip: Add rk3399-evb-ind board Chaoyi Chen 2025-04-30 20:56 ` [PATCH v2 0/2] Add support for rk3399 industry evaluation board Rob Herring (Arm) 2 siblings, 1 reply; 9+ messages in thread From: Chaoyi Chen @ 2025-04-30 7:48 UTC (permalink / raw) To: Heiko Stuebner Cc: Andrew Lunn, Conor Dooley, Sebastian Reichel, Jianfeng Liu, Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, linux-kernel, Kever Yang, Dragan Simic, linux-rockchip, devicetree, FUKAUMI Naoki, Quentin Schulz, Alexey Charkov, Krzysztof Kozlowski, Chaoyi Chen, Rob Herring, linux-arm-kernel From: Chaoyi Chen <chaoyi.chen@rock-chips.com> Add devicetree binding for the rk3399 industry evaluation board. Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> --- (no changes since v1) 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 650fb833d96e..684d48ba20fc 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -1047,6 +1047,11 @@ properties: - const: rockchip,rk3399-evb - const: rockchip,rk3399 + - description: Rockchip RK3399 Industry Evaluation board + items: + - const: rockchip,rk3399-evb-ind + - const: rockchip,rk3399 + - description: Rockchip RK3399 Sapphire standalone items: - const: rockchip,rk3399-sapphire -- 2.49.0 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add rk3399 industry evaluation board 2025-04-30 7:48 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add " Chaoyi Chen @ 2025-04-30 14:36 ` Rob Herring (Arm) 2025-04-30 14:48 ` Quentin Schulz 0 siblings, 1 reply; 9+ messages in thread From: Rob Herring (Arm) @ 2025-04-30 14:36 UTC (permalink / raw) To: Chaoyi Chen Cc: devicetree, Conor Dooley, Sebastian Reichel, Heiko Stuebner, Geert Uytterhoeven, Jonas Karlman, Quentin Schulz, linux-kernel, Kever Yang, Andrew Lunn, linux-rockchip, FUKAUMI Naoki, Jimmy Hon, Alexey Charkov, Krzysztof Kozlowski, Chaoyi Chen, Dragan Simic, linux-arm-kernel, Jianfeng Liu On Wed, 30 Apr 2025 15:48:47 +0800, Chaoyi Chen wrote: > From: Chaoyi Chen <chaoyi.chen@rock-chips.com> > > Add devicetree binding for the rk3399 industry evaluation board. > > Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> > --- > > (no changes since v1) > > Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ > 1 file changed, 5 insertions(+) > Please add Acked-by/Reviewed-by tags when posting new versions. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for acks received on the version they apply. If a tag was not added on purpose, please state why and what changed. Missing tags: Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add rk3399 industry evaluation board 2025-04-30 14:36 ` Rob Herring (Arm) @ 2025-04-30 14:48 ` Quentin Schulz 2025-05-02 1:30 ` Rob Herring 0 siblings, 1 reply; 9+ messages in thread From: Quentin Schulz @ 2025-04-30 14:48 UTC (permalink / raw) To: Rob Herring (Arm), Chaoyi Chen Cc: devicetree, Conor Dooley, Sebastian Reichel, Heiko Stuebner, Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, linux-kernel, Kever Yang, Andrew Lunn, linux-rockchip, FUKAUMI Naoki, Alexey Charkov, Krzysztof Kozlowski, Chaoyi Chen, Dragan Simic, linux-arm-kernel, Jianfeng Liu Hi Rob, On 4/30/25 4:36 PM, Rob Herring (Arm) wrote: > > On Wed, 30 Apr 2025 15:48:47 +0800, Chaoyi Chen wrote: >> From: Chaoyi Chen <chaoyi.chen@rock-chips.com> >> >> Add devicetree binding for the rk3399 industry evaluation board. >> >> Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> >> --- >> >> (no changes since v1) >> >> Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ >> 1 file changed, 5 insertions(+) >> > > > Please add Acked-by/Reviewed-by tags when posting new versions. However, > there's no need to repost patches *only* to add the tags. The upstream > maintainer will do that for acks received on the version they apply. > > If a tag was not added on purpose, please state why and what changed. > > Missing tags: > > Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > To be fair, the Acked-by was given on the v1[1] after the v2[2] was sent, we cannot expect Chaoyi Chen to travel back in time :) [1] https://lore.kernel.org/linux-rockchip/20250430-light-chital-of-cookies-b8f2ab@kuoka/ 10:22 UTC [2] https://lore.kernel.org/linux-rockchip/20250430074848.539-2-kernel@airkyi.com/ 7:48 UTC Cheers, Quentin _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add rk3399 industry evaluation board 2025-04-30 14:48 ` Quentin Schulz @ 2025-05-02 1:30 ` Rob Herring 0 siblings, 0 replies; 9+ messages in thread From: Rob Herring @ 2025-05-02 1:30 UTC (permalink / raw) To: Quentin Schulz Cc: devicetree, Conor Dooley, Chaoyi Chen, Heiko Stuebner, Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, Jianfeng Liu, linux-kernel, Kever Yang, Andrew Lunn, linux-rockchip, FUKAUMI Naoki, Alexey Charkov, Krzysztof Kozlowski, Chaoyi Chen, Dragan Simic, linux-arm-kernel, Sebastian Reichel On Wed, Apr 30, 2025 at 04:48:35PM +0200, Quentin Schulz wrote: > Hi Rob, > > On 4/30/25 4:36 PM, Rob Herring (Arm) wrote: > > > > On Wed, 30 Apr 2025 15:48:47 +0800, Chaoyi Chen wrote: > > > From: Chaoyi Chen <chaoyi.chen@rock-chips.com> > > > > > > Add devicetree binding for the rk3399 industry evaluation board. > > > > > > Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> > > > --- > > > > > > (no changes since v1) > > > > > > Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ > > > 1 file changed, 5 insertions(+) > > > > > > > > > Please add Acked-by/Reviewed-by tags when posting new versions. However, > > there's no need to repost patches *only* to add the tags. The upstream > > maintainer will do that for acks received on the version they apply. > > > > If a tag was not added on purpose, please state why and what changed. > > > > Missing tags: > > > > Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > > > To be fair, the Acked-by was given on the v1[1] after the v2[2] was sent, we > cannot expect Chaoyi Chen to travel back in time :) Usually a sign of sending new versions too quickly... But I just send this semi-automated email so we capture the ack and I can clear it out of my inbox. Rob _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 2/2] arm64: dts: rockchip: Add rk3399-evb-ind board 2025-04-30 7:48 [PATCH v2 0/2] Add support for rk3399 industry evaluation board Chaoyi Chen 2025-04-30 7:48 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add " Chaoyi Chen @ 2025-04-30 7:48 ` Chaoyi Chen 2025-04-30 8:39 ` Quentin Schulz 2025-04-30 20:56 ` [PATCH v2 0/2] Add support for rk3399 industry evaluation board Rob Herring (Arm) 2 siblings, 1 reply; 9+ messages in thread From: Chaoyi Chen @ 2025-04-30 7:48 UTC (permalink / raw) To: Heiko Stuebner Cc: Andrew Lunn, Conor Dooley, Sebastian Reichel, Jianfeng Liu, Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, linux-kernel, Kever Yang, Dragan Simic, linux-rockchip, devicetree, FUKAUMI Naoki, Quentin Schulz, Alexey Charkov, Krzysztof Kozlowski, Chaoyi Chen, Rob Herring, linux-arm-kernel From: Chaoyi Chen <chaoyi.chen@rock-chips.com> General feature for rk3399 industry evaluation board: - Rockchip RK3399 - 4GB LPDDR4 - emmc5.1 - SDIO3.0 compatible TF card - 1x HDMI2.0a TX - 1x HDMI1.4b RX with TC358749XBG HDMI to MIPI CSI2 bridge chip - 1x type-c DisplayPort - 3x USB3.0 Host - 1x USB2.0 Host - 1x Ethernet / USB3.0 to Ethernet Tested with HDMI/GPU/USB2.0/USB3.0/TF card/emmc. Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> --- Changes in v2: - Remove gmac - Add rk809 PMIC - Add CPU supply - Fix io-domain for sdmmc - Enable vopl arch/arm64/boot/dts/rockchip/Makefile | 1 + .../boot/dts/rockchip/rk3399-evb-ind.dts | 466 ++++++++++++++++++ 2 files changed, 467 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 3e8771ef69ba..8a3adb7482ca 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-eaidk-610.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb-ind.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ficus.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts new file mode 100644 index 000000000000..ebfe7e56b3f5 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts @@ -0,0 +1,466 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2025 Rockchip Electronics Co., Ltd. + */ + +/dts-v1/; +#include "rk3399-base.dtsi" + +/ { + model = "Rockchip RK3399 EVB IND LPDDR4 Board"; + compatible = "rockchip,rk3399-evb-ind", "rockchip,rk3399"; + + aliases { + ethernet0 = &gmac; + mmc0 = &sdhci; + mmc1 = &sdmmc; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + vcc5v0_sys: regulator-vcc5v0-sys { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + }; +}; + +&cpu_l0 { + cpu-supply = <&vdd_cpu_l>; +}; + +&cpu_l1 { + cpu-supply = <&vdd_cpu_l>; +}; + +&cpu_l2 { + cpu-supply = <&vdd_cpu_l>; +}; + +&cpu_l3 { + cpu-supply = <&vdd_cpu_l>; +}; + +&cpu_b0 { + cpu-supply = <&vdd_cpu_b>; +}; + +&cpu_b1 { + cpu-supply = <&vdd_cpu_b>; +}; + +&emmc_phy { + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_gpu>; + status = "okay"; +}; + +&hdmi { + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_i2c_xfer>, <&hdmi_cec>; + status = "okay"; +}; + +&hdmi_sound { + status = "okay"; +}; + +&i2c0 { + clock-frequency = <400000>; + i2c-scl-falling-time-ns = <4>; + i2c-scl-rising-time-ns = <168>; + status = "okay"; + + rk809: pmic@20 { + compatible = "rockchip,rk809"; + reg = <0x20>; + interrupt-parent = <&gpio1>; + interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_int_l>; + rockchip,system-power-controller; + #clock-cells = <1>; + pmic-reset-func = <0>; + wakeup-source; + clock-output-names = "xin32k", "rk808-clkout2"; + + vcc1-supply = <&vcc5v0_sys>; + vcc2-supply = <&vcc5v0_sys>; + vcc3-supply = <&vcc5v0_sys>; + vcc4-supply = <&vcc5v0_sys>; + vcc5-supply = <&vcc_buck5>; + vcc6-supply = <&vcc_buck5>; + vcc7-supply = <&vcc5v0_sys>; + vcc8-supply = <&vcc3v3_sys>; + vcc9-supply = <&vcc5v0_sys>; + + regulators { + vdd_center: DCDC_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x2>; + regulator-max-microvolt = <1350000>; + regulator-min-microvolt = <750000>; + regulator-ramp-delay = <6001>; + regulator-name = "vdd_center"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_l: DCDC_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x2>; + regulator-max-microvolt = <1350000>; + regulator-min-microvolt = <750000>; + regulator-ramp-delay = <6001>; + regulator-name = "vdd_cpu_l"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_ddr: DCDC_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x2>; + regulator-name = "vcc_ddr"; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc3v3_sys: DCDC_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <0x2>; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "vcc3v3_sys"; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3300000>; + }; + }; + + vcc_buck5: DCDC_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <2200000>; + regulator-min-microvolt = <2200000>; + regulator-name = "vcc_buck5"; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <2200000>; + }; + }; + + vcca_0v9: LDO_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <900000>; + regulator-min-microvolt = <900000>; + regulator-name = "vcca_0v9"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v8: LDO_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "vcc_1v8"; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vcc0v9_soc: LDO_REG3 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <900000>; + regulator-min-microvolt = <900000>; + regulator-name = "vcc0v9_soc"; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <900000>; + }; + }; + + vcca_1v8: LDO_REG4 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "vcca_1v8"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd1v5_dvp: LDO_REG5 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1500000>; + regulator-min-microvolt = <1500000>; + regulator-name = "vdd1v5_dvp"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v5: LDO_REG6 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1500000>; + regulator-min-microvolt = <1500000>; + regulator-name = "vcc_1v5"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_3v0: LDO_REG7 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3000000>; + regulator-min-microvolt = <3000000>; + regulator-name = "vcc_3v0"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vccio_sd: LDO_REG8 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <1800000>; + regulator-name = "vccio_sd"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_sd: LDO_REG9 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "vcc_sd"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc5v0_usb: SWITCH_REG1 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vcc5v0_usb"; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vccio_3v3: SWITCH_REG2 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vccio_3v3"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + }; + + vdd_cpu_b: tcs4525@1c { + compatible = "tcs,tcs4525"; + reg = <0x1c>; + pinctrl-names = "default"; + pinctrl-0 = <&vsel1_gpio>; + fcs,suspend-voltage-selector = <1>; + vin-supply = <&vcc5v0_sys>; + vsel-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; + regulator-compatible = "fan53555-reg"; + regulator-always-on; + regulator-boot-on; + regulator-initial-state = <3>; + regulator-max-microvolt = <1500000>; + regulator-min-microvolt = <712500>; + regulator-name = "vdd_cpu_b"; + regulator-ramp-delay = <1000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_gpu: tcs4526@10 { + compatible = "tcs,tcs4525"; + reg = <0x10>; + pinctrl-names = "default"; + pinctrl-0 = <&vsel2_gpio>; + fcs,suspend-voltage-selector = <1>; + vin-supply = <&vcc5v0_sys>; + vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>; + regulator-compatible = "fan53555-reg"; + regulator-always-on; + regulator-boot-on; + regulator-initial-state = <3>; + regulator-max-microvolt = <1500000>; + regulator-min-microvolt = <712500>; + regulator-name = "vdd_gpu"; + regulator-ramp-delay = <1000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&io_domains { + audio-supply = <&vcca_1v8>; + bt656-supply = <&vcc_3v0>; + gpio1830-supply = <&vcc_3v0>; + sdmmc-supply = <&vccio_sd>; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + no-sdio; + no-mmc; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; + sd-uhs-sdr104; + vmmc-supply = <&vcc_sd>; + vqmmc-supply = <&vccio_sd>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + keep-power-in-suspend; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + no-sdio; + no-sd; + non-removable; + status = "okay"; +}; + +&tcphy0 { + status = "okay"; +}; + +&tcphy1 { + status = "okay"; +}; + +&u2phy0 { + status = "okay"; +}; + +&u2phy0_host { + status = "okay"; +}; + +&u2phy0_otg { + status = "okay"; +}; + +&u2phy1 { + status = "okay"; +}; + +&u2phy1_host { + status = "okay"; +}; + +&u2phy1_otg { + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; + +&usbdrd_dwc3_0 { + status = "okay"; +}; + +&usbdrd3_0 { + status = "okay"; +}; + +&usbdrd3_1 { + status = "okay"; +}; + +&usbdrd_dwc3_1 { + dr_mode = "host"; + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host1_ehci { + status = "okay"; +}; + +&usb_host1_ohci { + status = "okay"; +}; + +&pinctrl { + pmic { + pmic_int_l: pmic-int-l { + rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + vsel1_gpio: vsel1-gpio { + rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + vsel2_gpio: vsel2-gpio { + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; +}; + +&vopb { + status = "okay"; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; +}; + +&vopl_mmu { + status = "okay"; +}; -- 2.49.0 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: rockchip: Add rk3399-evb-ind board 2025-04-30 7:48 ` [PATCH v2 2/2] arm64: dts: rockchip: Add rk3399-evb-ind board Chaoyi Chen @ 2025-04-30 8:39 ` Quentin Schulz 2025-04-30 10:19 ` Chaoyi Chen 0 siblings, 1 reply; 9+ messages in thread From: Quentin Schulz @ 2025-04-30 8:39 UTC (permalink / raw) To: Chaoyi Chen, Heiko Stuebner Cc: Andrew Lunn, Conor Dooley, Sebastian Reichel, Jianfeng Liu, Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, linux-kernel, Kever Yang, Dragan Simic, linux-rockchip, devicetree, FUKAUMI Naoki, Alexey Charkov, Krzysztof Kozlowski, Chaoyi Chen, Rob Herring, linux-arm-kernel Hi Chaoyi Chen, On 4/30/25 9:48 AM, Chaoyi Chen wrote: > From: Chaoyi Chen <chaoyi.chen@rock-chips.com> > > General feature for rk3399 industry evaluation board: > - Rockchip RK3399 Quick question, is this really an RK3399 or rather an RK3399K (the industrial grade)? If it's a K variant, then we need a new rk3399-k.dtsi with the appropriate OPPs and include that instead. > - 4GB LPDDR4 > - emmc5.1 > - SDIO3.0 compatible TF card > - 1x HDMI2.0a TX > - 1x HDMI1.4b RX with TC358749XBG HDMI to MIPI CSI2 bridge chip > - 1x type-c DisplayPort > - 3x USB3.0 Host > - 1x USB2.0 Host > - 1x Ethernet / USB3.0 to Ethernet > > Tested with HDMI/GPU/USB2.0/USB3.0/TF card/emmc. > > Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> > --- > > Changes in v2: > - Remove gmac > - Add rk809 PMIC > - Add CPU supply > - Fix io-domain for sdmmc > - Enable vopl > > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../boot/dts/rockchip/rk3399-evb-ind.dts | 466 ++++++++++++++++++ > 2 files changed, 467 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts > > diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile > index 3e8771ef69ba..8a3adb7482ca 100644 > --- a/arch/arm64/boot/dts/rockchip/Makefile > +++ b/arch/arm64/boot/dts/rockchip/Makefile > @@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-eaidk-610.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb > +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb-ind.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ficus.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb > diff --git a/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts > new file mode 100644 > index 000000000000..ebfe7e56b3f5 > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts > @@ -0,0 +1,466 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2025 Rockchip Electronics Co., Ltd. > + */ > + > +/dts-v1/; > +#include "rk3399-base.dtsi" > + You're supposed to include one device tree include with OPPs. I see that the rk3399-evb is the only one that does that. According to 296602b8e5f7 ("arm64: dts: rockchip: Move RK3399 OPPs to dtsi files for SoC variants"), this was done because: The only exception to the "include only a SoC variant dtsi" is found in rk3399-evb.dts, which includes rk3399-base.dtsi instead of rk3399.dtsi. This is intentional, because this board dts file doesn't enable the TSADC, so including rk3399.dtsi would enable the SoC to go into higher OPPs with no thermal throttling in place. Let's hope that people interested in this board will fix this in the future. Soooo, maybe you could fix that now? At the very least for the industrial variant (but it would also be most welcomed for the "normal" EVB). > +/ { > + model = "Rockchip RK3399 EVB IND LPDDR4 Board"; > + compatible = "rockchip,rk3399-evb-ind", "rockchip,rk3399"; > + > + aliases { > + ethernet0 = &gmac; Considering gmac is gone from the DT, maybe you want to have that one in the patch that will add Ethernet support? > + mmc0 = &sdhci; > + mmc1 = &sdmmc; > + }; > + > + chosen { > + stdout-path = "serial2:1500000n8"; > + }; > + > + vcc5v0_sys: regulator-vcc5v0-sys { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; > + regulator-name = "vcc5v0_sys"; > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <5000000>; > + regulator-min-microvolt = <5000000>; > + }; > +}; > + > +&cpu_l0 { > + cpu-supply = <&vdd_cpu_l>; > +}; > + > +&cpu_l1 { > + cpu-supply = <&vdd_cpu_l>; > +}; > + > +&cpu_l2 { > + cpu-supply = <&vdd_cpu_l>; > +}; > + > +&cpu_l3 { > + cpu-supply = <&vdd_cpu_l>; > +}; > + > +&cpu_b0 { > + cpu-supply = <&vdd_cpu_b>; > +}; > + > +&cpu_b1 { > + cpu-supply = <&vdd_cpu_b>; > +}; > + Please order the nodes alphabetically, so cpu_bX before cpu_lX. See https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html > +&emmc_phy { > + status = "okay"; > +}; > + > +&gpu { > + mali-supply = <&vdd_gpu>; > + status = "okay"; > +}; > + > +&hdmi { > + pinctrl-names = "default"; > + pinctrl-0 = <&hdmi_i2c_xfer>, <&hdmi_cec>; > + status = "okay"; > +}; > + > +&hdmi_sound { > + status = "okay"; > +}; > + hdmi_sound requires i2s2 controller to be enabled too, but I don't see it in this device tree? > +&i2c0 { > + clock-frequency = <400000>; > + i2c-scl-falling-time-ns = <4>; > + i2c-scl-rising-time-ns = <168>; > + status = "okay"; > + > + rk809: pmic@20 { > + compatible = "rockchip,rk809"; > + reg = <0x20>; > + interrupt-parent = <&gpio1>; > + interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pmic_int_l>; > + rockchip,system-power-controller; > + #clock-cells = <1>; > + pmic-reset-func = <0>; > + wakeup-source; > + clock-output-names = "xin32k", "rk808-clkout2"; > + Please order properties correctly, see https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html > + vcc1-supply = <&vcc5v0_sys>; > + vcc2-supply = <&vcc5v0_sys>; > + vcc3-supply = <&vcc5v0_sys>; > + vcc4-supply = <&vcc5v0_sys>; > + vcc5-supply = <&vcc_buck5>; > + vcc6-supply = <&vcc_buck5>; > + vcc7-supply = <&vcc5v0_sys>; > + vcc8-supply = <&vcc3v3_sys>; > + vcc9-supply = <&vcc5v0_sys>; > + > + regulators { > + vdd_center: DCDC_REG1 { > + regulator-always-on; > + regulator-boot-on; > + regulator-initial-mode = <0x2>; > + regulator-max-microvolt = <1350000>; > + regulator-min-microvolt = <750000>; > + regulator-ramp-delay = <6001>; > + regulator-name = "vdd_center"; Missing blank line between last property and first child node, see https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html. Same remark for all other regulators. > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vdd_cpu_l: DCDC_REG2 { > + regulator-always-on; > + regulator-boot-on; > + regulator-initial-mode = <0x2>; > + regulator-max-microvolt = <1350000>; > + regulator-min-microvolt = <750000>; > + regulator-ramp-delay = <6001>; > + regulator-name = "vdd_cpu_l"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vcc_ddr: DCDC_REG3 { > + regulator-always-on; > + regulator-boot-on; > + regulator-initial-mode = <0x2>; > + regulator-name = "vcc_ddr"; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + vcc3v3_sys: DCDC_REG4 { > + regulator-always-on; > + regulator-boot-on; > + regulator-initial-mode = <0x2>; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "vcc3v3_sys"; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <3300000>; > + }; > + }; > + > + vcc_buck5: DCDC_REG5 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <2200000>; > + regulator-min-microvolt = <2200000>; > + regulator-name = "vcc_buck5"; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <2200000>; > + }; > + }; > + > + vcca_0v9: LDO_REG1 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <900000>; > + regulator-min-microvolt = <900000>; > + regulator-name = "vcca_0v9"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vcc_1v8: LDO_REG2 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <1800000>; > + regulator-min-microvolt = <1800000>; > + regulator-name = "vcc_1v8"; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <1800000>; > + }; > + }; > + > + vcc0v9_soc: LDO_REG3 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <900000>; > + regulator-min-microvolt = <900000>; > + regulator-name = "vcc0v9_soc"; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <900000>; > + }; > + }; > + > + vcca_1v8: LDO_REG4 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <1800000>; > + regulator-min-microvolt = <1800000>; > + regulator-name = "vcca_1v8"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vdd1v5_dvp: LDO_REG5 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <1500000>; > + regulator-min-microvolt = <1500000>; > + regulator-name = "vdd1v5_dvp"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vcc_1v5: LDO_REG6 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <1500000>; > + regulator-min-microvolt = <1500000>; > + regulator-name = "vcc_1v5"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vcc_3v0: LDO_REG7 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <3000000>; > + regulator-min-microvolt = <3000000>; > + regulator-name = "vcc_3v0"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vccio_sd: LDO_REG8 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <1800000>; > + regulator-name = "vccio_sd"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vcc_sd: LDO_REG9 { > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "vcc_sd"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + vcc5v0_usb: SWITCH_REG1 { > + regulator-always-on; > + regulator-boot-on; > + regulator-name = "vcc5v0_usb"; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + vccio_3v3: SWITCH_REG2 { > + regulator-always-on; > + regulator-boot-on; > + regulator-name = "vccio_3v3"; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + }; > + }; > + > + vdd_cpu_b: tcs4525@1c { Please set the node name to regulator@1c. > + compatible = "tcs,tcs4525"; > + reg = <0x1c>; > + pinctrl-names = "default"; > + pinctrl-0 = <&vsel1_gpio>; > + fcs,suspend-voltage-selector = <1>; > + vin-supply = <&vcc5v0_sys>; > + vsel-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; > + regulator-compatible = "fan53555-reg"; > + regulator-always-on; > + regulator-boot-on; > + regulator-initial-state = <3>; > + regulator-max-microvolt = <1500000>; > + regulator-min-microvolt = <712500>; > + regulator-name = "vdd_cpu_b"; > + regulator-ramp-delay = <1000>; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; Properties order and blank line before child node, see https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html > + }; > + > + vdd_gpu: tcs4526@10 { Please set node name to regulator@10. Please order child nodes in busses based on their address, i.e.: vdd_gpu vdd_cpu_b rk809 in this case. > + compatible = "tcs,tcs4525"; > + reg = <0x10>; > + pinctrl-names = "default"; > + pinctrl-0 = <&vsel2_gpio>; > + fcs,suspend-voltage-selector = <1>; > + vin-supply = <&vcc5v0_sys>; > + vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>; > + regulator-compatible = "fan53555-reg"; > + regulator-always-on; > + regulator-boot-on; > + regulator-initial-state = <3>; > + regulator-max-microvolt = <1500000>; > + regulator-min-microvolt = <712500>; > + regulator-name = "vdd_gpu"; > + regulator-ramp-delay = <1000>; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; Properties order and blank line before child node, see https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html > + }; > +}; > + > +&io_domains { > + audio-supply = <&vcca_1v8>; > + bt656-supply = <&vcc_3v0>; > + gpio1830-supply = <&vcc_3v0>; > + sdmmc-supply = <&vccio_sd>; > + status = "okay"; > +}; What about pmu_io_domains too? > + > +&sdmmc { > + bus-width = <4>; > + cap-mmc-highspeed; > + cap-sd-highspeed; > + disable-wp; > + no-sdio; > + no-mmc; > + pinctrl-names = "default"; > + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; > + sd-uhs-sdr104; > + vmmc-supply = <&vcc_sd>; > + vqmmc-supply = <&vccio_sd>; > + status = "okay"; > +}; > + > +&sdhci { This should be before sdmmc > + bus-width = <8>; > + keep-power-in-suspend; > + mmc-hs400-1_8v; > + mmc-hs400-enhanced-strobe; > + no-sdio; > + no-sd; > + non-removable; > + status = "okay"; > +}; > + > +&tcphy0 { > + status = "okay"; > +}; > + > +&tcphy1 { > + status = "okay"; > +}; > + What about tsadc? > +&u2phy0 { > + status = "okay"; > +}; > + > +&u2phy0_host { > + status = "okay"; > +}; > + > +&u2phy0_otg { > + status = "okay"; > +}; > + > +&u2phy1 { > + status = "okay"; > +}; > + > +&u2phy1_host { > + status = "okay"; > +}; > + > +&u2phy1_otg { > + status = "okay"; > +}; > + > +&uart2 { > + status = "okay"; > +}; > + > +&usbdrd_dwc3_0 { > + status = "okay"; > +}; > + > +&usbdrd3_0 { > + status = "okay"; > +}; > + > +&usbdrd3_1 { > + status = "okay"; > +}; > + > +&usbdrd_dwc3_1 { > + dr_mode = "host"; > + status = "okay"; > +}; > + > +&usb_host0_ehci { > + status = "okay"; > +}; > + > +&usb_host0_ohci { > + status = "okay"; > +}; > + > +&usb_host1_ehci { > + status = "okay"; > +}; > + > +&usb_host1_ohci { > + status = "okay"; > +}; > + > +&pinctrl { This needs to be ordered alphabetically, see https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html (so before sdhci here). Cheers, Quentin _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: rockchip: Add rk3399-evb-ind board 2025-04-30 8:39 ` Quentin Schulz @ 2025-04-30 10:19 ` Chaoyi Chen 0 siblings, 0 replies; 9+ messages in thread From: Chaoyi Chen @ 2025-04-30 10:19 UTC (permalink / raw) To: Quentin Schulz, Chaoyi Chen, Heiko Stuebner Cc: Andrew Lunn, Conor Dooley, Sebastian Reichel, Jianfeng Liu, Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, linux-kernel, Kever Yang, Dragan Simic, linux-rockchip, devicetree, FUKAUMI Naoki, Alexey Charkov, Krzysztof Kozlowski, Rob Herring, linux-arm-kernel Hi Quentin, On 2025/4/30 16:39, Quentin Schulz wrote: > Hi Chaoyi Chen, > > On 4/30/25 9:48 AM, Chaoyi Chen wrote: >> From: Chaoyi Chen <chaoyi.chen@rock-chips.com> >> >> General feature for rk3399 industry evaluation board: >> - Rockchip RK3399 > > Quick question, is this really an RK3399 or rather an RK3399K (the > industrial grade)? If it's a K variant, then we need a new > rk3399-k.dtsi with the appropriate OPPs and include that instead. Yes, it is really an RK3399. > >> - 4GB LPDDR4 >> - emmc5.1 >> - SDIO3.0 compatible TF card >> - 1x HDMI2.0a TX >> - 1x HDMI1.4b RX with TC358749XBG HDMI to MIPI CSI2 bridge chip >> - 1x type-c DisplayPort >> - 3x USB3.0 Host >> - 1x USB2.0 Host >> - 1x Ethernet / USB3.0 to Ethernet >> >> Tested with HDMI/GPU/USB2.0/USB3.0/TF card/emmc. >> >> Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> >> --- >> >> Changes in v2: >> - Remove gmac >> - Add rk809 PMIC >> - Add CPU supply >> - Fix io-domain for sdmmc >> - Enable vopl >> >> arch/arm64/boot/dts/rockchip/Makefile | 1 + >> .../boot/dts/rockchip/rk3399-evb-ind.dts | 466 ++++++++++++++++++ >> 2 files changed, 467 insertions(+) >> create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts >> >> diff --git a/arch/arm64/boot/dts/rockchip/Makefile >> b/arch/arm64/boot/dts/rockchip/Makefile >> index 3e8771ef69ba..8a3adb7482ca 100644 >> --- a/arch/arm64/boot/dts/rockchip/Makefile >> +++ b/arch/arm64/boot/dts/rockchip/Makefile >> @@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb >> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb >> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-eaidk-610.dtb >> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb >> +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb-ind.dtb >> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ficus.dtb >> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb >> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb >> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts >> b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts >> new file mode 100644 >> index 000000000000..ebfe7e56b3f5 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts >> @@ -0,0 +1,466 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >> +/* >> + * Copyright (c) 2025 Rockchip Electronics Co., Ltd. >> + */ >> + >> +/dts-v1/; >> +#include "rk3399-base.dtsi" >> + > > You're supposed to include one device tree include with OPPs. I see > that the rk3399-evb is the only one that does that. > > According to 296602b8e5f7 ("arm64: dts: rockchip: Move RK3399 OPPs to > dtsi files for SoC variants"), this was done because: > > The only exception to the "include only a SoC variant dtsi" is > found in > rk3399-evb.dts, which includes rk3399-base.dtsi instead of > rk3399.dtsi. > This is intentional, because this board dts file doesn't enable > the TSADC, > so including rk3399.dtsi would enable the SoC to go into higher > OPPs with > no thermal throttling in place. Let's hope that people interested > in this > board will fix this in the future. > > Soooo, maybe you could fix that now? At the very least for the > industrial variant (but it would also be most welcomed for the > "normal" EVB). > I think this should include "rk3399.dtsi", since this is just the normal version of RK3399. I will investigate further about rk3399-evb. >> +/ { >> + model = "Rockchip RK3399 EVB IND LPDDR4 Board"; >> + compatible = "rockchip,rk3399-evb-ind", "rockchip,rk3399"; >> + >> + aliases { >> + ethernet0 = &gmac; > > Considering gmac is gone from the DT, maybe you want to have that one > in the patch that will add Ethernet support? Yes, there will be an additional series. I will remove them in v3 for now. > >> + mmc0 = &sdhci; >> + mmc1 = &sdmmc; >> + }; >> + >> + chosen { >> + stdout-path = "serial2:1500000n8"; >> + }; >> + >> + vcc5v0_sys: regulator-vcc5v0-sys { >> + compatible = "regulator-fixed"; >> + enable-active-high; >> + gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; >> + regulator-name = "vcc5v0_sys"; >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <5000000>; >> + regulator-min-microvolt = <5000000>; >> + }; >> +}; >> + >> +&cpu_l0 { >> + cpu-supply = <&vdd_cpu_l>; >> +}; >> + >> +&cpu_l1 { >> + cpu-supply = <&vdd_cpu_l>; >> +}; >> + >> +&cpu_l2 { >> + cpu-supply = <&vdd_cpu_l>; >> +}; >> + >> +&cpu_l3 { >> + cpu-supply = <&vdd_cpu_l>; >> +}; >> + >> +&cpu_b0 { >> + cpu-supply = <&vdd_cpu_b>; >> +}; >> + >> +&cpu_b1 { >> + cpu-supply = <&vdd_cpu_b>; >> +}; >> + > > Please order the nodes alphabetically, so cpu_bX before cpu_lX. See > https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html Will fix in v3. > >> +&emmc_phy { >> + status = "okay"; >> +}; >> + >> +&gpu { >> + mali-supply = <&vdd_gpu>; >> + status = "okay"; >> +}; >> + >> +&hdmi { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&hdmi_i2c_xfer>, <&hdmi_cec>; >> + status = "okay"; >> +}; >> + >> +&hdmi_sound { >> + status = "okay"; >> +}; >> + > > hdmi_sound requires i2s2 controller to be enabled too, but I don't see > it in this device tree? Will fix in v3. > >> +&i2c0 { >> + clock-frequency = <400000>; >> + i2c-scl-falling-time-ns = <4>; >> + i2c-scl-rising-time-ns = <168>; >> + status = "okay"; >> + >> + rk809: pmic@20 { >> + compatible = "rockchip,rk809"; >> + reg = <0x20>; >> + interrupt-parent = <&gpio1>; >> + interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&pmic_int_l>; >> + rockchip,system-power-controller; >> + #clock-cells = <1>; >> + pmic-reset-func = <0>; >> + wakeup-source; >> + clock-output-names = "xin32k", "rk808-clkout2"; >> + > > Please order properties correctly, see > https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html Will fix in v3. > >> + vcc1-supply = <&vcc5v0_sys>; >> + vcc2-supply = <&vcc5v0_sys>; >> + vcc3-supply = <&vcc5v0_sys>; >> + vcc4-supply = <&vcc5v0_sys>; >> + vcc5-supply = <&vcc_buck5>; >> + vcc6-supply = <&vcc_buck5>; >> + vcc7-supply = <&vcc5v0_sys>; >> + vcc8-supply = <&vcc3v3_sys>; >> + vcc9-supply = <&vcc5v0_sys>; >> + >> + regulators { >> + vdd_center: DCDC_REG1 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-initial-mode = <0x2>; >> + regulator-max-microvolt = <1350000>; >> + regulator-min-microvolt = <750000>; >> + regulator-ramp-delay = <6001>; >> + regulator-name = "vdd_center"; > > Missing blank line between last property and first child node, see > https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html. > Same remark for all other regulators. Will fix them in v3. > >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vdd_cpu_l: DCDC_REG2 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-initial-mode = <0x2>; >> + regulator-max-microvolt = <1350000>; >> + regulator-min-microvolt = <750000>; >> + regulator-ramp-delay = <6001>; >> + regulator-name = "vdd_cpu_l"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vcc_ddr: DCDC_REG3 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-initial-mode = <0x2>; >> + regulator-name = "vcc_ddr"; >> + regulator-state-mem { >> + regulator-on-in-suspend; >> + }; >> + }; >> + >> + vcc3v3_sys: DCDC_REG4 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-initial-mode = <0x2>; >> + regulator-max-microvolt = <3300000>; >> + regulator-min-microvolt = <3300000>; >> + regulator-name = "vcc3v3_sys"; >> + regulator-state-mem { >> + regulator-on-in-suspend; >> + regulator-suspend-microvolt = <3300000>; >> + }; >> + }; >> + >> + vcc_buck5: DCDC_REG5 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <2200000>; >> + regulator-min-microvolt = <2200000>; >> + regulator-name = "vcc_buck5"; >> + regulator-state-mem { >> + regulator-on-in-suspend; >> + regulator-suspend-microvolt = <2200000>; >> + }; >> + }; >> + >> + vcca_0v9: LDO_REG1 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <900000>; >> + regulator-min-microvolt = <900000>; >> + regulator-name = "vcca_0v9"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vcc_1v8: LDO_REG2 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <1800000>; >> + regulator-min-microvolt = <1800000>; >> + regulator-name = "vcc_1v8"; >> + regulator-state-mem { >> + regulator-on-in-suspend; >> + regulator-suspend-microvolt = <1800000>; >> + }; >> + }; >> + >> + vcc0v9_soc: LDO_REG3 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <900000>; >> + regulator-min-microvolt = <900000>; >> + regulator-name = "vcc0v9_soc"; >> + regulator-state-mem { >> + regulator-on-in-suspend; >> + regulator-suspend-microvolt = <900000>; >> + }; >> + }; >> + >> + vcca_1v8: LDO_REG4 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <1800000>; >> + regulator-min-microvolt = <1800000>; >> + regulator-name = "vcca_1v8"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vdd1v5_dvp: LDO_REG5 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <1500000>; >> + regulator-min-microvolt = <1500000>; >> + regulator-name = "vdd1v5_dvp"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vcc_1v5: LDO_REG6 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <1500000>; >> + regulator-min-microvolt = <1500000>; >> + regulator-name = "vcc_1v5"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vcc_3v0: LDO_REG7 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <3000000>; >> + regulator-min-microvolt = <3000000>; >> + regulator-name = "vcc_3v0"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vccio_sd: LDO_REG8 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <3300000>; >> + regulator-min-microvolt = <1800000>; >> + regulator-name = "vccio_sd"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vcc_sd: LDO_REG9 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-max-microvolt = <3300000>; >> + regulator-min-microvolt = <3300000>; >> + regulator-name = "vcc_sd"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + >> + vcc5v0_usb: SWITCH_REG1 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-name = "vcc5v0_usb"; >> + regulator-state-mem { >> + regulator-on-in-suspend; >> + }; >> + }; >> + >> + vccio_3v3: SWITCH_REG2 { >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-name = "vccio_3v3"; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; >> + }; >> + }; >> + }; >> + >> + vdd_cpu_b: tcs4525@1c { > > Please set the node name to regulator@1c. Will fix in v3. > >> + compatible = "tcs,tcs4525"; >> + reg = <0x1c>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&vsel1_gpio>; >> + fcs,suspend-voltage-selector = <1>; >> + vin-supply = <&vcc5v0_sys>; >> + vsel-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; >> + regulator-compatible = "fan53555-reg"; >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-initial-state = <3>; >> + regulator-max-microvolt = <1500000>; >> + regulator-min-microvolt = <712500>; >> + regulator-name = "vdd_cpu_b"; >> + regulator-ramp-delay = <1000>; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; > > Properties order and blank line before child node, see > https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html Will fix in v3. > >> + }; >> + >> + vdd_gpu: tcs4526@10 { > > Please set node name to regulator@10. > > Please order child nodes in busses based on their address, i.e.: > > vdd_gpu > vdd_cpu_b > rk809 > > in this case. Will fix in v3. > > >> + compatible = "tcs,tcs4525"; >> + reg = <0x10>; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&vsel2_gpio>; >> + fcs,suspend-voltage-selector = <1>; >> + vin-supply = <&vcc5v0_sys>; >> + vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>; >> + regulator-compatible = "fan53555-reg"; >> + regulator-always-on; >> + regulator-boot-on; >> + regulator-initial-state = <3>; >> + regulator-max-microvolt = <1500000>; >> + regulator-min-microvolt = <712500>; >> + regulator-name = "vdd_gpu"; >> + regulator-ramp-delay = <1000>; >> + regulator-state-mem { >> + regulator-off-in-suspend; >> + }; > > Properties order and blank line before child node, see > https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html Will fix in v3. > >> + }; >> +}; >> + >> +&io_domains { >> + audio-supply = <&vcca_1v8>; >> + bt656-supply = <&vcc_3v0>; >> + gpio1830-supply = <&vcc_3v0>; >> + sdmmc-supply = <&vccio_sd>; >> + status = "okay"; >> +}; > > What about pmu_io_domains too? > Sorry, I missed it. Will fix in v3. >> + >> +&sdmmc { >> + bus-width = <4>; >> + cap-mmc-highspeed; >> + cap-sd-highspeed; >> + disable-wp; >> + no-sdio; >> + no-mmc; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; >> + sd-uhs-sdr104; >> + vmmc-supply = <&vcc_sd>; >> + vqmmc-supply = <&vccio_sd>; >> + status = "okay"; >> +}; >> + >> +&sdhci { > > This should be before sdmmc Will fix in v3. > >> + bus-width = <8>; >> + keep-power-in-suspend; >> + mmc-hs400-1_8v; >> + mmc-hs400-enhanced-strobe; >> + no-sdio; >> + no-sd; >> + non-removable; >> + status = "okay"; >> +}; >> + >> +&tcphy0 { >> + status = "okay"; >> +}; >> + >> +&tcphy1 { >> + status = "okay"; >> +}; >> + > > What about tsadc? Oh, there's a tsadc. I'll add it in v3. > >> +&u2phy0 { >> + status = "okay"; >> +}; >> + >> +&u2phy0_host { >> + status = "okay"; >> +}; >> + >> +&u2phy0_otg { >> + status = "okay"; >> +}; >> + >> +&u2phy1 { >> + status = "okay"; >> +}; >> + >> +&u2phy1_host { >> + status = "okay"; >> +}; >> + >> +&u2phy1_otg { >> + status = "okay"; >> +}; >> + >> +&uart2 { >> + status = "okay"; >> +}; >> + >> +&usbdrd_dwc3_0 { >> + status = "okay"; >> +}; >> + >> +&usbdrd3_0 { >> + status = "okay"; >> +}; >> + >> +&usbdrd3_1 { >> + status = "okay"; >> +}; >> + >> +&usbdrd_dwc3_1 { >> + dr_mode = "host"; >> + status = "okay"; >> +}; >> + >> +&usb_host0_ehci { >> + status = "okay"; >> +}; >> + >> +&usb_host0_ohci { >> + status = "okay"; >> +}; >> + >> +&usb_host1_ehci { >> + status = "okay"; >> +}; >> + >> +&usb_host1_ohci { >> + status = "okay"; >> +}; >> + >> +&pinctrl { > > This needs to be ordered alphabetically, see > https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html > (so before sdhci here). Thank you for the quick reply! I will fix them in v3. > Cheers, > Quentin > > _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/2] Add support for rk3399 industry evaluation board 2025-04-30 7:48 [PATCH v2 0/2] Add support for rk3399 industry evaluation board Chaoyi Chen 2025-04-30 7:48 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add " Chaoyi Chen 2025-04-30 7:48 ` [PATCH v2 2/2] arm64: dts: rockchip: Add rk3399-evb-ind board Chaoyi Chen @ 2025-04-30 20:56 ` Rob Herring (Arm) 2 siblings, 0 replies; 9+ messages in thread From: Rob Herring (Arm) @ 2025-04-30 20:56 UTC (permalink / raw) To: Chaoyi Chen Cc: devicetree, Conor Dooley, Heiko Stuebner, Geert Uytterhoeven, Jonas Karlman, Jimmy Hon, Andrew Lunn, Sebastian Reichel, linux-kernel, Kever Yang, linux-rockchip, Alexey Charkov, Quentin Schulz, FUKAUMI Naoki, Krzysztof Kozlowski, Chaoyi Chen, Dragan Simic, linux-arm-kernel, Jianfeng Liu On Wed, 30 Apr 2025 15:48:46 +0800, Chaoyi Chen wrote: > From: Chaoyi Chen <chaoyi.chen@rock-chips.com> > > General feature for rk3399 industry evaluation board: > - Rockchip RK3399 > - 4GB LPDDR4 > - emmc5.1 > - SDIO3.0 compatible TF card > - 1x HDMI2.0a TX > - 1x HDMI1.4b RX with TC358749XBG HDMI to MIPI CSI2 bridge chip > - 1x type-c DisplayPort > - 3x USB3.0 Host > - 1x USB2.0 Host > - 1x Ethernet / USB3.0 to Ethernet > > Tested with HDMI/GPU/USB2.0/USB3.0/TF card/emmc. > > Changes in v2: > - Link to V1: https://lore.kernel.org/all/20250427094211.246-1-kernel@airkyi.com/ > - Remove gmac > - Add rk809 PMIC > - Add CPU supply > - Fix io-domain for sdmmc > - Enable vopl > > Chaoyi Chen (2): > dt-bindings: arm: rockchip: Add rk3399 industry evaluation board > arm64: dts: rockchip: Add rk3399-evb-ind board > > .../devicetree/bindings/arm/rockchip.yaml | 5 + > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../boot/dts/rockchip/rk3399-evb-ind.dts | 466 ++++++++++++++++++ > 3 files changed, 472 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dts > > -- > 2.49.0 > > > 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-rc1-23-g0d0947766d87 (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 20250430074848.539-1-kernel@airkyi.com: arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: /dp@fec00000: failed to match any schema with compatible: ['rockchip,rk3399-cdn-dp'] arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: pmic@20 (rockchip,rk809): 'pmic-reset-func' does not match any of the regexes: '^pinctrl-[0-9]+$' from schema $id: http://devicetree.org/schemas/mfd/rockchip,rk817.yaml# arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: tcs4525@1c (tcs,tcs4525): Unevaluated properties are not allowed ('regulator-compatible', 'regulator-initial-state' were unexpected) from schema $id: http://devicetree.org/schemas/regulator/fcs,fan53555.yaml# arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: tcs4526@10 (tcs,tcs4525): Unevaluated properties are not allowed ('regulator-compatible', 'regulator-initial-state' were unexpected) from schema $id: http://devicetree.org/schemas/regulator/fcs,fan53555.yaml# arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: /syscon@ff770000/pcie-phy: failed to match any schema with compatible: ['rockchip,rk3399-pcie-phy'] arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: /phy@ff7c0000: failed to match any schema with compatible: ['rockchip,rk3399-typec-phy'] arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: /phy@ff800000: failed to match any schema with compatible: ['rockchip,rk3399-typec-phy'] arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: pmic: vsel1-gpio: {'rockchip,pins': [[1, 17, 0, 169]], 'phandle': 117} is not of type 'array' from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml# arch/arm64/boot/dts/rockchip/rk3399-evb-ind.dtb: pmic: vsel2-gpio: {'rockchip,pins': [[1, 14, 0, 169]], 'phandle': 118} is not of type 'array' from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml# _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-05-02 1:32 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-04-30 7:48 [PATCH v2 0/2] Add support for rk3399 industry evaluation board Chaoyi Chen 2025-04-30 7:48 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add " Chaoyi Chen 2025-04-30 14:36 ` Rob Herring (Arm) 2025-04-30 14:48 ` Quentin Schulz 2025-05-02 1:30 ` Rob Herring 2025-04-30 7:48 ` [PATCH v2 2/2] arm64: dts: rockchip: Add rk3399-evb-ind board Chaoyi Chen 2025-04-30 8:39 ` Quentin Schulz 2025-04-30 10:19 ` Chaoyi Chen 2025-04-30 20:56 ` [PATCH v2 0/2] Add support for rk3399 industry evaluation board 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