* [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board [not found] <20260705135014.1004166-1-2254650260@qq.com> @ 2026-07-05 13:50 ` LemonFan-maker 2026-07-05 13:50 ` LemonFan-maker 1 sibling, 0 replies; 19+ messages in thread From: LemonFan-maker @ 2026-07-05 13:50 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-rockchip, linux-arm-kernel, devicetree, linux-kernel The LubanCat 4 is a single board computer based on the Rockchip RK3588S SoC. Specification: - Rockchip RK3588S - 4/8/16GB LPDDR4X - 32/64/128GB eMMC 5.1 - microSD slot - HDMI 2.1 Type-A - Gigabit Ethernet (JLSemi JL21xx PHY) - Mini PCIe (PCIe 2.0 x1) - USB-C (with FUSB302 typec controller) - USB 3.0 Type-A x1 - USB 2.0 Type-A x2 - 3.5mm audio jack (ES8388 codec) - HYM8563 RTC - PWM fan header - 40-pin GPIO header Signed-off-by: LemonFan-maker <2254650260@qq.com> --- Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml index aa66a15be233..44b005bc709a 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -191,6 +191,11 @@ properties: - const: embedfire,lubancat-2 - const: rockchip,rk3568 + - description: EmbedFire LubanCat 4 + items: + - const: embedfire,lubancat-4 + - const: rockchip,rk3588s + - description: Engicam PX30.Core C.TOUCH 2.0 items: - const: engicam,px30-core-ctouch2 -- 2.55.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-05 13:50 ` LemonFan-maker 0 siblings, 0 replies; 19+ messages in thread From: LemonFan-maker @ 2026-07-05 13:50 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-rockchip, linux-arm-kernel, devicetree, linux-kernel The LubanCat 4 is a single board computer based on the Rockchip RK3588S SoC. Specification: - Rockchip RK3588S - 4/8/16GB LPDDR4X - 32/64/128GB eMMC 5.1 - microSD slot - HDMI 2.1 Type-A - Gigabit Ethernet (JLSemi JL21xx PHY) - Mini PCIe (PCIe 2.0 x1) - USB-C (with FUSB302 typec controller) - USB 3.0 Type-A x1 - USB 2.0 Type-A x2 - 3.5mm audio jack (ES8388 codec) - HYM8563 RTC - PWM fan header - 40-pin GPIO header Signed-off-by: LemonFan-maker <2254650260@qq.com> --- Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml index aa66a15be233..44b005bc709a 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -191,6 +191,11 @@ properties: - const: embedfire,lubancat-2 - const: rockchip,rk3568 + - description: EmbedFire LubanCat 4 + items: + - const: embedfire,lubancat-4 + - const: rockchip,rk3588s + - description: Engicam PX30.Core C.TOUCH 2.0 items: - const: engicam,px30-core-ctouch2 -- 2.55.0 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board 2026-07-05 13:50 ` LemonFan-maker @ 2026-07-05 14:37 ` Conor Dooley -1 siblings, 0 replies; 19+ messages in thread From: Conor Dooley @ 2026-07-05 14:37 UTC (permalink / raw) To: LemonFan-maker Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 75 bytes --] Acked-by: Conor Dooley <conor.dooley@microchip.com> pw-bot: not-applicable [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-05 14:37 ` Conor Dooley 0 siblings, 0 replies; 19+ messages in thread From: Conor Dooley @ 2026-07-05 14:37 UTC (permalink / raw) To: LemonFan-maker Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1.1: Type: text/plain, Size: 75 bytes --] Acked-by: Conor Dooley <conor.dooley@microchip.com> pw-bot: not-applicable [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] [-- Attachment #2: Type: text/plain, Size: 170 bytes --] _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board 2026-07-05 14:37 ` Conor Dooley @ 2026-07-05 14:38 ` Conor Dooley -1 siblings, 0 replies; 19+ messages in thread From: Conor Dooley @ 2026-07-05 14:38 UTC (permalink / raw) To: LemonFan-maker Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 256 bytes --] On Sun, Jul 05, 2026 at 03:37:00PM +0100, Conor Dooley wrote: > Acked-by: Conor Dooley <conor.dooley@microchip.com> > pw-bot: not-applicable Actually no, I just noticed you're not using your real name/a known identity. un-acked until you sort that out. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-05 14:38 ` Conor Dooley 0 siblings, 0 replies; 19+ messages in thread From: Conor Dooley @ 2026-07-05 14:38 UTC (permalink / raw) To: LemonFan-maker Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1.1: Type: text/plain, Size: 256 bytes --] On Sun, Jul 05, 2026 at 03:37:00PM +0100, Conor Dooley wrote: > Acked-by: Conor Dooley <conor.dooley@microchip.com> > pw-bot: not-applicable Actually no, I just noticed you're not using your real name/a known identity. un-acked until you sort that out. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] [-- Attachment #2: Type: text/plain, Size: 170 bytes --] _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board 2026-07-05 14:38 ` Conor Dooley @ 2026-07-06 21:24 ` Pufan Jin -1 siblings, 0 replies; 19+ messages in thread From: Pufan Jin @ 2026-07-06 21:24 UTC (permalink / raw) To: Conor Dooley Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel On Sun, Jul 05, 2026 at 03:38:00PM +0100, Conor Dooley wrote: > On Sun, Jul 05, 2026 at 03:37:00PM +0100, Conor Dooley wrote: > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > pw-bot: not-applicable > > Actually no, I just noticed you're not using your real name/a known > identity. un-acked until you sort that out. Apologies for the confusion. My real name is Jin Pufan. In v2 I will change the author identity to: From: Pufan Jin <2254650260@qq.com> Signed-off-by: Pufan Jin <2254650260@qq.com> (family name Jin, given name Pufan; using given-name-first Latin order as is customary on the list.) The Copyright line in the DTS will be updated to match. Thanks for the review, and sorry for the noise. Pufan Jin ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-06 21:24 ` Pufan Jin 0 siblings, 0 replies; 19+ messages in thread From: Pufan Jin @ 2026-07-06 21:24 UTC (permalink / raw) To: Conor Dooley Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel On Sun, Jul 05, 2026 at 03:38:00PM +0100, Conor Dooley wrote: > On Sun, Jul 05, 2026 at 03:37:00PM +0100, Conor Dooley wrote: > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > pw-bot: not-applicable > > Actually no, I just noticed you're not using your real name/a known > identity. un-acked until you sort that out. Apologies for the confusion. My real name is Jin Pufan. In v2 I will change the author identity to: From: Pufan Jin <2254650260@qq.com> Signed-off-by: Pufan Jin <2254650260@qq.com> (family name Jin, given name Pufan; using given-name-first Latin order as is customary on the list.) The Copyright line in the DTS will be updated to match. Thanks for the review, and sorry for the noise. Pufan Jin _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board 2026-07-06 21:24 ` Pufan Jin @ 2026-07-07 16:02 ` Conor Dooley -1 siblings, 0 replies; 19+ messages in thread From: Conor Dooley @ 2026-07-07 16:02 UTC (permalink / raw) To: Pufan Jin Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1.1: Type: text/plain, Size: 920 bytes --] On Tue, Jul 07, 2026 at 05:24:28AM +0800, Pufan Jin wrote: > On Sun, Jul 05, 2026 at 03:38:00PM +0100, Conor Dooley wrote: > > On Sun, Jul 05, 2026 at 03:37:00PM +0100, Conor Dooley wrote: > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > pw-bot: not-applicable > > > > Actually no, I just noticed you're not using your real name/a known > > identity. un-acked until you sort that out. > > Apologies for the confusion. My real name is Jin Pufan. > In v2 I will change the author identity to: > > From: Pufan Jin <2254650260@qq.com> > Signed-off-by: Pufan Jin <2254650260@qq.com> > > (family name Jin, given name Pufan; using given-name-first Latin > order as is customary on the list.) The Copyright line in the > DTS will be updated to match. > > Thanks for the review, and sorry for the noise. No worries, you can retain my ack with these changes. Thanks, Conor. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] [-- Attachment #2: Type: text/plain, Size: 170 bytes --] _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-07 16:02 ` Conor Dooley 0 siblings, 0 replies; 19+ messages in thread From: Conor Dooley @ 2026-07-07 16:02 UTC (permalink / raw) To: Pufan Jin Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 920 bytes --] On Tue, Jul 07, 2026 at 05:24:28AM +0800, Pufan Jin wrote: > On Sun, Jul 05, 2026 at 03:38:00PM +0100, Conor Dooley wrote: > > On Sun, Jul 05, 2026 at 03:37:00PM +0100, Conor Dooley wrote: > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > pw-bot: not-applicable > > > > Actually no, I just noticed you're not using your real name/a known > > identity. un-acked until you sort that out. > > Apologies for the confusion. My real name is Jin Pufan. > In v2 I will change the author identity to: > > From: Pufan Jin <2254650260@qq.com> > Signed-off-by: Pufan Jin <2254650260@qq.com> > > (family name Jin, given name Pufan; using given-name-first Latin > order as is customary on the list.) The Copyright line in the > DTS will be updated to match. > > Thanks for the review, and sorry for the noise. No worries, you can retain my ack with these changes. Thanks, Conor. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board [not found] <20260705135014.1004166-1-2254650260@qq.com> @ 2026-07-05 13:50 ` LemonFan-maker 2026-07-05 13:50 ` LemonFan-maker 1 sibling, 0 replies; 19+ messages in thread From: LemonFan-maker @ 2026-07-05 13:50 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-rockchip, linux-arm-kernel, devicetree, linux-kernel The LubanCat 4 is a single board computer based on the Rockchip RK3588S SoC. Add basic device tree support for this board. Currently enabled peripherals allow the board to boot into a userspace via serial console, eMMC or SD card, with networking over the on-board Gigabit Ethernet: - UART2 debug console - RK806 SPI PMIC and RK8602/RK8603 CPU/NPU supplies - eMMC (HS400 enhanced strobe) and SD card (UHS SDR104) - GMAC1 with RGMII PHY on MDIO1 - HDMI0 output - PCIe 2.0 x1 (mini PCIe) - USB 2.0 host ports and USB 3.0 host port - HYM8563 RTC - On-board heartbeat LED and PWM fan header Signed-off-by: LemonFan-maker <2254650260@qq.com> --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../boot/dts/rockchip/rk3588s-lubancat-4.dts | 782 ++++++++++++++++++ 2 files changed, 783 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 519bb6c431ac..d9fe4cefd67e 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -222,6 +222,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-evb1-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-gameforce-ace.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-lubancat-4.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 diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts new file mode 100644 index 000000000000..f8c78df4a14b --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts @@ -0,0 +1,782 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Device tree for EmbedFire LubanCat-4 SBC. + * + * Copyright (c) 2026 LemonFan-maker <2254650260@qq.com> + */ + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include <dt-bindings/soc/rockchip,vop2.h> +#include "rk3588s.dtsi" + +/ { + model = "EmbedFire LubanCat-4"; + compatible = "embedfire,lubancat-4", "rockchip,rk3588s"; + + aliases { + ethernet0 = &gmac1; + mmc0 = &sdhci; + mmc1 = &sdmmc; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + hdmi0-con { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi0_con_in: endpoint { + remote-endpoint = <&hdmi0_out_con>; + }; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&sys_status_led_pin>; + + sys-led { + color = <LED_COLOR_ID_BLUE>; + function = LED_FUNCTION_HEARTBEAT; + gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>; + linux,default-trigger = "heartbeat"; + }; + }; + + fan: pwm-fan { + compatible = "pwm-fan"; + cooling-levels = <0 100 150 200 255>; + pwms = <&pwm0 0 5000 0>; + #cooling-cells = <2>; + }; + + vcc5v0_dcin: regulator-vcc5v0-dcin { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_dcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + vcc5v0_sys: regulator-vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_dcin>; + }; + + vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v1_nldo_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc3v3_pcie20: regulator-vcc3v3-pcie20 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie20"; + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; + startup-delay-us = <5000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc5v0_usb20_host: regulator-vcc5v0-usb20-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb20_host"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb20_host_pwr_en>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc5v0_usb30_host: regulator-vcc5v0-usb30-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb30_host"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb30_host_pwr_en>; + vin-supply = <&vcc5v0_sys>; + }; +}; + +&combphy0_ps { + status = "okay"; +}; + +&combphy2_psu { + status = "okay"; +}; + +&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>; + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ + phy-mode = "rgmii-rxid"; + pinctrl-0 = <&gmac1_miim + &gmac1_tx_bus2 + &gmac1_rx_bus2 + &gmac1_rgmii_clk + &gmac1_rgmii_bus>; + pinctrl-names = "default"; + tx_delay = <0x1b>; + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_gpu_s0>; + status = "okay"; +}; + +&hdmi0 { + pinctrl-0 = <&hdmim0_tx0_cec + &hdmim0_tx0_hpd + &hdmim0_tx0_scl + &hdmim0_tx0_sda>; + pinctrl-names = "default"; + status = "okay"; +}; + +&hdmi0_in { + hdmi0_in_vp0: endpoint { + remote-endpoint = <&vp0_out_hdmi0>; + }; +}; + +&hdmi0_out { + hdmi0_out_con: endpoint { + remote-endpoint = <&hdmi0_con_in>; + }; +}; + +&hdptxphy0 { + 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,rk8603", "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; + }; + }; + + hym8563: rtc@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; + clock-output-names = "hym8563"; + interrupt-parent = <&gpio0>; + interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&hym8563_int>; + wakeup-source; + }; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1m2_xfer>; + status = "okay"; + + vdd_npu_s0: regulator@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_npu_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&mdio1 { + rgmii_phy1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x1>; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1_phy_rst>; + reset-assert-us = <20000>; + reset-deassert-us = <100000>; + reset-gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; + }; +}; + +&pcie2x1l2 { + pinctrl-0 = <&pcie2_reset>; + pinctrl-names = "default"; + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie20>; + status = "okay"; +}; + +&pd_gpu { + domain-supply = <&vdd_gpu_s0>; +}; + +&pinctrl { + hym8563 { + hym8563_int: hym8563-int { + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + leds { + sys_status_led_pin: sys-status-led-pin { + rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + gmac1 { + gmac1_phy_rst: gmac1-phy-rst { + rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pcie { + pcie2_reset: pcie2-reset { + rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + usb20_host_pwr_en: usb20-host-pwr-en { + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + usb30_host_pwr_en: usb30-host-pwr-en { + rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pwm0 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm0m2_pins>; + status = "okay"; +}; + +&saradc { + vref-supply = <&avcc_1v8_s0>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + no-sdio; + no-sd; + non-removable; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + max-frequency = <150000000>; + no-mmc; + no-sdio; + sd-uhs-sdr104; + 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 = <&vcc_1v1_nldo_s3>; + vcc14-supply = <&vcc_1v1_nldo_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: vdd_gpu_mem_s0: dcdc-reg1 { + regulator-name = "vdd_gpu_s0"; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <12500>; + regulator-enable-ramp-delay = <400>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_lit_s0: vdd_cpu_lit_mem_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; + }; + }; + + vdd_log_s0: dcdc-reg3 { + regulator-name = "vdd_log_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <675000>; + regulator-max-microvolt = <750000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <750000>; + }; + }; + + vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 { + regulator-name = "vdd_vdenc_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; + }; + }; + + vdd_ddr_s0: dcdc-reg5 { + regulator-name = "vdd_ddr_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <675000>; + regulator-max-microvolt = <900000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <850000>; + }; + }; + + 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>; + }; + }; + + vddq_ddr_s0: dcdc-reg9 { + regulator-name = "vddq_ddr_s0"; + regulator-always-on; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v8_s3: dcdc-reg10 { + regulator-name = "vcc_1v8_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vcc_1v8_s0: pldo-reg1 { + regulator-name = "vcc_1v8_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + avcc_1v8_s0: pldo-reg2 { + regulator-name = "avcc_1v8_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + avdd_1v2_s0: pldo-reg3 { + regulator-name = "avdd_1v2_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_3v3_s0: pldo-reg4 { + 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; + }; + }; + + vccio_sd_s0: pldo-reg5 { + regulator-name = "vccio_sd_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pldo6_s3: pldo-reg6 { + regulator-name = "pldo6_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vdd_0v75_s3: nldo-reg1 { + regulator-name = "vdd_0v75_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <750000>; + }; + }; + + vdd_ddr_pll_s0: nldo-reg2 { + regulator-name = "vdd_ddr_pll_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <850000>; + }; + }; + + avdd_0v75_s0: nldo-reg3 { + regulator-name = "avdd_0v75_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_0v85_s0: nldo-reg4 { + regulator-name = "vdd_0v85_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_0v75_s0: nldo-reg5 { + regulator-name = "vdd_0v75_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + }; +}; + +&tsadc { + status = "okay"; +}; + +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + status = "okay"; +}; + +&u2phy2 { + status = "okay"; +}; + +&u2phy2_host { + phy-supply = <&vcc5v0_usb30_host>; + status = "okay"; +}; + +&u2phy3 { + status = "okay"; +}; + +&u2phy3_host { + phy-supply = <&vcc5v0_usb20_host>; + status = "okay"; +}; + +&uart2 { + pinctrl-0 = <&uart2m0_xfer>; + pinctrl-names = "default"; + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host0_xhci { + dr_mode = "host"; + status = "okay"; +}; + +&usb_host1_ehci { + status = "okay"; +}; + +&usb_host1_ohci { + status = "okay"; +}; + +&usb_host2_xhci { + status = "okay"; +}; + +&usbdp_phy0 { + status = "okay"; +}; + +&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>; + }; +}; -- 2.55.0 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-05 13:50 ` LemonFan-maker 0 siblings, 0 replies; 19+ messages in thread From: LemonFan-maker @ 2026-07-05 13:50 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-rockchip, linux-arm-kernel, devicetree, linux-kernel The LubanCat 4 is a single board computer based on the Rockchip RK3588S SoC. Add basic device tree support for this board. Currently enabled peripherals allow the board to boot into a userspace via serial console, eMMC or SD card, with networking over the on-board Gigabit Ethernet: - UART2 debug console - RK806 SPI PMIC and RK8602/RK8603 CPU/NPU supplies - eMMC (HS400 enhanced strobe) and SD card (UHS SDR104) - GMAC1 with RGMII PHY on MDIO1 - HDMI0 output - PCIe 2.0 x1 (mini PCIe) - USB 2.0 host ports and USB 3.0 host port - HYM8563 RTC - On-board heartbeat LED and PWM fan header Signed-off-by: LemonFan-maker <2254650260@qq.com> --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../boot/dts/rockchip/rk3588s-lubancat-4.dts | 782 ++++++++++++++++++ 2 files changed, 783 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 519bb6c431ac..d9fe4cefd67e 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -222,6 +222,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-evb1-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-gameforce-ace.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-lubancat-4.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 diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts new file mode 100644 index 000000000000..f8c78df4a14b --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts @@ -0,0 +1,782 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Device tree for EmbedFire LubanCat-4 SBC. + * + * Copyright (c) 2026 LemonFan-maker <2254650260@qq.com> + */ + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include <dt-bindings/soc/rockchip,vop2.h> +#include "rk3588s.dtsi" + +/ { + model = "EmbedFire LubanCat-4"; + compatible = "embedfire,lubancat-4", "rockchip,rk3588s"; + + aliases { + ethernet0 = &gmac1; + mmc0 = &sdhci; + mmc1 = &sdmmc; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + hdmi0-con { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi0_con_in: endpoint { + remote-endpoint = <&hdmi0_out_con>; + }; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&sys_status_led_pin>; + + sys-led { + color = <LED_COLOR_ID_BLUE>; + function = LED_FUNCTION_HEARTBEAT; + gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>; + linux,default-trigger = "heartbeat"; + }; + }; + + fan: pwm-fan { + compatible = "pwm-fan"; + cooling-levels = <0 100 150 200 255>; + pwms = <&pwm0 0 5000 0>; + #cooling-cells = <2>; + }; + + vcc5v0_dcin: regulator-vcc5v0-dcin { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_dcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + vcc5v0_sys: regulator-vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_dcin>; + }; + + vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v1_nldo_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc3v3_pcie20: regulator-vcc3v3-pcie20 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie20"; + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; + startup-delay-us = <5000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc5v0_usb20_host: regulator-vcc5v0-usb20-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb20_host"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb20_host_pwr_en>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc5v0_usb30_host: regulator-vcc5v0-usb30-host { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb30_host"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb30_host_pwr_en>; + vin-supply = <&vcc5v0_sys>; + }; +}; + +&combphy0_ps { + status = "okay"; +}; + +&combphy2_psu { + status = "okay"; +}; + +&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>; + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ + phy-mode = "rgmii-rxid"; + pinctrl-0 = <&gmac1_miim + &gmac1_tx_bus2 + &gmac1_rx_bus2 + &gmac1_rgmii_clk + &gmac1_rgmii_bus>; + pinctrl-names = "default"; + tx_delay = <0x1b>; + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_gpu_s0>; + status = "okay"; +}; + +&hdmi0 { + pinctrl-0 = <&hdmim0_tx0_cec + &hdmim0_tx0_hpd + &hdmim0_tx0_scl + &hdmim0_tx0_sda>; + pinctrl-names = "default"; + status = "okay"; +}; + +&hdmi0_in { + hdmi0_in_vp0: endpoint { + remote-endpoint = <&vp0_out_hdmi0>; + }; +}; + +&hdmi0_out { + hdmi0_out_con: endpoint { + remote-endpoint = <&hdmi0_con_in>; + }; +}; + +&hdptxphy0 { + 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,rk8603", "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; + }; + }; + + hym8563: rtc@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; + clock-output-names = "hym8563"; + interrupt-parent = <&gpio0>; + interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&hym8563_int>; + wakeup-source; + }; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1m2_xfer>; + status = "okay"; + + vdd_npu_s0: regulator@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_npu_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&mdio1 { + rgmii_phy1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x1>; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1_phy_rst>; + reset-assert-us = <20000>; + reset-deassert-us = <100000>; + reset-gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; + }; +}; + +&pcie2x1l2 { + pinctrl-0 = <&pcie2_reset>; + pinctrl-names = "default"; + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie20>; + status = "okay"; +}; + +&pd_gpu { + domain-supply = <&vdd_gpu_s0>; +}; + +&pinctrl { + hym8563 { + hym8563_int: hym8563-int { + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + leds { + sys_status_led_pin: sys-status-led-pin { + rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + gmac1 { + gmac1_phy_rst: gmac1-phy-rst { + rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pcie { + pcie2_reset: pcie2-reset { + rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + usb20_host_pwr_en: usb20-host-pwr-en { + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + usb30_host_pwr_en: usb30-host-pwr-en { + rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pwm0 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm0m2_pins>; + status = "okay"; +}; + +&saradc { + vref-supply = <&avcc_1v8_s0>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + no-sdio; + no-sd; + non-removable; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + max-frequency = <150000000>; + no-mmc; + no-sdio; + sd-uhs-sdr104; + 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 = <&vcc_1v1_nldo_s3>; + vcc14-supply = <&vcc_1v1_nldo_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: vdd_gpu_mem_s0: dcdc-reg1 { + regulator-name = "vdd_gpu_s0"; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <12500>; + regulator-enable-ramp-delay = <400>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_lit_s0: vdd_cpu_lit_mem_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; + }; + }; + + vdd_log_s0: dcdc-reg3 { + regulator-name = "vdd_log_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <675000>; + regulator-max-microvolt = <750000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <750000>; + }; + }; + + vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 { + regulator-name = "vdd_vdenc_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; + }; + }; + + vdd_ddr_s0: dcdc-reg5 { + regulator-name = "vdd_ddr_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <675000>; + regulator-max-microvolt = <900000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <850000>; + }; + }; + + 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>; + }; + }; + + vddq_ddr_s0: dcdc-reg9 { + regulator-name = "vddq_ddr_s0"; + regulator-always-on; + regulator-boot-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v8_s3: dcdc-reg10 { + regulator-name = "vcc_1v8_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vcc_1v8_s0: pldo-reg1 { + regulator-name = "vcc_1v8_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + avcc_1v8_s0: pldo-reg2 { + regulator-name = "avcc_1v8_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + avdd_1v2_s0: pldo-reg3 { + regulator-name = "avdd_1v2_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_3v3_s0: pldo-reg4 { + 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; + }; + }; + + vccio_sd_s0: pldo-reg5 { + regulator-name = "vccio_sd_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12500>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pldo6_s3: pldo-reg6 { + regulator-name = "pldo6_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vdd_0v75_s3: nldo-reg1 { + regulator-name = "vdd_0v75_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <750000>; + }; + }; + + vdd_ddr_pll_s0: nldo-reg2 { + regulator-name = "vdd_ddr_pll_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <850000>; + }; + }; + + avdd_0v75_s0: nldo-reg3 { + regulator-name = "avdd_0v75_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_0v85_s0: nldo-reg4 { + regulator-name = "vdd_0v85_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_0v75_s0: nldo-reg5 { + regulator-name = "vdd_0v75_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + }; +}; + +&tsadc { + status = "okay"; +}; + +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + status = "okay"; +}; + +&u2phy2 { + status = "okay"; +}; + +&u2phy2_host { + phy-supply = <&vcc5v0_usb30_host>; + status = "okay"; +}; + +&u2phy3 { + status = "okay"; +}; + +&u2phy3_host { + phy-supply = <&vcc5v0_usb20_host>; + status = "okay"; +}; + +&uart2 { + pinctrl-0 = <&uart2m0_xfer>; + pinctrl-names = "default"; + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host0_xhci { + dr_mode = "host"; + status = "okay"; +}; + +&usb_host1_ehci { + status = "okay"; +}; + +&usb_host1_ohci { + status = "okay"; +}; + +&usb_host2_xhci { + status = "okay"; +}; + +&usbdp_phy0 { + status = "okay"; +}; + +&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>; + }; +}; -- 2.55.0 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board 2026-07-05 13:50 ` LemonFan-maker (?) @ 2026-07-05 14:00 ` sashiko-bot -1 siblings, 0 replies; 19+ messages in thread From: sashiko-bot @ 2026-07-05 14:00 UTC (permalink / raw) To: LemonFan-maker; +Cc: devicetree, robh, conor+dt Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Contradiction between physical PCB RX delay and RGMII PHY mode setting, risking Gigabit Ethernet instability. -- commit a30ca0bb9560e6ed7ecdf88333f509d579374640 Author: LemonFan-maker <2254650260@qq.com> arm64: dts: rockchip: Add EmbedFire LubanCat 4 board This commit adds basic device tree support for the EmbedFire LubanCat 4, a single board computer based on the Rockchip RK3588S SoC. The enabled peripherals allow the board to boot via serial, eMMC, or SD card, and provide networking over Gigabit Ethernet. > diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts > new file mode 100644 > index 0000000000000..f8c78df4a14ba > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts [ ... ] > +&gmac1 { > + clock_in_out = "output"; > + phy-handle = <&rgmii_phy1>; > + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ > + phy-mode = "rgmii-rxid"; [Severity: Medium] Is this phy-mode setting correct given the board's physical delay? The comment states the board already provides 1.5ns of physical delay on the RX lines. However, setting phy-mode to "rgmii-rxid" explicitly instructs the PHY to add its own internal RX delay (typically ~2.0ns). A total RX delay of ~3.5ns within a 4ns RGMII data window might shift the clock edge out of the safe sampling region, which can cause packet loss or link failure at Gigabit speeds. Could you clarify if the comment about the board is outdated, or if a different phy-mode (like "rgmii" or "rgmii-txid") was intended here? > + pinctrl-0 = <&gmac1_miim > + &gmac1_tx_bus2 > + &gmac1_rx_bus2 > + &gmac1_rgmii_clk > + &gmac1_rgmii_bus>; > + pinctrl-names = "default"; > + tx_delay = <0x1b>; > + status = "okay"; > +}; [ ... ] -- Sashiko AI review · https://sashiko.dev/#/patchset/20260705135014.1004166-1-2254650260@qq.com?part=2 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board 2026-07-05 13:50 ` LemonFan-maker @ 2026-07-05 15:11 ` Andrew Lunn -1 siblings, 0 replies; 19+ messages in thread From: Andrew Lunn @ 2026-07-05 15:11 UTC (permalink / raw) To: LemonFan-maker Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel > +&gmac1 { > + clock_in_out = "output"; > + phy-handle = <&rgmii_phy1>; > + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ That is pretty unusual. How is this RX delay done? > + phy-mode = "rgmii-rxid"; > + pinctrl-0 = <&gmac1_miim > + &gmac1_tx_bus2 > + &gmac1_rx_bus2 > + &gmac1_rgmii_clk > + &gmac1_rgmii_bus>; > + pinctrl-names = "default"; > + tx_delay = <0x1b>; please take a read of: https://elixir.bootlin.com/linux/v6.15/source/Documentation/devicetree/bindings/net/ethernet-controller.yaml#L287 Ideally, you want to the PHY adding the delay, not the MAC. 99% of rockchip boards get this wrong, they have phy-mode 'rgmii', and {tx|rx}_delay properties. And i tell developers to swap to 'rgmii-id' and remove the delay properties. With the PCB adding some delays, you board is slightly different. Please drop the tx_delay and adjust the phy-mode so the PHY adds the delay. Andrew ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-05 15:11 ` Andrew Lunn 0 siblings, 0 replies; 19+ messages in thread From: Andrew Lunn @ 2026-07-05 15:11 UTC (permalink / raw) To: LemonFan-maker Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel > +&gmac1 { > + clock_in_out = "output"; > + phy-handle = <&rgmii_phy1>; > + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ That is pretty unusual. How is this RX delay done? > + phy-mode = "rgmii-rxid"; > + pinctrl-0 = <&gmac1_miim > + &gmac1_tx_bus2 > + &gmac1_rx_bus2 > + &gmac1_rgmii_clk > + &gmac1_rgmii_bus>; > + pinctrl-names = "default"; > + tx_delay = <0x1b>; please take a read of: https://elixir.bootlin.com/linux/v6.15/source/Documentation/devicetree/bindings/net/ethernet-controller.yaml#L287 Ideally, you want to the PHY adding the delay, not the MAC. 99% of rockchip boards get this wrong, they have phy-mode 'rgmii', and {tx|rx}_delay properties. And i tell developers to swap to 'rgmii-id' and remove the delay properties. With the PCB adding some delays, you board is slightly different. Please drop the tx_delay and adjust the phy-mode so the PHY adds the delay. Andrew _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board 2026-07-05 15:11 ` Andrew Lunn @ 2026-07-06 21:20 ` Pufan Jin -1 siblings, 0 replies; 19+ messages in thread From: Pufan Jin @ 2026-07-06 21:20 UTC (permalink / raw) To: Andrew Lunn Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel On Sun, Jul 05, 2026 at 05:11:58PM +0200, Andrew Lunn wrote: > > + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ > > That is pretty unusual. How is this RX delay done? You're right to question this, and I apologise -- the comment was inaccurate. I re-checked the board schematic and both TXC and RXC have ~2ns of trace delay added on the PCB (annotated as "TXC / RXC : delays 2ns" next to the RGMII bus). So neither the MAC nor the PHY should add any internal delay. > Ideally, you want to the PHY adding the delay, not the MAC. 99% of > rockchip boards get this wrong, they have phy-mode 'rgmii', and > {tx|rx}_delay properties. And i tell developers to swap to 'rgmii-id' > and remove the delay properties. > > With the PCB adding some delays, you board is slightly > different. Please drop the tx_delay and adjust the phy-mode so the PHY > adds the delay. Since the PCB already provides the required clock skew on both directions, for v2 I will switch to: phy-mode = "rgmii"; and drop both the tx_delay property and the misleading comment. I also need to correct the cover letter: the PHY on the shipping board revision (20241026) is a Realtek RTL8211F, not a JLSemi JL21xx. An earlier revision (20240221) used JL21xx, but the current hardware uses RTL8211F. The cover letter and binding commit message will be updated accordingly in v2. I will collect the remaining reviewer feedback before sending v2 and will re-test the link on hardware with the corrected phy-mode before posting. Thanks for the pointer to ethernet-controller.yaml. Pufan Jin ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-06 21:20 ` Pufan Jin 0 siblings, 0 replies; 19+ messages in thread From: Pufan Jin @ 2026-07-06 21:20 UTC (permalink / raw) To: Andrew Lunn Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel On Sun, Jul 05, 2026 at 05:11:58PM +0200, Andrew Lunn wrote: > > + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ > > That is pretty unusual. How is this RX delay done? You're right to question this, and I apologise -- the comment was inaccurate. I re-checked the board schematic and both TXC and RXC have ~2ns of trace delay added on the PCB (annotated as "TXC / RXC : delays 2ns" next to the RGMII bus). So neither the MAC nor the PHY should add any internal delay. > Ideally, you want to the PHY adding the delay, not the MAC. 99% of > rockchip boards get this wrong, they have phy-mode 'rgmii', and > {tx|rx}_delay properties. And i tell developers to swap to 'rgmii-id' > and remove the delay properties. > > With the PCB adding some delays, you board is slightly > different. Please drop the tx_delay and adjust the phy-mode so the PHY > adds the delay. Since the PCB already provides the required clock skew on both directions, for v2 I will switch to: phy-mode = "rgmii"; and drop both the tx_delay property and the misleading comment. I also need to correct the cover letter: the PHY on the shipping board revision (20241026) is a Realtek RTL8211F, not a JLSemi JL21xx. An earlier revision (20240221) used JL21xx, but the current hardware uses RTL8211F. The cover letter and binding commit message will be updated accordingly in v2. I will collect the remaining reviewer feedback before sending v2 and will re-test the link on hardware with the corrected phy-mode before posting. Thanks for the pointer to ethernet-controller.yaml. Pufan Jin _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board 2026-07-06 21:20 ` Pufan Jin @ 2026-07-06 21:34 ` Andrew Lunn -1 siblings, 0 replies; 19+ messages in thread From: Andrew Lunn @ 2026-07-06 21:34 UTC (permalink / raw) To: Pufan Jin Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel On Tue, Jul 07, 2026 at 05:20:35AM +0800, Pufan Jin wrote: > On Sun, Jul 05, 2026 at 05:11:58PM +0200, Andrew Lunn wrote: > > > + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ > > > > That is pretty unusual. How is this RX delay done? > > You're right to question this, and I apologise -- the comment was > inaccurate. I re-checked the board schematic and both TXC and RXC > have ~2ns of trace delay added on the PCB (annotated as > "TXC / RXC : delays 2ns" next to the RGMII bus). O.K. So both having delays on the PCB is what i would call "somewhat unusual", vs "pretty unusual" for a single delay. > Since the PCB already provides the required clock skew on both > directions, for v2 I will switch to: > > phy-mode = "rgmii"; > > and drop both the tx_delay property and the misleading comment. Please correct the comment. One issue we have is that many boards use "rgmii" and are broken. You have a board which uses "rgmii" and it is in fact correct. It is good to explain why it is correct, otherwise people could think it is just another broken board. Andrew _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] arm64: dts: rockchip: Add EmbedFire LubanCat 4 board @ 2026-07-06 21:34 ` Andrew Lunn 0 siblings, 0 replies; 19+ messages in thread From: Andrew Lunn @ 2026-07-06 21:34 UTC (permalink / raw) To: Pufan Jin Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-rockchip, linux-arm-kernel, devicetree, linux-kernel On Tue, Jul 07, 2026 at 05:20:35AM +0800, Pufan Jin wrote: > On Sun, Jul 05, 2026 at 05:11:58PM +0200, Andrew Lunn wrote: > > > + /* The board has 1.5ns delays on RX lines; TX delay is provided by the MAC. */ > > > > That is pretty unusual. How is this RX delay done? > > You're right to question this, and I apologise -- the comment was > inaccurate. I re-checked the board schematic and both TXC and RXC > have ~2ns of trace delay added on the PCB (annotated as > "TXC / RXC : delays 2ns" next to the RGMII bus). O.K. So both having delays on the PCB is what i would call "somewhat unusual", vs "pretty unusual" for a single delay. > Since the PCB already provides the required clock skew on both > directions, for v2 I will switch to: > > phy-mode = "rgmii"; > > and drop both the tx_delay property and the misleading comment. Please correct the comment. One issue we have is that many boards use "rgmii" and are broken. You have a board which uses "rgmii" and it is in fact correct. It is good to explain why it is correct, otherwise people could think it is just another broken board. Andrew ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2026-07-07 16:02 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260705135014.1004166-1-2254650260@qq.com>
2026-07-05 13:50 ` [PATCH 1/2] dt-bindings: arm: rockchip: Add EmbedFire LubanCat 4 board LemonFan-maker
2026-07-05 13:50 ` LemonFan-maker
2026-07-05 14:37 ` Conor Dooley
2026-07-05 14:37 ` Conor Dooley
2026-07-05 14:38 ` Conor Dooley
2026-07-05 14:38 ` Conor Dooley
2026-07-06 21:24 ` Pufan Jin
2026-07-06 21:24 ` Pufan Jin
2026-07-07 16:02 ` Conor Dooley
2026-07-07 16:02 ` Conor Dooley
2026-07-05 13:50 ` [PATCH 2/2] arm64: dts: " LemonFan-maker
2026-07-05 13:50 ` LemonFan-maker
2026-07-05 14:00 ` sashiko-bot
2026-07-05 15:11 ` Andrew Lunn
2026-07-05 15:11 ` Andrew Lunn
2026-07-06 21:20 ` Pufan Jin
2026-07-06 21:20 ` Pufan Jin
2026-07-06 21:34 ` Andrew Lunn
2026-07-06 21:34 ` Andrew Lunn
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.