blob: 5cf9c7e20f2e365a72e80acc89aac4b22ffc5db9 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001// SPDX-License-Identifier: GPL-2.0
Bhushan Shahb1100d82016-07-29 11:39:06 +05302#include "qcom-msm8974.dtsi"
3#include "qcom-pm8841.dtsi"
4#include "qcom-pm8941.dtsi"
Bhushan Shahb8066642016-07-29 11:39:09 +05305#include <dt-bindings/gpio/gpio.h>
Bhushan Shahf7af7de2016-07-29 11:39:10 +05306#include <dt-bindings/input/input.h>
Bhushan Shahb8066642016-07-29 11:39:09 +05307#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
Bhushan Shahb1100d82016-07-29 11:39:06 +05308
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 };
Bhushan Shahb8066642016-07-29 11:39:09 +053020
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;
Bhushan Shah03864e52018-07-09 14:46:28 +0530192 regulator-system-load = <200000>;
193 regulator-allow-set-load;
Bhushan Shahb8066642016-07-29 11:39:09 +0530194 };
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 };
Jonathan Marekec4c6c52018-11-04 16:50:34 -0500223
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 };
Bhushan Shahb1100d82016-07-29 11:39:06 +0530237};
238
239&soc {
240 serial@f991d000 {
241 status = "ok";
242 };
243
Bhushan Shaha511e972016-07-20 11:56:10 +0530244 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 };
Brian Masneyfe8d81f2018-08-02 20:18:53 -0400258
Jonathan Marekec4c6c52018-11-04 16:50:34 -0500259 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
Brian Masneybd939252018-08-02 20:19:00 -0400273 i2c3_pins: i2c3 {
274 mux {
275 pins = "gpio10", "gpio11";
276 function = "blsp_i2c3";
277 drive-strength = <2>;
278 bias-disable;
279 };
280 };
281
Brian Masneyfe8d81f2018-08-02 20:18:53 -0400282 i2c12_pins: i2c12 {
283 mux {
284 pins = "gpio87", "gpio88";
285 function = "blsp_i2c12";
286 drive-strength = <2>;
287 bias-disable;
288 };
289 };
290
291 mpu6515_pin: mpu6515 {
292 irq {
293 pins = "gpio73";
294 function = "gpio";
295 bias-disable;
296 input-enable;
297 };
298 };
Bhushan Shaha511e972016-07-20 11:56:10 +0530299 };
300
301 sdhci@f9824900 {
302 status = "ok";
303
304 vmmc-supply = <&pm8941_l20>;
305 vqmmc-supply = <&pm8941_s3>;
306
307 bus-width = <8>;
308 non-removable;
309
310 pinctrl-names = "default";
311 pinctrl-0 = <&sdhc1_pin_a>;
312 };
313
Jonathan Marekec4c6c52018-11-04 16:50:34 -0500314 sdhci@f98a4900 {
315 status = "ok";
316
317 max-frequency = <100000000>;
318 bus-width = <4>;
319 non-removable;
320 vmmc-supply = <&vreg_wlan>;
321 vqmmc-supply = <&pm8941_s3>;
322
323 pinctrl-names = "default";
324 pinctrl-0 = <&sdhc2_pin_a>;
325
326 #address-cells = <1>;
327 #size-cells = <0>;
328
329 bcrmf@1 {
330 compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
331 reg = <1>;
332
333 brcm,drive-strength = <10>;
334
335 pinctrl-names = "default";
336 pinctrl-0 = <&wlan_sleep_clk_pin>;
337 };
338 };
339
Bhushan Shahf7af7de2016-07-29 11:39:10 +0530340 gpio-keys {
341 compatible = "gpio-keys";
342 input-name = "gpio-keys";
343
344 pinctrl-names = "default";
345 pinctrl-0 = <&gpio_keys_pin_a>;
346
347 volume-up {
348 label = "volume_up";
349 gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
350 linux,input-type = <1>;
351 linux,code = <KEY_VOLUMEUP>;
352 };
353
354 volume-down {
355 label = "volume_down";
356 gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
357 linux,input-type = <1>;
358 linux,code = <KEY_VOLUMEDOWN>;
359 };
360 };
Brian Masneyfe8d81f2018-08-02 20:18:53 -0400361
362 i2c@f9968000 {
363 status = "ok";
364 pinctrl-names = "default";
365 pinctrl-0 = <&i2c12_pins>;
366 clock-frequency = <100000>;
367 qcom,src-freq = <50000000>;
368
369 mpu6515@68 {
370 compatible = "invensense,mpu6515";
371 reg = <0x68>;
372 interrupts-extended = <&msmgpio 73 IRQ_TYPE_EDGE_FALLING>;
373 vddio-supply = <&pm8941_lvs1>;
374
375 pinctrl-names = "default";
376 pinctrl-0 = <&mpu6515_pin>;
377
378 i2c-gate {
379 #address-cells = <1>;
380 #size-cells = <0>;
381 ak8963@f {
382 compatible = "asahi-kasei,ak8963";
383 reg = <0x0f>;
Brian Masney05670222018-11-28 04:53:35 -0500384 gpios = <&msmgpio 67 0>;
Brian Masneyfe8d81f2018-08-02 20:18:53 -0400385 vid-supply = <&pm8941_lvs1>;
386 vdd-supply = <&pm8941_l17>;
387 };
388
389 bmp280@76 {
390 compatible = "bosch,bmp280";
391 reg = <0x76>;
392 vdda-supply = <&pm8941_lvs1>;
393 vddd-supply = <&pm8941_l17>;
394 };
395 };
396 };
397 };
Brian Masneybd939252018-08-02 20:19:00 -0400398
399 i2c@f9925000 {
400 status = "ok";
401 pinctrl-names = "default";
402 pinctrl-0 = <&i2c3_pins>;
403 clock-frequency = <100000>;
404 qcom,src-freq = <50000000>;
405
406 avago_apds993@39 {
407 compatible = "avago,apds9930";
408 reg = <0x39>;
409 interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
410 vdd-supply = <&pm8941_l17>;
411 vddio-supply = <&pm8941_lvs1>;
412 led-max-microamp = <100000>;
413 amstaos,proximity-diodes = <0>;
414 };
415 };
Bhushan Shahf7af7de2016-07-29 11:39:10 +0530416};
417
418&spmi_bus {
419 pm8941@0 {
420 gpios@c000 {
421 gpio_keys_pin_a: gpio-keys-active {
422 pins = "gpio2", "gpio3";
423 function = "normal";
424
425 bias-pull-up;
426 power-source = <PM8941_GPIO_S3>;
427 };
Jonathan Marekec4c6c52018-11-04 16:50:34 -0500428
429 wlan_sleep_clk_pin: wl-sleep-clk {
430 pins = "gpio16";
431 function = "func2";
432
433 output-high;
434 power-source = <PM8941_GPIO_S3>;
435 };
436
437 wlan_regulator_pin: wl-reg-active {
438 pins = "gpio17";
439 function = "normal";
440
441 bias-disable;
442 power-source = <PM8941_GPIO_S3>;
443 };
Bhushan Shahf7af7de2016-07-29 11:39:10 +0530444 };
445 };
Bhushan Shahb1100d82016-07-29 11:39:06 +0530446};