Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[linux-2.6-microblaze.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/gpio/gpio.h>
6 #include <dt-bindings/input/input.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_uart10;
16         };
17
18         chosen {
19                 stdout-path = "serial0:115200n8";
20         };
21
22         smd {
23                 rpm {
24                         rpm_requests {
25                                 pm8841-regulators {
26                                         s1 {
27                                                 regulator-min-microvolt = <675000>;
28                                                 regulator-max-microvolt = <1050000>;
29                                         };
30
31                                         s2 {
32                                                 regulator-min-microvolt = <500000>;
33                                                 regulator-max-microvolt = <1050000>;
34                                         };
35
36                                         s3 {
37                                                 regulator-min-microvolt = <1050000>;
38                                                 regulator-max-microvolt = <1050000>;
39                                         };
40
41                                         s4 {
42                                                 regulator-min-microvolt = <815000>;
43                                                 regulator-max-microvolt = <900000>;
44                                         };
45                                 };
46
47                                 pm8941-regulators {
48                                         vdd_l1_l3-supply = <&pm8941_s1>;
49                                         vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
50                                         vdd_l4_l11-supply = <&pm8941_s1>;
51                                         vdd_l5_l7-supply = <&pm8941_s2>;
52                                         vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
53                                         vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
54                                         vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
55                                         vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
56                                         vdd_l21-supply = <&vreg_boost>;
57
58                                         s1 {
59                                                 regulator-min-microvolt = <1300000>;
60                                                 regulator-max-microvolt = <1300000>;
61
62                                                 regulator-always-on;
63                                                 regulator-boot-on;
64                                         };
65
66                                         s2 {
67                                                 regulator-min-microvolt = <2150000>;
68                                                 regulator-max-microvolt = <2150000>;
69
70                                                 regulator-boot-on;
71                                         };
72
73                                         s3 {
74                                                 regulator-min-microvolt = <1800000>;
75                                                 regulator-max-microvolt = <1800000>;
76
77                                                 regulator-always-on;
78                                                 regulator-boot-on;
79                                         };
80
81                                         l1 {
82                                                 regulator-min-microvolt = <1225000>;
83                                                 regulator-max-microvolt = <1225000>;
84
85                                                 regulator-always-on;
86                                                 regulator-boot-on;
87                                         };
88
89                                         l2 {
90                                                 regulator-min-microvolt = <1200000>;
91                                                 regulator-max-microvolt = <1200000>;
92                                         };
93
94                                         l3 {
95                                                 regulator-min-microvolt = <1225000>;
96                                                 regulator-max-microvolt = <1225000>;
97                                         };
98
99                                         l4 {
100                                                 regulator-min-microvolt = <1225000>;
101                                                 regulator-max-microvolt = <1225000>;
102                                         };
103
104                                         l5 {
105                                                 regulator-min-microvolt = <1800000>;
106                                                 regulator-max-microvolt = <1800000>;
107                                         };
108
109                                         l6 {
110                                                 regulator-min-microvolt = <1800000>;
111                                                 regulator-max-microvolt = <1800000>;
112
113                                                 regulator-boot-on;
114                                         };
115
116                                         l7 {
117                                                 regulator-min-microvolt = <1800000>;
118                                                 regulator-max-microvolt = <1800000>;
119
120                                                 regulator-boot-on;
121                                         };
122
123                                         l8 {
124                                                 regulator-min-microvolt = <1800000>;
125                                                 regulator-max-microvolt = <1800000>;
126                                         };
127
128                                         l9 {
129                                                 regulator-min-microvolt = <1800000>;
130                                                 regulator-max-microvolt = <2950000>;
131                                         };
132
133                                         l10 {
134                                                 regulator-min-microvolt = <1800000>;
135                                                 regulator-max-microvolt = <2950000>;
136                                         };
137
138                                         l11 {
139                                                 regulator-min-microvolt = <1300000>;
140                                                 regulator-max-microvolt = <1300000>;
141                                         };
142
143                                         l12 {
144                                                 regulator-min-microvolt = <1800000>;
145                                                 regulator-max-microvolt = <1800000>;
146
147                                                 regulator-always-on;
148                                                 regulator-boot-on;
149                                         };
150
151                                         l13 {
152                                                 regulator-min-microvolt = <1800000>;
153                                                 regulator-max-microvolt = <2950000>;
154
155                                                 regulator-boot-on;
156                                         };
157
158                                         l14 {
159                                                 regulator-min-microvolt = <1800000>;
160                                                 regulator-max-microvolt = <1800000>;
161                                         };
162
163                                         l15 {
164                                                 regulator-min-microvolt = <2050000>;
165                                                 regulator-max-microvolt = <2050000>;
166                                         };
167
168                                         l16 {
169                                                 regulator-min-microvolt = <2700000>;
170                                                 regulator-max-microvolt = <2700000>;
171                                         };
172
173                                         l17 {
174                                                 regulator-min-microvolt = <2850000>;
175                                                 regulator-max-microvolt = <2850000>;
176                                         };
177
178                                         l18 {
179                                                 regulator-min-microvolt = <2850000>;
180                                                 regulator-max-microvolt = <2850000>;
181                                         };
182
183                                         l19 {
184                                                 regulator-min-microvolt = <3000000>;
185                                                 regulator-max-microvolt = <3300000>;
186                                         };
187
188                                         l20 {
189                                                 regulator-min-microvolt = <2950000>;
190                                                 regulator-max-microvolt = <2950000>;
191
192                                                 regulator-boot-on;
193                                                 regulator-system-load = <200000>;
194                                                 regulator-allow-set-load;
195                                         };
196
197                                         l21 {
198                                                 regulator-min-microvolt = <2950000>;
199                                                 regulator-max-microvolt = <2950000>;
200
201                                                 regulator-boot-on;
202                                         };
203
204                                         l22 {
205                                                 regulator-min-microvolt = <3000000>;
206                                                 regulator-max-microvolt = <3300000>;
207                                         };
208
209                                         l23 {
210                                                 regulator-min-microvolt = <3000000>;
211                                                 regulator-max-microvolt = <3000000>;
212                                         };
213
214                                         l24 {
215                                                 regulator-min-microvolt = <3075000>;
216                                                 regulator-max-microvolt = <3075000>;
217
218                                                 regulator-boot-on;
219                                         };
220                                 };
221                         };
222                 };
223         };
224
225         vreg_wlan: wlan-regulator {
226                 compatible = "regulator-fixed";
227
228                 regulator-name = "wl-reg";
229                 regulator-min-microvolt = <3300000>;
230                 regulator-max-microvolt = <3300000>;
231
232                 gpio = <&msmgpio 26 GPIO_ACTIVE_HIGH>;
233                 enable-active-high;
234
235                 pinctrl-names = "default";
236                 pinctrl-0 = <&wlan_regulator_pin>;
237         };
238 };
239
240 &soc {
241         serial@f991d000 {
242                 status = "okay";
243         };
244
245         pinctrl@fd510000 {
246                 sdhc1_pin_a: sdhc1-pin-active {
247                         clk {
248                                 pins = "sdc1_clk";
249                                 drive-strength = <16>;
250                                 bias-disable;
251                         };
252
253                         cmd-data {
254                                 pins = "sdc1_cmd", "sdc1_data";
255                                 drive-strength = <10>;
256                                 bias-pull-up;
257                         };
258                 };
259
260                 sdhc2_pin_a: sdhc2-pin-active {
261                         clk {
262                                 pins = "sdc2_clk";
263                                 drive-strength = <6>;
264                                 bias-disable;
265                         };
266
267                         cmd-data {
268                                 pins = "sdc2_cmd", "sdc2_data";
269                                 drive-strength = <6>;
270                                 bias-pull-up;
271                         };
272                 };
273
274                 i2c1_pins: i2c1 {
275                         mux {
276                                 pins = "gpio2", "gpio3";
277                                 function = "blsp_i2c1";
278
279                                 drive-strength = <2>;
280                                 bias-disable;
281                         };
282                 };
283
284                 i2c2_pins: i2c2 {
285                         mux {
286                                 pins = "gpio6", "gpio7";
287                                 function = "blsp_i2c2";
288
289                                 drive-strength = <2>;
290                                 bias-disable;
291                         };
292                 };
293
294                 i2c3_pins: i2c3 {
295                         mux {
296                                 pins = "gpio10", "gpio11";
297                                 function = "blsp_i2c3";
298                                 drive-strength = <2>;
299                                 bias-disable;
300                         };
301                 };
302
303                 i2c11_pins: i2c11 {
304                         mux {
305                                 pins = "gpio83", "gpio84";
306                                 function = "blsp_i2c11";
307
308                                 drive-strength = <2>;
309                                 bias-disable;
310                         };
311                 };
312
313                 i2c12_pins: i2c12 {
314                         mux {
315                                 pins = "gpio87", "gpio88";
316                                 function = "blsp_i2c12";
317                                 drive-strength = <2>;
318                                 bias-disable;
319                         };
320                 };
321
322                 mpu6515_pin: mpu6515 {
323                         irq {
324                                 pins = "gpio73";
325                                 function = "gpio";
326                                 bias-disable;
327                                 input-enable;
328                         };
329                 };
330
331                 touch_pin: touch {
332                         int {
333                                 pins = "gpio5";
334                                 function = "gpio";
335
336                                 drive-strength = <2>;
337                                 bias-disable;
338                                 input-enable;
339                         };
340
341                         reset {
342                                 pins = "gpio8";
343                                 function = "gpio";
344
345                                 drive-strength = <2>;
346                                 bias-pull-up;
347                         };
348                 };
349
350                 panel_pin: panel {
351                         te {
352                                 pins = "gpio12";
353                                 function = "mdp_vsync";
354
355                                 drive-strength = <2>;
356                                 bias-disable;
357                         };
358                 };
359
360                 bt_pin: bt {
361                         hostwake {
362                                 pins = "gpio42";
363                                 function = "gpio";
364                         };
365
366                         devwake {
367                                 pins = "gpio62";
368                                 function = "gpio";
369                         };
370
371                         shutdown {
372                                 pins = "gpio41";
373                                 function = "gpio";
374                         };
375                 };
376
377                 blsp2_uart10_pin_a: blsp2-uart10-pin-active {
378                         tx {
379                                 pins = "gpio53";
380                                 function = "blsp_uart10";
381
382                                 drive-strength = <2>;
383                                 bias-disable;
384                         };
385
386                         rx {
387                                 pins = "gpio54";
388                                 function = "blsp_uart10";
389
390                                 drive-strength = <2>;
391                                 bias-pull-up;
392                         };
393
394                         cts {
395                                 pins = "gpio55";
396                                 function = "blsp_uart10";
397
398                                 drive-strength = <2>;
399                                 bias-pull-up;
400                         };
401
402                         rts {
403                                 pins = "gpio56";
404                                 function = "blsp_uart10";
405
406                                 drive-strength = <2>;
407                                 bias-disable;
408                         };
409                 };
410         };
411
412         sdhci@f9824900 {
413                 status = "okay";
414
415                 vmmc-supply = <&pm8941_l20>;
416                 vqmmc-supply = <&pm8941_s3>;
417
418                 bus-width = <8>;
419                 non-removable;
420
421                 pinctrl-names = "default";
422                 pinctrl-0 = <&sdhc1_pin_a>;
423         };
424
425         sdhci@f98a4900 {
426                 status = "okay";
427
428                 max-frequency = <100000000>;
429                 bus-width = <4>;
430                 non-removable;
431                 vmmc-supply = <&vreg_wlan>;
432                 vqmmc-supply = <&pm8941_s3>;
433
434                 pinctrl-names = "default";
435                 pinctrl-0 = <&sdhc2_pin_a>;
436
437                 #address-cells = <1>;
438                 #size-cells = <0>;
439
440                 bcrmf@1 {
441                         compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
442                         reg = <1>;
443
444                         brcm,drive-strength = <10>;
445
446                         pinctrl-names = "default";
447                         pinctrl-0 = <&wlan_sleep_clk_pin>;
448                 };
449         };
450
451         gpio-keys {
452                 compatible = "gpio-keys";
453                 input-name = "gpio-keys";
454
455                 pinctrl-names = "default";
456                 pinctrl-0 = <&gpio_keys_pin_a>;
457
458                 volume-up {
459                         label = "volume_up";
460                         gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
461                         linux,input-type = <1>;
462                         linux,code = <KEY_VOLUMEUP>;
463                 };
464
465                 volume-down {
466                         label = "volume_down";
467                         gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
468                         linux,input-type = <1>;
469                         linux,code = <KEY_VOLUMEDOWN>;
470                 };
471         };
472
473         serial@f9960000 {
474                 status = "okay";
475
476                 pinctrl-names = "default";
477                 pinctrl-0 = <&blsp2_uart10_pin_a>;
478
479                 bluetooth {
480                         compatible = "brcm,bcm43438-bt";
481                         max-speed = <3000000>;
482
483                         pinctrl-names = "default";
484                         pinctrl-0 = <&bt_pin>;
485
486                         host-wakeup-gpios = <&msmgpio 42 GPIO_ACTIVE_HIGH>;
487                         device-wakeup-gpios = <&msmgpio 62 GPIO_ACTIVE_HIGH>;
488                         shutdown-gpios = <&msmgpio 41 GPIO_ACTIVE_HIGH>;
489                 };
490         };
491
492         i2c@f9967000 {
493                 status = "okay";
494                 pinctrl-names = "default";
495                 pinctrl-0 = <&i2c11_pins>;
496                 clock-frequency = <355000>;
497                 qcom,src-freq = <50000000>;
498
499                 led-controller@38 {
500                         compatible = "ti,lm3630a";
501                         status = "okay";
502                         reg = <0x38>;
503
504                         #address-cells = <1>;
505                         #size-cells = <0>;
506
507                         led@0 {
508                                 reg = <0>;
509                                 led-sources = <0 1>;
510                                 label = "lcd-backlight";
511                                 default-brightness = <200>;
512                         };
513                 };
514         };
515
516         i2c@f9968000 {
517                 status = "okay";
518                 pinctrl-names = "default";
519                 pinctrl-0 = <&i2c12_pins>;
520                 clock-frequency = <100000>;
521                 qcom,src-freq = <50000000>;
522
523                 mpu6515@68 {
524                         compatible = "invensense,mpu6515";
525                         reg = <0x68>;
526                         interrupts-extended = <&msmgpio 73 IRQ_TYPE_EDGE_FALLING>;
527                         vddio-supply = <&pm8941_lvs1>;
528
529                         pinctrl-names = "default";
530                         pinctrl-0 = <&mpu6515_pin>;
531
532                         mount-matrix = "0", "-1", "0",
533                                        "-1", "0", "0",
534                                        "0", "0", "1";
535
536                         i2c-gate {
537                                 #address-cells = <1>;
538                                 #size-cells = <0>;
539                                 ak8963@f {
540                                         compatible = "asahi-kasei,ak8963";
541                                         reg = <0x0f>;
542                                         gpios = <&msmgpio 67 0>;
543                                         vid-supply = <&pm8941_lvs1>;
544                                         vdd-supply = <&pm8941_l17>;
545                                 };
546
547                                 bmp280@76 {
548                                         compatible = "bosch,bmp280";
549                                         reg = <0x76>;
550                                         vdda-supply = <&pm8941_lvs1>;
551                                         vddd-supply = <&pm8941_l17>;
552                                 };
553                         };
554                 };
555         };
556
557         i2c@f9923000 {
558                 status = "okay";
559                 pinctrl-names = "default";
560                 pinctrl-0 = <&i2c1_pins>;
561                 clock-frequency = <100000>;
562                 qcom,src-freq = <50000000>;
563
564                 charger: bq24192@6b {
565                         compatible = "ti,bq24192";
566                         reg = <0x6b>;
567                         interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;
568
569                         omit-battery-class;
570
571                         usb_otg_vbus: usb-otg-vbus { };
572                 };
573
574                 fuelgauge: max17048@36 {
575                         compatible = "maxim,max17048";
576                         reg = <0x36>;
577
578                         maxim,double-soc;
579                         maxim,rcomp = /bits/ 8 <0x4d>;
580
581                         interrupt-parent = <&msmgpio>;
582                         interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
583
584                         pinctrl-names = "default";
585                         pinctrl-0 = <&fuelgauge_pin>;
586
587                         maxim,alert-low-soc-level = <2>;
588                 };
589         };
590
591         i2c@f9924000 {
592                 status = "okay";
593
594                 clock-frequency = <355000>;
595                 qcom,src-freq = <50000000>;
596
597                 pinctrl-names = "default";
598                 pinctrl-0 = <&i2c2_pins>;
599
600                 synaptics@70 {
601                         compatible = "syna,rmi4-i2c";
602                         reg = <0x70>;
603
604                         interrupts-extended = <&msmgpio 5 IRQ_TYPE_EDGE_FALLING>;
605                         vdd-supply = <&pm8941_l22>;
606                         vio-supply = <&pm8941_lvs3>;
607
608                         pinctrl-names = "default";
609                         pinctrl-0 = <&touch_pin>;
610
611                         #address-cells = <1>;
612                         #size-cells = <0>;
613
614                         rmi4-f01@1 {
615                                 reg = <0x1>;
616                                 syna,nosleep-mode = <1>;
617                         };
618
619                         rmi4-f12@12 {
620                                 reg = <0x12>;
621                                 syna,sensor-type = <1>;
622                         };
623                 };
624         };
625
626         i2c@f9925000 {
627                 status = "okay";
628                 pinctrl-names = "default";
629                 pinctrl-0 = <&i2c3_pins>;
630                 clock-frequency = <100000>;
631                 qcom,src-freq = <50000000>;
632
633                 avago_apds993@39 {
634                         compatible = "avago,apds9930";
635                         reg = <0x39>;
636                         interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
637                         vdd-supply = <&pm8941_l17>;
638                         vddio-supply = <&pm8941_lvs1>;
639                         led-max-microamp = <100000>;
640                         amstaos,proximity-diodes = <0>;
641                 };
642         };
643
644         usb@f9a55000 {
645                 status = "okay";
646
647                 phys = <&usb_hs1_phy>;
648                 phy-select = <&tcsr 0xb000 0>;
649
650                 extcon = <&charger>, <&usb_id>;
651                 vbus-supply = <&usb_otg_vbus>;
652
653                 hnp-disable;
654                 srp-disable;
655                 adp-disable;
656
657                 ulpi {
658                         phy@a {
659                                 status = "okay";
660
661                                 v1p8-supply = <&pm8941_l6>;
662                                 v3p3-supply = <&pm8941_l24>;
663
664                                 qcom,init-seq = /bits/ 8 <0x1 0x64>;
665                         };
666                 };
667         };
668
669         mdss@fd900000 {
670                 status = "okay";
671
672                 mdp@fd900000 {
673                         status = "okay";
674                 };
675
676                 dsi@fd922800 {
677                         status = "okay";
678
679                         vdda-supply = <&pm8941_l2>;
680                         vdd-supply = <&pm8941_lvs3>;
681                         vddio-supply = <&pm8941_l12>;
682
683                         #address-cells = <1>;
684                         #size-cells = <0>;
685
686                         ports {
687                                 port@1 {
688                                         endpoint {
689                                                 remote-endpoint = <&panel_in>;
690                                                 data-lanes = <0 1 2 3>;
691                                         };
692                                 };
693                         };
694
695                         panel: panel@0 {
696                                 reg = <0>;
697                                 compatible = "lg,acx467akm-7";
698
699                                 pinctrl-names = "default";
700                                 pinctrl-0 = <&panel_pin>;
701
702                                 port {
703                                         panel_in: endpoint {
704                                                 remote-endpoint = <&dsi0_out>;
705                                         };
706                                 };
707                         };
708                 };
709
710                 dsi-phy@fd922a00 {
711                         status = "okay";
712
713                         vddio-supply = <&pm8941_l12>;
714                 };
715         };
716 };
717
718 &spmi_bus {
719         pm8941@0 {
720                 gpios@c000 {
721                         gpio_keys_pin_a: gpio-keys-active {
722                                 pins = "gpio2", "gpio3";
723                                 function = "normal";
724
725                                 bias-pull-up;
726                                 power-source = <PM8941_GPIO_S3>;
727                         };
728
729                         fuelgauge_pin: fuelgauge-int {
730                                 pins = "gpio9";
731                                 function = "normal";
732
733                                 bias-disable;
734                                 input-enable;
735                                 power-source = <PM8941_GPIO_S3>;
736                         };
737
738                         wlan_sleep_clk_pin: wl-sleep-clk {
739                                 pins = "gpio16";
740                                 function = "func2";
741
742                                 output-high;
743                                 power-source = <PM8941_GPIO_S3>;
744                         };
745
746                         wlan_regulator_pin: wl-reg-active {
747                                 pins = "gpio17";
748                                 function = "normal";
749
750                                 bias-disable;
751                                 power-source = <PM8941_GPIO_S3>;
752                         };
753
754                         otg {
755                                 gpio-hog;
756                                 gpios = <35 GPIO_ACTIVE_HIGH>;
757                                 output-high;
758                                 line-name = "otg-gpio";
759                         };
760                 };
761         };
762 };