GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / qcom-msm8974-lge-nexus5-hammerhead.dts
1 // SPDX-License-Identifier: GPL-2.0
2 #include "qcom-msm8974.dtsi"
3 #include "qcom-pm8841.dtsi"
4 #include "qcom-pm8941.dtsi"
5 #include <dt-bindings/input/input.h>
6 #include <dt-bindings/leds/common.h>
7 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
8
9 / {
10         model = "LGE MSM 8974 HAMMERHEAD";
11         compatible = "lge,hammerhead", "qcom,msm8974";
12
13         aliases {
14                 serial0 = &blsp1_uart1;
15                 serial1 = &blsp2_uart4;
16         };
17
18         chosen {
19                 stdout-path = "serial0:115200n8";
20         };
21
22         gpio-keys {
23                 compatible = "gpio-keys";
24
25                 pinctrl-names = "default";
26                 pinctrl-0 = <&gpio_keys_pin_a>;
27
28                 key-volume-up {
29                         label = "volume_up";
30                         gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
31                         linux,input-type = <1>;
32                         linux,code = <KEY_VOLUMEUP>;
33                 };
34
35                 key-volume-down {
36                         label = "volume_down";
37                         gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
38                         linux,input-type = <1>;
39                         linux,code = <KEY_VOLUMEDOWN>;
40                 };
41         };
42
43         vreg_wlan: wlan-regulator {
44                 compatible = "regulator-fixed";
45
46                 regulator-name = "wl-reg";
47                 regulator-min-microvolt = <3300000>;
48                 regulator-max-microvolt = <3300000>;
49
50                 gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
51                 enable-active-high;
52
53                 pinctrl-names = "default";
54                 pinctrl-0 = <&wlan_regulator_pin>;
55         };
56 };
57
58 &blsp1_i2c1 {
59         status = "okay";
60         clock-frequency = <100000>;
61
62         charger: bq24192@6b {
63                 compatible = "ti,bq24192";
64                 reg = <0x6b>;
65                 interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;
66
67                 omit-battery-class;
68
69                 usb_otg_vbus: usb-otg-vbus { };
70         };
71
72         fuelgauge: max17048@36 {
73                 compatible = "maxim,max17048";
74                 reg = <0x36>;
75
76                 maxim,double-soc;
77                 maxim,rcomp = /bits/ 8 <0x4d>;
78
79                 interrupt-parent = <&tlmm>;
80                 interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
81
82                 pinctrl-names = "default";
83                 pinctrl-0 = <&fuelgauge_pin>;
84
85                 maxim,alert-low-soc-level = <2>;
86         };
87 };
88
89 &blsp1_i2c2 {
90         status = "okay";
91         clock-frequency = <355000>;
92
93         synaptics@70 {
94                 compatible = "syna,rmi4-i2c";
95                 reg = <0x70>;
96
97                 interrupts-extended = <&tlmm 5 IRQ_TYPE_EDGE_FALLING>;
98                 vdd-supply = <&pm8941_l22>;
99                 vio-supply = <&pm8941_lvs3>;
100
101                 pinctrl-names = "default";
102                 pinctrl-0 = <&touch_pin>;
103
104                 #address-cells = <1>;
105                 #size-cells = <0>;
106
107                 rmi4-f01@1 {
108                         reg = <0x1>;
109                         syna,nosleep-mode = <1>;
110                 };
111
112                 rmi4-f12@12 {
113                         reg = <0x12>;
114                         syna,sensor-type = <1>;
115                 };
116         };
117 };
118
119 &blsp1_i2c3 {
120         status = "okay";
121         clock-frequency = <100000>;
122
123         avago_apds993@39 {
124                 compatible = "avago,apds9930";
125                 reg = <0x39>;
126                 interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
127                 vdd-supply = <&pm8941_l17>;
128                 vddio-supply = <&pm8941_lvs1>;
129                 led-max-microamp = <100000>;
130                 amstaos,proximity-diodes = <0>;
131         };
132 };
133
134 &blsp2_i2c5 {
135         status = "okay";
136         clock-frequency = <355000>;
137
138         led-controller@38 {
139                 compatible = "ti,lm3630a";
140                 status = "okay";
141                 reg = <0x38>;
142
143                 #address-cells = <1>;
144                 #size-cells = <0>;
145
146                 led@0 {
147                         reg = <0>;
148                         led-sources = <0 1>;
149                         label = "lcd-backlight";
150                         default-brightness = <200>;
151                 };
152         };
153 };
154
155 &blsp2_i2c6 {
156         status = "okay";
157         clock-frequency = <100000>;
158
159         mpu6515@68 {
160                 compatible = "invensense,mpu6515";
161                 reg = <0x68>;
162                 interrupts-extended = <&tlmm 73 IRQ_TYPE_EDGE_FALLING>;
163                 vddio-supply = <&pm8941_lvs1>;
164
165                 pinctrl-names = "default";
166                 pinctrl-0 = <&mpu6515_pin>;
167
168                 mount-matrix = "0", "-1", "0",
169                                 "-1", "0", "0",
170                                 "0", "0", "1";
171
172                 i2c-gate {
173                         #address-cells = <1>;
174                         #size-cells = <0>;
175                         ak8963@f {
176                                 compatible = "asahi-kasei,ak8963";
177                                 reg = <0x0f>;
178                                 gpios = <&tlmm 67 GPIO_ACTIVE_HIGH>;
179                                 vid-supply = <&pm8941_lvs1>;
180                                 vdd-supply = <&pm8941_l17>;
181                         };
182
183                         bmp280@76 {
184                                 compatible = "bosch,bmp280";
185                                 reg = <0x76>;
186                                 vdda-supply = <&pm8941_lvs1>;
187                                 vddd-supply = <&pm8941_l17>;
188                         };
189                 };
190         };
191 };
192
193 &blsp1_uart1 {
194         status = "okay";
195 };
196
197 &blsp2_uart4 {
198         status = "okay";
199
200         bluetooth {
201                 compatible = "brcm,bcm43438-bt";
202                 max-speed = <3000000>;
203
204                 pinctrl-names = "default";
205                 pinctrl-0 = <&bt_pin>;
206
207                 host-wakeup-gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
208                 device-wakeup-gpios = <&tlmm 62 GPIO_ACTIVE_HIGH>;
209                 shutdown-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
210         };
211 };
212
213 &dsi0 {
214         status = "okay";
215
216         vdda-supply = <&pm8941_l2>;
217         vdd-supply = <&pm8941_lvs3>;
218         vddio-supply = <&pm8941_l12>;
219
220         panel: panel@0 {
221                 reg = <0>;
222                 compatible = "lg,acx467akm-7";
223
224                 pinctrl-names = "default";
225                 pinctrl-0 = <&panel_pin>;
226
227                 port {
228                         panel_in: endpoint {
229                                 remote-endpoint = <&dsi0_out>;
230                         };
231                 };
232         };
233 };
234
235 &dsi0_out {
236         remote-endpoint = <&panel_in>;
237         data-lanes = <0 1 2 3>;
238 };
239
240 &dsi0_phy {
241         status = "okay";
242
243         vddio-supply = <&pm8941_l12>;
244 };
245
246 &mdss {
247         status = "okay";
248 };
249
250 &otg {
251         status = "okay";
252
253         phys = <&usb_hs1_phy>;
254         phy-select = <&tcsr 0xb000 0>;
255
256         extcon = <&charger>, <&usb_id>;
257         vbus-supply = <&usb_otg_vbus>;
258
259         hnp-disable;
260         srp-disable;
261         adp-disable;
262
263         ulpi {
264                 phy@a {
265                         status = "okay";
266
267                         v1p8-supply = <&pm8941_l6>;
268                         v3p3-supply = <&pm8941_l24>;
269
270                         qcom,init-seq = /bits/ 8 <0x1 0x64>;
271                 };
272         };
273 };
274
275 &pm8941_gpios {
276         gpio_keys_pin_a: gpio-keys-active-state {
277                 pins = "gpio2", "gpio3";
278                 function = "normal";
279
280                 bias-pull-up;
281                 power-source = <PM8941_GPIO_S3>;
282         };
283
284         fuelgauge_pin: fuelgauge-int-state {
285                 pins = "gpio9";
286                 function = "normal";
287
288                 bias-disable;
289                 input-enable;
290                 power-source = <PM8941_GPIO_S3>;
291         };
292
293         wlan_sleep_clk_pin: wl-sleep-clk-state {
294                 pins = "gpio16";
295                 function = "func2";
296
297                 output-high;
298                 power-source = <PM8941_GPIO_S3>;
299         };
300
301         wlan_regulator_pin: wl-reg-active-state {
302                 pins = "gpio17";
303                 function = "normal";
304
305                 bias-disable;
306                 power-source = <PM8941_GPIO_S3>;
307         };
308
309         otg {
310                 gpio-hog;
311                 gpios = <35 GPIO_ACTIVE_HIGH>;
312                 output-high;
313                 line-name = "otg-gpio";
314         };
315 };
316
317 &pm8941_lpg {
318         status = "okay";
319
320         qcom,power-source = <1>;
321
322         multi-led {
323                 color = <LED_COLOR_ID_RGB>;
324                 function = LED_FUNCTION_STATUS;
325
326                 #address-cells = <1>;
327                 #size-cells = <0>;
328
329                 led@7 {
330                         reg = <7>;
331                         color = <LED_COLOR_ID_RED>;
332                 };
333
334                 led@6 {
335                         reg = <6>;
336                         color = <LED_COLOR_ID_GREEN>;
337                 };
338
339                 led@5 {
340                         reg = <5>;
341                         color = <LED_COLOR_ID_BLUE>;
342                 };
343         };
344 };
345
346 &rpm_requests {
347         pm8841-regulators {
348                 compatible = "qcom,rpm-pm8841-regulators";
349
350                 pm8841_s1: s1 {
351                         regulator-min-microvolt = <675000>;
352                         regulator-max-microvolt = <1050000>;
353                 };
354
355                 pm8841_s2: s2 {
356                         regulator-min-microvolt = <500000>;
357                         regulator-max-microvolt = <1050000>;
358                 };
359
360                 pm8841_s3: s3 {
361                         regulator-min-microvolt = <1050000>;
362                         regulator-max-microvolt = <1050000>;
363                 };
364
365                 pm8841_s4: s4 {
366                         regulator-min-microvolt = <815000>;
367                         regulator-max-microvolt = <900000>;
368                 };
369         };
370
371         pm8941-regulators {
372                 compatible = "qcom,rpm-pm8941-regulators";
373
374                 vdd_l1_l3-supply = <&pm8941_s1>;
375                 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
376                 vdd_l4_l11-supply = <&pm8941_s1>;
377                 vdd_l5_l7-supply = <&pm8941_s2>;
378                 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
379                 vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
380                 vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
381                 vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
382                 vdd_l21-supply = <&vreg_boost>;
383
384                 pm8941_s1: s1 {
385                         regulator-min-microvolt = <1300000>;
386                         regulator-max-microvolt = <1300000>;
387                         regulator-always-on;
388                         regulator-boot-on;
389                 };
390
391                 pm8941_s2: s2 {
392                         regulator-min-microvolt = <2150000>;
393                         regulator-max-microvolt = <2150000>;
394                         regulator-boot-on;
395                 };
396
397                 pm8941_s3: s3 {
398                         regulator-min-microvolt = <1800000>;
399                         regulator-max-microvolt = <1800000>;
400                         regulator-always-on;
401                         regulator-boot-on;
402                 };
403
404                 pm8941_l1: l1 {
405                         regulator-min-microvolt = <1225000>;
406                         regulator-max-microvolt = <1225000>;
407                         regulator-always-on;
408                         regulator-boot-on;
409                 };
410
411                 pm8941_l2: l2 {
412                         regulator-min-microvolt = <1200000>;
413                         regulator-max-microvolt = <1200000>;
414                 };
415
416                 pm8941_l3: l3 {
417                         regulator-min-microvolt = <1225000>;
418                         regulator-max-microvolt = <1225000>;
419                 };
420
421                 pm8941_l4: l4 {
422                         regulator-min-microvolt = <1225000>;
423                         regulator-max-microvolt = <1225000>;
424                 };
425
426                 pm8941_l5: l5 {
427                         regulator-min-microvolt = <1800000>;
428                         regulator-max-microvolt = <1800000>;
429                 };
430
431                 pm8941_l6: l6 {
432                         regulator-min-microvolt = <1800000>;
433                         regulator-max-microvolt = <1800000>;
434                         regulator-boot-on;
435                 };
436
437                 pm8941_l7: l7 {
438                         regulator-min-microvolt = <1800000>;
439                         regulator-max-microvolt = <1800000>;
440                         regulator-boot-on;
441                 };
442
443                 pm8941_l8: l8 {
444                         regulator-min-microvolt = <1800000>;
445                         regulator-max-microvolt = <1800000>;
446                 };
447
448                 pm8941_l9: l9 {
449                         regulator-min-microvolt = <1800000>;
450                         regulator-max-microvolt = <2950000>;
451                 };
452
453                 pm8941_l10: l10 {
454                         regulator-min-microvolt = <1800000>;
455                         regulator-max-microvolt = <2950000>;
456                 };
457
458                 pm8941_l11: l11 {
459                         regulator-min-microvolt = <1300000>;
460                         regulator-max-microvolt = <1300000>;
461                 };
462
463                 pm8941_l12: l12 {
464                         regulator-min-microvolt = <1800000>;
465                         regulator-max-microvolt = <1800000>;
466                         regulator-always-on;
467                         regulator-boot-on;
468                 };
469
470                 pm8941_l13: l13 {
471                         regulator-min-microvolt = <1800000>;
472                         regulator-max-microvolt = <2950000>;
473                         regulator-boot-on;
474                 };
475
476                 pm8941_l14: l14 {
477                         regulator-min-microvolt = <1800000>;
478                         regulator-max-microvolt = <1800000>;
479                 };
480
481                 pm8941_l15: l15 {
482                         regulator-min-microvolt = <2050000>;
483                         regulator-max-microvolt = <2050000>;
484                 };
485
486                 pm8941_l16: l16 {
487                         regulator-min-microvolt = <2700000>;
488                         regulator-max-microvolt = <2700000>;
489                 };
490
491                 pm8941_l17: l17 {
492                         regulator-min-microvolt = <2850000>;
493                         regulator-max-microvolt = <2850000>;
494                 };
495
496                 pm8941_l18: l18 {
497                         regulator-min-microvolt = <2850000>;
498                         regulator-max-microvolt = <2850000>;
499                 };
500
501                 pm8941_l19: l19 {
502                         regulator-min-microvolt = <3000000>;
503                         regulator-max-microvolt = <3300000>;
504                 };
505
506                 pm8941_l20: l20 {
507                         regulator-min-microvolt = <2950000>;
508                         regulator-max-microvolt = <2950000>;
509                         regulator-system-load = <200000>;
510                         regulator-allow-set-load;
511                         regulator-boot-on;
512                 };
513
514                 pm8941_l21: l21 {
515                         regulator-min-microvolt = <2950000>;
516                         regulator-max-microvolt = <2950000>;
517                         regulator-boot-on;
518                 };
519
520                 pm8941_l22: l22 {
521                         regulator-min-microvolt = <3000000>;
522                         regulator-max-microvolt = <3300000>;
523                 };
524
525                 pm8941_l23: l23 {
526                         regulator-min-microvolt = <3000000>;
527                         regulator-max-microvolt = <3000000>;
528                 };
529
530                 pm8941_l24: l24 {
531                         regulator-min-microvolt = <3075000>;
532                         regulator-max-microvolt = <3075000>;
533                         regulator-boot-on;
534                 };
535
536                 pm8941_lvs1: lvs1 {};
537                 pm8941_lvs3: lvs3 {};
538         };
539 };
540
541 &sdhc_1 {
542         status = "okay";
543
544         vmmc-supply = <&pm8941_l20>;
545         vqmmc-supply = <&pm8941_s3>;
546
547         pinctrl-names = "default", "sleep";
548         pinctrl-0 = <&sdc1_on>;
549         pinctrl-1 = <&sdc1_off>;
550 };
551
552 &sdhc_2 {
553         status = "okay";
554
555         max-frequency = <100000000>;
556         vmmc-supply = <&vreg_wlan>;
557         vqmmc-supply = <&pm8941_s3>;
558         non-removable;
559
560         pinctrl-names = "default", "sleep";
561         pinctrl-0 = <&sdc2_on>;
562         pinctrl-1 = <&sdc2_off>;
563
564         bcrmf@1 {
565                 compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
566                 reg = <1>;
567
568                 brcm,drive-strength = <10>;
569
570                 pinctrl-names = "default";
571                 pinctrl-0 = <&wlan_sleep_clk_pin>;
572         };
573 };
574
575 &tlmm {
576         sdc1_on: sdc1-on {
577                 clk {
578                         pins = "sdc1_clk";
579                         drive-strength = <16>;
580                         bias-disable;
581                 };
582
583                 cmd-data {
584                         pins = "sdc1_cmd", "sdc1_data";
585                         drive-strength = <10>;
586                         bias-pull-up;
587                 };
588         };
589
590         sdc2_on: sdc2-on {
591                 clk {
592                         pins = "sdc2_clk";
593                         drive-strength = <6>;
594                         bias-disable;
595                 };
596
597                 cmd-data {
598                         pins = "sdc2_cmd", "sdc2_data";
599                         drive-strength = <6>;
600                         bias-pull-up;
601                 };
602         };
603
604         mpu6515_pin: mpu6515 {
605                 pins = "gpio73";
606                 function = "gpio";
607                 bias-disable;
608                 input-enable;
609         };
610
611         touch_pin: touch {
612                 int {
613                         pins = "gpio5";
614                         function = "gpio";
615
616                         drive-strength = <2>;
617                         bias-disable;
618                         input-enable;
619                 };
620
621                 reset {
622                         pins = "gpio8";
623                         function = "gpio";
624
625                         drive-strength = <2>;
626                         bias-pull-up;
627                 };
628         };
629
630         panel_pin: panel {
631                 pins = "gpio12";
632                 function = "mdp_vsync";
633                 drive-strength = <2>;
634                 bias-disable;
635         };
636
637         bt_pin: bt {
638                 hostwake {
639                         pins = "gpio42";
640                         function = "gpio";
641                 };
642
643                 devwake {
644                         pins = "gpio62";
645                         function = "gpio";
646                 };
647
648                 shutdown {
649                         pins = "gpio41";
650                         function = "gpio";
651                 };
652         };
653 };