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