]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/gnu/dts/arm64/qcom/apq8096-db820c.dtsi
MFV r361280:
[FreeBSD/FreeBSD.git] / sys / gnu / dts / arm64 / qcom / apq8096-db820c.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
4  */
5
6 #include "msm8996.dtsi"
7 #include "pm8994.dtsi"
8 #include "pmi8994.dtsi"
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
12 #include <dt-bindings/sound/qcom,q6afe.h>
13 #include <dt-bindings/sound/qcom,q6asm.h>
14
15 /*
16  * GPIO name legend: proper name = the GPIO line is used as GPIO
17  *         NC      = not connected (pin out but not routed from the chip to
18  *                   anything the board)
19  *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
20  *         LSEC    = Low Speed External Connector
21  *         P HSEC  = Primary High Speed External Connector
22  *         S HSEC  = Secondary High Speed External Connector
23  *         J14     = Camera Connector
24  *         TP      = Test Points
25  *
26  * Line names are taken from the schematic "DragonBoard 820c",
27  * drawing no: LM25-P2751-1
28  *
29  * For the lines routed to the external connectors the
30  * lines are named after the 96Boards CE Specification 1.0,
31  * Appendix "Expansion Connector Signal Description".
32  *
33  * When the 96Board naming of a line and the schematic name of
34  * the same line are in conflict, the 96Board specification
35  * takes precedence, which means that the external UART on the
36  * LSEC is named UART0 while the schematic and SoC names this
37  * UART3. This is only for the informational lines i.e. "[FOO]",
38  * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
39  * ones actually used for GPIO.
40  */
41
42 / {
43         aliases {
44                 serial0 = &blsp2_uart1;
45                 serial1 = &blsp2_uart2;
46                 serial2 = &blsp1_uart1;
47                 i2c0    = &blsp1_i2c2;
48                 i2c1    = &blsp2_i2c1;
49                 i2c2    = &blsp2_i2c0;
50                 spi0    = &blsp1_spi0;
51                 spi1    = &blsp2_spi5;
52         };
53
54         chosen {
55                 stdout-path = "serial0:115200n8";
56         };
57
58         clocks {
59                 compatible = "simple-bus";
60                 divclk4: divclk4 {
61                         compatible = "fixed-clock";
62                         #clock-cells = <0>;
63                         clock-frequency = <32768>;
64                         clock-output-names = "divclk4";
65
66                         pinctrl-names = "default";
67                         pinctrl-0 = <&divclk4_pin_a>;
68                 };
69
70                 div1_mclk: divclk1 {
71                         compatible = "gpio-gate-clock";
72                         pinctrl-0 = <&audio_mclk>;
73                         pinctrl-names = "default";
74                         clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
75                         #clock-cells = <0>;
76                         enable-gpios = <&pm8994_gpios 15 0>;
77                 };
78         };
79
80         gpio_keys {
81                 compatible = "gpio-keys";
82                 #address-cells = <1>;
83                 #size-cells = <0>;
84                 autorepeat;
85
86                 pinctrl-names = "default";
87                 pinctrl-0 = <&volume_up_gpio>;
88
89                 button@0 {
90                         label = "Volume Up";
91                         linux,code = <KEY_VOLUMEUP>;
92                         gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
93                 };
94         };
95
96         usb2_id: usb2-id {
97                 compatible = "linux,extcon-usb-gpio";
98                 id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
99                 pinctrl-names = "default";
100                 pinctrl-0 = <&usb2_vbus_det_gpio>;
101         };
102
103         usb3_id: usb3-id {
104                 compatible = "linux,extcon-usb-gpio";
105                 id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
106                 pinctrl-names = "default";
107                 pinctrl-0 = <&usb3_vbus_det_gpio>;
108         };
109
110         vph_pwr: vph-pwr-regulator {
111                 compatible = "regulator-fixed";
112                 regulator-name = "vph_pwr";
113                 regulator-always-on;
114                 regulator-boot-on;
115
116                 regulator-min-microvolt = <3700000>;
117                 regulator-max-microvolt = <3700000>;
118         };
119
120         vreg_s8a_l3a_input: vreg-s8a-l3a-input {
121                 compatible = "regulator-fixed";
122                 regulator-name = "vreg_s8a_l3a_input";
123                 regulator-always-on;
124                 regulator-boot-on;
125
126                 regulator-min-microvolt = <0>;
127                 regulator-max-microvolt = <0>;
128         };
129
130         wlan_en: wlan-en-1-8v {
131                 pinctrl-names = "default";
132                 pinctrl-0 = <&wlan_en_gpios>;
133                 compatible = "regulator-fixed";
134                 regulator-name = "wlan-en-regulator";
135                 regulator-min-microvolt = <1800000>;
136                 regulator-max-microvolt = <1800000>;
137
138                 gpio = <&pm8994_gpios 8 0>;
139
140                 /* WLAN card specific delay */
141                 startup-delay-us = <70000>;
142                 enable-active-high;
143         };
144 };
145
146 &blsp1_i2c2 {
147         /* On Low speed expansion */
148         label = "LS-I2C0";
149         status = "okay";
150 };
151
152 &blsp1_spi0 {
153         /* On Low speed expansion */
154         label = "LS-SPI0";
155         status = "okay";
156 };
157
158 &blsp1_uart1 {
159         label = "BT-UART";
160         status = "okay";
161         pinctrl-names = "default", "sleep";
162         pinctrl-0 = <&blsp1_uart1_default>;
163         pinctrl-1 = <&blsp1_uart1_sleep>;
164
165         bluetooth {
166                 compatible = "qcom,qca6174-bt";
167
168                 /* bt_disable_n gpio */
169                 enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
170
171                 clocks = <&divclk4>;
172         };
173 };
174
175 &blsp2_i2c0 {
176         /* On High speed expansion */
177         label = "HS-I2C2";
178         status = "okay";
179 };
180
181 &blsp2_i2c1 {
182         /* On Low speed expansion */
183         label = "LS-I2C1";
184         status = "okay";
185 };
186
187 &blsp2_spi5 {
188         /* On High speed expansion */
189         label = "HS-SPI1";
190         status = "okay";
191 };
192
193 &blsp2_uart1 {
194         label = "LS-UART1";
195         status = "okay";
196         pinctrl-names = "default", "sleep";
197         pinctrl-0 = <&blsp2_uart1_2pins_default>;
198         pinctrl-1 = <&blsp2_uart1_2pins_sleep>;
199 };
200
201 &blsp2_uart2 {
202         label = "LS-UART0";
203         status = "disabled";
204         pinctrl-names = "default", "sleep";
205         pinctrl-0 = <&blsp2_uart2_4pins_default>;
206         pinctrl-1 = <&blsp2_uart2_4pins_sleep>;
207 };
208
209 &camss {
210         vdda-supply = <&vreg_l2a_1p25>;
211 };
212
213 &hdmi {
214         status = "okay";
215
216         pinctrl-names = "default", "sleep";
217         pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
218         pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;
219
220         core-vdda-supply = <&vreg_l12a_1p8>;
221         core-vcc-supply = <&vreg_s4a_1p8>;
222 };
223
224 &hdmi_phy {
225         status = "okay";
226
227         vddio-supply = <&vreg_l12a_1p8>;
228         vcca-supply = <&vreg_l28a_0p925>;
229         #phy-cells = <0>;
230 };
231
232 &hsusb_phy1 {
233         status = "okay";
234
235         vdda-pll-supply = <&vreg_l12a_1p8>;
236         vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
237 };
238
239 &hsusb_phy2 {
240         status = "okay";
241
242         vdda-pll-supply = <&vreg_l12a_1p8>;
243         vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
244 };
245
246 &mdp {
247         status = "okay";
248 };
249
250 &mdss {
251         status = "okay";
252 };
253
254 &msmgpio {
255         gpio-line-names =
256                 "[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */
257                 "[SPI0_DIN]", /* GPIO_1, BLSP1_SPI_MISO, LSEC pin 10 */
258                 "[SPI0_CS]", /* GPIO_2, BLSP1_SPI_CS_N, LSEC pin 12 */
259                 "[SPI0_SCLK]", /* GPIO_3, BLSP1_SPI_CLK, LSEC pin 8 */
260                 "[UART1_TxD]", /* GPIO_4, BLSP8_UART_TX, LSEC pin 11 */
261                 "[UART1_RxD]", /* GPIO_5, BLSP8_UART_RX, LSEC pin 13 */
262                 "[I2C1_SDA]", /* GPIO_6, BLSP8_I2C_SDA, LSEC pin 21 */
263                 "[I2C1_SCL]", /* GPIO_7, BLSP8_I2C_SCL, LSEC pin 19 */
264                 "GPIO-H", /* GPIO_8, LCD0_RESET_N, LSEC pin 30 */
265                 "TP93", /* GPIO_9 */
266                 "GPIO-G", /* GPIO_10, MDP_VSYNC_P, LSEC pin 29 */
267                 "[MDP_VSYNC_S]", /* GPIO_11, S HSEC pin 55 */
268                 "NC", /* GPIO_12 */
269                 "[CSI0_MCLK]", /* GPIO_13, CAM_MCLK0, P HSEC pin 15 */
270                 "[CAM_MCLK1]", /* GPIO_14, J14 pin 11 */
271                 "[CSI1_MCLK]", /* GPIO_15, CAM_MCLK2, P HSEC pin 17 */
272                 "TP99", /* GPIO_16 */
273                 "[I2C2_SDA]", /* GPIO_17, CCI_I2C_SDA0, P HSEC pin 34 */
274                 "[I2C2_SCL]", /* GPIO_18, CCI_I2C_SCL0, P HSEC pin 32 */
275                 "[CCI_I2C_SDA1]", /* GPIO_19, S HSEC pin 38 */
276                 "[CCI_I2C_SCL1]", /* GPIO_20, S HSEC pin 36 */
277                 "FLASH_STROBE_EN", /* GPIO_21, S HSEC pin 5 */
278                 "FLASH_STROBE_TRIG", /* GPIO_22, S HSEC pin 1 */
279                 "GPIO-K", /* GPIO_23, CAM2_RST_N, LSEC pin 33 */
280                 "GPIO-D", /* GPIO_24, LSEC pin 26 */
281                 "GPIO-I", /* GPIO_25, CAM0_RST_N, LSEC pin 31 */
282                 "GPIO-J", /* GPIO_26, CAM0_STANDBY_N, LSEC pin 32 */
283                 "BLSP6_I2C_SDA", /* GPIO_27 */
284                 "BLSP6_I2C_SCL", /* GPIO_28 */
285                 "GPIO-B", /* GPIO_29, TS0_RESET_N, LSEC pin 24 */
286                 "GPIO30", /* GPIO_30, S HSEC pin 4 */
287                 "HDMI_CEC", /* GPIO_31 */
288                 "HDMI_DDC_CLOCK", /* GPIO_32 */
289                 "HDMI_DDC_DATA", /* GPIO_33 */
290                 "HDMI_HOT_PLUG_DETECT", /* GPIO_34 */
291                 "PCIE0_RST_N", /* GPIO_35 */
292                 "PCIE0_CLKREQ_N", /* GPIO_36 */
293                 "PCIE0_WAKE", /* GPIO_37 */
294                 "SD_CARD_DET_N", /* GPIO_38 */
295                 "TSIF1_SYNC", /* GPIO_39, S HSEC pin 48 */
296                 "W_DISABLE_N", /* GPIO_40 */
297                 "[BLSP9_UART_TX]", /* GPIO_41 */
298                 "[BLSP9_UART_RX]", /* GPIO_42 */
299                 "[BLSP2_UART_CTS_N]", /* GPIO_43 */
300                 "[BLSP2_UART_RFR_N]", /* GPIO_44 */
301                 "[BLSP3_UART_TX]", /* GPIO_45 */
302                 "[BLSP3_UART_RX]", /* GPIO_46 */
303                 "[I2C0_SDA]", /* GPIO_47, LS_I2C0_SDA, LSEC pin 17 */
304                 "[I2C0_SCL]", /* GPIO_48, LS_I2C0_SCL, LSEC pin 15 */
305                 "[UART0_TxD]", /* GPIO_49, BLSP9_UART_TX, LSEC pin 5 */
306                 "[UART0_RxD]", /* GPIO_50, BLSP9_UART_RX, LSEC pin 7 */
307                 "[UART0_CTS]", /* GPIO_51, BLSP9_UART_CTS_N, LSEC pin 3 */
308                 "[UART0_RTS]", /* GPIO_52, BLSP9_UART_RFR_N, LSEC pin 9 */
309                 "[CODEC_INT1_N]", /* GPIO_53 */
310                 "[CODEC_INT2_N]", /* GPIO_54 */
311                 "[BLSP7_I2C_SDA]", /* GPIO_55 */
312                 "[BLSP7_I2C_SCL]", /* GPIO_56 */
313                 "MI2S_MCLK", /* GPIO_57, S HSEC pin 3 */
314                 "[PCM_CLK]", /* GPIO_58, QUA_MI2S_SCK, LSEC pin 18 */
315                 "[PCM_FS]", /* GPIO_59, QUA_MI2S_WS, LSEC pin 16 */
316                 "[PCM_DO]", /* GPIO_60, QUA_MI2S_DATA0, LSEC pin 20 */
317                 "[PCM_DI]", /* GPIO_61, QUA_MI2S_DATA1, LSEC pin 22 */
318                 "GPIO-E", /* GPIO_62, LSEC pin 27 */
319                 "TP87", /* GPIO_63 */
320                 "[CODEC_RST_N]", /* GPIO_64 */
321                 "[PCM1_CLK]", /* GPIO_65 */
322                 "[PCM1_SYNC]", /* GPIO_66 */
323                 "[PCM1_DIN]", /* GPIO_67 */
324                 "[PCM1_DOUT]", /* GPIO_68 */
325                 "AUDIO_REF_CLK", /* GPIO_69 */
326                 "SLIMBUS_CLK", /* GPIO_70 */
327                 "SLIMBUS_DATA0", /* GPIO_71 */
328                 "SLIMBUS_DATA1", /* GPIO_72 */
329                 "NC", /* GPIO_73 */
330                 "NC", /* GPIO_74 */
331                 "NC", /* GPIO_75 */
332                 "NC", /* GPIO_76 */
333                 "TP94", /* GPIO_77 */
334                 "NC", /* GPIO_78 */
335                 "TP95", /* GPIO_79 */
336                 "GPIO-A", /* GPIO_80, MEMS_RESET_N, LSEC pin 23 */
337                 "TP88", /* GPIO_81 */
338                 "TP89", /* GPIO_82 */
339                 "TP90", /* GPIO_83 */
340                 "TP91", /* GPIO_84 */
341                 "[SD_DAT0]", /* GPIO_85, BLSP12_SPI_MOSI, P HSEC pin 1 */
342                 "[SD_CMD]", /* GPIO_86, BLSP12_SPI_MISO, P HSEC pin 11 */
343                 "[SD_DAT3]", /* GPIO_87, BLSP12_SPI_CS_N, P HSEC pin 7 */
344                 "[SD_SCLK]", /* GPIO_88, BLSP12_SPI_CLK, P HSEC pin 9 */
345                 "TSIF1_CLK", /* GPIO_89, S HSEC pin 42 */
346                 "TSIF1_EN", /* GPIO_90, S HSEC pin 46 */
347                 "TSIF1_DATA", /* GPIO_91, S HSEC pin 44 */
348                 "NC", /* GPIO_92 */
349                 "TSIF2_CLK", /* GPIO_93, S HSEC pin 52 */
350                 "TSIF2_EN", /* GPIO_94, S HSEC pin 56 */
351                 "TSIF2_DATA", /* GPIO_95, S HSEC pin 54 */
352                 "TSIF2_SYNC", /* GPIO_96, S HSEC pin 58 */
353                 "NC", /* GPIO_97 */
354                 "CAM1_STANDBY_N", /* GPIO_98 */
355                 "NC", /* GPIO_99 */
356                 "NC", /* GPIO_100 */
357                 "[LCD1_RESET_N]", /* GPIO_101, S HSEC pin 51 */
358                 "BOOT_CONFIG1", /* GPIO_102 */
359                 "USB_HUB_RESET", /* GPIO_103 */
360                 "CAM1_RST_N", /* GPIO_104 */
361                 "NC", /* GPIO_105 */
362                 "NC", /* GPIO_106 */
363                 "NC", /* GPIO_107 */
364                 "NC", /* GPIO_108 */
365                 "NC", /* GPIO_109 */
366                 "NC", /* GPIO_110 */
367                 "NC", /* GPIO_111 */
368                 "NC", /* GPIO_112 */
369                 "PMI8994_BUA", /* GPIO_113 */
370                 "PCIE2_RST_N", /* GPIO_114 */
371                 "PCIE2_CLKREQ_N", /* GPIO_115 */
372                 "PCIE2_WAKE", /* GPIO_116 */
373                 "SSC_IRQ_0", /* GPIO_117 */
374                 "SSC_IRQ_1", /* GPIO_118 */
375                 "SSC_IRQ_2", /* GPIO_119 */
376                 "NC", /* GPIO_120 */
377                 "GPIO121", /* GPIO_121, S HSEC pin 2 */
378                 "NC", /* GPIO_122 */
379                 "SSC_IRQ_6", /* GPIO_123 */
380                 "SSC_IRQ_7", /* GPIO_124 */
381                 "GPIO-C", /* GPIO_125, TS_INT0, LSEC pin 25 */
382                 "BOOT_CONFIG5", /* GPIO_126 */
383                 "NC", /* GPIO_127 */
384                 "NC", /* GPIO_128 */
385                 "BOOT_CONFIG7", /* GPIO_129 */
386                 "PCIE1_RST_N", /* GPIO_130 */
387                 "PCIE1_CLKREQ_N", /* GPIO_131 */
388                 "PCIE1_WAKE", /* GPIO_132 */
389                 "GPIO-L", /* GPIO_133, CAM2_STANDBY_N, LSEC pin 34 */
390                 "NC", /* GPIO_134 */
391                 "NC", /* GPIO_135 */
392                 "BOOT_CONFIG8", /* GPIO_136 */
393                 "NC", /* GPIO_137 */
394                 "NC", /* GPIO_138 */
395                 "GPS_SSBI2", /* GPIO_139 */
396                 "GPS_SSBI1", /* GPIO_140 */
397                 "NC", /* GPIO_141 */
398                 "NC", /* GPIO_142 */
399                 "NC", /* GPIO_143 */
400                 "BOOT_CONFIG6", /* GPIO_144 */
401                 "NC", /* GPIO_145 */
402                 "NC", /* GPIO_146 */
403                 "NC", /* GPIO_147 */
404                 "NC", /* GPIO_148 */
405                 "NC"; /* GPIO_149 */
406
407         sdc2_cd_on: sdc2_cd_on {
408                 mux {
409                         pins = "gpio38";
410                         function = "gpio";
411                 };
412
413                 config {
414                         pins = "gpio38";
415                         bias-pull-up;           /* pull up */
416                         drive-strength = <16>;  /* 16 MA */
417                 };
418         };
419
420         sdc2_cd_off: sdc2_cd_off {
421                 mux {
422                         pins = "gpio38";
423                         function = "gpio";
424                 };
425
426                 config {
427                         pins = "gpio38";
428                         bias-pull-up;           /* pull up */
429                         drive-strength = <2>;   /* 2 MA */
430                 };
431         };
432
433         blsp1_uart1_default: blsp1_uart1_default {
434                 mux {
435                         pins = "gpio41", "gpio42", "gpio43", "gpio44";
436                         function = "blsp_uart2";
437                 };
438
439                 config {
440                         pins = "gpio41", "gpio42", "gpio43", "gpio44";
441                         drive-strength = <16>;
442                         bias-disable;
443                 };
444         };
445
446         blsp1_uart1_sleep: blsp1_uart1_sleep {
447                 mux {
448                         pins = "gpio41", "gpio42", "gpio43", "gpio44";
449                         function = "gpio";
450                 };
451
452                 config {
453                         pins = "gpio41", "gpio42", "gpio43", "gpio44";
454                         drive-strength = <2>;
455                         bias-disable;
456                 };
457         };
458
459         hdmi_hpd_active: hdmi_hpd_active {
460                 mux {
461                         pins = "gpio34";
462                         function = "hdmi_hot";
463                 };
464
465                 config {
466                         pins = "gpio34";
467                         bias-pull-down;
468                         drive-strength = <16>;
469                 };
470         };
471
472         hdmi_hpd_suspend: hdmi_hpd_suspend {
473                 mux {
474                         pins = "gpio34";
475                         function = "hdmi_hot";
476                 };
477
478                 config {
479                         pins = "gpio34";
480                         bias-pull-down;
481                         drive-strength = <2>;
482                 };
483         };
484
485         hdmi_ddc_active: hdmi_ddc_active {
486                 mux {
487                         pins = "gpio32", "gpio33";
488                         function = "hdmi_ddc";
489                 };
490
491                 config {
492                         pins = "gpio32", "gpio33";
493                         drive-strength = <2>;
494                         bias-pull-up;
495                 };
496         };
497
498         hdmi_ddc_suspend: hdmi_ddc_suspend {
499                 mux {
500                         pins = "gpio32", "gpio33";
501                         function = "hdmi_ddc";
502                 };
503
504                 config {
505                         pins = "gpio32", "gpio33";
506                         drive-strength = <2>;
507                         bias-pull-down;
508                 };
509         };
510 };
511
512 &pcie0 {
513         status = "okay";
514         perst-gpio = <&msmgpio 35 GPIO_ACTIVE_LOW>;
515         vddpe-3v3-supply = <&wlan_en>;
516         vdda-supply = <&vreg_l28a_0p925>;
517 };
518
519 &pcie1 {
520         status = "okay";
521         perst-gpio = <&msmgpio 130 GPIO_ACTIVE_LOW>;
522         vdda-supply = <&vreg_l28a_0p925>;
523 };
524
525 &pcie2 {
526         status = "okay";
527         perst-gpio = <&msmgpio 114 GPIO_ACTIVE_LOW>;
528         vdda-supply = <&vreg_l28a_0p925>;
529 };
530
531 &pcie_phy {
532         status = "okay";
533
534         vdda-phy-supply = <&vreg_l28a_0p925>;
535         vdda-pll-supply = <&vreg_l12a_1p8>;
536 };
537
538 &pm8994_gpios {
539         gpio-line-names =
540                 "NC",
541                 "KEY_VOLP_N",
542                 "NC",
543                 "BL1_PWM",
544                 "GPIO-F", /* BL0_PWM, LSEC pin 28 */
545                 "BL1_EN",
546                 "NC",
547                 "WLAN_EN",
548                 "NC",
549                 "NC",
550                 "NC",
551                 "NC",
552                 "NC",
553                 "NC",
554                 "DIVCLK1",
555                 "DIVCLK2",
556                 "DIVCLK3",
557                 "DIVCLK4",
558                 "BT_EN",
559                 "PMIC_SLB",
560                 "PMIC_BUA",
561                 "USB_VBUS_DET";
562
563         pinctrl-names = "default";
564         pinctrl-0 = <&ls_exp_gpio_f &bt_en_gpios>;
565
566         ls_exp_gpio_f: pm8994_gpio5 {
567                 pinconf {
568                         pins = "gpio5";
569                         output-low;
570                         power-source = <2>; // PM8994_GPIO_S4, 1.8V
571                 };
572         };
573
574         bt_en_gpios: bt_en_gpios {
575                 pinconf {
576                         pins = "gpio19";
577                         function = PMIC_GPIO_FUNC_NORMAL;
578                         output-low;
579                         power-source = <PM8994_GPIO_S4>; // 1.8V
580                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
581                         bias-pull-down;
582                 };
583         };
584
585         wlan_en_gpios: wlan_en_gpios {
586                 pinconf {
587                         pins = "gpio8";
588                         function = PMIC_GPIO_FUNC_NORMAL;
589                         output-low;
590                         power-source = <PM8994_GPIO_S4>; // 1.8V
591                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
592                         bias-pull-down;
593                 };
594         };
595
596         audio_mclk: clk_div1 {
597                 pinconf {
598                         pins = "gpio15";
599                         function = "func1";
600                         power-source = <PM8994_GPIO_S4>; // 1.8V
601                 };
602         };
603
604         volume_up_gpio: pm8996_gpio2 {
605                 pinconf {
606                         pins = "gpio2";
607                         function = "normal";
608                         input-enable;
609                         drive-push-pull;
610                         bias-pull-up;
611                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
612                         power-source = <PM8994_GPIO_S4>; // 1.8V
613                 };
614         };
615
616         divclk4_pin_a: divclk4 {
617                 pinconf {
618                         pins = "gpio18";
619                         function = PMIC_GPIO_FUNC_FUNC2;
620
621                         bias-disable;
622                         power-source = <PM8994_GPIO_S4>;
623                 };
624         };
625
626         usb3_vbus_det_gpio: pm8996_gpio22 {
627                 pinconf {
628                         pins = "gpio22";
629                         function = PMIC_GPIO_FUNC_NORMAL;
630                         input-enable;
631                         bias-pull-down;
632                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
633                         power-source = <PM8994_GPIO_S4>; // 1.8V
634                 };
635         };
636 };
637
638 &pm8994_mpps {
639         gpio-line-names =
640                 "VDDPX_BIAS",
641                 "WIFI_LED",
642                 "NC",
643                 "BT_LED",
644                 "PM_MPP05",
645                 "PM_MPP06",
646                 "PM_MPP07",
647                 "NC";
648 };
649
650 &pm8994_spmi_regulators {
651         qcom,saw-reg = <&saw3>;
652         s9 {
653                 qcom,saw-slave;
654         };
655         s10 {
656                 qcom,saw-slave;
657         };
658         s11 {
659                 qcom,saw-leader;
660                 regulator-always-on;
661                 regulator-min-microvolt = <1230000>;
662                 regulator-max-microvolt = <1230000>;
663         };
664 };
665
666 &pmi8994_gpios {
667         gpio-line-names =
668                 "NC",
669                 "SPKR_AMP_EN1",
670                 "SPKR_AMP_EN2",
671                 "TP61",
672                 "NC",
673                 "USB2_VBUS_DET",
674                 "NC",
675                 "NC",
676                 "NC",
677                 "NC";
678
679         usb2_vbus_det_gpio: pmi8996_gpio6 {
680                 pinconf {
681                         pins = "gpio6";
682                         function = PMIC_GPIO_FUNC_NORMAL;
683                         input-enable;
684                         bias-pull-down;
685                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
686                         power-source = <PM8994_GPIO_S4>; // 1.8V
687                 };
688         };
689 };
690
691 &rpm_requests {
692         pm8994-regulators {
693                 compatible = "qcom,rpm-pm8994-regulators";
694
695                 vdd_s1-supply = <&vph_pwr>;
696                 vdd_s2-supply = <&vph_pwr>;
697                 vdd_s3-supply = <&vph_pwr>;
698                 vdd_s4-supply = <&vph_pwr>;
699                 vdd_s5-supply = <&vph_pwr>;
700                 vdd_s6-supply = <&vph_pwr>;
701                 vdd_s7-supply = <&vph_pwr>;
702                 vdd_s8-supply = <&vph_pwr>;
703                 vdd_s9-supply = <&vph_pwr>;
704                 vdd_s10-supply = <&vph_pwr>;
705                 vdd_s11-supply = <&vph_pwr>;
706                 vdd_s12-supply = <&vph_pwr>;
707                 vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
708                 vdd_l3_l11-supply = <&vreg_s8a_l3a_input>;
709                 vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
710                 vdd_l5_l7-supply = <&vreg_s5a_2p15>;
711                 vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
712                 vdd_l8_l16_l30-supply = <&vph_pwr>;
713                 vdd_l14_l15-supply = <&vreg_s5a_2p15>;
714                 vdd_l25-supply = <&vreg_s3a_1p3>;
715                 vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
716
717                 vreg_s3a_1p3: s3 {
718                         regulator-name = "vreg_s3a_1p3";
719                         regulator-min-microvolt = <1300000>;
720                         regulator-max-microvolt = <1300000>;
721                 };
722
723                 /**
724                  * 1.8v required on LS expansion
725                  * for mezzanine boards
726                  */
727                 vreg_s4a_1p8: s4 {
728                         regulator-name = "vreg_s4a_1p8";
729                         regulator-min-microvolt = <1800000>;
730                         regulator-max-microvolt = <1800000>;
731                         regulator-always-on;
732                 };
733                 vreg_s5a_2p15: s5 {
734                         regulator-name = "vreg_s5a_2p15";
735                         regulator-min-microvolt = <2150000>;
736                         regulator-max-microvolt = <2150000>;
737                 };
738                 vreg_s7a_1p0: s7 {
739                         regulator-name = "vreg_s7a_1p0";
740                         regulator-min-microvolt = <800000>;
741                         regulator-max-microvolt = <800000>;
742                 };
743
744                 vreg_l1a_1p0: l1 {
745                         regulator-name = "vreg_l1a_1p0";
746                         regulator-min-microvolt = <1000000>;
747                         regulator-max-microvolt = <1000000>;
748                 };
749                 vreg_l2a_1p25: l2 {
750                         regulator-name = "vreg_l2a_1p25";
751                         regulator-min-microvolt = <1250000>;
752                         regulator-max-microvolt = <1250000>;
753                 };
754                 vreg_l3a_0p875: l3 {
755                         regulator-name = "vreg_l3a_0p875";
756                         regulator-min-microvolt = <850000>;
757                         regulator-max-microvolt = <850000>;
758                 };
759                 vreg_l4a_1p225: l4 {
760                         regulator-name = "vreg_l4a_1p225";
761                         regulator-min-microvolt = <1225000>;
762                         regulator-max-microvolt = <1225000>;
763                 };
764                 vreg_l6a_1p2: l6 {
765                         regulator-name = "vreg_l6a_1p2";
766                         regulator-min-microvolt = <1200000>;
767                         regulator-max-microvolt = <1200000>;
768                 };
769                 vreg_l8a_1p8: l8 {
770                         regulator-name = "vreg_l8a_1p8";
771                         regulator-min-microvolt = <1800000>;
772                         regulator-max-microvolt = <1800000>;
773                 };
774                 vreg_l9a_1p8: l9 {
775                         regulator-name = "vreg_l9a_1p8";
776                         regulator-min-microvolt = <1800000>;
777                         regulator-max-microvolt = <1800000>;
778                 };
779                 vreg_l10a_1p8: l10 {
780                         regulator-name = "vreg_l10a_1p8";
781                         regulator-min-microvolt = <1800000>;
782                         regulator-max-microvolt = <1800000>;
783                 };
784                 vreg_l11a_1p15: l11 {
785                         regulator-name = "vreg_l11a_1p15";
786                         regulator-min-microvolt = <1150000>;
787                         regulator-max-microvolt = <1150000>;
788                 };
789                 vreg_l12a_1p8: l12 {
790                         regulator-name = "vreg_l12a_1p8";
791                         regulator-min-microvolt = <1800000>;
792                         regulator-max-microvolt = <1800000>;
793                 };
794                 vreg_l13a_2p95: l13 {
795                         regulator-name = "vreg_l13a_2p95";
796                         regulator-min-microvolt = <1800000>;
797                         regulator-max-microvolt = <2950000>;
798                 };
799                 vreg_l14a_1p8: l14 {
800                         regulator-name = "vreg_l14a_1p8";
801                         regulator-min-microvolt = <1800000>;
802                         regulator-max-microvolt = <1800000>;
803                 };
804                 vreg_l15a_1p8: l15 {
805                         regulator-name = "vreg_l15a_1p8";
806                         regulator-min-microvolt = <1800000>;
807                         regulator-max-microvolt = <1800000>;
808                 };
809                 vreg_l16a_2p7: l16 {
810                         regulator-name = "vreg_l16a_2p7";
811                         regulator-min-microvolt = <2700000>;
812                         regulator-max-microvolt = <2700000>;
813                 };
814                 vreg_l17a_2p8: l17 {
815                         regulator-name = "vreg_l17a_2p8";
816                         regulator-min-microvolt = <2500000>;
817                         regulator-max-microvolt = <2500000>;
818                 };
819                 vreg_l18a_2p85: l18 {
820                         regulator-name = "vreg_l18a_2p85";
821                         regulator-min-microvolt = <2700000>;
822                         regulator-max-microvolt = <2900000>;
823                 };
824                 vreg_l19a_2p8: l19 {
825                         regulator-name = "vreg_l19a_2p8";
826                         regulator-min-microvolt = <3000000>;
827                         regulator-max-microvolt = <3000000>;
828                 };
829                 vreg_l20a_2p95: l20 {
830                         regulator-name = "vreg_l20a_2p95";
831                         regulator-min-microvolt = <2950000>;
832                         regulator-max-microvolt = <2950000>;
833                         regulator-allow-set-load;
834                 };
835                 vreg_l21a_2p95: l21 {
836                         regulator-name = "vreg_l21a_2p95";
837                         regulator-min-microvolt = <2950000>;
838                         regulator-max-microvolt = <2950000>;
839                         regulator-allow-set-load;
840                         regulator-system-load = <200000>;
841                 };
842                 vreg_l22a_3p0: l22 {
843                         regulator-name = "vreg_l22a_3p0";
844                         regulator-min-microvolt = <3300000>;
845                         regulator-max-microvolt = <3300000>;
846                 };
847                 vreg_l23a_2p8: l23 {
848                         regulator-name = "vreg_l23a_2p8";
849                         regulator-min-microvolt = <2800000>;
850                         regulator-max-microvolt = <2800000>;
851                 };
852                 vreg_l24a_3p075: l24 {
853                         regulator-name = "vreg_l24a_3p075";
854                         regulator-min-microvolt = <3075000>;
855                         regulator-max-microvolt = <3075000>;
856                 };
857                 vreg_l25a_1p2: l25 {
858                         regulator-name = "vreg_l25a_1p2";
859                         regulator-min-microvolt = <1200000>;
860                         regulator-max-microvolt = <1200000>;
861                         regulator-allow-set-load;
862                 };
863                 vreg_l26a_0p8: l27 {
864                         regulator-name = "vreg_l26a_0p8";
865                         regulator-min-microvolt = <1000000>;
866                         regulator-max-microvolt = <1000000>;
867                 };
868                 vreg_l28a_0p925: l28 {
869                         regulator-name = "vreg_l28a_0p925";
870                         regulator-min-microvolt = <925000>;
871                         regulator-max-microvolt = <925000>;
872                         regulator-allow-set-load;
873                 };
874                 vreg_l29a_2p8: l29 {
875                         regulator-name = "vreg_l29a_2p8";
876                         regulator-min-microvolt = <2800000>;
877                         regulator-max-microvolt = <2800000>;
878                 };
879                 vreg_l30a_1p8: l30 {
880                         regulator-name = "vreg_l30a_1p8";
881                         regulator-min-microvolt = <1800000>;
882                         regulator-max-microvolt = <1800000>;
883                 };
884                 vreg_l32a_1p8: l32 {
885                         regulator-name = "vreg_l32a_1p8";
886                         regulator-min-microvolt = <1800000>;
887                         regulator-max-microvolt = <1800000>;
888                 };
889
890                 vreg_lvs1a_1p8: lvs1 {
891                         regulator-name = "vreg_lvs1a_1p8";
892                 };
893
894                 vreg_lvs2a_1p8: lvs2 {
895                         regulator-name = "vreg_lvs2a_1p8";
896                 };
897         };
898 };
899
900 &sdhc2 {
901         /* External SD card */
902         pinctrl-names = "default", "sleep";
903         pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
904         pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
905         cd-gpios = <&msmgpio 38 0x1>;
906         vmmc-supply = <&vreg_l21a_2p95>;
907         vqmmc-supply = <&vreg_l13a_2p95>;
908         status = "okay";
909 };
910
911 &sound {
912         compatible = "qcom,apq8096-sndcard";
913         model = "DB820c";
914         audio-routing = "RX_BIAS", "MCLK";
915
916         mm1-dai-link {
917                 link-name = "MultiMedia1";
918                 cpu {
919                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
920                 };
921         };
922
923         mm2-dai-link {
924                 link-name = "MultiMedia2";
925                 cpu {
926                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
927                 };
928         };
929
930         mm3-dai-link {
931                 link-name = "MultiMedia3";
932                 cpu {
933                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
934                 };
935         };
936
937         hdmi-dai-link {
938                 link-name = "HDMI";
939                 cpu {
940                         sound-dai = <&q6afedai HDMI_RX>;
941                 };
942
943                 platform {
944                         sound-dai = <&q6routing>;
945                 };
946
947                 codec {
948                         sound-dai = <&hdmi 0>;
949                 };
950         };
951
952         slim-dai-link {
953                 link-name = "SLIM Playback";
954                 cpu {
955                         sound-dai = <&q6afedai SLIMBUS_6_RX>;
956                 };
957
958                 platform {
959                         sound-dai = <&q6routing>;
960         };
961
962                 codec {
963                         sound-dai = <&wcd9335 6>;
964                 };
965         };
966
967         slimcap-dai-link {
968                 link-name = "SLIM Capture";
969                 cpu {
970                         sound-dai = <&q6afedai SLIMBUS_0_TX>;
971                 };
972
973                 platform {
974                         sound-dai = <&q6routing>;
975                 };
976
977                 codec {
978                         sound-dai = <&wcd9335 1>;
979                 };
980         };
981 };
982
983 &spmi_bus {
984         pmic@0 {
985                 pon@800 {
986                         resin {
987                                 compatible = "qcom,pm8941-resin";
988                                 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
989                                 debounce = <15625>;
990                                 bias-pull-up;
991                                 linux,code = <KEY_VOLUMEDOWN>;
992                         };
993                 };
994         };
995 };
996
997 &ufsphy {
998         status = "okay";
999
1000         vdda-phy-supply = <&vreg_l28a_0p925>;
1001         vdda-pll-supply = <&vreg_l12a_1p8>;
1002
1003         vdda-phy-max-microamp = <18380>;
1004         vdda-pll-max-microamp = <9440>;
1005
1006         vddp-ref-clk-supply = <&vreg_l25a_1p2>;
1007         vddp-ref-clk-max-microamp = <100>;
1008         vddp-ref-clk-always-on;
1009 };
1010
1011 &ufshc {
1012         status = "okay";
1013
1014         vcc-supply = <&vreg_l20a_2p95>;
1015         vccq-supply = <&vreg_l25a_1p2>;
1016         vccq2-supply = <&vreg_s4a_1p8>;
1017
1018         vcc-max-microamp = <600000>;
1019         vccq-max-microamp = <450000>;
1020         vccq2-max-microamp = <450000>;
1021 };
1022
1023 &usb2 {
1024         status = "okay";
1025         extcon = <&usb2_id>;
1026
1027         dwc3@7600000 {
1028                 extcon = <&usb2_id>;
1029                 dr_mode = "otg";
1030                 maximum-speed = "high-speed";
1031         };
1032 };
1033
1034 &usb3 {
1035         status = "okay";
1036         extcon = <&usb3_id>;
1037
1038         dwc3@6a00000 {
1039                 extcon = <&usb3_id>;
1040                 dr_mode = "otg";
1041         };
1042 };
1043
1044 &usb3phy {
1045         status = "okay";
1046
1047         vdda-phy-supply = <&vreg_l28a_0p925>;
1048         vdda-pll-supply = <&vreg_l12a_1p8>;
1049
1050 };
1051
1052 &wcd9335 {
1053         clock-names = "mclk", "slimbus";
1054         clocks = <&div1_mclk>,
1055                  <&rpmcc RPM_SMD_BB_CLK1>;
1056
1057         vdd-buck-supply = <&vreg_s4a_1p8>;
1058         vdd-buck-sido-supply = <&vreg_s4a_1p8>;
1059         vdd-tx-supply = <&vreg_s4a_1p8>;
1060         vdd-rx-supply = <&vreg_s4a_1p8>;
1061         vdd-io-supply = <&vreg_s4a_1p8>;
1062 };