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