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/[email protected]/
Signed-off-by: Karel Balej <[email protected]>
---
 .../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


Reply via email to