ARM: dts: ifc6410: Add pwrseq support for WLAN
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / qcom-apq8064-ifc6410.dts
1 #include "qcom-apq8064-v2.0.dtsi"
2 #include <dt-bindings/gpio/gpio.h>
3 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
4
5 / {
6         model = "Qualcomm APQ8064/IFC6410";
7         compatible = "qcom,apq8064-ifc6410", "qcom,apq8064";
8
9         aliases {
10                 serial0 = &gsbi7_serial;
11                 serial1 = &gsbi6_serial;
12         };
13
14         chosen {
15                 stdout-path = "serial0:115200n8";
16         };
17
18         pwrseq {
19                 compatible = "simple-bus";
20
21                 sdcc4_pwrseq: sdcc4_pwrseq {
22                         pinctrl-names = "default";
23                         pinctrl-0 = <&wlan_default_gpios>;
24                         compatible = "mmc-pwrseq-simple";
25                         reset-gpios = <&pm8921_gpio 43 GPIO_ACTIVE_LOW>;
26                 };
27         };
28
29         soc {
30                 pinctrl@800000 {
31                         card_detect: card_detect {
32                                 mux {
33                                         pins = "gpio26";
34                                         function = "gpio";
35                                         bias-disable;
36                                 };
37                         };
38                 };
39
40                 rpm@108000 {
41                         regulators {
42                                 vin_lvs1_3_6-supply = <&pm8921_s4>;
43                                 vin_lvs2-supply = <&pm8921_s1>;
44                                 vin_lvs4_5_7-supply = <&pm8921_s4>;
45
46                                 vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
47                                 vdd_l24-supply = <&pm8921_s1>;
48                                 vdd_l25-supply = <&pm8921_s1>;
49                                 vdd_l26-supply = <&pm8921_s7>;
50                                 vdd_l27-supply = <&pm8921_s7>;
51                                 vdd_l28-supply = <&pm8921_s7>;
52
53
54                                 /* Buck SMPS */
55                                 pm8921_s1: s1 {
56                                         regulator-always-on;
57                                         regulator-min-microvolt = <1225000>;
58                                         regulator-max-microvolt = <1225000>;
59                                         qcom,switch-mode-frequency = <3200000>;
60                                         bias-pull-down;
61                                 };
62
63                                 pm8921_s3: s3 {
64                                         regulator-min-microvolt = <1000000>;
65                                         regulator-max-microvolt = <1400000>;
66                                         qcom,switch-mode-frequency = <4800000>;
67                                 };
68
69                                 pm8921_s4: s4 {
70                                         regulator-min-microvolt = <1800000>;
71                                         regulator-max-microvolt = <1800000>;
72                                         qcom,switch-mode-frequency = <3200000>;
73                                 };
74
75                                 pm8921_s7: s7 {
76                                         regulator-min-microvolt = <1300000>;
77                                         regulator-max-microvolt = <1300000>;
78                                         qcom,switch-mode-frequency = <3200000>;
79                                 };
80
81                                 pm8921_l3: l3 {
82                                         regulator-min-microvolt = <3050000>;
83                                         regulator-max-microvolt = <3300000>;
84                                         bias-pull-down;
85                                 };
86
87                                 pm8921_l4: l4 {
88                                         regulator-min-microvolt = <1000000>;
89                                         regulator-max-microvolt = <1800000>;
90                                         bias-pull-down;
91                                 };
92
93                                 pm8921_l5: l5 {
94                                         regulator-min-microvolt = <2750000>;
95                                         regulator-max-microvolt = <3000000>;
96                                         bias-pull-down;
97                                 };
98
99                                 pm8921_l6: l6 {
100                                         regulator-min-microvolt = <2950000>;
101                                         regulator-max-microvolt = <2950000>;
102                                         bias-pull-down;
103                                 };
104
105                                 pm8921_l23: l23 {
106                                         regulator-min-microvolt = <1700000>;
107                                         regulator-max-microvolt = <1900000>;
108                                         bias-pull-down;
109                                 };
110
111                                 pm8921_lvs1: lvs1 {
112                                         bias-pull-down;
113                                 };
114                         };
115                 };
116
117                 ext_3p3v: regulator-fixed@1 {
118                         compatible = "regulator-fixed";
119                         regulator-min-microvolt = <3300000>;
120                         regulator-max-microvolt = <3300000>;
121                         regulator-name = "ext_3p3v";
122                         regulator-type = "voltage";
123                         startup-delay-us = <0>;
124                         gpio = <&tlmm_pinmux 77 GPIO_ACTIVE_HIGH>;
125                         enable-active-high;
126                         regulator-boot-on;
127                 };
128
129                 gsbi3: gsbi@16200000 {
130                         status = "okay";
131                         qcom,mode = <GSBI_PROT_I2C>;
132                         i2c3: i2c@16280000 {
133                                 status = "okay";
134                         };
135                 };
136
137                 gsbi@12440000 {
138                         status = "okay";
139                         qcom,mode = <GSBI_PROT_I2C>;
140
141                         i2c@12460000 {
142                                 status = "okay";
143                                 clock-frequency = <200000>;
144
145                                 eeprom@52 {
146                                         compatible = "atmel,24c128";
147                                         reg = <0x52>;
148                                         pagesize = <32>;
149                                 };
150                         };
151                 };
152
153                 gsbi@16500000 {
154                         status = "ok";
155                         qcom,mode = <GSBI_PROT_I2C_UART>;
156
157                         serial@16540000 {
158                                 status = "ok";
159                                 pinctrl-names = "default";
160                                 pinctrl-0 = <&gsbi6_uart_4pins>;
161                         };
162                 };
163
164                 gsbi@16600000 {
165                         status = "ok";
166                         qcom,mode = <GSBI_PROT_I2C_UART>;
167                         serial@16640000 {
168                                 status = "ok";
169                                 pinctrl-names = "default";
170                                 pinctrl-0 = <&gsbi7_uart_2pins>;
171                         };
172                 };
173
174                 sata_phy0: phy@1b400000 {
175                         status = "okay";
176                 };
177
178                 sata0: sata@29000000 {
179                         status          = "okay";
180                         target-supply   = <&pm8921_s4>;
181                 };
182
183                 /* OTG */
184                 usb1_phy: phy@12500000 {
185                         status          = "okay";
186                         vddcx-supply    = <&pm8921_s3>;
187                         v3p3-supply     = <&pm8921_l3>;
188                         v1p8-supply     = <&pm8921_l4>;
189                 };
190
191                 usb3_phy: phy@12520000 {
192                         status          = "okay";
193                         vddcx-supply    = <&pm8921_s3>;
194                         v3p3-supply     = <&pm8921_l3>;
195                         v1p8-supply     = <&pm8921_l23>;
196                 };
197
198                 usb4_phy: phy@12530000 {
199                         status          = "okay";
200                         vddcx-supply    = <&pm8921_s3>;
201                         v3p3-supply     = <&pm8921_l3>;
202                         v1p8-supply     = <&pm8921_l23>;
203                 };
204
205                 gadget1: gadget@12500000 {
206                         status = "okay";
207                 };
208
209                 /* OTG */
210                 usb1: usb@12500000 {
211                         status = "okay";
212                 };
213
214                 usb3: usb@12520000 {
215                         status = "okay";
216                 };
217
218                 usb4: usb@12530000 {
219                         status = "okay";
220                 };
221
222                 qcom,ssbi@500000 {
223                         pmic@0 {
224                                 gpio@150 {
225                                         wlan_default_gpios: wlan-gpios {
226                                                 pios {
227                                                         pins = "gpio43";
228                                                         function = "normal";
229                                                         bias-disable;
230                                                         power-source = <PM8921_GPIO_S4>;
231                                                 };
232                                         };
233                                 };
234                         };
235                 };
236
237                 amba {
238                         /* eMMC */
239                         sdcc1: sdcc@12400000 {
240                                 status = "okay";
241                                 vmmc-supply = <&pm8921_l5>;
242                                 vqmmc-supply = <&pm8921_s4>;
243                         };
244
245                         /* External micro SD card */
246                         sdcc3: sdcc@12180000 {
247                                 status = "okay";
248                                 vmmc-supply = <&pm8921_l6>;
249                                 pinctrl-names   = "default";
250                                 pinctrl-0       = <&card_detect>;
251                                 cd-gpios        = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
252                         };
253                         /* WLAN */
254                         sdcc4: sdcc@121c0000 {
255                                 status = "okay";
256                                 vmmc-supply = <&ext_3p3v>;
257                                 vqmmc-supply = <&pm8921_lvs1>;
258                                 mmc-pwrseq = <&sdcc4_pwrseq>;
259                         };
260                 };
261         };
262 };