Linux Audio

Check our new training course

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