]>
Commit | Line | Data |
---|---|---|
4892e075 LW |
1 | /* |
2 | * Copyright 2016 Linaro Ltd | |
3 | * | |
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy | |
5 | * of this software and associated documentation files (the "Software"), to deal | |
6 | * in the Software without restriction, including without limitation the rights | |
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
8 | * copies of the Software, and to permit persons to whom the Software is | |
9 | * furnished to do so, subject to the following conditions: | |
10 | * | |
11 | * The above copyright notice and this permission notice shall be included in | |
12 | * all copies or substantial portions of the Software. | |
13 | * | |
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
17 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
20 | * THE SOFTWARE. | |
21 | */ | |
22 | ||
23 | #include <dt-bindings/input/input.h> | |
24 | #include <dt-bindings/gpio/gpio.h> | |
25 | #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> | |
567cf213 | 26 | #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> |
4892e075 LW |
27 | #include "qcom-msm8660.dtsi" |
28 | ||
29 | / { | |
30 | model = "Qualcomm APQ8060 Dragonboard"; | |
31 | compatible = "qcom,apq8060-dragonboard", "qcom,msm8660"; | |
32 | ||
33 | aliases { | |
34 | serial0 = &gsbi12_serial; | |
35 | }; | |
36 | ||
37 | chosen { | |
38 | stdout-path = "serial0:115200n8"; | |
39 | }; | |
40 | ||
41 | regulators { | |
42 | compatible = "simple-bus"; | |
43 | ||
44 | /* Main power of the board: 3.7V */ | |
45 | vph: regulator-fixed { | |
46 | compatible = "regulator-fixed"; | |
47 | regulator-min-microvolt = <3700000>; | |
48 | regulator-max-microvolt = <3700000>; | |
49 | regulator-name = "VPH"; | |
50 | regulator-type = "voltage"; | |
51 | regulator-always-on; | |
52 | regulator-boot-on; | |
53 | }; | |
54 | ||
4c52ffc7 LW |
55 | /* GPIO controlled ethernet power regulator */ |
56 | dragon_veth: xc622a331mrg { | |
57 | compatible = "regulator-fixed"; | |
58 | regulator-name = "XC6222A331MR-G"; | |
59 | regulator-min-microvolt = <3300000>; | |
60 | regulator-max-microvolt = <3300000>; | |
61 | vin-supply = <&vph>; | |
62 | gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>; | |
63 | enable-active-high; | |
64 | pinctrl-names = "default"; | |
65 | pinctrl-0 = <&dragon_veth_gpios>; | |
66 | regulator-always-on; | |
67 | }; | |
68 | ||
69 | /* VDDvario fixed regulator */ | |
70 | dragon_vario: nds332p { | |
71 | compatible = "regulator-fixed"; | |
72 | regulator-name = "NDS332P"; | |
73 | regulator-min-microvolt = <1800000>; | |
74 | regulator-max-microvolt = <1800000>; | |
75 | vin-supply = <&pm8058_s3>; | |
76 | }; | |
77 | ||
4892e075 LW |
78 | /* This is a levelshifter for SDCC5 */ |
79 | dragon_vio_txb: txb0104rgyr { | |
80 | compatible = "regulator-fixed"; | |
81 | regulator-name = "Dragon SDCC levelshifter"; | |
82 | vin-supply = <&pm8058_l14>; | |
83 | regulator-always-on; | |
84 | }; | |
85 | }; | |
86 | ||
567cf213 LW |
87 | /* |
88 | * Capella CM3605 light and proximity sensor mounted directly | |
89 | * on the sensor board. | |
90 | */ | |
91 | cm3605 { | |
92 | compatible = "capella,cm3605"; | |
93 | vdd-supply = <&pm8058_l14>; // 2.85V | |
94 | aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>; | |
95 | capella,aset-resistance-ohms = <100000>; | |
567cf213 | 96 | /* Trig on both edges - getting close or far away */ |
da4f07dd | 97 | interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>; |
567cf213 LW |
98 | /* MPP05 analog input to the XOADC */ |
99 | io-channels = <&xoadc 0x00 0x05>; | |
100 | io-channel-names = "aout"; | |
101 | pinctrl-names = "default"; | |
102 | pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>; | |
103 | }; | |
104 | ||
4892e075 LW |
105 | soc { |
106 | pinctrl@800000 { | |
107 | /* eMMMC pins, all 8 data lines connected */ | |
108 | dragon_sdcc1_pins: sdcc1 { | |
109 | mux { | |
110 | pins = "gpio159", "gpio160", "gpio161", | |
111 | "gpio162", "gpio163", "gpio164", | |
112 | "gpio165", "gpio166", "gpio167", | |
113 | "gpio168"; | |
114 | function = "sdc1"; | |
115 | }; | |
116 | clk { | |
3869fd6a | 117 | pins = "gpio167"; /* SDC1 CLK */ |
4892e075 LW |
118 | drive-strength = <16>; |
119 | bias-disable; | |
120 | }; | |
121 | cmd { | |
3869fd6a | 122 | pins = "gpio168"; /* SDC1 CMD */ |
4892e075 LW |
123 | drive-strength = <10>; |
124 | bias-pull-up; | |
125 | }; | |
126 | data { | |
3869fd6a | 127 | /* SDC1 D0 to D7 */ |
4892e075 LW |
128 | pins = "gpio159", "gpio160", "gpio161", "gpio162", |
129 | "gpio163", "gpio164", "gpio165", "gpio166"; | |
130 | drive-strength = <10>; | |
131 | bias-pull-up; | |
132 | }; | |
133 | }; | |
134 | ||
135 | /* | |
136 | * The SDCC3 pins are hardcoded (non-muxable) but need some pin | |
137 | * configuration. | |
138 | */ | |
139 | dragon_sdcc3_pins: sdcc3 { | |
140 | clk { | |
141 | pins = "sdc3_clk"; | |
142 | drive-strength = <8>; | |
143 | bias-disable; | |
144 | }; | |
145 | cmd { | |
146 | pins = "sdc3_cmd"; | |
147 | drive-strength = <8>; | |
148 | bias-pull-up; | |
149 | }; | |
150 | data { | |
151 | pins = "sdc3_data"; | |
152 | drive-strength = <8>; | |
153 | bias-pull-up; | |
154 | }; | |
155 | }; | |
156 | ||
157 | /* Second SD card slot pins */ | |
158 | dragon_sdcc5_pins: sdcc5 { | |
159 | mux { | |
160 | pins = "gpio95", "gpio96", "gpio97", | |
161 | "gpio98", "gpio99", "gpio100"; | |
162 | function = "sdc5"; | |
163 | }; | |
164 | clk { | |
165 | pins = "gpio97"; /* SDC5 CLK */ | |
166 | drive-strength = <16>; | |
167 | bias-disable; | |
168 | }; | |
169 | cmd { | |
170 | pins = "gpio95"; /* SDC5 CMD */ | |
171 | drive-strength = <10>; | |
172 | bias-pull-up; | |
173 | }; | |
174 | data { | |
175 | /* SDC5 D0 to D3 */ | |
176 | pins = "gpio96", "gpio98", "gpio99", "gpio100"; | |
177 | drive-strength = <10>; | |
178 | bias-pull-up; | |
179 | }; | |
180 | }; | |
181 | ||
cff94887 LW |
182 | dragon_gsbi8_i2c_pins: gsbi8_i2c { |
183 | mux { | |
184 | pins = "gpio64", "gpio65"; | |
185 | function = "gsbi8"; | |
186 | }; | |
187 | pinconf { | |
188 | pins = "gpio64", "gpio65"; | |
189 | drive-strength = <16>; | |
190 | /* These have external pull-up 2.2kOhm to 1.8V */ | |
191 | bias-disable; | |
192 | }; | |
193 | }; | |
194 | ||
4892e075 LW |
195 | dragon_gsbi12_i2c_pins: gsbi12_i2c { |
196 | mux { | |
197 | pins = "gpio115", "gpio116"; | |
198 | function = "gsbi12"; | |
199 | }; | |
200 | pinconf { | |
201 | pins = "gpio115", "gpio116"; | |
202 | drive-strength = <16>; | |
203 | /* These have external pull-up 4.7kOhm to 1.8V */ | |
204 | bias-disable; | |
205 | }; | |
206 | }; | |
207 | ||
208 | /* Primary serial port uart 0 pins */ | |
209 | dragon_gsbi12_serial_pins: gsbi12_serial { | |
210 | mux { | |
211 | pins = "gpio117", "gpio118"; | |
212 | function = "gsbi12"; | |
213 | }; | |
214 | tx { | |
215 | pins = "gpio117"; | |
216 | drive-strength = <8>; | |
217 | bias-disable; | |
218 | }; | |
219 | rx { | |
220 | pins = "gpio118"; | |
221 | drive-strength = <2>; | |
222 | bias-pull-up; | |
223 | }; | |
224 | }; | |
4c52ffc7 LW |
225 | |
226 | dragon_ebi2_pins: ebi2 { | |
227 | /* | |
228 | * Pins used by EBI2 on the Dragonboard, actually only | |
229 | * CS2 is used by a real peripheral. CS0 is just | |
230 | * routed to a test point. | |
231 | */ | |
232 | mux0 { | |
233 | pins = | |
234 | /* "gpio39", CS1A_N this is not good to mux */ | |
235 | "gpio40", /* CS2A_N */ | |
236 | "gpio134"; /* CS0_N testpoint TP29 */ | |
237 | function = "ebi2cs"; | |
238 | }; | |
239 | mux1 { | |
240 | pins = | |
241 | /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */ | |
242 | "gpio123", "gpio124", "gpio125", "gpio126", | |
243 | "gpio127", "gpio128", "gpio129", "gpio130", | |
244 | /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */ | |
245 | "gpio135", "gpio136", "gpio137", "gpio138", | |
246 | "gpio139", "gpio140", "gpio141", "gpio142", | |
247 | "gpio143", "gpio144", "gpio145", "gpio146", | |
248 | "gpio147", "gpio148", "gpio149", "gpio150", | |
249 | "gpio151", /* EBI2_OE_N */ | |
250 | "gpio153", /* EBI2_ADV */ | |
251 | "gpio157"; /* EBI2_WE_N */ | |
252 | function = "ebi2"; | |
253 | }; | |
254 | }; | |
d724d6ba LW |
255 | |
256 | /* Interrupt line for the KXSD9 accelerometer */ | |
257 | dragon_kxsd9_gpios: kxsd9 { | |
258 | irq { | |
259 | pins = "gpio57"; /* IRQ line */ | |
260 | bias-pull-up; | |
261 | }; | |
262 | }; | |
4892e075 LW |
263 | }; |
264 | ||
265 | qcom,ssbi@500000 { | |
266 | pmic@0 { | |
267 | keypad@148 { | |
268 | linux,keymap = < | |
269 | MATRIX_KEY(0, 0, KEY_MENU) | |
270 | MATRIX_KEY(0, 2, KEY_1) | |
271 | MATRIX_KEY(0, 3, KEY_4) | |
272 | MATRIX_KEY(0, 4, KEY_7) | |
273 | MATRIX_KEY(1, 0, KEY_UP) | |
274 | MATRIX_KEY(1, 1, KEY_LEFT) | |
275 | MATRIX_KEY(1, 2, KEY_DOWN) | |
276 | MATRIX_KEY(1, 3, KEY_5) | |
277 | MATRIX_KEY(1, 3, KEY_8) | |
278 | MATRIX_KEY(2, 0, KEY_HOME) | |
279 | MATRIX_KEY(2, 1, KEY_REPLY) | |
280 | MATRIX_KEY(2, 2, KEY_2) | |
281 | MATRIX_KEY(2, 3, KEY_6) | |
282 | MATRIX_KEY(3, 0, KEY_VOLUMEUP) | |
283 | MATRIX_KEY(3, 1, KEY_RIGHT) | |
284 | MATRIX_KEY(3, 2, KEY_3) | |
285 | MATRIX_KEY(3, 3, KEY_9) | |
286 | MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE) | |
287 | MATRIX_KEY(4, 0, KEY_VOLUMEDOWN) | |
288 | MATRIX_KEY(4, 1, KEY_BACK) | |
289 | MATRIX_KEY(4, 2, KEY_CAMERA) | |
290 | MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE) | |
291 | >; | |
292 | keypad,num-rows = <6>; | |
293 | keypad,num-columns = <5>; | |
294 | }; | |
295 | ||
296 | gpio@150 { | |
4c52ffc7 LW |
297 | dragon_ethernet_gpios: ethernet-gpios { |
298 | pinconf { | |
299 | pins = "gpio7"; | |
300 | function = "normal"; | |
301 | input-enable; | |
302 | bias-disable; | |
303 | power-source = <PM8058_GPIO_S3>; | |
304 | }; | |
305 | }; | |
4892e075 LW |
306 | dragon_bmp085_gpios: bmp085-gpios { |
307 | pinconf { | |
308 | pins = "gpio16"; | |
309 | function = "normal"; | |
310 | input-enable; | |
311 | bias-disable; | |
312 | power-source = <PM8058_GPIO_S3>; | |
313 | }; | |
314 | }; | |
d724d6ba LW |
315 | dragon_mpu3050_gpios: mpu3050-gpios { |
316 | pinconf { | |
317 | pins = "gpio17"; | |
318 | function = "normal"; | |
319 | input-enable; | |
320 | bias-disable; | |
321 | power-source = <PM8058_GPIO_S3>; | |
322 | }; | |
323 | }; | |
4892e075 LW |
324 | dragon_sdcc3_gpios: sdcc3-gpios { |
325 | pinconf { | |
326 | pins = "gpio22"; | |
327 | function = "normal"; | |
328 | input-enable; | |
329 | bias-disable; | |
330 | power-source = <PM8058_GPIO_S3>; | |
331 | }; | |
332 | }; | |
333 | dragon_sdcc5_gpios: sdcc5-gpios { | |
334 | pinconf { | |
335 | pins = "gpio26"; | |
336 | function = "normal"; | |
337 | input-enable; | |
338 | bias-pull-up; | |
339 | qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>; | |
340 | power-source = <PM8058_GPIO_S3>; | |
341 | }; | |
342 | }; | |
343 | dragon_ak8975_gpios: ak8975-gpios { | |
344 | pinconf { | |
345 | pins = "gpio33"; | |
346 | function = "normal"; | |
347 | input-enable; | |
348 | bias-disable; | |
349 | power-source = <PM8058_GPIO_S3>; | |
350 | }; | |
351 | }; | |
567cf213 LW |
352 | dragon_cm3605_gpios: cm3605-gpios { |
353 | /* Pin 34 connected to the proxy IRQ */ | |
354 | pinconf_gpio34 { | |
355 | pins = "gpio34"; | |
356 | function = "normal"; | |
357 | input-enable; | |
358 | bias-disable; | |
359 | power-source = <PM8058_GPIO_S3>; | |
360 | }; | |
361 | /* Pin 35 connected to ASET */ | |
362 | pinconf_gpio35 { | |
363 | pins = "gpio35"; | |
364 | function = "normal"; | |
365 | output-high; | |
366 | bias-disable; | |
367 | power-source = <PM8058_GPIO_S3>; | |
368 | }; | |
369 | }; | |
4c52ffc7 LW |
370 | dragon_veth_gpios: veth-gpios { |
371 | pinconf { | |
372 | pins = "gpio40"; | |
373 | function = "normal"; | |
374 | bias-disable; | |
375 | drive-push-pull; | |
376 | }; | |
377 | }; | |
4892e075 | 378 | }; |
20fac0ce | 379 | |
567cf213 LW |
380 | mpps@50 { |
381 | dragon_cm3605_mpps: cm3605-mpps { | |
382 | pinconf { | |
383 | pins = "mpp5"; | |
384 | function = "analog"; | |
385 | input-enable; | |
386 | bias-high-impedance; | |
387 | /* Let's use channel 5 */ | |
388 | qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>; | |
389 | power-source = <PM8058_GPIO_S3>; | |
390 | }; | |
391 | }; | |
392 | }; | |
393 | ||
394 | xoadc@197 { | |
395 | /* Reference voltage 2.2 V */ | |
396 | xoadc-ref-supply = <&pm8058_l18>; | |
397 | ||
398 | /* Board-specific channels */ | |
8dccafaa | 399 | mpp5@5 { |
567cf213 LW |
400 | /* Connected to AOUT of ALS sensor */ |
401 | reg = <0x00 0x05>; | |
402 | }; | |
8dccafaa | 403 | mpp6@6 { |
567cf213 LW |
404 | /* Connected to test point TP43 */ |
405 | reg = <0x00 0x06>; | |
406 | }; | |
8dccafaa | 407 | mpp7@7 { |
567cf213 LW |
408 | /* Connected to battery thermistor */ |
409 | reg = <0x00 0x07>; | |
410 | }; | |
8dccafaa | 411 | mpp8@8 { |
567cf213 LW |
412 | /* Connected to battery ID detector */ |
413 | reg = <0x00 0x08>; | |
414 | }; | |
8dccafaa | 415 | mpp9@9 { |
567cf213 LW |
416 | /* Connected to XO thermistor */ |
417 | reg = <0x00 0x09>; | |
418 | }; | |
419 | }; | |
420 | ||
20fac0ce LW |
421 | led@48 { |
422 | /* | |
423 | * The keypad LED @0x48 is routed to | |
424 | * the sensor board where it is | |
425 | * connected to an infrared LED | |
426 | * SFH4650 (60mW, @850nm) next to the | |
427 | * ambient light and proximity sensor | |
428 | * Capella Microsystems CM3605. | |
429 | */ | |
430 | compatible = "qcom,pm8058-keypad-led"; | |
431 | reg = <0x48>; | |
432 | label = "pm8058:infrared:proximitysensor"; | |
433 | default-state = "off"; | |
567cf213 | 434 | linux,default-trigger = "cm3605"; |
20fac0ce LW |
435 | }; |
436 | led@131 { | |
437 | compatible = "qcom,pm8058-led"; | |
438 | reg = <0x131>; | |
439 | label = "pm8058:red"; | |
440 | default-state = "off"; | |
441 | }; | |
442 | led@132 { | |
443 | /* | |
444 | * This is actually green too on my | |
445 | * board, but documented as yellow. | |
446 | */ | |
447 | compatible = "qcom,pm8058-led"; | |
448 | reg = <0x132>; | |
449 | label = "pm8058:yellow"; | |
450 | default-state = "off"; | |
451 | linux,default-trigger = "mmc0"; | |
452 | }; | |
453 | led@133 { | |
454 | compatible = "qcom,pm8058-led"; | |
455 | reg = <0x133>; | |
456 | label = "pm8058:green"; | |
457 | default-state = "on"; | |
458 | linux,default-trigger = "heartbeat"; | |
459 | }; | |
4892e075 LW |
460 | }; |
461 | }; | |
462 | ||
cff94887 LW |
463 | gsbi@19800000 { |
464 | status = "ok"; | |
465 | qcom,mode = <GSBI_PROT_I2C>; | |
466 | ||
467 | i2c@19880000 { | |
468 | status = "ok"; | |
469 | pinctrl-names = "default"; | |
470 | pinctrl-0 = <&dragon_gsbi8_i2c_pins>; | |
471 | ||
472 | eeprom@52 { | |
473 | /* A 16KiB Platform ID EEPROM on the CPU carrier board */ | |
474 | compatible = "atmel,24c128"; | |
475 | reg = <0x52>; | |
476 | vcc-supply = <&pm8058_s3>; | |
477 | pagesize = <64>; | |
478 | }; | |
479 | wm8903: wm8903@1a { | |
480 | /* This Woolfson Micro device has an unrouted interrupt line */ | |
481 | compatible = "wlf,wm8903"; | |
482 | reg = <0x1a>; | |
483 | ||
484 | AVDD-supply = <&pm8058_l16>; | |
485 | CPVDD-supply = <&pm8058_l16>; | |
486 | DBVDD-supply = <&pm8058_s3>; | |
487 | DCVDD-supply = <&pm8058_l0>; | |
488 | ||
489 | gpio-controller; | |
490 | #gpio-cells = <2>; | |
491 | ||
492 | micdet-cfg = <0>; | |
493 | micdet-delay = <100>; | |
494 | gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>; | |
495 | }; | |
496 | }; | |
497 | }; | |
498 | ||
4892e075 LW |
499 | gsbi@19c00000 { |
500 | status = "ok"; | |
501 | qcom,mode = <GSBI_PROT_I2C_UART>; | |
502 | ||
503 | serial@19c40000 { | |
504 | status = "ok"; | |
505 | pinctrl-names = "default"; | |
506 | pinctrl-0 = <&dragon_gsbi12_serial_pins>; | |
507 | }; | |
508 | ||
509 | i2c@19c80000 { | |
510 | status = "ok"; | |
511 | pinctrl-names = "default"; | |
512 | pinctrl-0 = <&dragon_gsbi12_i2c_pins>; | |
513 | ||
8dccafaa | 514 | ak8975@c { |
4892e075 LW |
515 | compatible = "asahi-kasei,ak8975"; |
516 | reg = <0x0c>; | |
da4f07dd LW |
517 | interrupt-parent = <&pm8058_gpio>; |
518 | interrupts = <33 IRQ_TYPE_EDGE_RISING>; | |
4892e075 LW |
519 | pinctrl-names = "default"; |
520 | pinctrl-0 = <&dragon_ak8975_gpios>; | |
521 | vid-supply = <&pm8058_lvs0>; // 1.8V | |
522 | vdd-supply = <&pm8058_l14>; // 2.85V | |
523 | }; | |
524 | bmp085@77 { | |
525 | compatible = "bosch,bmp085"; | |
526 | reg = <0x77>; | |
da4f07dd LW |
527 | interrupt-parent = <&pm8058_gpio>; |
528 | interrupts = <16 IRQ_TYPE_EDGE_RISING>; | |
4892e075 LW |
529 | reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>; |
530 | pinctrl-names = "default"; | |
531 | pinctrl-0 = <&dragon_bmp085_gpios>; | |
532 | vddd-supply = <&pm8058_lvs0>; // 1.8V | |
533 | vdda-supply = <&pm8058_l14>; // 2.85V | |
534 | }; | |
d724d6ba LW |
535 | mpu3050@68 { |
536 | compatible = "invensense,mpu3050"; | |
537 | reg = <0x68>; | |
538 | /* | |
da4f07dd | 539 | * GPIO17 is pulled high by a 10k |
d724d6ba LW |
540 | * resistor to VLOGIC so needs to be |
541 | * active low/falling edge. | |
542 | */ | |
da4f07dd | 543 | interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>; |
d724d6ba LW |
544 | pinctrl-names = "default"; |
545 | pinctrl-0 = <&dragon_mpu3050_gpios>; | |
546 | vlogic-supply = <&pm8058_lvs0>; // 1.8V | |
547 | vdd-supply = <&pm8058_l14>; // 2.85V | |
548 | ||
549 | /* | |
550 | * The MPU-3050 acts as a hub for the | |
551 | * accelerometer. | |
552 | */ | |
553 | i2c-gate { | |
554 | #address-cells = <1>; | |
555 | #size-cells = <0>; | |
556 | ||
557 | kxsd9@18 { | |
558 | compatible = "kionix,kxsd9"; | |
559 | reg = <0x18>; | |
560 | interrupt-parent = <&tlmm>; | |
561 | interrupts = <57 IRQ_TYPE_EDGE_FALLING>; | |
562 | pinctrl-names = "default"; | |
563 | pinctrl-0 = <&dragon_kxsd9_gpios>; | |
564 | iovdd-supply = <&pm8058_lvs0>; // 1.8V | |
565 | vdd-supply = <&pm8058_l14>; // 2.85V | |
566 | }; | |
567 | }; | |
568 | }; | |
4892e075 LW |
569 | }; |
570 | }; | |
571 | ||
4c52ffc7 LW |
572 | external-bus@1a100000 { |
573 | /* The EBI2 will instantiate first, then populate its children */ | |
574 | status = "ok"; | |
575 | pinctrl-names = "default"; | |
576 | pinctrl-0 = <&dragon_ebi2_pins>; | |
577 | ||
578 | /* | |
579 | * An on-board SMSC LAN9221 chip for "debug ethernet", | |
580 | * which is actually just an ordinary ethernet on the | |
581 | * EBI2. This has a 25MHz chrystal next to it, so no | |
582 | * clocking is needed. | |
583 | */ | |
584 | ethernet-ebi2@2,0 { | |
585 | compatible = "smsc,lan9221", "smsc,lan9115"; | |
586 | reg = <2 0x0 0x100>; | |
587 | /* | |
4c52ffc7 LW |
588 | * The second interrupt is the PME interrupt |
589 | * for network wakeup, connected to the TLMM. | |
590 | */ | |
da4f07dd | 591 | interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>, |
4c52ffc7 LW |
592 | <&tlmm 29 IRQ_TYPE_EDGE_RISING>; |
593 | reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; | |
594 | vdd33a-supply = <&dragon_veth>; | |
595 | vddvario-supply = <&dragon_vario>; | |
596 | pinctrl-names = "default"; | |
597 | pinctrl-0 = <&dragon_ethernet_gpios>; | |
598 | phy-mode = "mii"; | |
599 | reg-io-width = <2>; | |
600 | smsc,force-external-phy; | |
601 | /* IRQ on edge falling = active low */ | |
602 | smsc,irq-active-low; | |
603 | smsc,irq-push-pull; | |
604 | ||
605 | /* | |
606 | * SLOW chipselect config | |
607 | * Delay 9 cycles (140ns@64MHz) between SMSC | |
608 | * LAN9221 Ethernet controller reads and writes | |
609 | * on CS2. | |
610 | */ | |
611 | qcom,xmem-recovery-cycles = <0>; | |
612 | qcom,xmem-write-hold-cycles = <3>; | |
613 | qcom,xmem-write-delta-cycles = <31>; | |
614 | qcom,xmem-read-delta-cycles = <28>; | |
615 | qcom,xmem-write-wait-cycles = <9>; | |
616 | qcom,xmem-read-wait-cycles = <9>; | |
617 | }; | |
618 | }; | |
619 | ||
4892e075 LW |
620 | rpm@104000 { |
621 | /* | |
622 | * Set up of the PMIC RPM regulators for this board | |
623 | * PM8901 supplies "preliminary regulators" whatever | |
624 | * that means | |
625 | */ | |
626 | pm8901-regulators { | |
627 | vdd_l0-supply = <&pm8901_s4>; | |
628 | vdd_l1-supply = <&vph>; | |
629 | vdd_l2-supply = <&vph>; | |
630 | vdd_l3-supply = <&vph>; | |
631 | vdd_l4-supply = <&vph>; | |
632 | vdd_l5-supply = <&vph>; | |
633 | vdd_l6-supply = <&vph>; | |
634 | /* vdd_s0-supply, vdd_s1-supply: SAW regulators */ | |
635 | vdd_s2-supply = <&vph>; | |
636 | vdd_s3-supply = <&vph>; | |
637 | vdd_s4-supply = <&vph>; | |
638 | lvs0_in-supply = <&pm8058_s3>; | |
639 | lvs1_in-supply = <&pm8901_s4>; | |
640 | lvs2_in-supply = <&pm8058_l0>; | |
641 | lvs3_in-supply = <&pm8058_s2>; | |
642 | mvs_in-supply = <&pm8058_s3>; | |
643 | ||
644 | l0 { | |
645 | regulator-min-microvolt = <1200000>; | |
646 | regulator-max-microvolt = <1200000>; | |
647 | bias-pull-down; | |
648 | }; | |
649 | l1 { | |
650 | regulator-min-microvolt = <3300000>; | |
651 | regulator-max-microvolt = <3300000>; | |
652 | bias-pull-down; | |
653 | }; | |
654 | l2 { | |
655 | regulator-min-microvolt = <2850000>; | |
656 | regulator-max-microvolt = <3300000>; | |
657 | bias-pull-down; | |
658 | }; | |
659 | l3 { | |
660 | regulator-min-microvolt = <3300000>; | |
661 | regulator-max-microvolt = <3300000>; | |
662 | bias-pull-down; | |
663 | }; | |
664 | l4 { | |
665 | regulator-min-microvolt = <2600000>; | |
666 | regulator-max-microvolt = <2600000>; | |
667 | bias-pull-down; | |
668 | }; | |
669 | l5 { | |
670 | regulator-min-microvolt = <2850000>; | |
671 | regulator-max-microvolt = <2850000>; | |
672 | bias-pull-down; | |
673 | }; | |
674 | l6 { | |
675 | regulator-min-microvolt = <2200000>; | |
676 | regulator-max-microvolt = <2200000>; | |
677 | bias-pull-down; | |
678 | }; | |
679 | ||
680 | /* s0 and s1 are SAW regulators controlled over SPM */ | |
681 | s2 { | |
682 | regulator-min-microvolt = <1300000>; | |
683 | regulator-max-microvolt = <1300000>; | |
684 | qcom,switch-mode-frequency = <1600000>; | |
685 | bias-pull-down; | |
686 | }; | |
687 | s3 { | |
688 | regulator-min-microvolt = <1100000>; | |
689 | regulator-max-microvolt = <1100000>; | |
690 | qcom,switch-mode-frequency = <1600000>; | |
691 | bias-pull-down; | |
692 | }; | |
693 | s4 { | |
694 | regulator-min-microvolt = <1225000>; | |
695 | regulator-max-microvolt = <1225000>; | |
696 | qcom,switch-mode-frequency = <1600000>; | |
697 | bias-pull-down; | |
698 | }; | |
699 | ||
700 | /* LVS0 thru 3 and mvs0 are just switches */ | |
701 | lvs0 { | |
702 | regulator-always-on; | |
703 | }; | |
704 | lvs1 { }; | |
705 | lvs2 { }; | |
706 | lvs3 { }; | |
707 | mvs0 {}; | |
708 | ||
709 | }; | |
710 | ||
711 | pm8058-regulators { | |
712 | vdd_l0_l1_lvs-supply = <&pm8058_s3>; | |
713 | vdd_l2_l11_l12-supply = <&vph>; | |
714 | vdd_l3_l4_l5-supply = <&vph>; | |
715 | vdd_l6_l7-supply = <&vph>; | |
716 | vdd_l8-supply = <&vph>; | |
717 | vdd_l9-supply = <&vph>; | |
718 | vdd_l10-supply = <&vph>; | |
719 | vdd_l13_l16-supply = <&pm8058_s4>; | |
720 | vdd_l14_l15-supply = <&vph>; | |
721 | vdd_l17_l18-supply = <&vph>; | |
722 | vdd_l19_l20-supply = <&vph>; | |
723 | vdd_l21-supply = <&pm8058_s3>; | |
724 | vdd_l22-supply = <&pm8058_s3>; | |
725 | vdd_l23_l24_l25-supply = <&pm8058_s3>; | |
726 | vdd_s0-supply = <&vph>; | |
727 | vdd_s1-supply = <&vph>; | |
728 | vdd_s2-supply = <&vph>; | |
729 | vdd_s3-supply = <&vph>; | |
730 | vdd_s4-supply = <&vph>; | |
731 | vdd_ncp-supply = <&vph>; | |
732 | ||
733 | l0 { | |
734 | regulator-min-microvolt = <1200000>; | |
735 | regulator-max-microvolt = <1200000>; | |
736 | bias-pull-down; | |
737 | }; | |
738 | l1 { | |
739 | regulator-min-microvolt = <1200000>; | |
740 | regulator-max-microvolt = <1200000>; | |
741 | bias-pull-down; | |
742 | }; | |
743 | l2 { | |
744 | regulator-min-microvolt = <1800000>; | |
745 | regulator-max-microvolt = <2600000>; | |
746 | bias-pull-down; | |
747 | }; | |
748 | l3 { | |
749 | regulator-min-microvolt = <1800000>; | |
750 | regulator-max-microvolt = <1800000>; | |
751 | bias-pull-down; | |
752 | }; | |
753 | l4 { | |
754 | regulator-min-microvolt = <2850000>; | |
755 | regulator-max-microvolt = <2850000>; | |
756 | bias-pull-down; | |
757 | }; | |
758 | l5 { | |
759 | regulator-min-microvolt = <2850000>; | |
760 | regulator-max-microvolt = <2850000>; | |
761 | bias-pull-down; | |
762 | }; | |
763 | l6 { | |
764 | regulator-min-microvolt = <3000000>; | |
765 | regulator-max-microvolt = <3600000>; | |
766 | bias-pull-down; | |
767 | }; | |
768 | l7 { | |
769 | regulator-min-microvolt = <1800000>; | |
770 | regulator-max-microvolt = <1800000>; | |
771 | bias-pull-down; | |
772 | }; | |
773 | l8 { | |
774 | regulator-min-microvolt = <2900000>; | |
775 | regulator-max-microvolt = <3050000>; | |
776 | bias-pull-down; | |
777 | }; | |
778 | l9 { | |
779 | regulator-min-microvolt = <1800000>; | |
780 | regulator-max-microvolt = <1800000>; | |
781 | bias-pull-down; | |
782 | }; | |
783 | l10 { | |
784 | regulator-min-microvolt = <2600000>; | |
785 | regulator-max-microvolt = <2600000>; | |
786 | bias-pull-down; | |
787 | }; | |
788 | l11 { | |
789 | regulator-min-microvolt = <1500000>; | |
790 | regulator-max-microvolt = <1500000>; | |
791 | bias-pull-down; | |
792 | }; | |
793 | l12 { | |
794 | regulator-min-microvolt = <2900000>; | |
795 | regulator-max-microvolt = <2900000>; | |
796 | bias-pull-down; | |
797 | }; | |
798 | l13 { | |
799 | regulator-min-microvolt = <2050000>; | |
800 | regulator-max-microvolt = <2050000>; | |
801 | bias-pull-down; | |
802 | }; | |
803 | l14 { | |
804 | regulator-min-microvolt = <2850000>; | |
805 | regulator-max-microvolt = <2850000>; | |
806 | }; | |
807 | l15 { | |
808 | regulator-min-microvolt = <2850000>; | |
809 | regulator-max-microvolt = <2850000>; | |
810 | bias-pull-down; | |
811 | }; | |
812 | l16 { | |
813 | regulator-min-microvolt = <1800000>; | |
814 | regulator-max-microvolt = <1800000>; | |
815 | bias-pull-down; | |
816 | regulator-always-on; | |
817 | }; | |
818 | l17 { | |
819 | // 1.5V according to schematic | |
820 | regulator-min-microvolt = <2600000>; | |
821 | regulator-max-microvolt = <2600000>; | |
822 | bias-pull-down; | |
823 | }; | |
824 | l18 { | |
825 | regulator-min-microvolt = <2200000>; | |
826 | regulator-max-microvolt = <2200000>; | |
827 | bias-pull-down; | |
828 | }; | |
829 | l19 { | |
830 | regulator-min-microvolt = <2500000>; | |
831 | regulator-max-microvolt = <2500000>; | |
832 | bias-pull-down; | |
833 | }; | |
834 | l20 { | |
835 | regulator-min-microvolt = <1800000>; | |
836 | regulator-max-microvolt = <1800000>; | |
837 | bias-pull-down; | |
838 | }; | |
839 | l21 { | |
840 | // 1.1 V according to schematic | |
841 | regulator-min-microvolt = <1200000>; | |
842 | regulator-max-microvolt = <1200000>; | |
843 | bias-pull-down; | |
844 | regulator-always-on; | |
845 | }; | |
846 | l22 { | |
847 | // 1.2 V according to schematic | |
848 | regulator-min-microvolt = <1150000>; | |
849 | regulator-max-microvolt = <1150000>; | |
850 | bias-pull-down; | |
851 | }; | |
852 | l23 { | |
853 | // Unused | |
854 | regulator-min-microvolt = <1200000>; | |
855 | regulator-max-microvolt = <1200000>; | |
856 | bias-pull-down; | |
857 | }; | |
858 | l24 { | |
859 | // Unused | |
860 | regulator-min-microvolt = <1200000>; | |
861 | regulator-max-microvolt = <1200000>; | |
862 | bias-pull-down; | |
863 | }; | |
864 | l25 { | |
865 | regulator-min-microvolt = <1200000>; | |
866 | regulator-max-microvolt = <1200000>; | |
867 | bias-pull-down; | |
868 | }; | |
869 | ||
870 | s0 { | |
871 | // regulator-min-microvolt = <500000>; | |
872 | // regulator-max-microvolt = <1325000>; | |
873 | regulator-min-microvolt = <1100000>; | |
874 | regulator-max-microvolt = <1100000>; | |
875 | qcom,switch-mode-frequency = <1600000>; | |
876 | bias-pull-down; | |
877 | }; | |
878 | s1 { | |
879 | // regulator-min-microvolt = <500000>; | |
880 | // regulator-max-microvolt = <1250000>; | |
881 | regulator-min-microvolt = <1100000>; | |
882 | regulator-max-microvolt = <1100000>; | |
883 | qcom,switch-mode-frequency = <1600000>; | |
884 | bias-pull-down; | |
885 | }; | |
886 | s2 { | |
887 | // 1.3 V according to schematic | |
888 | regulator-min-microvolt = <1200000>; | |
889 | regulator-max-microvolt = <1400000>; | |
890 | qcom,switch-mode-frequency = <1600000>; | |
891 | bias-pull-down; | |
892 | }; | |
893 | s3 { | |
894 | regulator-min-microvolt = <1800000>; | |
895 | regulator-max-microvolt = <1800000>; | |
896 | qcom,switch-mode-frequency = <1600000>; | |
897 | regulator-always-on; | |
898 | bias-pull-down; | |
899 | }; | |
900 | s4 { | |
901 | regulator-min-microvolt = <2200000>; | |
902 | regulator-max-microvolt = <2200000>; | |
903 | qcom,switch-mode-frequency = <1600000>; | |
904 | regulator-always-on; | |
905 | bias-pull-down; | |
906 | }; | |
907 | ||
908 | /* LVS0 and LVS1 are just switches */ | |
909 | lvs0 { | |
910 | bias-pull-down; | |
911 | }; | |
912 | lvs1 { | |
913 | bias-pull-down; | |
914 | }; | |
915 | ||
916 | ncp { | |
917 | regulator-min-microvolt = <1800000>; | |
918 | regulator-max-microvolt = <1800000>; | |
919 | qcom,switch-mode-frequency = <1600000>; | |
920 | }; | |
921 | }; | |
922 | }; | |
923 | amba { | |
924 | /* Internal 3.69 GiB eMMC */ | |
925 | sdcc@12400000 { | |
926 | status = "okay"; | |
927 | pinctrl-names = "default"; | |
928 | pinctrl-0 = <&dragon_sdcc1_pins>; | |
929 | vmmc-supply = <&pm8901_l5>; | |
930 | vqmmc-supply = <&pm8901_lvs0>; | |
931 | }; | |
932 | ||
933 | /* External micro SD card, directly connected, pulled up to 2.85 V */ | |
934 | sdcc@12180000 { | |
935 | status = "okay"; | |
936 | /* Enable SSBI GPIO 22 as input, use for card detect */ | |
937 | pinctrl-names = "default"; | |
938 | pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>; | |
939 | cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>; | |
940 | wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; | |
941 | vmmc-supply = <&pm8058_l14>; | |
942 | }; | |
943 | ||
944 | /* | |
945 | * Second external micro SD card, using two TXB104RGYR levelshifters | |
946 | * to lift from 1.8 V to 2.85 V | |
947 | */ | |
948 | sdcc@12200000 { | |
949 | status = "okay"; | |
950 | /* Enable SSBI GPIO 26 as input, use for card detect */ | |
951 | pinctrl-names = "default"; | |
952 | pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>; | |
953 | cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>; | |
954 | wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>; | |
955 | vmmc-supply = <&pm8058_l14>; | |
956 | vqmmc-supply = <&dragon_vio_txb>; | |
957 | }; | |
958 | }; | |
959 | }; | |
960 | }; |