blob: 97d5d21b7db7c2bdb416c064ef389b3425f82b41 [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 Walleij3bfdebb2013-11-13 10:32:20 +010014#include "ste-href-family-pinctrl.dtsi"
Arnd Bergmann2d334292012-03-07 15:04:07 +000015
16/ {
17 model = "Calao Systems Snowball platform with device tree";
Lee Jones79b40752012-10-15 10:07:55 +010018 compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
Arnd Bergmann2d334292012-03-07 15:04:07 +000019
Arnd Bergmann2d334292012-03-07 15:04:07 +000020 memory {
21 reg = <0x00000000 0x20000000>;
22 };
23
Lee Jonesbc367482012-05-03 11:23:47 +010024 en_3v3_reg: en_3v3 {
25 compatible = "regulator-fixed";
Lee Jonesb0995762013-06-18 09:51:58 +010026 regulator-name = "en-3v3-fixed-supply";
27 regulator-min-microvolt = <3300000>;
28 regulator-max-microvolt = <3300000>;
29 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
30 gpio = <&ab8500_gpio 25 0x4>;
31 startup-delay-us = <5000>;
32 enable-active-high;
Lee Jonesbc367482012-05-03 11:23:47 +010033 };
34
Lee Jones7e0ce272012-03-15 16:46:17 +000035 gpio_keys {
36 compatible = "gpio-keys";
37 #address-cells = <1>;
38 #size-cells = <0>;
39
40 button@1 {
41 debounce_interval = <50>;
42 wakeup = <1>;
43 linux,code = <2>;
44 label = "userpb";
Lee Jones93b56982012-05-29 14:17:36 +080045 gpios = <&gpio1 0 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000046 };
47 button@2 {
48 debounce_interval = <50>;
49 wakeup = <1>;
50 linux,code = <3>;
Lee Jones3f3ed402012-04-13 15:05:07 +010051 label = "extkb1";
Lee Jones93b56982012-05-29 14:17:36 +080052 gpios = <&gpio4 23 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000053 };
54 button@3 {
55 debounce_interval = <50>;
56 wakeup = <1>;
57 linux,code = <4>;
Lee Jones3f3ed402012-04-13 15:05:07 +010058 label = "extkb2";
Lee Jones93b56982012-05-29 14:17:36 +080059 gpios = <&gpio4 24 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000060 };
61 button@4 {
62 debounce_interval = <50>;
63 wakeup = <1>;
64 linux,code = <5>;
Lee Jones3f3ed402012-04-13 15:05:07 +010065 label = "extkb3";
Lee Jones93b56982012-05-29 14:17:36 +080066 gpios = <&gpio5 1 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000067 };
68 button@5 {
69 debounce_interval = <50>;
70 wakeup = <1>;
71 linux,code = <6>;
Lee Jones3f3ed402012-04-13 15:05:07 +010072 label = "extkb4";
Lee Jones93b56982012-05-29 14:17:36 +080073 gpios = <&gpio5 2 0x4>;
Lee Jones7e0ce272012-03-15 16:46:17 +000074 };
75 };
76
77 leds {
78 compatible = "gpio-leds";
Linus Walleij2f4b84f2013-11-17 11:33:19 +010079 pinctrl-names = "default";
80 pinctrl-0 = <&gpioled_snowball_mode>;
Lee Jones7e0ce272012-03-15 16:46:17 +000081 used-led {
82 label = "user_led";
Lee Jones93b56982012-05-29 14:17:36 +080083 gpios = <&gpio4 14 0x4>;
Lee Jones7fd975f2012-06-15 09:30:30 +010084 default-state = "on";
Lee Jonesfd53d042012-05-02 09:48:38 +010085 linux,default-trigger = "heartbeat";
Lee Jones7e0ce272012-03-15 16:46:17 +000086 };
87 };
88
Gabriel Fernandezb1ba1432013-03-01 14:38:07 +010089 soc {
Linus Walleija12f7032013-11-13 15:59:40 +010090 usb_per5@a03e0000 {
91 pinctrl-names = "default", "sleep";
92 pinctrl-0 = <&musb_default_mode>;
93 pinctrl-1 = <&musb_sleep_mode>;
94 };
Lee Jonese6488062012-07-31 13:31:50 +010095
96 sound {
97 compatible = "stericsson,snd-soc-mop500";
98
99 stericsson,cpu-dai = <&msp1 &msp3>;
100 stericsson,audio-codec = <&codec>;
101 };
102
Linus Walleij70b41ab2013-11-13 14:45:06 +0100103 msp0: msp@80123000 {
104 pinctrl-names = "default";
105 pinctrl-0 = <&msp0_default_mode>;
106 status = "okay";
107 };
108
Lee Jonesfe164522012-07-31 12:37:16 +0100109 msp1: msp@80124000 {
Linus Walleij70b41ab2013-11-13 14:45:06 +0100110 pinctrl-names = "default";
111 pinctrl-0 = <&msp1_default_mode>;
112 status = "okay";
113 };
114
115 msp2: msp@80117000 {
116 pinctrl-names = "default";
117 pinctrl-0 = <&msp2_default_mode>;
Lee Jonesfe164522012-07-31 12:37:16 +0100118 status = "okay";
119 };
120
121 msp3: msp@80125000 {
122 status = "okay";
123 };
124
Lee Jones7e0ce272012-03-15 16:46:17 +0000125 external-bus@50000000 {
Lee Jonesbf76e062012-04-24 10:53:18 +0100126 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000127
Lee Jonesbf76e062012-04-24 10:53:18 +0100128 ethernet@0 {
129 compatible = "smsc,lan9115";
130 reg = <0 0x10000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200131 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000132 interrupt-parent = <&gpio4>;
Lee Jonesbc367482012-05-03 11:23:47 +0100133 vdd33a-supply = <&en_3v3_reg>;
134 vddvario-supply = <&db8500_vape_reg>;
Linus Walleija48bf4b2013-11-17 10:02:22 +0100135 pinctrl-names = "default";
136 pinctrl-0 = <&eth_snowball_mode>;
Lee Jonesbc367482012-05-03 11:23:47 +0100137
Lee Jonesbf76e062012-04-24 10:53:18 +0100138 reg-shift = <1>;
139 reg-io-width = <2>;
140 smsc,force-internal-phy;
141 smsc,irq-active-high;
142 smsc,irq-push-pull;
Lee Jones7fb2afc2013-06-03 13:06:13 +0100143
144 clocks = <&prcc_pclk 3 0>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000145 };
146 };
147
Lee Jones383307c2013-04-02 14:21:54 +0100148 vmmci: regulator-gpio {
Ulf Hanssona1ab5e42013-12-12 14:31:37 +0100149 gpios = <&gpio7 4 0x4>;
150 enable-gpio = <&gpio6 25 0x4>;
Lee Jones383307c2013-04-02 14:21:54 +0100151 };
152
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800153 // External Micro SD slot
Lee Jones81bf8c22012-09-26 12:55:56 +0100154 sdi0_per1@80126000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800155 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200156 max-frequency = <100000000>;
Lee Jones92a0f482012-09-26 11:12:48 +0100157 bus-width = <4>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800158 mmc-cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800159 vmmc-supply = <&ab8500_ldo_aux3_reg>;
Lee Jones383307c2013-04-02 14:21:54 +0100160 vqmmc-supply = <&vmmci>;
Linus Walleij1e662352013-11-13 13:46:57 +0100161 pinctrl-names = "default", "sleep";
162 pinctrl-0 = <&sdi0_default_mode>;
163 pinctrl-1 = <&sdi0_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800164
Lee Jones93b56982012-05-29 14:17:36 +0800165 cd-gpios = <&gpio6 26 0x4>; // 218
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800166 cd-inverted;
167
168 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000169 };
170
Linus Walleij1e662352013-11-13 13:46:57 +0100171 // WLAN SDIO channel
172 sdi1_per2@80118000 {
173 arm,primecell-periphid = <0x10480180>;
174 max-frequency = <100000000>;
175 bus-width = <4>;
176 pinctrl-names = "default", "sleep";
177 pinctrl-0 = <&sdi1_default_mode>;
178 pinctrl-1 = <&sdi1_sleep_mode>;
179
180 status = "okay";
181 };
182
183 // Unused PoP eMMC - register and put it to sleep by default */
184 sdi2_per3@80005000 {
185 arm,primecell-periphid = <0x10480180>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&sdi2_sleep_mode>;
188
189 status = "okay";
190 };
191
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800192 // On-board eMMC
Lee Jones81bf8c22012-09-26 12:55:56 +0100193 sdi4_per2@80114000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800194 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200195 max-frequency = <100000000>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800196 bus-width = <8>;
197 mmc-cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800198 vmmc-supply = <&ab8500_ldo_aux2_reg>;
Linus Walleij1e662352013-11-13 13:46:57 +0100199 pinctrl-names = "default", "sleep";
200 pinctrl-0 = <&sdi4_default_mode>;
201 pinctrl-1 = <&sdi4_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800202
203 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000204 };
205
Lee Jones4905af02012-03-07 17:35:04 +0000206 uart@80120000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100207 pinctrl-names = "default", "sleep";
208 pinctrl-0 = <&uart0_default_mode>;
209 pinctrl-1 = <&uart0_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000210 status = "okay";
211 };
212
213 uart@80121000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100214 pinctrl-names = "default", "sleep";
215 pinctrl-0 = <&uart1_default_mode>;
216 pinctrl-1 = <&uart1_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000217 status = "okay";
218 };
219
220 uart@80007000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100221 pinctrl-names = "default", "sleep";
222 pinctrl-0 = <&uart2_default_mode>;
223 pinctrl-1 = <&uart2_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000224 status = "okay";
225 };
226
Linus Walleij96fee132013-11-13 11:10:07 +0100227 i2c@80004000 {
228 pinctrl-names = "default","sleep";
229 pinctrl-0 = <&i2c0_default_mode>;
230 pinctrl-1 = <&i2c0_sleep_mode>;
231 };
232
233 i2c@80122000 {
234 pinctrl-names = "default","sleep";
235 pinctrl-0 = <&i2c1_default_mode>;
236 pinctrl-1 = <&i2c1_sleep_mode>;
237 };
238
239 i2c@80128000 {
240 pinctrl-names = "default","sleep";
241 pinctrl-0 = <&i2c2_default_mode>;
242 pinctrl-1 = <&i2c2_sleep_mode>;
243 };
244
245 i2c@80110000 {
246 pinctrl-names = "default","sleep";
247 pinctrl-0 = <&i2c3_default_mode>;
248 pinctrl-1 = <&i2c3_sleep_mode>;
249 };
250
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100251 ssp@80002000 {
252 pinctrl-names = "default";
253 pinctrl-0 = <&ssp0_snowball_mode>;
254 };
255
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800256 cpufreq-cooling {
257 status = "okay";
258 };
Linus Torvaldsdb5b0ae2012-12-13 10:39:26 -0800259
Lee Jones809efa52012-09-25 12:04:51 +0100260 prcmu@80157000 {
Lee Jones6cb7ea92013-09-18 16:03:07 +0100261 cpufreq {
262 status = "okay";
263 };
264
Lee Jones6c1d25b2013-04-02 14:21:51 +0100265 thermal@801573c0 {
266 num-trips = <4>;
267
268 trip0-temp = <70000>;
269 trip0-type = "active";
270 trip0-cdev-num = <1>;
271 trip0-cdev-name0 = "thermal-cpufreq-0";
272
273 trip1-temp = <75000>;
274 trip1-type = "active";
275 trip1-cdev-num = <1>;
276 trip1-cdev-name0 = "thermal-cpufreq-0";
277
278 trip2-temp = <80000>;
279 trip2-type = "active";
280 trip2-cdev-num = <1>;
281 trip2-cdev-name0 = "thermal-cpufreq-0";
282
283 trip3-temp = <85000>;
284 trip3-type = "critical";
285 trip3-cdev-num = <0>;
286
287 status = "okay";
288 };
289
Arnd Bergmannd52701d32013-03-12 09:39:01 +0100290 ab8500 {
Lee Jones924e82d2013-01-16 14:28:03 +0000291 ab8500-gpio {
292 compatible = "stericsson,ab8500-gpio";
293 };
294
Lee Jonesb0c8fad2013-06-07 17:11:21 +0100295 ext_regulators: ab8500-ext-regulators {
296 ab8500_ext1_reg: ab8500_ext1 {
297 regulator-name = "ab8500-ext-supply1";
298 };
299
300 ab8500_ext2_reg_reg: ab8500_ext2 {
301 regulator-name = "ab8500-ext-supply2";
302 };
303
304 ab8500_ext3_reg_reg: ab8500_ext3 {
305 regulator-name = "ab8500-ext-supply3";
306 };
307 };
308
Lee Jones809efa52012-09-25 12:04:51 +0100309 ab8500-regulators {
310 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
311 regulator-name = "V-DISPLAY";
312 };
313
314 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
315 regulator-name = "V-eMMC1";
316 };
317
318 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
319 regulator-name = "V-MMC-SD";
320 };
321
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200322 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
Lee Jones809efa52012-09-25 12:04:51 +0100323 regulator-name = "V-INTCORE";
324 };
325
326 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
327 regulator-name = "V-TVOUT";
328 };
329
330 ab8500_ldo_usb_reg: ab8500_ldo_usb {
331 regulator-name = "dummy";
332 };
333
334 ab8500_ldo_audio_reg: ab8500_ldo_audio {
335 regulator-name = "V-AUD";
336 };
337
338 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
339 regulator-name = "V-AMIC1";
340 };
341
Fabio Baltieri5510ed92013-05-30 15:27:42 +0200342 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
Lee Jones809efa52012-09-25 12:04:51 +0100343 regulator-name = "V-AMIC2";
344 };
345
346 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
347 regulator-name = "V-DMIC";
348 };
349
350 ab8500_ldo_ana_reg: ab8500_ldo_ana {
351 regulator-name = "V-CSI/DSI";
352 };
353 };
354 };
355 };
Linus Walleij1e662352013-11-13 13:46:57 +0100356
357 pinctrl {
Linus Walleij4d4629f2013-11-17 11:52:32 +0100358 /*
359 * Set this up using hogs, as time goes by and as seems fit, these
360 * can be moved over to being controlled by respective device.
361 */
362 pinctrl-names = "default";
363 pinctrl-0 = <&accel_snowball_mode>,
364 <&magneto_snowball_mode>,
365 <&gbf_snowball_mode>,
366 <&wlan_snowball_mode>;
367
Linus Walleija48bf4b2013-11-17 10:02:22 +0100368 ethernet {
369 /*
370 * Mux in "SM" which is used for the
371 * SMSC911x Ethernet adapter
372 */
373 eth_snowball_mode: eth_snowball {
374 snowball_mux {
375 ste,function = "sm";
376 ste,pins = "sm_b_1";
377 };
378 /* LAN IRQ pin */
379 snowball_cfg1 {
380 ste,pins = "GPIO140_B11";
381 ste,config = <&in_nopull>;
382 };
383 /* LAN reset pin */
384 snowball_cfg2 {
385 ste,pins = "GPIO141_C12";
386 ste,config = <&gpio_out_hi>;
387 };
388
389 };
390 };
Linus Walleij1e662352013-11-13 13:46:57 +0100391 sdi0 {
392 sdi0_default_mode: sdi0_default {
393 snowball_mux {
394 ste,function = "mc0";
395 ste,pins = "mc0dat31dir_a_1";
396 };
397 snowball_cfg1 {
398 ste,pins = "GPIO21_AB3"; /* DAT31DIR */
399 ste,config = <&out_hi>;
400 };
401
402 };
403 };
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100404 ssp0 {
405 ssp0_snowball_mode: ssp0_snowball_default {
406 snowball_mux {
407 ste,function = "ssp0";
408 ste,pins = "ssp0_a_1";
409 };
410 snowball_cfg1 {
411 ste,pins = "GPIO144_B13"; /* FRM */
412 ste,config = <&gpio_out_hi>;
413 };
414 snowball_cfg2 {
415 ste,pins = "GPIO145_C13"; /* RXD */
416 ste,config = <&in_pd>;
417 };
418 snowball_cfg3 {
419 ste,pins =
420 "GPIO146_D13", /* TXD */
421 "GPIO143_D12"; /* CLK */
422 ste,config = <&out_lo>;
423 };
424
425 };
426 };
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100427 gpio_led {
428 gpioled_snowball_mode: gpioled_default {
429 snowball_cfg1 {
430 ste,pins = "GPIO142_C11";
431 ste,config = <&gpio_out_hi>;
432 };
433
434 };
435 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100436 accelerometer {
437 accel_snowball_mode: accel_snowball {
438 /* Accelerometer lines */
439 snowball_cfg1 {
440 ste,pins =
441 "GPIO163_C20", /* ACCEL_IRQ1 */
442 "GPIO164_B21"; /* ACCEL_IRQ2 */
443 ste,config = <&gpio_in_pu>;
444 };
445 };
446 };
447 magnetometer {
448 magneto_snowball_mode: magneto_snowball {
449 snowball_cfg1 {
450 ste,pins = "GPIO165_C21"; /* MAG_DRDY */
451 ste,config = <&gpio_in_pu>;
452 };
453 };
454 };
455 gbf {
456 gbf_snowball_mode: gbf_snowball {
457 /*
458 * GBF (GPS, Bluetooth, FM-radio) interface,
459 * pull low to reset state
460 */
461 snowball_cfg1 {
462 ste,pins = "GPIO171_D23"; /* GBF_ENA_RESET */
463 ste,config = <&gpio_out_lo>;
464 };
465 };
466 };
467 wlan {
468 wlan_snowball_mode: wlan_snowball {
469 /*
470 * Activate this mode with the WLAN chip.
471 * These are plain GPIO pins used by WLAN
472 */
473 snowball_cfg1 {
474 ste,pins =
475 "GPIO161_D21", /* WLAN_PMU_EN */
476 "GPIO215_AH13"; /* WLAN_ENA */
477 ste,config = <&gpio_out_lo>;
478 };
479 snowball_cfg2 {
480 ste,pins = "GPIO216_AG12"; /* WLAN_IRQ */
481 ste,config = <&gpio_in_pu>;
482 };
483 };
484 };
Linus Walleij1e662352013-11-13 13:46:57 +0100485 };
Linus Walleij817a5b92013-11-14 15:23:20 +0100486
487 mcde@a0350000 {
488 pinctrl-names = "default", "sleep";
489 pinctrl-0 = <&lcd_default_mode>;
490 pinctrl-1 = <&lcd_sleep_mode>;
491 };
Arnd Bergmann2d334292012-03-07 15:04:07 +0000492 };
493};