]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
ARM: dts: Add WiFi module support for Peach boards
authorJavier Martinez Canillas <javier.martinez@collabora.co.uk>
Thu, 26 Feb 2015 21:08:51 +0000 (06:08 +0900)
committerKukjin Kim <kgene@kernel.org>
Thu, 26 Feb 2015 21:08:51 +0000 (06:08 +0900)
Peach Pit and Pi boards have a WiFi module that is always powered
but needs toggling an enable pin and ungating a 32kHz reference
clock as part of their power sequencing.

Add a dev node for the SDIO slot and a MMC power sequence provider.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
arch/arm/boot/dts/exynos5420-peach-pit.dts
arch/arm/boot/dts/exynos5800-peach-pi.dts

index c4db5aed8a8ca030827473ce717cb3c57aa6bd9e..80db9137abdd120c9b016ef3b831c8e29b466ba9 100644 (file)
                        };
                };
        };
+
+       mmc1_pwrseq: mmc1_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
+               clocks = <&max77802 MAX77802_CLK_32K_CP>;
+               clock-names = "ext_clock";
+       };
 };
 
 &adc {
        bus-width = <8>;
 };
 
+&mmc_1 {
+       status = "okay";
+       num-slots = <1>;
+       broken-cd;
+       cap-sdio-irq;
+       card-detect-delay = <200>;
+       clock-frequency = <400000000>;
+       samsung,dw-mshc-ciu-div = <1>;
+       samsung,dw-mshc-sdr-timing = <0 1>;
+       samsung,dw-mshc-ddr-timing = <0 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
+                   <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       mmc-pwrseq = <&mmc1_pwrseq>;
+       vqmmc-supply = <&buck10_reg>;
+};
+
 &mmc_2 {
        status = "okay";
        num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&mask_tpm_reset>;
 
+       wifi_en: wifi-en {
+               samsung,pins = "gpx0-0";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
        max98090_irq: max98090-irq {
                samsung,pins = "gpx0-2";
                samsung,pin-function = <0>;
        };
 };
 
+&pinctrl_1 {
+       /* Adjust WiFi drive strengths lower for EMI */
+       sd1_clk: sd1-clk {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_cmd: sd1-cmd {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_bus1: sd1-bus-width1 {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_bus4: sd1-bus-width4 {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_bus8: sd1-bus-width8 {
+               samsung,pin-drv = <2>;
+       };
+};
+
 &pinctrl_2 {
        pmic_dvs_2: pmic-dvs-2 {
                samsung,pins = "gpj4-2";
index ca73fb2d2da50fb66601700d50e8d53a58ced198..9db2b5927821feb69e28e120b20c51917ab5ae3b 100644 (file)
                power-supply = <&tps65090_fet6>;
                backlight = <&backlight>;
        };
+
+       mmc1_pwrseq: mmc1_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
+               clocks = <&max77802 MAX77802_CLK_32K_CP>;
+               clock-names = "ext_clock";
+       };
 };
 
 &adc {
        bus-width = <8>;
 };
 
+&mmc_1 {
+       status = "okay";
+       num-slots = <1>;
+       broken-cd;
+       cap-sdio-irq;
+       card-detect-delay = <200>;
+       clock-frequency = <400000000>;
+       samsung,dw-mshc-ciu-div = <1>;
+       samsung,dw-mshc-sdr-timing = <0 1>;
+       samsung,dw-mshc-ddr-timing = <0 2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
+                   <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       mmc-pwrseq = <&mmc1_pwrseq>;
+       vqmmc-supply = <&buck10_reg>;
+};
+
 &mmc_2 {
        status = "okay";
        num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&mask_tpm_reset>;
 
+       wifi_en: wifi-en {
+               samsung,pins = "gpx0-0";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
        max98091_irq: max98091-irq {
                samsung,pins = "gpx0-2";
                samsung,pin-function = <0>;
        };
 };
 
+&pinctrl_1 {
+       /* Adjust WiFi drive strengths lower for EMI */
+       sd1_clk: sd1-clk {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_cmd: sd1-cmd {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_bus1: sd1-bus-width1 {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_bus4: sd1-bus-width4 {
+               samsung,pin-drv = <2>;
+       };
+
+       sd1_bus8: sd1-bus-width8 {
+               samsung,pin-drv = <2>;
+       };
+};
+
 &pinctrl_2 {
        pmic_dvs_2: pmic-dvs-2 {
                samsung,pins = "gpj4-2";