From: Quentin Schulz <quentin.schulz@cherry.de>
To: John Clark <inindev@gmail.com>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>
Cc: Andrew Lunn <andrew@lunn.ch>,
devicetree@vger.kernel.org, Jonas Karlman <jonas@kwiboo.se>,
linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH RESEND v4 3/3] arm64: dts: rockchip: Add Luckfox Omni3576 Board support
Date: Mon, 12 May 2025 10:25:44 +0200 [thread overview]
Message-ID: <39ba37de-4487-4872-bcc8-eb734490ccf8@cherry.de> (raw)
In-Reply-To: <20250509122637.26674-4-inindev@gmail.com>
Hi John,
On 5/9/25 2:26 PM, John Clark wrote:
> Add device tree for the Luckfox Omni3576 Carrier Board with Core3576
> Module, powered by the Rockchip RK3576 SoC with four Cortex-A72 cores,
> four Cortex-A53 cores, and a Mali-G52 MC3 GPU. This initial
> implementation enables essential functionality for booting Linux and
> basic connectivity.
>
> Supported and tested features:
> - UART for serial console
> - SD card for storage
> - PCIe with NVMe SSD (detected, mounted, and fully functional)
> - USB 2.0 host ports
> - RK806 PMIC for power management
> - RTC with timekeeping and wake-up
> - GPIO-controlled LED with heartbeat trigger
> - eMMC (enabled, not populated on tested board)
>
> The device tree provides a foundation for further peripheral support, such
> as WiFi, MIPI-DSI, HDMI, and Ethernet, in future updates.
>
> Tested on Linux 6.15-rc4
>
> Signed-off-by: John Clark <inindev@gmail.com>
> ---
> arch/arm64/boot/dts/rockchip/Makefile | 1 +
> .../dts/rockchip/rk3576-luckfox-core3576.dtsi | 683 ++++++++++++++++++
> .../dts/rockchip/rk3576-luckfox-omni3576.dts | 53 ++
> 3 files changed, 737 insertions(+)
> create mode 100644 arch/arm64/boot/dts/rockchip/rk3576-luckfox-core3576.dtsi
> create mode 100644 arch/arm64/boot/dts/rockchip/rk3576-luckfox-omni3576.dts
>
> diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
> index 7948522cb225..22d74367b7e6 100644
> --- a/arch/arm64/boot/dts/rockchip/Makefile
> +++ b/arch/arm64/boot/dts/rockchip/Makefile
> @@ -136,6 +136,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5-display-vz.dtbo
> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5-io-expander.dtbo
> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-armsom-sige5.dtb
> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10.dtb
> +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-luckfox-omni3576.dtb
> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-roc-pc.dtb
> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-rock-4d.dtb
> dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3582-radxa-e52c.dtb
> diff --git a/arch/arm64/boot/dts/rockchip/rk3576-luckfox-core3576.dtsi b/arch/arm64/boot/dts/rockchip/rk3576-luckfox-core3576.dtsi
> new file mode 100644
> index 000000000000..9f0fa4427348
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk3576-luckfox-core3576.dtsi
> @@ -0,0 +1,683 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
> + *
Is that truly the approrpiate copyright holder?
> + */
> +
> +/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 "rk3576.dtsi"
> +
> +/ {
> + model = "Luckfox Core3576 Module";
> + compatible = "luckfox,core3576","rockchip,rk3576";
> +
> + chosen {
> + stdout-path = "serial0:1500000n8";
> + };
> +
> + hdmi-con {
> + compatible = "hdmi-connector";
> + hdmi-pwr-supply = <&vcc_5v0_hdmi>;
> + type = "a";
> +
> + port {
> + hdmi_con_in: endpoint {
> + remote-endpoint = <&hdmi_out_con>;
> + };
> + };
> + };
> +
> + vcc_5v0_dcin: regulator-vcc-5v0-dcin {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-name = "vcc_5v0_dcin";
> + };
> +
This is not ordered according to the kernel spec, c.f.
https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html#order-of-nodes
> + vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-name = "vcc_1v1_nldo_s3";
> + vin-supply = <&vcc_5v0_sys>;
> + };
> +
> + vcc_2v0_pldo_s3: regulator-vcc-2v0-pldo-s3 {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <2000000>;
> + regulator-max-microvolt = <2000000>;
> + regulator-name = "vcc_2v0_pldo_s3";
> + vin-supply = <&vcc_5v0_sys>;
> + };
> +
> + vcc_3v3_pcie: regulator-vcc-3v3-pcie {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pcie_pwr_en>;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcc_3v3_pcie";
> + startup-delay-us = <1000>;
> + vin-supply = <&vcc_5v0_sys>;
> + };
> +
> + vcc_3v3_rtc_s5: regulator-vcc-3v3-rtc-s5 {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcc_3v3_rtc_s5";
> + vin-supply = <&vcc_5v0_sys>;
> + };
> +
> + vbus_5v0_typec: regulator-vbus-5v0-typec {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&usb_otg0_pwr_en>;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-name = "vbus5v0_typec";
> + vin-supply = <&vcc_5v0_device>;
> + };
> +
This is not properly ordered.
> + vcc_5v0_device: regulator-vcc-5v0-device {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-name = "vcc_5v0_device";
> + vin-supply = <&vcc_5v0_dcin>;
> + };
> +
> + vcc_5v0_hdmi: regulator-vcc-5v0-hdmi {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&hdmi_con_en>;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-name = "vcc_5v0_hdmi";
> + vin-supply = <&vcc_5v0_sys>;
> + };
> +
> + vcc_5v0_host: regulator-vcc-5v0-host {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&usb_host_pwr_en>;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-name = "vcc_5v0_host";
> + vin-supply = <&vcc_5v0_device>;
> + };
> +
> + vcc_5v0_sys: regulator-vcc-5v0-sys {
> + compatible = "regulator-fixed";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-name = "vcc_5v0_sys";
> + vin-supply = <&vcc_5v0_dcin>;
> + };
> +};
> +
> +&combphy0_ps {
> + status = "okay";
> +};
> +
> +&combphy1_psu {
> + status = "okay";
> +};
> +
> +&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>;
> +};
> +
> +&cpu_b0 {
> + cpu-supply = <&vdd_cpu_big_s0>;
> +};
> +
> +&cpu_b1 {
> + cpu-supply = <&vdd_cpu_big_s0>;
> +};
> +
> +&cpu_b2 {
> + cpu-supply = <&vdd_cpu_big_s0>;
> +};
> +
> +&cpu_b3 {
> + cpu-supply = <&vdd_cpu_big_s0>;
> +};
> +
Alphabetically, b comes before l, so please reorder the cpu_lX and
cpu_bY nodes. c.f.
https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html#order-of-nodes
[...]
> diff --git a/arch/arm64/boot/dts/rockchip/rk3576-luckfox-omni3576.dts b/arch/arm64/boot/dts/rockchip/rk3576-luckfox-omni3576.dts
> new file mode 100644
> index 000000000000..3361b9e9a01c
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk3576-luckfox-omni3576.dts
> @@ -0,0 +1,53 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
> + *
Is this the correct copyright holder?
> + */
> +
> +/dts-v1/;
> +
> +#include "rk3576-luckfox-core3576.dtsi"
> +
> +/ {
> + model = "Luckfox Omni3576 Carrier Board";
> + compatible = "luckfox,omni3576", "luckfox,core3576", "rockchip,rk3576";
> +
> + aliases {
> + mmc0 = &sdhci;
> + mmc1 = &sdmmc;
> + };
I would have assumed this is the kind of information you want to store
in the SoM DTSI instead?
> +
> + leds: leds {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> + pinctrl-0 = <&led_green_pin>;
> +
> + green_led: green-led {
> + color = <LED_COLOR_ID_GREEN>;
> + function = LED_FUNCTION_HEARTBEAT;
> + gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "heartbeat";
> + };
> + };
> +};
> +
> +&pinctrl {
> + leds {
> + led_green_pin: led-green-pin {
> + rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +};
> +
> +&sdmmc {
> + bus-width = <4>;
> + cap-mmc-highspeed;
> + cap-sd-highspeed;
> + disable-wp;
> + max-frequency = <200000000>;
As far as I could tell, this is already the max frequency in rk3576.dtsi
so no need to define it once again?
> + no-sdio;
> + sd-uhs-sdr104;
> + vmmc-supply = <&vcc_3v3_s3>;
> + vqmmc-supply = <&vccio_sd_s0>;
If some of those are well-defined and "forced" by the HW design and pins
exposed on the connectors of the module, you could move them to the SoM
DTSI instead, to avoid having to specify them for each motherboard using
the sdmmc controller?
Cheers,
Quentin
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
prev parent reply other threads:[~2025-05-12 8:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-09 12:26 [PATCH RESEND v4 0/3] Add Luckfox Omni3576 Carrier Board support for RK3576 John Clark
2025-05-09 12:26 ` [PATCH RESEND v4 1/3] dt-bindings: vendor-prefixes: Add luckfox prefix John Clark
2025-05-12 8:12 ` Quentin Schulz
2025-05-12 9:25 ` Conor Dooley
2025-05-09 12:26 ` [PATCH RESEND v4 2/3] dt-bindings: arm: rockchip: Add Luckfox Omni3576 and Core3576 bindings John Clark
2025-05-12 8:27 ` Quentin Schulz
2025-05-14 20:01 ` Rob Herring (Arm)
2025-05-09 12:26 ` [PATCH RESEND v4 3/3] arm64: dts: rockchip: Add Luckfox Omni3576 Board support John Clark
2025-05-12 8:25 ` Quentin Schulz [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=39ba37de-4487-4872-bcc8-eb734490ccf8@cherry.de \
--to=quentin.schulz@cherry.de \
--cc=andrew@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=inindev@gmail.com \
--cc=jonas@kwiboo.se \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox