Merge tag 'pwm/for-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / apq8016-sbc.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (c) 2015, The Linux Foundation. All rights reserved.
4  */
5
6 /dts-v1/;
7
8 #include "msm8916-pm8916.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/input/input.h>
11 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
12 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
13 #include <dt-bindings/sound/apq8016-lpass.h>
14
15 / {
16         model = "Qualcomm Technologies, Inc. APQ 8016 SBC";
17         compatible = "qcom,apq8016-sbc", "qcom,apq8016";
18
19         aliases {
20                 serial0 = &blsp1_uart2;
21                 serial1 = &blsp1_uart1;
22                 usid0 = &pm8916_0;
23                 i2c0    = &blsp_i2c2;
24                 i2c1    = &blsp_i2c6;
25                 i2c3    = &blsp_i2c4;
26                 spi0    = &blsp_spi5;
27                 spi1    = &blsp_spi3;
28         };
29
30         chosen {
31                 stdout-path = "serial0";
32         };
33
34         camera_vdddo_1v8: camera-vdddo-1v8 {
35                 compatible = "regulator-fixed";
36                 regulator-name = "camera_vdddo";
37                 regulator-min-microvolt = <1800000>;
38                 regulator-max-microvolt = <1800000>;
39                 regulator-always-on;
40         };
41
42         camera_vdda_2v8: camera-vdda-2v8 {
43                 compatible = "regulator-fixed";
44                 regulator-name = "camera_vdda";
45                 regulator-min-microvolt = <2800000>;
46                 regulator-max-microvolt = <2800000>;
47                 regulator-always-on;
48         };
49
50         camera_vddd_1v5: camera-vddd-1v5 {
51                 compatible = "regulator-fixed";
52                 regulator-name = "camera_vddd";
53                 regulator-min-microvolt = <1500000>;
54                 regulator-max-microvolt = <1500000>;
55                 regulator-always-on;
56         };
57
58         reserved-memory {
59                 ramoops@bff00000 {
60                         compatible = "ramoops";
61                         reg = <0x0 0xbff00000 0x0 0x100000>;
62
63                         record-size = <0x20000>;
64                         console-size = <0x20000>;
65                         ftrace-size = <0x20000>;
66                 };
67         };
68
69         usb2513 {
70                 compatible = "smsc,usb3503";
71                 reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
72                 initial-mode = <1>;
73         };
74
75         usb_id: usb-id {
76                 compatible = "linux,extcon-usb-gpio";
77                 id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
78                 pinctrl-names = "default";
79                 pinctrl-0 = <&usb_id_default>;
80         };
81
82         hdmi-out {
83                 compatible = "hdmi-connector";
84                 type = "a";
85
86                 port {
87                         hdmi_con: endpoint {
88                                 remote-endpoint = <&adv7533_out>;
89                         };
90                 };
91         };
92
93         gpio-keys {
94                 compatible = "gpio-keys";
95                 #address-cells = <1>;
96                 #size-cells = <0>;
97                 autorepeat;
98
99                 pinctrl-names = "default";
100                 pinctrl-0 = <&msm_key_volp_n_default>;
101
102                 button@0 {
103                         label = "Volume Up";
104                         linux,code = <KEY_VOLUMEUP>;
105                         gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
106                 };
107         };
108
109         leds {
110                 pinctrl-names = "default";
111                 pinctrl-0 = <&msmgpio_leds>,
112                             <&pm8916_gpios_leds>,
113                             <&pm8916_mpps_leds>;
114
115                 compatible = "gpio-leds";
116
117                 led@1 {
118                         label = "apq8016-sbc:green:user1";
119                         gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
120                         linux,default-trigger = "heartbeat";
121                         default-state = "off";
122                 };
123
124                 led@2 {
125                         label = "apq8016-sbc:green:user2";
126                         gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
127                         linux,default-trigger = "mmc0";
128                         default-state = "off";
129                 };
130
131                 led@3 {
132                         label = "apq8016-sbc:green:user3";
133                         gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
134                         linux,default-trigger = "mmc1";
135                         default-state = "off";
136                 };
137
138                 led@4 {
139                         label = "apq8016-sbc:green:user4";
140                         gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
141                         linux,default-trigger = "none";
142                         panic-indicator;
143                         default-state = "off";
144                 };
145
146                 led@5 {
147                         label = "apq8016-sbc:yellow:wlan";
148                         gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
149                         linux,default-trigger = "phy0tx";
150                         default-state = "off";
151                 };
152
153                 led@6 {
154                         label = "apq8016-sbc:blue:bt";
155                         gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
156                         linux,default-trigger = "bluetooth-power";
157                         default-state = "off";
158                 };
159         };
160 };
161
162 &blsp_dma {
163         status = "okay";
164 };
165
166 &blsp_i2c2 {
167         /* On Low speed expansion */
168         status = "okay";
169         label = "LS-I2C0";
170 };
171
172 &blsp_i2c4 {
173         /* On High speed expansion */
174         status = "okay";
175         label = "HS-I2C2";
176
177         adv_bridge: bridge@39 {
178                 status = "okay";
179
180                 compatible = "adi,adv7533";
181                 reg = <0x39>;
182
183                 interrupt-parent = <&msmgpio>;
184                 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
185
186                 adi,dsi-lanes = <4>;
187                 clocks = <&rpmcc RPM_SMD_BB_CLK2>;
188                 clock-names = "cec";
189
190                 pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
191
192                 avdd-supply = <&pm8916_l6>;
193                 v1p2-supply = <&pm8916_l6>;
194                 v3p3-supply = <&pm8916_l17>;
195
196                 pinctrl-names = "default","sleep";
197                 pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
198                 pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
199                 #sound-dai-cells = <1>;
200
201                 ports {
202                         #address-cells = <1>;
203                         #size-cells = <0>;
204
205                         port@0 {
206                                 reg = <0>;
207                                 adv7533_in: endpoint {
208                                         remote-endpoint = <&dsi0_out>;
209                                 };
210                         };
211
212                         port@1 {
213                                 reg = <1>;
214                                 adv7533_out: endpoint {
215                                         remote-endpoint = <&hdmi_con>;
216                                 };
217                         };
218                 };
219         };
220 };
221
222 &blsp_i2c6 {
223         /* On Low speed expansion */
224         status = "okay";
225         label = "LS-I2C1";
226 };
227
228 &blsp_spi3 {
229         /* On High speed expansion */
230         status = "okay";
231         label = "HS-SPI1";
232 };
233
234 &blsp_spi5 {
235         /* On Low speed expansion */
236         status = "okay";
237         label = "LS-SPI0";
238 };
239
240 &blsp1_uart1 {
241         status = "okay";
242         label = "LS-UART0";
243 };
244
245 &blsp1_uart2 {
246         status = "okay";
247         label = "LS-UART1";
248 };
249
250 &camss {
251         status = "okay";
252         ports {
253                 port@0 {
254                         reg = <0>;
255                         csiphy0_ep: endpoint {
256                                 clock-lanes = <1>;
257                                 data-lanes = <0 2>;
258                                 remote-endpoint = <&ov5640_ep>;
259                                 status = "okay";
260                         };
261                 };
262         };
263 };
264
265 &cci {
266         status = "okay";
267 };
268
269 &cci_i2c0 {
270         camera_rear@3b {
271                 compatible = "ovti,ov5640";
272                 reg = <0x3b>;
273
274                 enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
275                 reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
276                 pinctrl-names = "default";
277                 pinctrl-0 = <&camera_rear_default>;
278
279                 clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
280                 clock-names = "xclk";
281                 clock-frequency = <23880000>;
282
283                 vdddo-supply = <&camera_vdddo_1v8>;
284                 vdda-supply = <&camera_vdda_2v8>;
285                 vddd-supply = <&camera_vddd_1v5>;
286
287                 /* No camera mezzanine by default */
288                 status = "disabled";
289
290                 port {
291                         ov5640_ep: endpoint {
292                                 clock-lanes = <1>;
293                                 data-lanes = <0 2>;
294                                 remote-endpoint = <&csiphy0_ep>;
295                         };
296                 };
297         };
298 };
299
300 &dsi0_out {
301         data-lanes = <0 1 2 3>;
302         remote-endpoint = <&adv7533_in>;
303 };
304
305 &lpass {
306         status = "okay";
307 };
308
309 &mdss {
310         status = "okay";
311 };
312
313 &mpss {
314         status = "okay";
315
316         firmware-name = "qcom/apq8016/mba.mbn", "qcom/apq8016/modem.mbn";
317 };
318
319 &pm8916_resin {
320         status = "okay";
321         linux,code = <KEY_VOLUMEDOWN>;
322 };
323
324 &pronto {
325         status = "okay";
326
327         firmware-name = "qcom/apq8016/wcnss.mbn";
328 };
329
330 &sdhc_1 {
331         status = "okay";
332
333         pinctrl-names = "default", "sleep";
334         pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
335         pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
336 };
337
338 &sdhc_2 {
339         status = "okay";
340
341         pinctrl-names = "default", "sleep";
342         pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
343         pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
344
345         cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
346 };
347
348 &sound {
349         status = "okay";
350
351         pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
352         pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
353         pinctrl-names = "default", "sleep";
354         qcom,model = "DB410c";
355         qcom,audio-routing =
356                 "AMIC2", "MIC BIAS Internal2",
357                 "AMIC3", "MIC BIAS External1";
358
359         external-dai-link@0 {
360                 link-name = "ADV7533";
361                 cpu {
362                         sound-dai = <&lpass MI2S_QUATERNARY>;
363                 };
364                 codec {
365                         sound-dai = <&adv_bridge 0>;
366                 };
367         };
368
369         internal-codec-playback-dai-link@0 {
370                 link-name = "WCD";
371                 cpu {
372                         sound-dai = <&lpass MI2S_PRIMARY>;
373                 };
374                 codec {
375                         sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
376                 };
377         };
378
379         internal-codec-capture-dai-link@0 {
380                 link-name = "WCD-Capture";
381                 cpu {
382                         sound-dai = <&lpass MI2S_TERTIARY>;
383                 };
384                 codec {
385                         sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
386                 };
387         };
388 };
389
390 &usb {
391         status = "okay";
392         extcon = <&usb_id>, <&usb_id>;
393
394         pinctrl-names = "default", "device";
395         pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
396         pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
397 };
398
399 &usb_hs_phy {
400         extcon = <&usb_id>;
401 };
402
403 &wcd_codec {
404         clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
405         clock-names = "mclk";
406         qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
407         qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
408 };
409
410 &wcnss_ctrl {
411         firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
412 };
413
414 /* Enable CoreSight */
415 &cti0 { status = "okay"; };
416 &cti1 { status = "okay"; };
417 &cti12 { status = "okay"; };
418 &cti13 { status = "okay"; };
419 &cti14 { status = "okay"; };
420 &cti15 { status = "okay"; };
421 &debug0 { status = "okay"; };
422 &debug1 { status = "okay"; };
423 &debug2 { status = "okay"; };
424 &debug3 { status = "okay"; };
425 &etf { status = "okay"; };
426 &etm0 { status = "okay"; };
427 &etm1 { status = "okay"; };
428 &etm2 { status = "okay"; };
429 &etm3 { status = "okay"; };
430 &etr { status = "okay"; };
431 &funnel0 { status = "okay"; };
432 &funnel1 { status = "okay"; };
433 &replicator { status = "okay"; };
434 &stm { status = "okay"; };
435 &tpiu { status = "okay"; };
436
437 &smd_rpm_regulators {
438         vdd_l1_l2_l3-supply = <&pm8916_s3>;
439         vdd_l4_l5_l6-supply = <&pm8916_s4>;
440         vdd_l7-supply = <&pm8916_s4>;
441
442         s3 {
443                 regulator-min-microvolt = <375000>;
444                 regulator-max-microvolt = <1562000>;
445         };
446
447         s4 {
448                 regulator-min-microvolt = <1800000>;
449                 regulator-max-microvolt = <1800000>;
450
451                 regulator-always-on;
452                 regulator-boot-on;
453         };
454
455         l1 {
456                 regulator-min-microvolt = <375000>;
457                 regulator-max-microvolt = <1525000>;
458         };
459
460         l2 {
461                 regulator-min-microvolt = <1200000>;
462                 regulator-max-microvolt = <1200000>;
463         };
464
465         l4 {
466                 regulator-min-microvolt = <1750000>;
467                 regulator-max-microvolt = <3337000>;
468         };
469
470         l5 {
471                 regulator-min-microvolt = <1750000>;
472                 regulator-max-microvolt = <3337000>;
473         };
474
475         l6 {
476                 regulator-min-microvolt = <1800000>;
477                 regulator-max-microvolt = <1800000>;
478         };
479
480         l7 {
481                 regulator-min-microvolt = <1750000>;
482                 regulator-max-microvolt = <3337000>;
483         };
484
485         l8 {
486                 regulator-min-microvolt = <1750000>;
487                 regulator-max-microvolt = <3337000>;
488         };
489
490         l9 {
491                 regulator-min-microvolt = <1750000>;
492                 regulator-max-microvolt = <3337000>;
493         };
494
495         l10 {
496                 regulator-min-microvolt = <1750000>;
497                 regulator-max-microvolt = <3337000>;
498         };
499
500         l11 {
501                 regulator-min-microvolt = <1750000>;
502                 regulator-max-microvolt = <3337000>;
503                 regulator-allow-set-load;
504                 regulator-system-load = <200000>;
505         };
506
507         l12 {
508                 regulator-min-microvolt = <1750000>;
509                 regulator-max-microvolt = <3337000>;
510         };
511
512         l13 {
513                 regulator-min-microvolt = <1750000>;
514                 regulator-max-microvolt = <3337000>;
515         };
516
517         l14 {
518                 regulator-min-microvolt = <1750000>;
519                 regulator-max-microvolt = <3337000>;
520         };
521
522         /**
523          * 1.8v required on LS expansion
524          * for mezzanine boards
525          */
526         l15 {
527                 regulator-min-microvolt = <1750000>;
528                 regulator-max-microvolt = <3337000>;
529                 regulator-always-on;
530         };
531
532         l16 {
533                 regulator-min-microvolt = <1750000>;
534                 regulator-max-microvolt = <3337000>;
535         };
536
537         l17 {
538                 regulator-min-microvolt = <3300000>;
539                 regulator-max-microvolt = <3300000>;
540         };
541
542         l18 {
543                 regulator-min-microvolt = <1750000>;
544                 regulator-max-microvolt = <3337000>;
545         };
546 };
547
548 /*
549  * 2mA drive strength is not enough when connecting multiple
550  * I2C devices with different pull up resistors.
551  */
552 &i2c2_default {
553         drive-strength = <16>;
554 };
555
556 &i2c4_default {
557         drive-strength = <16>;
558 };
559
560 &i2c6_default {
561         drive-strength = <16>;
562 };
563
564 /*
565  * GPIO name legend: proper name = the GPIO line is used as GPIO
566  *         NC = not connected (pin out but not routed from the chip to
567  *              anything the board)
568  *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
569  *         LSEC = Low Speed External Connector
570  *         HSEC = High Speed External Connector
571  *
572  * Line names are taken from the schematic "DragonBoard410c"
573  * dated monday, august 31, 2015. Page 5 in particular.
574  *
575  * For the lines routed to the external connectors the
576  * lines are named after the 96Boards CE Specification 1.0,
577  * Appendix "Expansion Connector Signal Description".
578  *
579  * When the 96Board naming of a line and the schematic name of
580  * the same line are in conflict, the 96Board specification
581  * takes precedence, which means that the external UART on the
582  * LSEC is named UART0 while the schematic and SoC names this
583  * UART3. This is only for the informational lines i.e. "[FOO]",
584  * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
585  * ones actually used for GPIO.
586  */
587
588 &msmgpio {
589         gpio-line-names =
590                 "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
591                 "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
592                 "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
593                 "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
594                 "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
595                 "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
596                 "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
597                 "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
598                 "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
599                 "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
600                 "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
601                 "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
602                 "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
603                 "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
604                 "[I2C3_SDA]", /* HSEC pin 38 */
605                 "[I2C3_SCL]", /* HSEC pin 36 */
606                 "[SPI0_MOSI]", /* LSEC pin 14 */
607                 "[SPI0_MISO]", /* LSEC pin 10 */
608                 "[SPI0_CS_N]", /* LSEC pin 12 */
609                 "[SPI0_CLK]", /* LSEC pin 8 */
610                 "HDMI_HPD_N", /* GPIO 20 */
611                 "USR_LED_1_CTRL",
612                 "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
613                 "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
614                 "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
615                 "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
616                 "[CSI0_MCLK]", /* HSEC pin 15 */
617                 "[CSI1_MCLK]", /* HSEC pin 17 */
618                 "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
619                 "[I2C2_SDA]", /* HSEC pin 34 */
620                 "[I2C2_SCL]", /* HSEC pin 32 */
621                 "DSI2HDMI_INT_N",
622                 "DSI_SW_SEL_APQ",
623                 "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
624                 "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
625                 "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
626                 "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
627                 "FORCED_USB_BOOT",
628                 "SD_CARD_DET_N",
629                 "[WCSS_BT_SSBI]",
630                 "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
631                 "[WCSS_WLAN_DATA_1]",
632                 "[WCSS_WLAN_DATA_0]",
633                 "[WCSS_WLAN_SET]",
634                 "[WCSS_WLAN_CLK]",
635                 "[WCSS_FM_SSBI]",
636                 "[WCSS_FM_SDI]",
637                 "[WCSS_BT_DAT_CTL]",
638                 "[WCSS_BT_DAT_STB]",
639                 "NC",
640                 "NC", /* GPIO 50 */
641                 "NC",
642                 "NC",
643                 "NC",
644                 "NC",
645                 "NC",
646                 "NC",
647                 "NC",
648                 "NC",
649                 "NC",
650                 "NC", /* GPIO 60 */
651                 "NC",
652                 "NC",
653                 "[CDC_PDM0_CLK]",
654                 "[CDC_PDM0_SYNC]",
655                 "[CDC_PDM0_TX0]",
656                 "[CDC_PDM0_RX0]",
657                 "[CDC_PDM0_RX1]",
658                 "[CDC_PDM0_RX2]",
659                 "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
660                 "NC", /* GPIO 70 */
661                 "NC",
662                 "NC",
663                 "NC",
664                 "NC", /* GPIO 74 */
665                 "NC",
666                 "NC",
667                 "NC",
668                 "NC",
669                 "NC",
670                 "BOOT_CONFIG_0", /* GPIO 80 */
671                 "BOOT_CONFIG_1",
672                 "BOOT_CONFIG_2",
673                 "BOOT_CONFIG_3",
674                 "NC",
675                 "NC",
676                 "BOOT_CONFIG_5",
677                 "NC",
678                 "NC",
679                 "NC",
680                 "NC", /* GPIO 90 */
681                 "NC",
682                 "NC",
683                 "NC",
684                 "NC",
685                 "NC",
686                 "NC",
687                 "NC",
688                 "NC",
689                 "NC",
690                 "NC", /* GPIO 100 */
691                 "NC",
692                 "NC",
693                 "NC",
694                 "SSBI_GPS",
695                 "NC",
696                 "NC",
697                 "KEY_VOLP_N",
698                 "NC",
699                 "NC",
700                 "[LS_EXP_MI2S_WS]", /* GPIO 110 */
701                 "NC",
702                 "NC",
703                 "[LS_EXP_MI2S_SCK]",
704                 "[LS_EXP_MI2S_DATA0]",
705                 "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
706                 "NC",
707                 "[DSI2HDMI_MI2S_WS]",
708                 "[DSI2HDMI_MI2S_SCK]",
709                 "[DSI2HDMI_MI2S_DATA0]",
710                 "USR_LED_2_CTRL", /* GPIO 120 */
711                 "SB_HS_ID";
712
713         msmgpio_leds: msmgpio-leds {
714                 pins = "gpio21", "gpio120";
715                 function = "gpio";
716
717                 output-low;
718         };
719
720         usb_id_default: usb-id-default {
721                 pins = "gpio121";
722                 function = "gpio";
723
724                 drive-strength = <8>;
725                 input-enable;
726                 bias-pull-up;
727         };
728
729         adv7533_int_active: adv533-int-active {
730                 pins = "gpio31";
731                 function = "gpio";
732
733                 drive-strength = <16>;
734                 bias-disable;
735         };
736
737         adv7533_int_suspend: adv7533-int-suspend {
738                 pins = "gpio31";
739                 function = "gpio";
740
741                 drive-strength = <2>;
742                 bias-disable;
743         };
744
745         adv7533_switch_active: adv7533-switch-active {
746                 pins = "gpio32";
747                 function = "gpio";
748
749                 drive-strength = <16>;
750                 bias-disable;
751         };
752
753         adv7533_switch_suspend: adv7533-switch-suspend {
754                 pins = "gpio32";
755                 function = "gpio";
756
757                 drive-strength = <2>;
758                 bias-disable;
759         };
760
761         msm_key_volp_n_default: msm-key-volp-n-default {
762                 pins = "gpio107";
763                 function = "gpio";
764
765                 drive-strength = <8>;
766                 input-enable;
767                 bias-pull-up;
768         };
769 };
770
771 &pm8916_gpios {
772         gpio-line-names =
773                 "USR_LED_3_CTRL",
774                 "USR_LED_4_CTRL",
775                 "USB_HUB_RESET_N_PM",
776                 "USB_SW_SEL_PM";
777
778         usb_hub_reset_pm: usb-hub-reset-pm {
779                 pins = "gpio3";
780                 function = PMIC_GPIO_FUNC_NORMAL;
781
782                 input-disable;
783                 output-high;
784         };
785
786         usb_hub_reset_pm_device: usb-hub-reset-pm-device {
787                 pins = "gpio3";
788                 function = PMIC_GPIO_FUNC_NORMAL;
789
790                 output-low;
791         };
792
793         usb_sw_sel_pm: usb-sw-sel-pm {
794                 pins = "gpio4";
795                 function = PMIC_GPIO_FUNC_NORMAL;
796
797                 power-source = <PM8916_GPIO_VPH>;
798                 input-disable;
799                 output-high;
800         };
801
802         usb_sw_sel_pm_device: usb-sw-sel-pm-device {
803                 pins = "gpio4";
804                 function = PMIC_GPIO_FUNC_NORMAL;
805
806                 power-source = <PM8916_GPIO_VPH>;
807                 input-disable;
808                 output-low;
809         };
810
811         pm8916_gpios_leds: pm8916-gpios-leds {
812                 pins = "gpio1", "gpio2";
813                 function = PMIC_GPIO_FUNC_NORMAL;
814
815                 output-low;
816         };
817 };
818
819 &pm8916_mpps {
820         gpio-line-names =
821                 "VDD_PX_BIAS",
822                 "WLAN_LED_CTRL",
823                 "BT_LED_CTRL",
824                 "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
825
826         pinctrl-names = "default";
827         pinctrl-0 = <&ls_exp_gpio_f>;
828
829         ls_exp_gpio_f: pm8916-mpp4-state {
830                 pins = "mpp4";
831                 function = "digital";
832
833                 output-low;
834                 power-source = <PM8916_MPP_L5>; // 1.8V
835         };
836
837         pm8916_mpps_leds: pm8916-mpps-state {
838                 pins = "mpp2", "mpp3";
839                 function = "digital";
840
841                 output-low;
842         };
843 };