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