blob: 4a2000c620ad7a6a77f3b7aec18efc9a79e3a94e [file] [log] [blame]
Arnd Bergmann2d334292012-03-07 15:04:07 +00001/*
2 * Copyright 2011 ST-Ericsson AB
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12/dts-v1/;
Linus Walleij2ce05a12013-08-07 15:37:52 +020013#include "ste-dbx5x0.dtsi"
Linus Walleij83200622014-02-03 14:32:20 +010014#include "ste-href-ab8500.dtsi"
Linus Walleij3bfdebb2013-11-13 10:32:20 +010015#include "ste-href-family-pinctrl.dtsi"
Arnd Bergmann2d334292012-03-07 15:04:07 +000016
17/ {
18 model = "Calao Systems Snowball platform with device tree";
Lee Jones79b40752012-10-15 10:07:55 +010019 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
Arnd Bergmann2d334292012-03-07 15:04:07 +000020
Arnd Bergmann2d334292012-03-07 15:04:07 +000021 memory {
22 reg = <0x00000000 0x20000000>;
23 };
24
Lee Jonesbc367482012-05-03 11:23:47 +010025 en_3v3_reg: en_3v3 {
26 compatible = "regulator-fixed";
Lee Jonesb0995762013-06-18 09:51:58 +010027 regulator-name = "en-3v3-fixed-supply";
28 regulator-min-microvolt = <3300000>;
29 regulator-max-microvolt = <3300000>;
30 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
31 gpio = <&ab8500_gpio 25 0x4>;
32 startup-delay-us = <5000>;
33 enable-active-high;
Lee Jonesbc367482012-05-03 11:23:47 +010034 };
35
Lee Jones7e0ce272012-03-15 16:46:17 +000036 gpio_keys {
37 compatible = "gpio-keys";
38 #address-cells = <1>;
39 #size-cells = <0>;
40
41 button@1 {
42 debounce_interval = <50>;
43 wakeup = <1>;
44 linux,code = <2>;
45 label = "userpb";
Lee Jones93b56982012-05-29 14:17:36 +080046 gpios = <&gpio1 0 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000047 };
48 button@2 {
49 debounce_interval = <50>;
50 wakeup = <1>;
51 linux,code = <3>;
Lee Jones3f3ed402012-04-13 15:05:07 +010052 label = "extkb1";
Lee Jones93b56982012-05-29 14:17:36 +080053 gpios = <&gpio4 23 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000054 };
55 button@3 {
56 debounce_interval = <50>;
57 wakeup = <1>;
58 linux,code = <4>;
Lee Jones3f3ed402012-04-13 15:05:07 +010059 label = "extkb2";
Lee Jones93b56982012-05-29 14:17:36 +080060 gpios = <&gpio4 24 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000061 };
62 button@4 {
63 debounce_interval = <50>;
64 wakeup = <1>;
65 linux,code = <5>;
Lee Jones3f3ed402012-04-13 15:05:07 +010066 label = "extkb3";
Lee Jones93b56982012-05-29 14:17:36 +080067 gpios = <&gpio5 1 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000068 };
69 button@5 {
70 debounce_interval = <50>;
71 wakeup = <1>;
72 linux,code = <6>;
Lee Jones3f3ed402012-04-13 15:05:07 +010073 label = "extkb4";
Lee Jones93b56982012-05-29 14:17:36 +080074 gpios = <&gpio5 2 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000075 };
76 };
77
78 leds {
79 compatible = "gpio-leds";
Linus Walleij2f4b84f2013-11-17 11:33:19 +010080 pinctrl-names = "default";
81 pinctrl-0 = <&gpioled_snowball_mode>;
Lee Jones7e0ce272012-03-15 16:46:17 +000082 used-led {
83 label = "user_led";
Lee Jones93b56982012-05-29 14:17:36 +080084 gpios = <&gpio4 14 0x4>;
Lee Jones7fd975f2012-06-15 09:30:30 +010085 default-state = "on";
Lee Jonesfd53d042012-05-02 09:48:38 +010086 linux,default-trigger = "heartbeat";
Lee Jones7e0ce272012-03-15 16:46:17 +000087 };
88 };
89
Gabriel Fernandezb1ba1432013-03-01 14:38:07 +010090 soc {
Linus Walleija12f7032013-11-13 15:59:40 +010091 usb_per5@a03e0000 {
92 pinctrl-names = "default", "sleep";
93 pinctrl-0 = <&musb_default_mode>;
94 pinctrl-1 = <&musb_sleep_mode>;
95 };
Lee Jonese6488062012-07-31 13:31:50 +010096
97 sound {
98 compatible = "stericsson,snd-soc-mop500";
99
100 stericsson,cpu-dai = <&msp1 &msp3>;
101 stericsson,audio-codec = <&codec>;
102 };
103
Linus Walleij70b41ab2013-11-13 14:45:06 +0100104 msp0: msp@80123000 {
105 pinctrl-names = "default";
106 pinctrl-0 = <&msp0_default_mode>;
107 status = "okay";
108 };
109
Lee Jonesfe164522012-07-31 12:37:16 +0100110 msp1: msp@80124000 {
Linus Walleij70b41ab2013-11-13 14:45:06 +0100111 pinctrl-names = "default";
112 pinctrl-0 = <&msp1_default_mode>;
113 status = "okay";
114 };
115
116 msp2: msp@80117000 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&msp2_default_mode>;
Lee Jonesfe164522012-07-31 12:37:16 +0100119 status = "okay";
120 };
121
122 msp3: msp@80125000 {
123 status = "okay";
124 };
125
Lee Jones7e0ce272012-03-15 16:46:17 +0000126 external-bus@50000000 {
Lee Jonesbf76e062012-04-24 10:53:18 +0100127 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000128
Lee Jonesbf76e062012-04-24 10:53:18 +0100129 ethernet@0 {
130 compatible = "smsc,lan9115";
131 reg = <0 0x10000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200132 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000133 interrupt-parent = <&gpio4>;
Lee Jonesbc367482012-05-03 11:23:47 +0100134 vdd33a-supply = <&en_3v3_reg>;
135 vddvario-supply = <&db8500_vape_reg>;
Linus Walleija48bf4b2013-11-17 10:02:22 +0100136 pinctrl-names = "default";
137 pinctrl-0 = <&eth_snowball_mode>;
Lee Jonesbc367482012-05-03 11:23:47 +0100138
Lee Jonesbf76e062012-04-24 10:53:18 +0100139 reg-shift = <1>;
140 reg-io-width = <2>;
141 smsc,force-internal-phy;
142 smsc,irq-active-high;
143 smsc,irq-push-pull;
Lee Jones7fb2afc2013-06-03 13:06:13 +0100144
145 clocks = <&prcc_pclk 3 0>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000146 };
147 };
148
Lee Jones383307c2013-04-02 14:21:54 +0100149 vmmci: regulator-gpio {
Ulf Hanssona1ab5e42013-12-12 14:31:37 +0100150 gpios = <&gpio7 4 0x4>;
151 enable-gpio = <&gpio6 25 0x4>;
Lee Jones383307c2013-04-02 14:21:54 +0100152 };
153
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800154 // External Micro SD slot
Lee Jones81bf8c22012-09-26 12:55:56 +0100155 sdi0_per1@80126000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800156 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200157 max-frequency = <100000000>;
Lee Jones92a0f482012-09-26 11:12:48 +0100158 bus-width = <4>;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100159 cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800160 vmmc-supply = <&ab8500_ldo_aux3_reg>;
Lee Jones383307c2013-04-02 14:21:54 +0100161 vqmmc-supply = <&vmmci>;
Linus Walleij1e662352013-11-13 13:46:57 +0100162 pinctrl-names = "default", "sleep";
163 pinctrl-0 = <&sdi0_default_mode>;
164 pinctrl-1 = <&sdi0_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800165
Lee Jones93b56982012-05-29 14:17:36 +0800166 cd-gpios = <&gpio6 26 0x4>; // 218
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800167 cd-inverted;
168
169 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000170 };
171
Linus Walleij1e662352013-11-13 13:46:57 +0100172 // WLAN SDIO channel
173 sdi1_per2@80118000 {
174 arm,primecell-periphid = <0x10480180>;
175 max-frequency = <100000000>;
176 bus-width = <4>;
177 pinctrl-names = "default", "sleep";
178 pinctrl-0 = <&sdi1_default_mode>;
179 pinctrl-1 = <&sdi1_sleep_mode>;
180
181 status = "okay";
182 };
183
184 // Unused PoP eMMC - register and put it to sleep by default */
185 sdi2_per3@80005000 {
186 arm,primecell-periphid = <0x10480180>;
187 pinctrl-names = "default";
188 pinctrl-0 = <&sdi2_sleep_mode>;
189
190 status = "okay";
191 };
192
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800193 // On-board eMMC
Lee Jones81bf8c22012-09-26 12:55:56 +0100194 sdi4_per2@80114000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800195 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200196 max-frequency = <100000000>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800197 bus-width = <8>;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100198 cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800199 vmmc-supply = <&ab8500_ldo_aux2_reg>;
Linus Walleij1e662352013-11-13 13:46:57 +0100200 pinctrl-names = "default", "sleep";
201 pinctrl-0 = <&sdi4_default_mode>;
202 pinctrl-1 = <&sdi4_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800203
204 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000205 };
206
Lee Jones4905af02012-03-07 17:35:04 +0000207 uart@80120000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100208 pinctrl-names = "default", "sleep";
209 pinctrl-0 = <&uart0_default_mode>;
210 pinctrl-1 = <&uart0_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000211 status = "okay";
212 };
213
214 uart@80121000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100215 pinctrl-names = "default", "sleep";
216 pinctrl-0 = <&uart1_default_mode>;
217 pinctrl-1 = <&uart1_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000218 status = "okay";
219 };
220
221 uart@80007000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100222 pinctrl-names = "default", "sleep";
223 pinctrl-0 = <&uart2_default_mode>;
224 pinctrl-1 = <&uart2_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000225 status = "okay";
226 };
227
Linus Walleij96fee132013-11-13 11:10:07 +0100228 i2c@80004000 {
229 pinctrl-names = "default","sleep";
230 pinctrl-0 = <&i2c0_default_mode>;
231 pinctrl-1 = <&i2c0_sleep_mode>;
232 };
233
234 i2c@80122000 {
235 pinctrl-names = "default","sleep";
236 pinctrl-0 = <&i2c1_default_mode>;
237 pinctrl-1 = <&i2c1_sleep_mode>;
238 };
239
240 i2c@80128000 {
241 pinctrl-names = "default","sleep";
242 pinctrl-0 = <&i2c2_default_mode>;
243 pinctrl-1 = <&i2c2_sleep_mode>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200244 lsm303dlh@18 {
245 /* Accelerometer */
246 compatible = "st,lsm303dlh-accel";
247 st,drdy-int-pin = <1>;
248 reg = <0x18>;
249 vdd-supply = <&ab8500_ldo_aux1_reg>;
250 vddio-supply = <&db8500_vsmps2_reg>;
251 pinctrl-names = "default";
252 pinctrl-0 = <&accel_snowball_mode>;
253 };
254 lsm303dlm@1e {
255 /* Magnetometer */
256 compatible = "st,lsm303dlm-magn";
257 reg = <0x1e>;
258 vdd-supply = <&ab8500_ldo_aux1_reg>;
259 vddio-supply = <&db8500_vsmps2_reg>;
260 pinctrl-names = "default";
261 pinctrl-0 = <&magneto_snowball_mode>;
262 };
263 l3g4200d@68 {
264 /* Gyroscope */
265 compatible = "st,l3g4200d-gyro";
266 st,drdy-int-pin = <2>;
267 reg = <0x68>;
268 vdd-supply = <&ab8500_ldo_aux1_reg>;
269 vddio-supply = <&db8500_vsmps2_reg>;
270 };
271 lsp001wm@5c {
272 /* Barometer/pressure sensor */
273 compatible = "st,lps001wp-press";
274 reg = <0x5c>;
275 vdd-supply = <&ab8500_ldo_aux1_reg>;
276 vddio-supply = <&db8500_vsmps2_reg>;
277 };
Linus Walleij96fee132013-11-13 11:10:07 +0100278 };
279
280 i2c@80110000 {
281 pinctrl-names = "default","sleep";
282 pinctrl-0 = <&i2c3_default_mode>;
283 pinctrl-1 = <&i2c3_sleep_mode>;
284 };
285
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100286 ssp@80002000 {
287 pinctrl-names = "default";
288 pinctrl-0 = <&ssp0_snowball_mode>;
289 };
290
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800291 cpufreq-cooling {
292 status = "okay";
293 };
Linus Torvaldsdb5b0ae2012-12-13 10:39:26 -0800294
Lee Jones809efa52012-09-25 12:04:51 +0100295 prcmu@80157000 {
Lee Jones6cb7ea92013-09-18 16:03:07 +0100296 cpufreq {
297 status = "okay";
298 };
299
Lee Jones6c1d25b2013-04-02 14:21:51 +0100300 thermal@801573c0 {
301 num-trips = <4>;
302
303 trip0-temp = <70000>;
304 trip0-type = "active";
305 trip0-cdev-num = <1>;
306 trip0-cdev-name0 = "thermal-cpufreq-0";
307
308 trip1-temp = <75000>;
309 trip1-type = "active";
310 trip1-cdev-num = <1>;
311 trip1-cdev-name0 = "thermal-cpufreq-0";
312
313 trip2-temp = <80000>;
314 trip2-type = "active";
315 trip2-cdev-num = <1>;
316 trip2-cdev-name0 = "thermal-cpufreq-0";
317
318 trip3-temp = <85000>;
319 trip3-type = "critical";
320 trip3-cdev-num = <0>;
321
322 status = "okay";
323 };
324
Arnd Bergmannd52701d32013-03-12 09:39:01 +0100325 ab8500 {
Lee Jones924e82d2013-01-16 14:28:03 +0000326 ab8500-gpio {
327 compatible = "stericsson,ab8500-gpio";
328 };
329
Lee Jonesb0c8fad2013-06-07 17:11:21 +0100330 ext_regulators: ab8500-ext-regulators {
331 ab8500_ext1_reg: ab8500_ext1 {
332 regulator-name = "ab8500-ext-supply1";
333 };
334
335 ab8500_ext2_reg_reg: ab8500_ext2 {
336 regulator-name = "ab8500-ext-supply2";
337 };
338
339 ab8500_ext3_reg_reg: ab8500_ext3 {
340 regulator-name = "ab8500-ext-supply3";
341 };
342 };
343
Lee Jones809efa52012-09-25 12:04:51 +0100344 ab8500-regulators {
345 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
346 regulator-name = "V-DISPLAY";
347 };
348
349 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
350 regulator-name = "V-eMMC1";
351 };
352
353 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
354 regulator-name = "V-MMC-SD";
355 };
356
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200357 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
Lee Jones809efa52012-09-25 12:04:51 +0100358 regulator-name = "V-INTCORE";
359 };
360
361 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
362 regulator-name = "V-TVOUT";
363 };
364
365 ab8500_ldo_usb_reg: ab8500_ldo_usb {
366 regulator-name = "dummy";
367 };
368
369 ab8500_ldo_audio_reg: ab8500_ldo_audio {
370 regulator-name = "V-AUD";
371 };
372
373 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
374 regulator-name = "V-AMIC1";
375 };
376
Fabio Baltieri5510ed92013-05-30 15:27:42 +0200377 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
Lee Jones809efa52012-09-25 12:04:51 +0100378 regulator-name = "V-AMIC2";
379 };
380
381 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
382 regulator-name = "V-DMIC";
383 };
384
385 ab8500_ldo_ana_reg: ab8500_ldo_ana {
386 regulator-name = "V-CSI/DSI";
387 };
388 };
389 };
390 };
Linus Walleij1e662352013-11-13 13:46:57 +0100391
392 pinctrl {
Linus Walleij4d4629f2013-11-17 11:52:32 +0100393 /*
394 * Set this up using hogs, as time goes by and as seems fit, these
395 * can be moved over to being controlled by respective device.
396 */
397 pinctrl-names = "default";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200398 pinctrl-0 = <&gbf_snowball_mode>,
Linus Walleij4d4629f2013-11-17 11:52:32 +0100399 <&wlan_snowball_mode>;
400
Linus Walleija48bf4b2013-11-17 10:02:22 +0100401 ethernet {
402 /*
403 * Mux in "SM" which is used for the
404 * SMSC911x Ethernet adapter
405 */
406 eth_snowball_mode: eth_snowball {
407 snowball_mux {
408 ste,function = "sm";
409 ste,pins = "sm_b_1";
410 };
411 /* LAN IRQ pin */
412 snowball_cfg1 {
413 ste,pins = "GPIO140_B11";
414 ste,config = <&in_nopull>;
415 };
416 /* LAN reset pin */
417 snowball_cfg2 {
418 ste,pins = "GPIO141_C12";
419 ste,config = <&gpio_out_hi>;
420 };
421
422 };
423 };
Linus Walleij1e662352013-11-13 13:46:57 +0100424 sdi0 {
425 sdi0_default_mode: sdi0_default {
426 snowball_mux {
427 ste,function = "mc0";
428 ste,pins = "mc0dat31dir_a_1";
429 };
430 snowball_cfg1 {
431 ste,pins = "GPIO21_AB3"; /* DAT31DIR */
432 ste,config = <&out_hi>;
433 };
434
435 };
436 };
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100437 ssp0 {
438 ssp0_snowball_mode: ssp0_snowball_default {
439 snowball_mux {
440 ste,function = "ssp0";
441 ste,pins = "ssp0_a_1";
442 };
443 snowball_cfg1 {
444 ste,pins = "GPIO144_B13"; /* FRM */
445 ste,config = <&gpio_out_hi>;
446 };
447 snowball_cfg2 {
448 ste,pins = "GPIO145_C13"; /* RXD */
449 ste,config = <&in_pd>;
450 };
451 snowball_cfg3 {
452 ste,pins =
453 "GPIO146_D13", /* TXD */
454 "GPIO143_D12"; /* CLK */
455 ste,config = <&out_lo>;
456 };
457
458 };
459 };
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100460 gpio_led {
461 gpioled_snowball_mode: gpioled_default {
462 snowball_cfg1 {
463 ste,pins = "GPIO142_C11";
464 ste,config = <&gpio_out_hi>;
465 };
466
467 };
468 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100469 accelerometer {
470 accel_snowball_mode: accel_snowball {
471 /* Accelerometer lines */
472 snowball_cfg1 {
473 ste,pins =
474 "GPIO163_C20", /* ACCEL_IRQ1 */
475 "GPIO164_B21"; /* ACCEL_IRQ2 */
476 ste,config = <&gpio_in_pu>;
477 };
478 };
479 };
480 magnetometer {
481 magneto_snowball_mode: magneto_snowball {
482 snowball_cfg1 {
483 ste,pins = "GPIO165_C21"; /* MAG_DRDY */
484 ste,config = <&gpio_in_pu>;
485 };
486 };
487 };
488 gbf {
489 gbf_snowball_mode: gbf_snowball {
490 /*
491 * GBF (GPS, Bluetooth, FM-radio) interface,
492 * pull low to reset state
493 */
494 snowball_cfg1 {
495 ste,pins = "GPIO171_D23"; /* GBF_ENA_RESET */
496 ste,config = <&gpio_out_lo>;
497 };
498 };
499 };
500 wlan {
501 wlan_snowball_mode: wlan_snowball {
502 /*
503 * Activate this mode with the WLAN chip.
504 * These are plain GPIO pins used by WLAN
505 */
506 snowball_cfg1 {
507 ste,pins =
508 "GPIO161_D21", /* WLAN_PMU_EN */
509 "GPIO215_AH13"; /* WLAN_ENA */
510 ste,config = <&gpio_out_lo>;
511 };
512 snowball_cfg2 {
513 ste,pins = "GPIO216_AG12"; /* WLAN_IRQ */
514 ste,config = <&gpio_in_pu>;
515 };
516 };
517 };
Linus Walleij1e662352013-11-13 13:46:57 +0100518 };
Linus Walleij817a5b92013-11-14 15:23:20 +0100519
520 mcde@a0350000 {
521 pinctrl-names = "default", "sleep";
522 pinctrl-0 = <&lcd_default_mode>;
523 pinctrl-1 = <&lcd_sleep_mode>;
524 };
Arnd Bergmann2d334292012-03-07 15:04:07 +0000525 };
526};