All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Kropatsch <seb-dev@mail.de>
To: Heiko Stuebner <heiko@sntech.de>
Cc: linux-rockchip@lists.infradead.org, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 2/5] arm64: dts: rockchip: Fix regulators, gmac and naming on NanoPi R6C/R6S
Date: Wed, 12 Jun 2024 22:48:11 +0200	[thread overview]
Message-ID: <20240612205056.397204-3-seb-dev@mail.de> (raw)
In-Reply-To: <20240612205056.397204-1-seb-dev@mail.de>

Fix the alphabetical ordering in some nodes and rename some regulators
and pins to match the schematics [1][2] as well as to adhere to
preferred naming schemes.

In addition to that:
* vcc_3v3_sd_s0: Fix voltage to be 3.3V
* vcc3v3_pcie:
    - Move to NanoPi R6C, this power switch is not available on R6S
    - Fix vin-supply (is vcc_5v0 per schematics)
    - Add gpios/pincrtl to enable power
* vcc5v0_usb: Remove this regulator since according to the schematics,
  vcc5v0_host_20 and vcc5v0_usb_otg0 are directly powered by vcc_5v0
* gmac1: Add rx_delay of 0 (no delay since phy-mode = "rgmii-rxid")
* rgmii_phy1: Add phy-supply as seen in schematics
* pcie2*:
    - Add pinctrl reset pins
    - Update vpcie3v3-supply to match the schematics
* sdhci: Add vmmc-supply and vqmmc-supply

Links:
[1] https://wiki.friendlyelec.com/wiki/images/f/f7/NanoPi_R6C_2302_SCH.PDF
[2] https://wiki.friendlyelec.com/wiki/images/2/2f/NanoPi_R6S_2208_SCH.PDF

Fixes: f1b11f43b3e9 ("arm64: dts: rockchip: Add support for NanoPi R6S")
Signed-off-by: Sebastian Kropatsch <seb-dev@mail.de>
---

I didn't want to spam many patches with small fixes/improvements, so
this one patch includes lots of small changes. Let me know if another
method is preferred :)

---
 .../boot/dts/rockchip/rk3588s-nanopi-r6.dtsi  | 169 +++++++++---------
 .../boot/dts/rockchip/rk3588s-nanopi-r6c.dts  |  28 +++
 .../boot/dts/rockchip/rk3588s-nanopi-r6s.dts  |   5 +
 3 files changed, 122 insertions(+), 80 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
index e68d4071400e..8b90bae28302 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
@@ -21,7 +21,7 @@ chosen {
 		stdout-path = "serial2:1500000n8";
 	};
 
-	adc-keys {
+	adc-key-maskrom {
 		compatible = "adc-keys";
 		io-channels = <&saradc 0>;
 		io-channel-names = "buttons";
@@ -41,10 +41,10 @@ gpio-keys {
 		pinctrl-0 = <&key1_pin>;
 
 		button-user {
-			label = "User";
-			linux,code = <BTN_1>;
-			gpios = <&gpio1 RK_PC0 GPIO_ACTIVE_LOW>;
 			debounce-interval = <50>;
+			gpios = <&gpio1 RK_PC0 GPIO_ACTIVE_LOW>;
+			label = "User Button";
+			linux,code = <BTN_1>;
 		};
 	};
 
@@ -80,26 +80,27 @@ lan2_led: led-3 {
 		};
 	};
 
-	vcc5v0_sys: vcc5v0-sys-regulator {
+	vcc_5v0: regulator-vcc-5v0 {
 		compatible = "regulator-fixed";
-		regulator-name = "vcc5v0_sys";
 		regulator-always-on;
 		regulator-boot-on;
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
+		regulator-name = "vcc_5v0";
 	};
 
-	vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+	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>;
+		regulator-name = "vcc_1v1_nldo_s3";
+		vin-supply = <&vcc_5v0>;
 	};
 
-	vcc_3v3_s0: vcc-3v3-s0-regulator {
+	/* SY6280AAC power switch (U3824 in schematics) */
+	vcc_3v3_s0: regulator-vcc-3v3-s0 {
 		compatible = "regulator-fixed";
 		regulator-always-on;
 		regulator-boot-on;
@@ -109,61 +110,45 @@ vcc_3v3_s0: vcc-3v3-s0-regulator {
 		vin-supply = <&vcc_3v3_s3>;
 	};
 
-	vcc_3v3_sd_s0: vcc-3v3-sd-s0-regulator {
+	vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 {
 		compatible = "regulator-fixed";
 		enable-active-high;
 		gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd_s0_pwr>;
-		regulator-name = "vcc_3v3_sd_s0";
-		regulator-boot-on;
-		regulator-max-microvolt = <3000000>;
-		regulator-min-microvolt = <3000000>;
-		vin-supply = <&vcc_3v3_s3>;
-	};
-
-	vcc_3v3_pcie20: vcc3v3-pcie20-regulator {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc_3v3_pcie20";
-		regulator-always-on;
 		regulator-boot-on;
-		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
+		regulator-min-microvolt = <3300000>;
+		regulator-name = "vcc_3v3_sd_s0";
 		vin-supply = <&vcc_3v3_s3>;
 	};
 
-	vcc5v0_usb: vcc5v0-usb-regulator {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc5v0_usb";
-		regulator-always-on;
-		regulator-boot-on;
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_sys>;
-	};
-
-	vcc5v0_usb_otg0: vcc5v0-usb-otg0-regulator {
+	/* SY6280AAC power switch (U9539 in schematics) */
+	/* For USB 2.0 Type-A port */
+	vcc_5v0_host_20: regulator-vcc-5v0-host-20 {
 		compatible = "regulator-fixed";
 		enable-active-high;
-		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+		gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
-		pinctrl-0 = <&typec5v_pwren>;
-		regulator-name = "vcc5v0_usb_otg0";
+		pinctrl-0 = <&usb_host_pwren_h>;
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_usb>;
+		regulator-name = "vcc_5v0_host_20";
+		vin-supply = <&vcc_5v0>;
 	};
 
-	vcc5v0_host_20: vcc5v0-host-20-regulator {
+	/* SY6280AAC power switch (U9538 in schematics) */
+	/* For USB 3.0 Type-A port */
+	vcc5v0_usb_otg0: regulator-vcc5v0-usb-otg0 {
 		compatible = "regulator-fixed";
 		enable-active-high;
-		gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
+		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
-		pinctrl-0 = <&vcc5v0_host20_en>;
-		regulator-name = "vcc5v0_host_20";
+		pinctrl-0 = <&typec5v_pwren_h>;
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_usb>;
+		regulator-name = "vcc5v0_usb_otg0";
+		vin-supply = <&vcc_5v0>;
 	};
 };
 
@@ -211,12 +196,13 @@ &gmac1 {
 	clock_in_out = "output";
 	phy-handle = <&rgmii_phy1>;
 	phy-mode = "rgmii-rxid";
+	pinctrl-names = "default";
 	pinctrl-0 = <&gmac1_miim
 		     &gmac1_tx_bus2
 		     &gmac1_rx_bus2
 		     &gmac1_rgmii_clk
 		     &gmac1_rgmii_bus>;
-	pinctrl-names = "default";
+	rx_delay = <0x00>;
 	tx_delay = <0x42>;
 	status = "okay";
 };
@@ -230,13 +216,13 @@ 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-name = "vdd_cpu_big0_s0";
 		regulator-ramp-delay = <2300>;
-		vin-supply = <&vcc5v0_sys>;
+		vin-supply = <&vcc_5v0>;
 
 		regulator-state-mem {
 			regulator-off-in-suspend;
@@ -247,13 +233,13 @@ 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-name = "vdd_cpu_big1_s0";
 		regulator-ramp-delay = <2300>;
-		vin-supply = <&vcc5v0_sys>;
+		vin-supply = <&vcc_5v0>;
 
 		regulator-state-mem {
 			regulator-off-in-suspend;
@@ -268,13 +254,13 @@ 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-name = "vdd_npu_s0";
 		regulator-ramp-delay = <2300>;
-		regulator-boot-on;
-		regulator-always-on;
-		vin-supply = <&vcc5v0_sys>;
+		vin-supply = <&vcc_5v0>;
 
 		regulator-state-mem {
 			regulator-off-in-suspend;
@@ -293,35 +279,43 @@ hym8563: rtc@51 {
 		reg = <0x51>;
 		#clock-cells = <0>;
 		clock-output-names = "hym8563";
-		pinctrl-names = "default";
-		pinctrl-0 = <&rtc_int>;
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&rtc_int>;
 		wakeup-source;
 	};
 };
 
+/* RTL8211F-CG Ethernet */
 &mdio1 {
 	rgmii_phy1: ethernet-phy@1 {
 		compatible = "ethernet-phy-id001c.c916";
 		reg = <0x1>;
+		phy-supply = <&vcc_3v3_s0>;
 		pinctrl-names = "default";
-		pinctrl-0 = <&rtl8211f_rst>;
+		pinctrl-0 = <&gmac1_rstn_l>;
 		reset-assert-us = <20000>;
 		reset-deassert-us = <100000>;
 		reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 	};
 };
 
+/* RTL8125BG Ethernet */
 &pcie2x1l1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie20x1_1_perstn_m2>;
 	reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
-	vpcie3v3-supply = <&vcc_3v3_pcie20>;
+	vpcie3v3-supply = <&vcc_3v3_s3>;
 	status = "okay";
 };
 
+/* R6C: M.2 M-Key socket */
+/* R6S: RTL8125BG Ethernet */
 &pcie2x1l2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie20x1_2_perstn_m0>;
 	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
-	vpcie3v3-supply = <&vcc_3v3_pcie20>;
 	status = "okay";
 };
 
@@ -360,24 +354,34 @@ rtc_int: rtc-int {
 		};
 	};
 
+	pcie {
+		pcie20x1_1_perstn_m2: pcie2x1-1-rst {
+			rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		pcie20x1_2_perstn_m0: pcie2x1-2-rst {
+			rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
 	sdmmc {
-		sd_s0_pwr: sd-s0-pwr {
+		sd_s0_pwr: sd-pwr {
 			rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
 		};
 	};
 
 	usb {
-		typec5v_pwren: typec5v-pwren {
+		typec5v_pwren_h: usb3-pwren {
 			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 
-		vcc5v0_host20_en: vcc5v0-host20-en {
+		usb_host_pwren_h: usb2-pwren {
 			rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
 
 	rtl8211f {
-		rtl8211f_rst: rtl8211f-rst {
+		gmac1_rstn_l: rtl8211f-rst {
 			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
@@ -388,15 +392,19 @@ &saradc {
 	status = "okay";
 };
 
+/* eMMC */
 &sdhci {
 	bus-width = <8>;
-	no-sdio;
+	mmc-hs200-1_8v;
 	no-sd;
+	no-sdio;
 	non-removable;
-	mmc-hs200-1_8v;
+	vmmc-supply = <&vcc_3v3_s3>;
+	vqmmc-supply = <&vcc_1v8_s3>;
 	status = "okay";
 };
 
+/* microSD card */
 &sdmmc {
 	bus-width = <4>;
 	cap-sd-highspeed;
@@ -411,16 +419,15 @@ &sdmmc {
 };
 
 &spi2 {
-	status = "okay";
 	assigned-clocks = <&cru CLK_SPI2>;
 	assigned-clock-rates = <200000000>;
+	num-cs = <1>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
-	num-cs = <1>;
+	status = "okay";
 
-	pmic@0 {
+	rk806_single: pmic@0 {
 		compatible = "rockchip,rk806";
-		spi-max-frequency = <1000000>;
 		reg = <0x0>;
 
 		interrupt-parent = <&gpio0>;
@@ -430,23 +437,24 @@ pmic@0 {
 		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>;
+		vcc1-supply = <&vcc_5v0>;
+		vcc2-supply = <&vcc_5v0>;
+		vcc3-supply = <&vcc_5v0>;
+		vcc4-supply = <&vcc_5v0>;
+		vcc5-supply = <&vcc_5v0>;
+		vcc6-supply = <&vcc_5v0>;
+		vcc7-supply = <&vcc_5v0>;
+		vcc8-supply = <&vcc_5v0>;
+		vcc9-supply = <&vcc_5v0>;
+		vcc10-supply = <&vcc_5v0>;
 		vcc11-supply = <&vcc_2v0_pldo_s3>;
-		vcc12-supply = <&vcc5v0_sys>;
+		vcc12-supply = <&vcc_5v0>;
 		vcc13-supply = <&vcc_1v1_nldo_s3>;
 		vcc14-supply = <&vcc_1v1_nldo_s3>;
-		vcca-supply = <&vcc5v0_sys>;
+		vcca-supply = <&vcc_5v0>;
 
 		gpio-controller;
 		#gpio-cells = <2>;
@@ -745,10 +753,11 @@ &u2phy2 {
 };
 
 &u2phy2_host {
-	phy-supply = <&vcc5v0_host_20>;
+	phy-supply = <&vcc_5v0_host_20>;
 	status = "okay";
 };
 
+/* Debug UART */
 &uart2 {
 	pinctrl-0 = <&uart2m0_xfer>;
 	status = "okay";
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
index ccc5e4627517..24dcd3e07ea7 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
@@ -7,8 +7,36 @@
 / {
 	model = "FriendlyElec NanoPi R6C";
 	compatible = "friendlyarm,nanopi-r6c", "rockchip,rk3588s";
+
+	/* MP2143DJ power switch (U9536 in schematics) */
+	vcc3v3_pcie: regulator-vcc3v3-pcie {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pcie20x1_2_con_pwren>;
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-name = "vcc3v3_pcie";
+		vin-supply = <&vcc_5v0>;
+	};
 };
 
 &lan2_led {
 	label = "user_led";
 };
+
+/* M.2 M-Key socket */
+&pcie2x1l2 {
+	vpcie3v3-supply = <&vcc3v3_pcie>;
+};
+
+&pinctrl {
+	pcie {
+		pcie20x1_2_con_pwren: pcie20x1-2-con-pwren {
+			rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
index 9c3e0b0daaac..d24110b6cf5d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
@@ -12,3 +12,8 @@ / {
 &lan2_led {
 	label = "lan2_led";
 };
+
+/* RTL8125BG Ethernet */
+&pcie2x1l2 {
+	vpcie3v3-supply = <&vcc_3v3_s3>;
+};
-- 
2.43.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Kropatsch <seb-dev@mail.de>
To: Heiko Stuebner <heiko@sntech.de>
Cc: linux-rockchip@lists.infradead.org, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 2/5] arm64: dts: rockchip: Fix regulators, gmac and naming on NanoPi R6C/R6S
Date: Wed, 12 Jun 2024 22:48:11 +0200	[thread overview]
Message-ID: <20240612205056.397204-3-seb-dev@mail.de> (raw)
In-Reply-To: <20240612205056.397204-1-seb-dev@mail.de>

Fix the alphabetical ordering in some nodes and rename some regulators
and pins to match the schematics [1][2] as well as to adhere to
preferred naming schemes.

In addition to that:
* vcc_3v3_sd_s0: Fix voltage to be 3.3V
* vcc3v3_pcie:
    - Move to NanoPi R6C, this power switch is not available on R6S
    - Fix vin-supply (is vcc_5v0 per schematics)
    - Add gpios/pincrtl to enable power
* vcc5v0_usb: Remove this regulator since according to the schematics,
  vcc5v0_host_20 and vcc5v0_usb_otg0 are directly powered by vcc_5v0
* gmac1: Add rx_delay of 0 (no delay since phy-mode = "rgmii-rxid")
* rgmii_phy1: Add phy-supply as seen in schematics
* pcie2*:
    - Add pinctrl reset pins
    - Update vpcie3v3-supply to match the schematics
* sdhci: Add vmmc-supply and vqmmc-supply

Links:
[1] https://wiki.friendlyelec.com/wiki/images/f/f7/NanoPi_R6C_2302_SCH.PDF
[2] https://wiki.friendlyelec.com/wiki/images/2/2f/NanoPi_R6S_2208_SCH.PDF

Fixes: f1b11f43b3e9 ("arm64: dts: rockchip: Add support for NanoPi R6S")
Signed-off-by: Sebastian Kropatsch <seb-dev@mail.de>
---

I didn't want to spam many patches with small fixes/improvements, so
this one patch includes lots of small changes. Let me know if another
method is preferred :)

---
 .../boot/dts/rockchip/rk3588s-nanopi-r6.dtsi  | 169 +++++++++---------
 .../boot/dts/rockchip/rk3588s-nanopi-r6c.dts  |  28 +++
 .../boot/dts/rockchip/rk3588s-nanopi-r6s.dts  |   5 +
 3 files changed, 122 insertions(+), 80 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
index e68d4071400e..8b90bae28302 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
@@ -21,7 +21,7 @@ chosen {
 		stdout-path = "serial2:1500000n8";
 	};
 
-	adc-keys {
+	adc-key-maskrom {
 		compatible = "adc-keys";
 		io-channels = <&saradc 0>;
 		io-channel-names = "buttons";
@@ -41,10 +41,10 @@ gpio-keys {
 		pinctrl-0 = <&key1_pin>;
 
 		button-user {
-			label = "User";
-			linux,code = <BTN_1>;
-			gpios = <&gpio1 RK_PC0 GPIO_ACTIVE_LOW>;
 			debounce-interval = <50>;
+			gpios = <&gpio1 RK_PC0 GPIO_ACTIVE_LOW>;
+			label = "User Button";
+			linux,code = <BTN_1>;
 		};
 	};
 
@@ -80,26 +80,27 @@ lan2_led: led-3 {
 		};
 	};
 
-	vcc5v0_sys: vcc5v0-sys-regulator {
+	vcc_5v0: regulator-vcc-5v0 {
 		compatible = "regulator-fixed";
-		regulator-name = "vcc5v0_sys";
 		regulator-always-on;
 		regulator-boot-on;
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
+		regulator-name = "vcc_5v0";
 	};
 
-	vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+	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>;
+		regulator-name = "vcc_1v1_nldo_s3";
+		vin-supply = <&vcc_5v0>;
 	};
 
-	vcc_3v3_s0: vcc-3v3-s0-regulator {
+	/* SY6280AAC power switch (U3824 in schematics) */
+	vcc_3v3_s0: regulator-vcc-3v3-s0 {
 		compatible = "regulator-fixed";
 		regulator-always-on;
 		regulator-boot-on;
@@ -109,61 +110,45 @@ vcc_3v3_s0: vcc-3v3-s0-regulator {
 		vin-supply = <&vcc_3v3_s3>;
 	};
 
-	vcc_3v3_sd_s0: vcc-3v3-sd-s0-regulator {
+	vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 {
 		compatible = "regulator-fixed";
 		enable-active-high;
 		gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&sd_s0_pwr>;
-		regulator-name = "vcc_3v3_sd_s0";
-		regulator-boot-on;
-		regulator-max-microvolt = <3000000>;
-		regulator-min-microvolt = <3000000>;
-		vin-supply = <&vcc_3v3_s3>;
-	};
-
-	vcc_3v3_pcie20: vcc3v3-pcie20-regulator {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc_3v3_pcie20";
-		regulator-always-on;
 		regulator-boot-on;
-		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
+		regulator-min-microvolt = <3300000>;
+		regulator-name = "vcc_3v3_sd_s0";
 		vin-supply = <&vcc_3v3_s3>;
 	};
 
-	vcc5v0_usb: vcc5v0-usb-regulator {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc5v0_usb";
-		regulator-always-on;
-		regulator-boot-on;
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_sys>;
-	};
-
-	vcc5v0_usb_otg0: vcc5v0-usb-otg0-regulator {
+	/* SY6280AAC power switch (U9539 in schematics) */
+	/* For USB 2.0 Type-A port */
+	vcc_5v0_host_20: regulator-vcc-5v0-host-20 {
 		compatible = "regulator-fixed";
 		enable-active-high;
-		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+		gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
-		pinctrl-0 = <&typec5v_pwren>;
-		regulator-name = "vcc5v0_usb_otg0";
+		pinctrl-0 = <&usb_host_pwren_h>;
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_usb>;
+		regulator-name = "vcc_5v0_host_20";
+		vin-supply = <&vcc_5v0>;
 	};
 
-	vcc5v0_host_20: vcc5v0-host-20-regulator {
+	/* SY6280AAC power switch (U9538 in schematics) */
+	/* For USB 3.0 Type-A port */
+	vcc5v0_usb_otg0: regulator-vcc5v0-usb-otg0 {
 		compatible = "regulator-fixed";
 		enable-active-high;
-		gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
+		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
-		pinctrl-0 = <&vcc5v0_host20_en>;
-		regulator-name = "vcc5v0_host_20";
+		pinctrl-0 = <&typec5v_pwren_h>;
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_usb>;
+		regulator-name = "vcc5v0_usb_otg0";
+		vin-supply = <&vcc_5v0>;
 	};
 };
 
@@ -211,12 +196,13 @@ &gmac1 {
 	clock_in_out = "output";
 	phy-handle = <&rgmii_phy1>;
 	phy-mode = "rgmii-rxid";
+	pinctrl-names = "default";
 	pinctrl-0 = <&gmac1_miim
 		     &gmac1_tx_bus2
 		     &gmac1_rx_bus2
 		     &gmac1_rgmii_clk
 		     &gmac1_rgmii_bus>;
-	pinctrl-names = "default";
+	rx_delay = <0x00>;
 	tx_delay = <0x42>;
 	status = "okay";
 };
@@ -230,13 +216,13 @@ 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-name = "vdd_cpu_big0_s0";
 		regulator-ramp-delay = <2300>;
-		vin-supply = <&vcc5v0_sys>;
+		vin-supply = <&vcc_5v0>;
 
 		regulator-state-mem {
 			regulator-off-in-suspend;
@@ -247,13 +233,13 @@ 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-name = "vdd_cpu_big1_s0";
 		regulator-ramp-delay = <2300>;
-		vin-supply = <&vcc5v0_sys>;
+		vin-supply = <&vcc_5v0>;
 
 		regulator-state-mem {
 			regulator-off-in-suspend;
@@ -268,13 +254,13 @@ 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-name = "vdd_npu_s0";
 		regulator-ramp-delay = <2300>;
-		regulator-boot-on;
-		regulator-always-on;
-		vin-supply = <&vcc5v0_sys>;
+		vin-supply = <&vcc_5v0>;
 
 		regulator-state-mem {
 			regulator-off-in-suspend;
@@ -293,35 +279,43 @@ hym8563: rtc@51 {
 		reg = <0x51>;
 		#clock-cells = <0>;
 		clock-output-names = "hym8563";
-		pinctrl-names = "default";
-		pinctrl-0 = <&rtc_int>;
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&rtc_int>;
 		wakeup-source;
 	};
 };
 
+/* RTL8211F-CG Ethernet */
 &mdio1 {
 	rgmii_phy1: ethernet-phy@1 {
 		compatible = "ethernet-phy-id001c.c916";
 		reg = <0x1>;
+		phy-supply = <&vcc_3v3_s0>;
 		pinctrl-names = "default";
-		pinctrl-0 = <&rtl8211f_rst>;
+		pinctrl-0 = <&gmac1_rstn_l>;
 		reset-assert-us = <20000>;
 		reset-deassert-us = <100000>;
 		reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
 	};
 };
 
+/* RTL8125BG Ethernet */
 &pcie2x1l1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie20x1_1_perstn_m2>;
 	reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
-	vpcie3v3-supply = <&vcc_3v3_pcie20>;
+	vpcie3v3-supply = <&vcc_3v3_s3>;
 	status = "okay";
 };
 
+/* R6C: M.2 M-Key socket */
+/* R6S: RTL8125BG Ethernet */
 &pcie2x1l2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie20x1_2_perstn_m0>;
 	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
-	vpcie3v3-supply = <&vcc_3v3_pcie20>;
 	status = "okay";
 };
 
@@ -360,24 +354,34 @@ rtc_int: rtc-int {
 		};
 	};
 
+	pcie {
+		pcie20x1_1_perstn_m2: pcie2x1-1-rst {
+			rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		pcie20x1_2_perstn_m0: pcie2x1-2-rst {
+			rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
 	sdmmc {
-		sd_s0_pwr: sd-s0-pwr {
+		sd_s0_pwr: sd-pwr {
 			rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
 		};
 	};
 
 	usb {
-		typec5v_pwren: typec5v-pwren {
+		typec5v_pwren_h: usb3-pwren {
 			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 
-		vcc5v0_host20_en: vcc5v0-host20-en {
+		usb_host_pwren_h: usb2-pwren {
 			rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
 
 	rtl8211f {
-		rtl8211f_rst: rtl8211f-rst {
+		gmac1_rstn_l: rtl8211f-rst {
 			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
@@ -388,15 +392,19 @@ &saradc {
 	status = "okay";
 };
 
+/* eMMC */
 &sdhci {
 	bus-width = <8>;
-	no-sdio;
+	mmc-hs200-1_8v;
 	no-sd;
+	no-sdio;
 	non-removable;
-	mmc-hs200-1_8v;
+	vmmc-supply = <&vcc_3v3_s3>;
+	vqmmc-supply = <&vcc_1v8_s3>;
 	status = "okay";
 };
 
+/* microSD card */
 &sdmmc {
 	bus-width = <4>;
 	cap-sd-highspeed;
@@ -411,16 +419,15 @@ &sdmmc {
 };
 
 &spi2 {
-	status = "okay";
 	assigned-clocks = <&cru CLK_SPI2>;
 	assigned-clock-rates = <200000000>;
+	num-cs = <1>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
-	num-cs = <1>;
+	status = "okay";
 
-	pmic@0 {
+	rk806_single: pmic@0 {
 		compatible = "rockchip,rk806";
-		spi-max-frequency = <1000000>;
 		reg = <0x0>;
 
 		interrupt-parent = <&gpio0>;
@@ -430,23 +437,24 @@ pmic@0 {
 		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>;
+		vcc1-supply = <&vcc_5v0>;
+		vcc2-supply = <&vcc_5v0>;
+		vcc3-supply = <&vcc_5v0>;
+		vcc4-supply = <&vcc_5v0>;
+		vcc5-supply = <&vcc_5v0>;
+		vcc6-supply = <&vcc_5v0>;
+		vcc7-supply = <&vcc_5v0>;
+		vcc8-supply = <&vcc_5v0>;
+		vcc9-supply = <&vcc_5v0>;
+		vcc10-supply = <&vcc_5v0>;
 		vcc11-supply = <&vcc_2v0_pldo_s3>;
-		vcc12-supply = <&vcc5v0_sys>;
+		vcc12-supply = <&vcc_5v0>;
 		vcc13-supply = <&vcc_1v1_nldo_s3>;
 		vcc14-supply = <&vcc_1v1_nldo_s3>;
-		vcca-supply = <&vcc5v0_sys>;
+		vcca-supply = <&vcc_5v0>;
 
 		gpio-controller;
 		#gpio-cells = <2>;
@@ -745,10 +753,11 @@ &u2phy2 {
 };
 
 &u2phy2_host {
-	phy-supply = <&vcc5v0_host_20>;
+	phy-supply = <&vcc_5v0_host_20>;
 	status = "okay";
 };
 
+/* Debug UART */
 &uart2 {
 	pinctrl-0 = <&uart2m0_xfer>;
 	status = "okay";
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
index ccc5e4627517..24dcd3e07ea7 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
@@ -7,8 +7,36 @@
 / {
 	model = "FriendlyElec NanoPi R6C";
 	compatible = "friendlyarm,nanopi-r6c", "rockchip,rk3588s";
+
+	/* MP2143DJ power switch (U9536 in schematics) */
+	vcc3v3_pcie: regulator-vcc3v3-pcie {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pcie20x1_2_con_pwren>;
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-name = "vcc3v3_pcie";
+		vin-supply = <&vcc_5v0>;
+	};
 };
 
 &lan2_led {
 	label = "user_led";
 };
+
+/* M.2 M-Key socket */
+&pcie2x1l2 {
+	vpcie3v3-supply = <&vcc3v3_pcie>;
+};
+
+&pinctrl {
+	pcie {
+		pcie20x1_2_con_pwren: pcie20x1-2-con-pwren {
+			rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
index 9c3e0b0daaac..d24110b6cf5d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
@@ -12,3 +12,8 @@ / {
 &lan2_led {
 	label = "lan2_led";
 };
+
+/* RTL8125BG Ethernet */
+&pcie2x1l2 {
+	vpcie3v3-supply = <&vcc_3v3_s3>;
+};
-- 
2.43.0



  parent reply	other threads:[~2024-06-12 20:54 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-12 20:48 [PATCH 0/5] Refactor, fix and improve NanoPi R6 series Sebastian Kropatsch
2024-06-12 20:48 ` Sebastian Kropatsch
2024-06-12 20:48 ` [PATCH 1/5] arm64: dts: rockchip: Add common definitions for NanoPi R6C and R6S Sebastian Kropatsch
2024-06-12 20:48   ` Sebastian Kropatsch
2024-06-20 18:34   ` Heiko Stübner
2024-06-20 18:34     ` Heiko Stübner
2024-06-12 20:48 ` Sebastian Kropatsch [this message]
2024-06-12 20:48   ` [PATCH 2/5] arm64: dts: rockchip: Fix regulators, gmac and naming on NanoPi R6C/R6S Sebastian Kropatsch
2024-06-20 18:39   ` Heiko Stübner
2024-06-20 18:39     ` Heiko Stübner
2024-06-20 21:48     ` Sebastian Kropatsch
2024-06-20 21:48       ` Sebastian Kropatsch
2024-06-12 20:48 ` [PATCH 3/5] arm64: dts: rockchip: Improve LEDs " Sebastian Kropatsch
2024-06-12 20:48   ` Sebastian Kropatsch
2024-06-14 15:10   ` kernel test robot
2024-06-14 15:10     ` kernel test robot
2024-06-20 18:42   ` Heiko Stübner
2024-06-20 18:42     ` Heiko Stübner
2024-06-20 21:51     ` Sebastian Kropatsch
2024-06-20 21:51       ` Sebastian Kropatsch
2024-06-12 20:48 ` [PATCH 4/5] arm64: dts: rockchip: Enable lower USB3 port " Sebastian Kropatsch
2024-06-12 20:48   ` Sebastian Kropatsch
2024-06-12 20:48 ` [PATCH 5/5] arm64: dts: rockchip: Enable GPU " Sebastian Kropatsch
2024-06-12 20:48   ` Sebastian Kropatsch
2024-06-13 17:27 ` [PATCH 0/5] Refactor, fix and improve NanoPi R6 series Rob Herring (Arm)
2024-06-13 17:27   ` Rob Herring (Arm)

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=20240612205056.397204-3-seb-dev@mail.de \
    --to=seb-dev@mail.de \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=heiko@sntech.de \
    --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 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.