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 0>;
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 };
Cache object: 11ec79c5f685fa4d82098d3c03225973
|