• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 = "ok";
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 = "ok";
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 = "ok";
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 = "ok";
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 = "ok";
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 = "ok";
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 = "ok";
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			i2c-gate {
533				#address-cells = <1>;
534				#size-cells = <0>;
535				ak8963@f {
536					compatible = "asahi-kasei,ak8963";
537					reg = <0x0f>;
538					gpios = <&msmgpio 67 0>;
539					vid-supply = <&pm8941_lvs1>;
540					vdd-supply = <&pm8941_l17>;
541				};
542
543				bmp280@76 {
544					compatible = "bosch,bmp280";
545					reg = <0x76>;
546					vdda-supply = <&pm8941_lvs1>;
547					vddd-supply = <&pm8941_l17>;
548				};
549			};
550		};
551	};
552
553	i2c@f9923000 {
554		status = "ok";
555		pinctrl-names = "default";
556		pinctrl-0 = <&i2c1_pins>;
557		clock-frequency = <100000>;
558		qcom,src-freq = <50000000>;
559
560		charger: bq24192@6b {
561			compatible = "ti,bq24192";
562			reg = <0x6b>;
563			interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;
564
565			omit-battery-class;
566
567			usb_otg_vbus: usb-otg-vbus { };
568		};
569	};
570
571	i2c@f9924000 {
572		status = "ok";
573
574		clock-frequency = <355000>;
575		qcom,src-freq = <50000000>;
576
577		pinctrl-names = "default";
578		pinctrl-0 = <&i2c2_pins>;
579
580		synaptics@70 {
581			compatible = "syna,rmi4-i2c";
582			reg = <0x70>;
583
584			interrupts-extended = <&msmgpio 5 IRQ_TYPE_EDGE_FALLING>;
585			vdd-supply = <&pm8941_l22>;
586			vio-supply = <&pm8941_lvs3>;
587
588			pinctrl-names = "default";
589			pinctrl-0 = <&touch_pin>;
590
591			#address-cells = <1>;
592			#size-cells = <0>;
593
594			rmi4-f01@1 {
595				reg = <0x1>;
596				syna,nosleep-mode = <1>;
597			};
598
599			rmi4-f12@12 {
600				reg = <0x12>;
601				syna,sensor-type = <1>;
602			};
603		};
604	};
605
606	i2c@f9925000 {
607		status = "ok";
608		pinctrl-names = "default";
609		pinctrl-0 = <&i2c3_pins>;
610		clock-frequency = <100000>;
611		qcom,src-freq = <50000000>;
612
613		avago_apds993@39 {
614			compatible = "avago,apds9930";
615			reg = <0x39>;
616			interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
617			vdd-supply = <&pm8941_l17>;
618			vddio-supply = <&pm8941_lvs1>;
619			led-max-microamp = <100000>;
620			amstaos,proximity-diodes = <0>;
621		};
622	};
623
624	usb@f9a55000 {
625		status = "ok";
626
627		phys = <&usb_hs1_phy>;
628		phy-select = <&tcsr 0xb000 0>;
629
630		extcon = <&charger>, <&usb_id>;
631		vbus-supply = <&usb_otg_vbus>;
632
633		hnp-disable;
634		srp-disable;
635		adp-disable;
636
637		ulpi {
638			phy@a {
639				status = "ok";
640
641				v1p8-supply = <&pm8941_l6>;
642				v3p3-supply = <&pm8941_l24>;
643
644				qcom,init-seq = /bits/ 8 <0x1 0x64>;
645			};
646		};
647	};
648
649	mdss@fd900000 {
650		status = "ok";
651
652		mdp@fd900000 {
653			status = "ok";
654		};
655
656		dsi@fd922800 {
657			status = "ok";
658
659			vdda-supply = <&pm8941_l2>;
660			vdd-supply = <&pm8941_lvs3>;
661			vddio-supply = <&pm8941_l12>;
662
663			#address-cells = <1>;
664			#size-cells = <0>;
665
666			ports {
667				port@1 {
668					endpoint {
669						remote-endpoint = <&panel_in>;
670						data-lanes = <0 1 2 3>;
671					};
672				};
673			};
674
675			panel: panel@0 {
676				reg = <0>;
677				compatible = "lg,acx467akm-7";
678
679				pinctrl-names = "default";
680				pinctrl-0 = <&panel_pin>;
681
682				port {
683					panel_in: endpoint {
684						remote-endpoint = <&dsi0_out>;
685					};
686				};
687			};
688		};
689
690		dsi-phy@fd922a00 {
691			status = "ok";
692
693			vddio-supply = <&pm8941_l12>;
694		};
695	};
696};
697
698&spmi_bus {
699	pm8941@0 {
700		gpios@c000 {
701			gpio_keys_pin_a: gpio-keys-active {
702				pins = "gpio2", "gpio3";
703				function = "normal";
704
705				bias-pull-up;
706				power-source = <PM8941_GPIO_S3>;
707			};
708
709			wlan_sleep_clk_pin: wl-sleep-clk {
710				pins = "gpio16";
711				function = "func2";
712
713				output-high;
714				power-source = <PM8941_GPIO_S3>;
715			};
716
717			wlan_regulator_pin: wl-reg-active {
718				pins = "gpio17";
719				function = "normal";
720
721				bias-disable;
722				power-source = <PM8941_GPIO_S3>;
723			};
724
725			otg {
726				gpio-hog;
727				gpios = <35 GPIO_ACTIVE_HIGH>;
728				output-high;
729				line-name = "otg-gpio";
730			};
731		};
732	};
733};
734