Merge tag 'cris-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper...
[cascardo/linux.git] / arch / arm64 / boot / dts / qcom / apq8016-sbc.dtsi
1 /*
2  * Copyright (c) 2015, The Linux Foundation. All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 and
6  * only version 2 as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  */
13
14 #include "msm8916.dtsi"
15 #include "pm8916.dtsi"
16 #include "apq8016-sbc-soc-pins.dtsi"
17 #include "apq8016-sbc-pmic-pins.dtsi"
18
19 / {
20         aliases {
21                 serial0 = &blsp1_uart2;
22                 serial1 = &blsp1_uart1;
23                 usid0 = &pm8916_0;
24                 i2c0    = &blsp_i2c2;
25                 i2c1    = &blsp_i2c6;
26                 i2c3    = &blsp_i2c4;
27                 spi0    = &blsp_spi5;
28                 spi1    = &blsp_spi3;
29         };
30
31         chosen {
32                 stdout-path = "serial0";
33         };
34
35         soc {
36                 dma@7884000 {
37                         status = "okay";
38                 };
39
40                 serial@78af000 {
41                         label = "LS-UART0";
42                         status = "okay";
43                         pinctrl-names = "default", "sleep";
44                         pinctrl-0 = <&blsp1_uart1_default>;
45                         pinctrl-1 = <&blsp1_uart1_sleep>;
46                 };
47
48                 serial@78b0000 {
49                         label = "LS-UART1";
50                         status = "okay";
51                         pinctrl-names = "default", "sleep";
52                         pinctrl-0 = <&blsp1_uart2_default>;
53                         pinctrl-1 = <&blsp1_uart2_sleep>;
54                 };
55
56                 i2c@78b6000 {
57                 /* On Low speed expansion */
58                         label = "LS-I2C0";
59                         status = "okay";
60                 };
61
62                 i2c@78b8000 {
63                 /* On High speed expansion */
64                         label = "HS-I2C2";
65                         status = "okay";
66
67                         adv_bridge: bridge@39 {
68                                 status = "okay";
69
70                                 compatible = "adi,adv7533";
71                                 reg = <0x39>;
72
73                                 interrupt-parent = <&msmgpio>;
74                                 interrupts = <31 2>;
75
76                                 adi,dsi-lanes = <4>;
77
78                                 pd-gpios = <&msmgpio 32 0>;
79
80                                 avdd-supply = <&pm8916_l6>;
81                                 v1p2-supply = <&pm8916_l6>;
82                                 v3p3-supply = <&pm8916_l17>;
83
84                                 pinctrl-names = "default","sleep";
85                                 pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
86                                 pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
87
88                                 ports {
89                                         #address-cells = <1>;
90                                         #size-cells = <0>;
91
92                                         port@0 {
93                                                 reg = <0>;
94                                                 adv7533_in: endpoint {
95                                                         remote-endpoint = <&dsi0_out>;
96                                                 };
97                                         };
98
99                                         port@1 {
100                                                 reg = <1>;
101                                                 adv7533_out: endpoint {
102                                                         remote-endpoint = <&hdmi_con>;
103                                                 };
104                                         };
105                                 };
106                         };
107                 };
108
109                 i2c@78ba000 {
110                 /* On Low speed expansion */
111                         label = "LS-I2C1";
112                         status = "okay";
113                 };
114
115                 spi@78b7000 {
116                 /* On High speed expansion */
117                         label = "HS-SPI1";
118                         status = "okay";
119                 };
120
121                 spi@78b9000 {
122                 /* On Low speed expansion */
123                         label = "LS-SPI0";
124                         status = "okay";
125                 };
126
127                 leds {
128                         pinctrl-names = "default";
129                         pinctrl-0 = <&msmgpio_leds>,
130                                     <&pm8916_gpios_leds>,
131                                     <&pm8916_mpps_leds>;
132
133                         compatible = "gpio-leds";
134
135                         led@1 {
136                                 label = "apq8016-sbc:green:user1";
137                                 gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
138                                 linux,default-trigger = "heartbeat";
139                                 default-state = "off";
140                         };
141
142                         led@2 {
143                                 label = "apq8016-sbc:green:user2";
144                                 gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
145                                 linux,default-trigger = "mmc0";
146                                 default-state = "off";
147                         };
148
149                         led@3 {
150                                 label = "apq8016-sbc:green:user3";
151                                 gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
152                                 linux,default-trigger = "mmc1";
153                                 default-state = "off";
154                         };
155
156                         led@4 {
157                                 label = "apq8016-sbc:green:user4";
158                                 gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
159                                 linux,default-trigger = "none";
160                                 default-state = "off";
161                         };
162
163                         led@5 {
164                                 label = "apq8016-sbc:yellow:wlan";
165                                 gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
166                                 linux,default-trigger = "wlan";
167                                 default-state = "off";
168                         };
169
170                         led@6 {
171                                 label = "apq8016-sbc:blue:bt";
172                                 gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
173                                 linux,default-trigger = "bt";
174                                 default-state = "off";
175                         };
176                 };
177
178                 sdhci@07824000 {
179                         vmmc-supply = <&pm8916_l8>;
180                         vqmmc-supply = <&pm8916_l5>;
181
182                         pinctrl-names = "default", "sleep";
183                         pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
184                         pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
185                         status = "okay";
186                 };
187
188                 sdhci@07864000 {
189                         vmmc-supply = <&pm8916_l11>;
190                         vqmmc-supply = <&pm8916_l12>;
191
192                         pinctrl-names = "default", "sleep";
193                         pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
194                         pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
195
196                         cd-gpios = <&msmgpio 38 0x1>;
197                         status = "okay";
198                 };
199
200                 usb@78d9000 {
201                         extcon = <&usb_id>, <&usb_id>;
202                         status = "okay";
203                 };
204
205                 ehci@78d9000 {
206                         status = "okay";
207                 };
208
209                 phy@78d9000 {
210                         v1p8-supply = <&pm8916_l7>;
211                         v3p3-supply = <&pm8916_l13>;
212                         vddcx-supply = <&pm8916_s1>;
213                         extcon = <&usb_id>, <&usb_id>;
214                         dr_mode = "otg";
215                         status = "okay";
216                         switch-gpio = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
217                         pinctrl-names = "default";
218                         pinctrl-0 = <&usb_sw_sel_pm>;
219                 };
220
221                 lpass@07708000 {
222                         status = "okay";
223                 };
224
225                 mdss@1a00000 {
226                         status = "okay";
227
228                         mdp@1a01000 {
229                                 status = "okay";
230                         };
231
232                         dsi@1a98000 {
233                                 status = "okay";
234
235                                 vdda-supply = <&pm8916_l2>;
236                                 vddio-supply = <&pm8916_l6>;
237
238                                 ports {
239                                         port@1 {
240                                                 endpoint {
241                                                         remote-endpoint = <&adv7533_in>;
242                                                         data-lanes = <0 1 2 3>;
243                                                 };
244                                         };
245                                 };
246                         };
247
248                         dsi-phy@1a98300 {
249                                 status = "okay";
250
251                                 vddio-supply = <&pm8916_l6>;
252                         };
253                 };
254         };
255
256         usb2513 {
257                 compatible = "smsc,usb3503";
258                 reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
259                 initial-mode = <1>;
260         };
261
262         usb_id: usb-id {
263                 compatible = "linux,extcon-usb-gpio";
264                 id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
265                 pinctrl-names = "default";
266                 pinctrl-0 = <&usb_id_default>;
267         };
268
269         hdmi-out {
270                 compatible = "hdmi-connector";
271                 type = "a";
272
273                 port {
274                         hdmi_con: endpoint {
275                                 remote-endpoint = <&adv7533_out>;
276                         };
277                 };
278         };
279 };
280
281 &smd_rpm_regulators {
282         vdd_l1_l2_l3-supply = <&pm8916_s3>;
283         vdd_l5-supply = <&pm8916_s3>;
284         vdd_l4_l5_l6-supply = <&pm8916_s4>;
285         vdd_l7-supply = <&pm8916_s4>;
286
287         s1 {
288                 regulator-min-microvolt = <375000>;
289                 regulator-max-microvolt = <1562000>;
290         };
291
292         s3 {
293                 regulator-min-microvolt = <375000>;
294                 regulator-max-microvolt = <1562000>;
295         };
296
297         s4 {
298                 regulator-min-microvolt = <1800000>;
299                 regulator-max-microvolt = <1800000>;
300
301                 regulator-always-on;
302                 regulator-boot-on;
303         };
304
305         l1 {
306                 regulator-min-microvolt = <375000>;
307                 regulator-max-microvolt = <1525000>;
308         };
309
310         l2 {
311                 regulator-min-microvolt = <375000>;
312                 regulator-max-microvolt = <1525000>;
313         };
314
315         l3 {
316                 regulator-min-microvolt = <375000>;
317                 regulator-max-microvolt = <1525000>;
318         };
319
320         l4 {
321                 regulator-min-microvolt = <1750000>;
322                 regulator-max-microvolt = <3337000>;
323         };
324
325         l5 {
326                 regulator-min-microvolt = <1750000>;
327                 regulator-max-microvolt = <3337000>;
328         };
329
330         l6 {
331                 regulator-min-microvolt = <1750000>;
332                 regulator-max-microvolt = <3337000>;
333         };
334
335         l7 {
336                 regulator-min-microvolt = <1750000>;
337                 regulator-max-microvolt = <3337000>;
338         };
339
340         l8 {
341                 regulator-min-microvolt = <1750000>;
342                 regulator-max-microvolt = <3337000>;
343         };
344
345         l9 {
346                 regulator-min-microvolt = <1750000>;
347                 regulator-max-microvolt = <3337000>;
348         };
349
350         l10 {
351                 regulator-min-microvolt = <1750000>;
352                 regulator-max-microvolt = <3337000>;
353         };
354
355         l11 {
356                 regulator-min-microvolt = <1750000>;
357                 regulator-max-microvolt = <3337000>;
358         };
359
360         l12 {
361                 regulator-min-microvolt = <1750000>;
362                 regulator-max-microvolt = <3337000>;
363         };
364
365         l13 {
366                 regulator-min-microvolt = <1750000>;
367                 regulator-max-microvolt = <3337000>;
368         };
369
370         l14 {
371                 regulator-min-microvolt = <1750000>;
372                 regulator-max-microvolt = <3337000>;
373         };
374
375         /**
376          * 1.8v required on LS expansion
377          * for mezzanine boards
378          */
379         l15 {
380                 regulator-min-microvolt = <1750000>;
381                 regulator-max-microvolt = <3337000>;
382                 regulator-always-on;
383         };
384
385         l16 {
386                 regulator-min-microvolt = <1750000>;
387                 regulator-max-microvolt = <3337000>;
388         };
389
390         l17 {
391                 regulator-min-microvolt = <1750000>;
392                 regulator-max-microvolt = <3337000>;
393         };
394
395         l18 {
396                 regulator-min-microvolt = <1750000>;
397                 regulator-max-microvolt = <3337000>;
398         };
399 };