]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: samsung,coreprimevelte: add SDIO
authorKarel Balej <balejk@matfyz.cz>
Thu, 28 Aug 2025 09:49:04 +0000 (11:49 +0200)
committerDuje Mihanović <duje@dujemihanovic.xyz>
Mon, 13 Oct 2025 10:11:37 +0000 (12:11 +0200)
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>
Reviewed-by: Duje Mihanović <duje@dujemihanovic.xyz>
[Duje: fix formatting of pins_0 and fast_pins_1 pin arrays]
Signed-off-by: Duje Mihanović <duje@dujemihanovic.xyz>
arch/arm64/boot/dts/marvell/mmp/pxa1908-samsung-coreprimevelte.dts

index 0ac1a24dc410e183594f1c2e55360ebd9347ca07..fadc34c1339871e148a9860d24bf8ee1f8120108 100644 (file)
@@ -10,6 +10,7 @@
        aliases {
                mmc0 = &sdh2; /* eMMC */
                mmc1 = &sdh0; /* SD card */
+               mmc2 = &sdh1; /* SDIO */
                serial0 = &uart0;
        };
 
                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>;
+       };
 };
 
 &uart0 {
        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>;
+       non-removable;
+};