devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] RG35XX Add Additional Hardware Support
@ 2024-10-18 16:06 Chris Morgan
  2024-10-18 16:06 ` [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX Chris Morgan
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Chris Morgan @ 2024-10-18 16:06 UTC (permalink / raw)
  To: linux-sunxi
  Cc: devicetree, samuel, jernej.skrabec, wens, conor+dt, krzk+dt, robh,
	Chris Morgan

From: Chris Morgan <macromorgan@hotmail.com>

Add support for MMC2 and the second LED on the RG35XX series.
Additionally, enable the CPUSLDO regulator to be "always on" to resolve
bootloader issues during reboot, and add support for the USB host port
on the RG35XX-H.

Chris Morgan (4):
  arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX
  arm64: dts: allwinner: h700: Set cpusldo to always-on for RG35XX
  arm64: dts: allwinner: h700: Add LED1 for Anbernic RG35XX
  arm64: dts: allwinner: h700: Add USB Host for RG35XX-H

 .../sun50i-h700-anbernic-rg35xx-2024.dts      | 44 +++++++++++++++++--
 .../sun50i-h700-anbernic-rg35xx-h.dts         | 23 ++++++++++
 2 files changed, 64 insertions(+), 3 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX
  2024-10-18 16:06 [PATCH 0/4] RG35XX Add Additional Hardware Support Chris Morgan
@ 2024-10-18 16:06 ` Chris Morgan
  2025-02-22 10:44   ` Jernej Škrabec
  2024-10-18 16:06 ` [PATCH 2/4] arm64: dts: allwinner: h700: Set cpusldo to always-on for RG35XX Chris Morgan
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Chris Morgan @ 2024-10-18 16:06 UTC (permalink / raw)
  To: linux-sunxi
  Cc: devicetree, samuel, jernej.skrabec, wens, conor+dt, krzk+dt, robh,
	Chris Morgan

From: Chris Morgan <macromorgan@hotmail.com>

Add support for the second MMC slot on the Anbernic RG35XX series.
The second MMC card is connected to MMC2 (WiFi if present is MMC1).
The MMC logic is powered by cldo3 via the power domain to which
it is connected, and also has an external 3.3v GPIO controlled
regulator required for functionality.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
---
 .../sun50i-h700-anbernic-rg35xx-2024.dts      | 27 +++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
index 80ccab7b5ba7..e2039fd76b3d 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
@@ -18,6 +18,9 @@ / {
 	compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
 
 	aliases {
+		mmc0 = &mmc0;
+		mmc1 = &mmc2;
+		mmc2 = &mmc1;
 		serial0 = &uart0;
 	};
 
@@ -175,6 +178,15 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
 	};
+
+	reg_vcc3v3_mmc2: regulator-vcc3v3-mmc2 {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpio = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-name = "vcc3v3-mmc2";
+	};
 };
 
 &cpu0 {
@@ -186,10 +198,21 @@ &ehci0 {
 };
 
 &mmc0 {
-	vmmc-supply = <&reg_cldo3>;
-	disable-wp;
+	bus-width = <4>;
 	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
+	disable-wp;
+	no-1-8-v;
+	vmmc-supply = <&reg_cldo3>;
+	status = "okay";
+};
+
+&mmc2 {
 	bus-width = <4>;
+	cd-gpios = <&pio 4 22 GPIO_ACTIVE_LOW>; /* PE22 */
+	disable-wp;
+	no-1-8-v;
+	vmmc-supply = <&reg_vcc3v3_mmc2>;
+	vqmmc-supply = <&reg_cldo3>;
 	status = "okay";
 };
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/4] arm64: dts: allwinner: h700: Set cpusldo to always-on for RG35XX
  2024-10-18 16:06 [PATCH 0/4] RG35XX Add Additional Hardware Support Chris Morgan
  2024-10-18 16:06 ` [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX Chris Morgan
@ 2024-10-18 16:06 ` Chris Morgan
  2025-02-22 10:46   ` Jernej Škrabec
  2024-10-18 16:06 ` [PATCH 3/4] arm64: dts: allwinner: h700: Add LED1 for Anbernic RG35XX Chris Morgan
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Chris Morgan @ 2024-10-18 16:06 UTC (permalink / raw)
  To: linux-sunxi
  Cc: devicetree, samuel, jernej.skrabec, wens, conor+dt, krzk+dt, robh,
	Chris Morgan

From: Chris Morgan <macromorgan@hotmail.com>

Set the cpusldo regulator for the AXP717 to "regulator-always-on". Its
current functionality is still unknown as there are no schematics
available, however it was observed that upon reboot if this regulator
was disabled GPIO detection logic in the bootloader was inconsistent.
Keep the regulator powered on for now until it can be defined
correctly.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
---
 .../allwinner/sun50i-h700-anbernic-rg35xx-2024.dts    | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
index e2039fd76b3d..2896d51cec7d 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
@@ -342,8 +342,17 @@ reg_boost: boost {
 				regulator-name = "boost";
 			};
 
+			/*
+			 * Regulator function is unknown, but reading
+			 * GPIO values in bootloader is inconsistent
+			 * on reboot if this is disabled. Setting to
+			 * default value from regulator OTP mem.
+			 */
 			reg_cpusldo: cpusldo {
-				/* unused */
+				regulator-always-on;
+				regulator-boot-on;
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
 			};
 		};
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/4] arm64: dts: allwinner: h700: Add LED1 for Anbernic RG35XX
  2024-10-18 16:06 [PATCH 0/4] RG35XX Add Additional Hardware Support Chris Morgan
  2024-10-18 16:06 ` [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX Chris Morgan
  2024-10-18 16:06 ` [PATCH 2/4] arm64: dts: allwinner: h700: Set cpusldo to always-on for RG35XX Chris Morgan
@ 2024-10-18 16:06 ` Chris Morgan
  2025-02-22 10:47   ` Jernej Škrabec
  2024-10-18 16:06 ` [PATCH 4/4] arm64: dts: allwinner: h700: Add USB Host for RG35XX-H Chris Morgan
  2025-02-22 13:25 ` (subset) [PATCH 0/4] RG35XX Add Additional Hardware Support Chen-Yu Tsai
  4 siblings, 1 reply; 13+ messages in thread
From: Chris Morgan @ 2024-10-18 16:06 UTC (permalink / raw)
  To: linux-sunxi
  Cc: devicetree, samuel, jernej.skrabec, wens, conor+dt, krzk+dt, robh,
	Chris Morgan

From: Chris Morgan <macromorgan@hotmail.com>

Add the second LED (red) to the Anbernic RG35XX series. The RG35XX has
3 LEDs: an orange one that is controlled directly by the PMIC; and a
green and red one that are controlled by GPIOs.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
---
 .../boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
index 2896d51cec7d..ba554c019e88 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
@@ -170,6 +170,12 @@ led-0 {
 			gpios = <&pio 8 12 GPIO_ACTIVE_HIGH>; /* PI12 */
 			default-state = "on";
 		};
+
+		led-1 {
+			function = LED_FUNCTION_STATUS;
+			color = <LED_COLOR_ID_GREEN>;
+			gpios = <&pio 8 11 GPIO_ACTIVE_HIGH>; /* PI11 */
+		};
 	};
 
 	reg_vcc5v: regulator-vcc5v { /* USB-C power input */
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/4] arm64: dts: allwinner: h700: Add USB Host for RG35XX-H
  2024-10-18 16:06 [PATCH 0/4] RG35XX Add Additional Hardware Support Chris Morgan
                   ` (2 preceding siblings ...)
  2024-10-18 16:06 ` [PATCH 3/4] arm64: dts: allwinner: h700: Add LED1 for Anbernic RG35XX Chris Morgan
@ 2024-10-18 16:06 ` Chris Morgan
  2025-02-22 10:48   ` Jernej Škrabec
  2025-02-22 13:25 ` (subset) [PATCH 0/4] RG35XX Add Additional Hardware Support Chen-Yu Tsai
  4 siblings, 1 reply; 13+ messages in thread
From: Chris Morgan @ 2024-10-18 16:06 UTC (permalink / raw)
  To: linux-sunxi
  Cc: devicetree, samuel, jernej.skrabec, wens, conor+dt, krzk+dt, robh,
	Chris Morgan

From: Chris Morgan <macromorgan@hotmail.com>

The RG35XX-H has a USB host port in addition to the USB OTG port used
for charging. The host port receives its power from two distinct GPIO
controlled regulators.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
---
 .../sun50i-h700-anbernic-rg35xx-h.dts         | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts
index ff453336eab1..e6dc29a38dd6 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts
@@ -71,6 +71,25 @@ gpio_mux: mux-controller {
 			    <&pio 8 2 GPIO_ACTIVE_LOW>;
 		#mux-control-cells = <0>;
 	};
+
+	reg_vcc3v8_usb: regulator-vcc3v8-usb {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpio = <&pio 4 5 GPIO_ACTIVE_HIGH>; /* PE5 */
+		regulator-min-microvolt = <3800000>;
+		regulator-max-microvolt = <3800000>;
+		regulator-name = "vcc3v8-usb";
+	};
+
+	reg_vcc5v0_usb: regulator-vcc5v0-usb {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpio = <&pio 8 7 GPIO_ACTIVE_HIGH>; /* PI7 */
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-name = "vcc5v0-usb";
+		vin-supply = <&reg_vcc3v8_usb>;
+	};
 };
 
 &gpadc {
@@ -113,3 +132,7 @@ joy_mux_pin: joy-mux-pin {
 		function = "gpio_out";
 	};
 };
+
+&usbphy {
+	usb1_vbus-supply = <&reg_vcc5v0_usb>;
+};
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX
  2024-10-18 16:06 ` [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX Chris Morgan
@ 2025-02-22 10:44   ` Jernej Škrabec
  2025-02-24 18:17     ` Chris Morgan
  0 siblings, 1 reply; 13+ messages in thread
From: Jernej Škrabec @ 2025-02-22 10:44 UTC (permalink / raw)
  To: linux-sunxi, Chris Morgan
  Cc: devicetree, samuel, wens, conor+dt, krzk+dt, robh, Chris Morgan

Hi Chris,

sorry it took so long.

Dne petek, 18. oktober 2024 ob 18:06:14 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> From: Chris Morgan <macromorgan@hotmail.com>
> 
> Add support for the second MMC slot on the Anbernic RG35XX series.
> The second MMC card is connected to MMC2 (WiFi if present is MMC1).
> The MMC logic is powered by cldo3 via the power domain to which
> it is connected, and also has an external 3.3v GPIO controlled
> regulator required for functionality.
> 
> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> ---
>  .../sun50i-h700-anbernic-rg35xx-2024.dts      | 27 +++++++++++++++++--
>  1 file changed, 25 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> index 80ccab7b5ba7..e2039fd76b3d 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> @@ -18,6 +18,9 @@ / {
>  	compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
>  
>  	aliases {
> +		mmc0 = &mmc0;
> +		mmc1 = &mmc2;
> +		mmc2 = &mmc1;

Please drop those. As a rule, we don't have it in any DT, since there are more
universal to identify root partition than a relying on device order.

>  		serial0 = &uart0;
>  	};
>  
> @@ -175,6 +178,15 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */
>  		regulator-min-microvolt = <5000000>;
>  		regulator-max-microvolt = <5000000>;
>  	};
> +
> +	reg_vcc3v3_mmc2: regulator-vcc3v3-mmc2 {
> +		compatible = "regulator-fixed";
> +		enable-active-high;
> +		gpio = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-name = "vcc3v3-mmc2";
> +	};
>  };
>  
>  &cpu0 {
> @@ -186,10 +198,21 @@ &ehci0 {
>  };
>  
>  &mmc0 {
> -	vmmc-supply = <&reg_cldo3>;
> -	disable-wp;
> +	bus-width = <4>;
>  	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
> +	disable-wp;
> +	no-1-8-v;

Please leave properties in same order to minimize patch size. From
what I can see, only above property is added, which is not needed anyway.

> +	vmmc-supply = <&reg_cldo3>;
> +	status = "okay";
> +};
> +
> +&mmc2 {
>  	bus-width = <4>;
> +	cd-gpios = <&pio 4 22 GPIO_ACTIVE_LOW>; /* PE22 */
> +	disable-wp;
> +	no-1-8-v;
> +	vmmc-supply = <&reg_vcc3v3_mmc2>;
> +	vqmmc-supply = <&reg_cldo3>;

Is this another SD card slot or eMMC? You configured it as it would be SD card,
but mmc2 slots are usually used for eMMC, which needs different configuration.

Best regards,
Jernej

>  	status = "okay";
>  };
>  
> 





^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 2/4] arm64: dts: allwinner: h700: Set cpusldo to always-on for RG35XX
  2024-10-18 16:06 ` [PATCH 2/4] arm64: dts: allwinner: h700: Set cpusldo to always-on for RG35XX Chris Morgan
@ 2025-02-22 10:46   ` Jernej Škrabec
  0 siblings, 0 replies; 13+ messages in thread
From: Jernej Škrabec @ 2025-02-22 10:46 UTC (permalink / raw)
  To: linux-sunxi, Chris Morgan
  Cc: devicetree, samuel, wens, conor+dt, krzk+dt, robh, Chris Morgan

Dne petek, 18. oktober 2024 ob 18:06:15 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> From: Chris Morgan <macromorgan@hotmail.com>
> 
> Set the cpusldo regulator for the AXP717 to "regulator-always-on". Its
> current functionality is still unknown as there are no schematics
> available, however it was observed that upon reboot if this regulator
> was disabled GPIO detection logic in the bootloader was inconsistent.
> Keep the regulator powered on for now until it can be defined
> correctly.
> 
> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 3/4] arm64: dts: allwinner: h700: Add LED1 for Anbernic RG35XX
  2024-10-18 16:06 ` [PATCH 3/4] arm64: dts: allwinner: h700: Add LED1 for Anbernic RG35XX Chris Morgan
@ 2025-02-22 10:47   ` Jernej Škrabec
  0 siblings, 0 replies; 13+ messages in thread
From: Jernej Škrabec @ 2025-02-22 10:47 UTC (permalink / raw)
  To: linux-sunxi, Chris Morgan
  Cc: devicetree, samuel, wens, conor+dt, krzk+dt, robh, Chris Morgan

Dne petek, 18. oktober 2024 ob 18:06:16 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> From: Chris Morgan <macromorgan@hotmail.com>
> 
> Add the second LED (red) to the Anbernic RG35XX series. The RG35XX has
> 3 LEDs: an orange one that is controlled directly by the PMIC; and a
> green and red one that are controlled by GPIOs.
> 
> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 4/4] arm64: dts: allwinner: h700: Add USB Host for RG35XX-H
  2024-10-18 16:06 ` [PATCH 4/4] arm64: dts: allwinner: h700: Add USB Host for RG35XX-H Chris Morgan
@ 2025-02-22 10:48   ` Jernej Škrabec
  0 siblings, 0 replies; 13+ messages in thread
From: Jernej Škrabec @ 2025-02-22 10:48 UTC (permalink / raw)
  To: linux-sunxi, Chris Morgan
  Cc: devicetree, samuel, wens, conor+dt, krzk+dt, robh, Chris Morgan

Dne petek, 18. oktober 2024 ob 18:06:17 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> From: Chris Morgan <macromorgan@hotmail.com>
> 
> The RG35XX-H has a USB host port in addition to the USB OTG port used
> for charging. The host port receives its power from two distinct GPIO
> controlled regulators.
> 
> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: (subset) [PATCH 0/4] RG35XX Add Additional Hardware Support
  2024-10-18 16:06 [PATCH 0/4] RG35XX Add Additional Hardware Support Chris Morgan
                   ` (3 preceding siblings ...)
  2024-10-18 16:06 ` [PATCH 4/4] arm64: dts: allwinner: h700: Add USB Host for RG35XX-H Chris Morgan
@ 2025-02-22 13:25 ` Chen-Yu Tsai
  4 siblings, 0 replies; 13+ messages in thread
From: Chen-Yu Tsai @ 2025-02-22 13:25 UTC (permalink / raw)
  To: linux-sunxi, Chris Morgan
  Cc: devicetree, samuel, jernej.skrabec, conor+dt, krzk+dt, robh,
	Chris Morgan

On Fri, 18 Oct 2024 11:06:13 -0500, Chris Morgan wrote:
> From: Chris Morgan <macromorgan@hotmail.com>
> 
> Add support for MMC2 and the second LED on the RG35XX series.
> Additionally, enable the CPUSLDO regulator to be "always on" to resolve
> bootloader issues during reboot, and add support for the USB host port
> on the RG35XX-H.
> 
> [...]

Applied to dt-for-6.15 in git@github.com:linux-sunxi/linux-sunxi.git, thanks!

[4/4] arm64: dts: allwinner: h700: Add USB Host for RG35XX-H
      commit: 81009e49ddc8a1e27d414dbf9ff1837d1753b257

Best regards,
-- 
Chen-Yu Tsai <wens@csie.org>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX
  2025-02-22 10:44   ` Jernej Škrabec
@ 2025-02-24 18:17     ` Chris Morgan
  2025-02-25 16:13       ` Jernej Škrabec
  2025-02-25 16:54       ` Andre Przywara
  0 siblings, 2 replies; 13+ messages in thread
From: Chris Morgan @ 2025-02-24 18:17 UTC (permalink / raw)
  To: Jernej Škrabec
  Cc: linux-sunxi, Chris Morgan, devicetree, samuel, wens, conor+dt,
	krzk+dt, robh

On Sat, Feb 22, 2025 at 11:44:39AM +0100, Jernej Škrabec wrote:
> Hi Chris,
> 
> sorry it took so long.
> 
> Dne petek, 18. oktober 2024 ob 18:06:14 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> > From: Chris Morgan <macromorgan@hotmail.com>
> > 
> > Add support for the second MMC slot on the Anbernic RG35XX series.
> > The second MMC card is connected to MMC2 (WiFi if present is MMC1).
> > The MMC logic is powered by cldo3 via the power domain to which
> > it is connected, and also has an external 3.3v GPIO controlled
> > regulator required for functionality.
> > 
> > Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> > ---
> >  .../sun50i-h700-anbernic-rg35xx-2024.dts      | 27 +++++++++++++++++--
> >  1 file changed, 25 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > index 80ccab7b5ba7..e2039fd76b3d 100644
> > --- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > @@ -18,6 +18,9 @@ / {
> >  	compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
> >  
> >  	aliases {
> > +		mmc0 = &mmc0;
> > +		mmc1 = &mmc2;
> > +		mmc2 = &mmc1;
> 
> Please drop those. As a rule, we don't have it in any DT, since there are more
> universal to identify root partition than a relying on device order.

Would it be okay at least to keep the mmc2 alias mapped to physical
device mmc1? Confusingly enough, this device is such that mmc0 is the
first mmc card, mmc1 is the SDIO wifi card (not always present depending
on device), and mmc2 is the second mmc card. That way the WiFi at least
when present is always predictably at the mmc2 alias. 

> 
> >  		serial0 = &uart0;
> >  	};
> >  
> > @@ -175,6 +178,15 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */
> >  		regulator-min-microvolt = <5000000>;
> >  		regulator-max-microvolt = <5000000>;
> >  	};
> > +
> > +	reg_vcc3v3_mmc2: regulator-vcc3v3-mmc2 {
> > +		compatible = "regulator-fixed";
> > +		enable-active-high;
> > +		gpio = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */
> > +		regulator-min-microvolt = <3300000>;
> > +		regulator-max-microvolt = <3300000>;
> > +		regulator-name = "vcc3v3-mmc2";
> > +	};
> >  };
> >  
> >  &cpu0 {
> > @@ -186,10 +198,21 @@ &ehci0 {
> >  };
> >  
> >  &mmc0 {
> > -	vmmc-supply = <&reg_cldo3>;
> > -	disable-wp;
> > +	bus-width = <4>;
> >  	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
> > +	disable-wp;
> > +	no-1-8-v;
> 
> Please leave properties in same order to minimize patch size. From
> what I can see, only above property is added, which is not needed anyway.
> 

Acknowledged. I just figured I'd alphabetize them, but you're right
it's a bit anal.

> > +	vmmc-supply = <&reg_cldo3>;
> > +	status = "okay";
> > +};
> > +
> > +&mmc2 {
> >  	bus-width = <4>;
> > +	cd-gpios = <&pio 4 22 GPIO_ACTIVE_LOW>; /* PE22 */
> > +	disable-wp;
> > +	no-1-8-v;
> > +	vmmc-supply = <&reg_vcc3v3_mmc2>;
> > +	vqmmc-supply = <&reg_cldo3>;
> 
> Is this another SD card slot or eMMC? You configured it as it would be SD card,
> but mmc2 slots are usually used for eMMC, which needs different configuration.
> 

Physical bus mmc0 is the TF1 slot, physical bus mmc2 is the TF2 slot,
and physical bus mmc1 is the SDIO wifi card (which is present on most
but not all devices in the 35xx series).

> Best regards,
> Jernej
> 
> >  	status = "okay";
> >  };
> >  
> > 
> 
> 
> 
> 

Please let me know about setting alias mmc2, thank you.
Chris

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX
  2025-02-24 18:17     ` Chris Morgan
@ 2025-02-25 16:13       ` Jernej Škrabec
  2025-02-25 16:54       ` Andre Przywara
  1 sibling, 0 replies; 13+ messages in thread
From: Jernej Škrabec @ 2025-02-25 16:13 UTC (permalink / raw)
  To: Chris Morgan
  Cc: linux-sunxi, Chris Morgan, devicetree, samuel, wens, conor+dt,
	krzk+dt, robh

Dne ponedeljek, 24. februar 2025 ob 19:17:42 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> On Sat, Feb 22, 2025 at 11:44:39AM +0100, Jernej Škrabec wrote:
> > Hi Chris,
> > 
> > sorry it took so long.
> > 
> > Dne petek, 18. oktober 2024 ob 18:06:14 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> > > From: Chris Morgan <macromorgan@hotmail.com>
> > > 
> > > Add support for the second MMC slot on the Anbernic RG35XX series.
> > > The second MMC card is connected to MMC2 (WiFi if present is MMC1).
> > > The MMC logic is powered by cldo3 via the power domain to which
> > > it is connected, and also has an external 3.3v GPIO controlled
> > > regulator required for functionality.
> > > 
> > > Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> > > ---
> > >  .../sun50i-h700-anbernic-rg35xx-2024.dts      | 27 +++++++++++++++++--
> > >  1 file changed, 25 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > > index 80ccab7b5ba7..e2039fd76b3d 100644
> > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > > @@ -18,6 +18,9 @@ / {
> > >  	compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
> > >  
> > >  	aliases {
> > > +		mmc0 = &mmc0;
> > > +		mmc1 = &mmc2;
> > > +		mmc2 = &mmc1;
> > 
> > Please drop those. As a rule, we don't have it in any DT, since there are more
> > universal to identify root partition than a relying on device order.
> 
> Would it be okay at least to keep the mmc2 alias mapped to physical
> device mmc1? Confusingly enough, this device is such that mmc0 is the
> first mmc card, mmc1 is the SDIO wifi card (not always present depending
> on device), and mmc2 is the second mmc card. That way the WiFi at least
> when present is always predictably at the mmc2 alias.

This is standard for all Allwinner SoCs:

mmc0 -> SD card
mmc1 -> SDIO, more or less only wifi modules
mmc2 -> eMMC or SD card

Such ordering is due to mmc controller capabilities. And no, no exceptions
for labels.

> 
> 
> > 
> > >  		serial0 = &uart0;
> > >  	};
> > >  
> > > @@ -175,6 +178,15 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */
> > >  		regulator-min-microvolt = <5000000>;
> > >  		regulator-max-microvolt = <5000000>;
> > >  	};
> > > +
> > > +	reg_vcc3v3_mmc2: regulator-vcc3v3-mmc2 {
> > > +		compatible = "regulator-fixed";
> > > +		enable-active-high;
> > > +		gpio = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */
> > > +		regulator-min-microvolt = <3300000>;
> > > +		regulator-max-microvolt = <3300000>;
> > > +		regulator-name = "vcc3v3-mmc2";
> > > +	};
> > >  };
> > >  
> > >  &cpu0 {
> > > @@ -186,10 +198,21 @@ &ehci0 {
> > >  };
> > >  
> > >  &mmc0 {
> > > -	vmmc-supply = <&reg_cldo3>;
> > > -	disable-wp;
> > > +	bus-width = <4>;
> > >  	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
> > > +	disable-wp;
> > > +	no-1-8-v;
> > 
> > Please leave properties in same order to minimize patch size. From
> > what I can see, only above property is added, which is not needed anyway.
> > 
> 
> Acknowledged. I just figured I'd alphabetize them, but you're right
> it's a bit anal.
> 
> > > +	vmmc-supply = <&reg_cldo3>;
> > > +	status = "okay";
> > > +};
> > > +
> > > +&mmc2 {
> > >  	bus-width = <4>;
> > > +	cd-gpios = <&pio 4 22 GPIO_ACTIVE_LOW>; /* PE22 */
> > > +	disable-wp;
> > > +	no-1-8-v;
> > > +	vmmc-supply = <&reg_vcc3v3_mmc2>;
> > > +	vqmmc-supply = <&reg_cldo3>;
> > 
> > Is this another SD card slot or eMMC? You configured it as it would be SD card,
> > but mmc2 slots are usually used for eMMC, which needs different configuration.
> > 
> 
> Physical bus mmc0 is the TF1 slot, physical bus mmc2 is the TF2 slot,
> and physical bus mmc1 is the SDIO wifi card (which is present on most
> but not all devices in the 35xx series).

Interesting, 2 SD card slots and no eMMC. That's a first for me.

Best regards,
Jernej
 
> > >  	status = "okay";
> > >  };
> > >  
> > > 
> > 
> > 
> > 
> > 
> 
> Please let me know about setting alias mmc2, thank you.
> Chris
> 





^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX
  2025-02-24 18:17     ` Chris Morgan
  2025-02-25 16:13       ` Jernej Škrabec
@ 2025-02-25 16:54       ` Andre Przywara
  1 sibling, 0 replies; 13+ messages in thread
From: Andre Przywara @ 2025-02-25 16:54 UTC (permalink / raw)
  To: Chris Morgan
  Cc: Jernej Škrabec, linux-sunxi, Chris Morgan, devicetree,
	samuel, wens, conor+dt, krzk+dt, robh

On Mon, 24 Feb 2025 12:17:42 -0600
Chris Morgan <macromorgan@hotmail.com> wrote:

> On Sat, Feb 22, 2025 at 11:44:39AM +0100, Jernej Škrabec wrote:
> > Hi Chris,
> >
> > sorry it took so long.
> >
> > Dne petek, 18. oktober 2024 ob 18:06:14 Srednjeevropski standardni čas je Chris Morgan napisal(a):
> > > From: Chris Morgan <macromorgan@hotmail.com>
> > >
> > > Add support for the second MMC slot on the Anbernic RG35XX series.
> > > The second MMC card is connected to MMC2 (WiFi if present is MMC1).
> > > The MMC logic is powered by cldo3 via the power domain to which
> > > it is connected, and also has an external 3.3v GPIO controlled
> > > regulator required for functionality.
> > >
> > > Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> > > ---
> > >  .../sun50i-h700-anbernic-rg35xx-2024.dts      | 27 +++++++++++++++++--
> > >  1 file changed, 25 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > > index 80ccab7b5ba7..e2039fd76b3d 100644
> > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > > @@ -18,6 +18,9 @@ / {
> > >   compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
> > >
> > >   aliases {
> > > +         mmc0 = &mmc0;
> > > +         mmc1 = &mmc2;
> > > +         mmc2 = &mmc1;
> >
> > Please drop those. As a rule, we don't have it in any DT, since there are more
> > universal to identify root partition than a relying on device order.
>
> Would it be okay at least to keep the mmc2 alias mapped to physical
> device mmc1?
> Confusingly enough, this device is such that mmc0 is the
> first mmc card, mmc1 is the SDIO wifi card (not always present depending
> on device), and mmc2 is the second mmc card.

As Jernej mentioned, this is due to subtle hardware limitations in the
Allwinner SoC. I think SDIO and/or the SDIO IRQs only work on MMC1, and
MMC2 is typically the only one with 8 data lines.
So this order is actually expected.

> That way the WiFi at least
> when present is always predictably at the mmc2 alias.

Why would you want that, exactly? I do understand the desire to have fixed
names for the storage devices, but for the WiFi? Doesn't the networking
device get named independently from the MMC device number?

And, FYI: if you really want the aliases, just pull this DT into U-Boot,
and use U-Boot's DT copy when booting the kernel, as U-Boot's build system
adds those MMC aliases automatically (since it's somewhat required for U-Boot's own operation):

> >
> > >           serial0 = &uart0;
> > >   };
> > >
> > > @@ -175,6 +178,15 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */
> > >           regulator-min-microvolt = <5000000>;
> > >           regulator-max-microvolt = <5000000>;
> > >   };
> > > +
> > > + reg_vcc3v3_mmc2: regulator-vcc3v3-mmc2 {
> > > +         compatible = "regulator-fixed";
> > > +         enable-active-high;
> > > +         gpio = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */
> > > +         regulator-min-microvolt = <3300000>;
> > > +         regulator-max-microvolt = <3300000>;
> > > +         regulator-name = "vcc3v3-mmc2";
> > > + };
> > >  };
> > >
> > >  &cpu0 {
> > > @@ -186,10 +198,21 @@ &ehci0 {
> > >  };
> > >
> > >  &mmc0 {
> > > - vmmc-supply = <&reg_cldo3>;
> > > - disable-wp;
> > > + bus-width = <4>;
> > >   cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
> > > + disable-wp;
> > > + no-1-8-v;
> >
> > Please leave properties in same order to minimize patch size. From
> > what I can see, only above property is added, which is not needed anyway.
> >
>
> Acknowledged. I just figured I'd alphabetize them, but you're right
> it's a bit anal.
>
> > > + vmmc-supply = <&reg_cldo3>;
> > > + status = "okay";
> > > +};
> > > +
> > > +&mmc2 {
> > >   bus-width = <4>;
> > > + cd-gpios = <&pio 4 22 GPIO_ACTIVE_LOW>; /* PE22 */
> > > + disable-wp;
> > > + no-1-8-v;
> > > + vmmc-supply = <&reg_vcc3v3_mmc2>;
> > > + vqmmc-supply = <&reg_cldo3>;
> >
> > Is this another SD card slot or eMMC? You configured it as it would be SD card,
> > but mmc2 slots are usually used for eMMC, which needs different configuration.
> >
>
> Physical bus mmc0 is the TF1 slot, physical bus mmc2 is the TF2 slot,
> and physical bus mmc1 is the SDIO wifi card (which is present on most
> but not all devices in the 35xx series).
>
> > Best regards,
> > Jernej
> >
> > >   status = "okay";
> > >  };
> > >
> > >
> >
> >
> >
> >
>
> Please let me know about setting alias mmc2, thank you.
> Chris
>

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-02-25 16:54 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-18 16:06 [PATCH 0/4] RG35XX Add Additional Hardware Support Chris Morgan
2024-10-18 16:06 ` [PATCH 1/4] arm64: dts: allwinner: h700: Add MMC2 for Anbernic RG35XX Chris Morgan
2025-02-22 10:44   ` Jernej Škrabec
2025-02-24 18:17     ` Chris Morgan
2025-02-25 16:13       ` Jernej Škrabec
2025-02-25 16:54       ` Andre Przywara
2024-10-18 16:06 ` [PATCH 2/4] arm64: dts: allwinner: h700: Set cpusldo to always-on for RG35XX Chris Morgan
2025-02-22 10:46   ` Jernej Škrabec
2024-10-18 16:06 ` [PATCH 3/4] arm64: dts: allwinner: h700: Add LED1 for Anbernic RG35XX Chris Morgan
2025-02-22 10:47   ` Jernej Škrabec
2024-10-18 16:06 ` [PATCH 4/4] arm64: dts: allwinner: h700: Add USB Host for RG35XX-H Chris Morgan
2025-02-22 10:48   ` Jernej Škrabec
2025-02-22 13:25 ` (subset) [PATCH 0/4] RG35XX Add Additional Hardware Support Chen-Yu Tsai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).