[PATCH mmc/next 3/3] arm64: dts: samsung,coreprimevelte: add SDIO

Karel Balej posted 3 patches 1 month, 1 week ago
[PATCH mmc/next 3/3] arm64: dts: samsung,coreprimevelte: add SDIO
Posted by Karel Balej 1 month, 1 week ago
Set some basic properties of the SDIO card of the samsung,coreprimevelte
smartphone.

The SDIO is used as an interface for WiFi, Bluetooth and FM radio
serviced by the Marvell 88W8777 (SD8777) chipset. Support for this
chipset is currently not in-tree because the firmware is not available
in linux-firmware, however it is possible to trivially run it
out-of-tree using the mwifiex and Marvell Bluetooth drivers with some
caveats.

Link: https://lore.kernel.org/r/20231029111807.19261-1-balejk@matfyz.cz/
Signed-off-by: Karel Balej <balejk@matfyz.cz>
---
 .../mmp/pxa1908-samsung-coreprimevelte.dts    | 146 ++++++++++++++++++
 1 file changed, 146 insertions(+)

diff --git a/arch/arm64/boot/dts/marvell/mmp/pxa1908-samsung-coreprimevelte.dts b/arch/arm64/boot/dts/marvell/mmp/pxa1908-samsung-coreprimevelte.dts
index 834b2cf1a204..53f62cbdb7e0 100644
--- a/arch/arm64/boot/dts/marvell/mmp/pxa1908-samsung-coreprimevelte.dts
+++ b/arch/arm64/boot/dts/marvell/mmp/pxa1908-samsung-coreprimevelte.dts
@@ -10,6 +10,7 @@ / {
 	aliases {
 		mmc0 = &sdh2; /* eMMC */
 		mmc1 = &sdh0; /* SD card */
+		mmc2 = &sdh1; /* SDIO */
 		serial0 = &uart0;
 	};
 
@@ -286,6 +287,142 @@ sdh0_pins_2: sdh0-pins-2 {
 		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
 		pinctrl-single,low-power-mode = <0x208 0x388>;
 	};
+
+	sdh1_pins_0: sdh1-pins-0 {
+		pinctrl-single,pins = <
+			0x170 1
+			0x174 1
+			0x178 1
+			0x17c 1
+			0x180 1>;
+		pinctrl-single,drive-strength = <0x1000 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0 0x388>;
+	};
+
+	sdh1_pins_1: sdh1-pins-1 {
+		pinctrl-single,pins = <0x184 1>;
+		pinctrl-single,drive-strength = <0 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0x208 0x388>;
+	};
+
+	sdh1_pins_2: sdh1-pins-2 {
+		pinctrl-single,pins = <0xec 0>;
+		pinctrl-single,drive-strength = <0x1000 0x1800>;
+		pinctrl-single,bias-pullup = <0x8000 0x8000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0x8000 0x8000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0 0x388>;
+	};
+
+	sdh1_fast_pins_0: sdh1-fast-pins-0 {
+		pinctrl-single,pins = <
+			0x170 1
+			0x174 1
+			0x178 1
+			0x17c 1
+			0x180 1
+		>;
+		pinctrl-single,drive-strength = <0x1800 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0 0x388>;
+	};
+
+	sdh1_fast_pins_1: sdh1-fast-pins-1 {
+		pinctrl-single,pins = <
+			0x184 1
+		>;
+		pinctrl-single,drive-strength = <0x1800 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0x208 0x388>;
+	};
+
+	sdh2_pins_0: sdh2-pins-0 {
+		pinctrl-single,pins = <
+			0x24 1
+			0x28 1
+			0x2c 1
+			0x30 1
+			0x34 1
+			0x38 1
+			0x3c 1
+			0x40 1
+		>;
+		pinctrl-single,drive-strength = <0x1000 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0 0x388>;
+	};
+
+	sdh2_pins_1: sdh2-pins-1 {
+		pinctrl-single,pins = <0x64 1>;
+		pinctrl-single,drive-strength = <0x1000 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0x208 0x388>;
+	};
+
+	sdh2_pins_2: sdh2-pins-2 {
+		pinctrl-single,pins = <0x5c 1>;
+		pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
+		pinctrl-single,low-power-mode = <0x288 0x388>;
+	};
+
+	sdh2_fast_pins_0: sdh2-fast-pins-0 {
+		pinctrl-single,pins = <
+			0x24 1
+			0x28 1
+			0x2c 1
+			0x30 1
+			0x34 1
+			0x38 1
+			0x3c 1
+			0x40 1
+		>;
+		pinctrl-single,drive-strength = <0x1800 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0 0x388>;
+	};
+
+	sdh2_fast_pins_1: sdh2-fast-pins-1 {
+		pinctrl-single,pins = <0x64 1>;
+		pinctrl-single,drive-strength = <0x1800 0x1800>;
+		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
+		pinctrl-single,input-schmitt = <0 0x30>;
+		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
+		pinctrl-single,low-power-mode = <0x208 0x388>;
+	};
+
+	sdh2_fast_pins_2: sdh2-fast-pins-2 {
+		pinctrl-single,pins = <0x5c 1>;
+		pinctrl-single,drive-strength = <0x1800 0x1800>;
+		pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
+		pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
+		pinctrl-single,low-power-mode = <0x288 0x388>;
+	};
 };
 
 &uart0 {
@@ -368,3 +505,12 @@ &sdh0 {
 	vmmc-supply = <&ldo14>;
 	vqmmc-supply = <&ldo6>;
 };
+
+&sdh1 {
+	pinctrl-names = "default", "state_uhs";
+	pinctrl-0 = <&sdh1_pins_0 &sdh1_pins_1 &sdh1_pins_2>;
+	pinctrl-1 = <&sdh1_fast_pins_0 &sdh1_fast_pins_1 &sdh1_pins_2>;
+	bus-width = <4>;
+	broken-cd;
+	non-removable;
+};
-- 
2.50.1
Re: [PATCH mmc/next 3/3] arm64: dts: samsung,coreprimevelte: add SDIO
Posted by Duje Mihanović 1 month, 1 week ago
On Sunday, 24 August 2025 12:53:45 Central European Summer Time Karel Balej 
wrote:
> @@ -368,3 +505,12 @@ &sdh0 {
>  	vmmc-supply = <&ldo14>;
>  	vqmmc-supply = <&ldo6>;
>  };
> +
> +&sdh1 {
> +	pinctrl-names = "default", "state_uhs";
> +	pinctrl-0 = <&sdh1_pins_0 &sdh1_pins_1 &sdh1_pins_2>;
> +	pinctrl-1 = <&sdh1_fast_pins_0 &sdh1_fast_pins_1 &sdh1_pins_2>;
> +	bus-width = <4>;
> +	broken-cd;
> +	non-removable;

non-removable overrides broken-cd, drop the latter.

Regards,
--
Duje
Re: [PATCH mmc/next 3/3] arm64: dts: samsung,coreprimevelte: add SDIO
Posted by Karel Balej 1 month, 1 week ago
Karel Balej, 2025-08-24T12:53:45+02:00:
> +	sdh2_pins_0: sdh2-pins-0 {
> +		pinctrl-single,pins = <
> +			0x24 1
> +			0x28 1
> +			0x2c 1
> +			0x30 1
> +			0x34 1
> +			0x38 1
> +			0x3c 1
> +			0x40 1
> +		>;
> +		pinctrl-single,drive-strength = <0x1000 0x1800>;
> +		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
> +		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
> +		pinctrl-single,input-schmitt = <0 0x30>;
> +		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
> +		pinctrl-single,low-power-mode = <0 0x388>;
> +	};
> +
> +	sdh2_pins_1: sdh2-pins-1 {
> +		pinctrl-single,pins = <0x64 1>;
> +		pinctrl-single,drive-strength = <0x1000 0x1800>;
> +		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
> +		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
> +		pinctrl-single,input-schmitt = <0 0x30>;
> +		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
> +		pinctrl-single,low-power-mode = <0x208 0x388>;
> +	};
> +
> +	sdh2_pins_2: sdh2-pins-2 {
> +		pinctrl-single,pins = <0x5c 1>;
> +		pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
> +		pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
> +		pinctrl-single,low-power-mode = <0x288 0x388>;
> +	};
> +
> +	sdh2_fast_pins_0: sdh2-fast-pins-0 {
> +		pinctrl-single,pins = <
> +			0x24 1
> +			0x28 1
> +			0x2c 1
> +			0x30 1
> +			0x34 1
> +			0x38 1
> +			0x3c 1
> +			0x40 1
> +		>;
> +		pinctrl-single,drive-strength = <0x1800 0x1800>;
> +		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
> +		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
> +		pinctrl-single,input-schmitt = <0 0x30>;
> +		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
> +		pinctrl-single,low-power-mode = <0 0x388>;
> +	};
> +
> +	sdh2_fast_pins_1: sdh2-fast-pins-1 {
> +		pinctrl-single,pins = <0x64 1>;
> +		pinctrl-single,drive-strength = <0x1800 0x1800>;
> +		pinctrl-single,bias-pullup = <0 0xc000 0 0xc000>;
> +		pinctrl-single,bias-pulldown = <0 0xa000 0 0xa000>;
> +		pinctrl-single,input-schmitt = <0 0x30>;
> +		pinctrl-single,input-schmitt-enable = <0x40 0 0x40 0x40>;
> +		pinctrl-single,low-power-mode = <0x208 0x388>;
> +	};
> +
> +	sdh2_fast_pins_2: sdh2-fast-pins-2 {
> +		pinctrl-single,pins = <0x5c 1>;
> +		pinctrl-single,drive-strength = <0x1800 0x1800>;
> +		pinctrl-single,bias-pullup = <0xc000 0xc000 0 0xc000>;
> +		pinctrl-single,bias-pulldown = <0x8000 0xa000 0x8000 0xa000>;
> +		pinctrl-single,low-power-mode = <0x288 0x388>;
> +	};

Sorry, these got mixed in by accident and should be in a separate future
patch enabling the eMMC support. I will drop them from here when I send
the next version.

K. B.