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-bal...@matfyz.cz/
Signed-off-by: Karel Balej <bal...@matfyz.cz>
---

Notes:
    v2:
    - Drop the sdh2 pinctrl configuration which was originally included by
      accident.
    - Drop broken-cd on the node as it's ignored with non-removable (thank
      you to Duje for pointing this out).

 .../mmp/pxa1908-samsung-coreprimevelte.dts    | 72 +++++++++++++++++++
 1 file changed, 72 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 0ac1a24dc410..81806f655c88 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,69 @@ 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>;
+       };
 };
 
 &uart0 {
@@ -367,3 +431,11 @@ &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>;
+       non-removable;
+};
-- 
2.51.0


Reply via email to