Linux Audio

Check our new training course

Linux kernel drivers training

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