blob: b3df1c60d4657e59255f39ff24cccc87a895ca6d [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
Linus Walleij109978d2015-07-10 11:32:15 +020021 /* This stablilizes the serial port enumeration */
22 aliases {
23 serial0 = &ux500_serial0;
24 serial1 = &ux500_serial1;
25 serial2 = &ux500_serial2;
26 };
27
Arnd Bergmann2d334292012-03-07 15:04:07 +000028 memory {
29 reg = <0x00000000 0x20000000>;
30 };
31
Lee Jonesbc367482012-05-03 11:23:47 +010032 en_3v3_reg: en_3v3 {
33 compatible = "regulator-fixed";
Lee Jonesb0995762013-06-18 09:51:58 +010034 regulator-name = "en-3v3-fixed-supply";
35 regulator-min-microvolt = <3300000>;
36 regulator-max-microvolt = <3300000>;
37 /* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
38 gpio = <&ab8500_gpio 25 0x4>;
39 startup-delay-us = <5000>;
40 enable-active-high;
Lee Jonesbc367482012-05-03 11:23:47 +010041 };
42
Lee Jones7e0ce272012-03-15 16:46:17 +000043 gpio_keys {
44 compatible = "gpio-keys";
45 #address-cells = <1>;
46 #size-cells = <0>;
47
48 button@1 {
49 debounce_interval = <50>;
Sudeep Holla4db70622015-10-16 17:01:36 +010050 wakeup-source;
Lee Jones7e0ce272012-03-15 16:46:17 +000051 linux,code = <2>;
52 label = "userpb";
Linus Walleij1b1e8e02016-03-24 15:29:30 +010053 gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +000054 };
55 button@2 {
56 debounce_interval = <50>;
Sudeep Holla4db70622015-10-16 17:01:36 +010057 wakeup-source;
Lee Jones7e0ce272012-03-15 16:46:17 +000058 linux,code = <3>;
Lee Jones3f3ed402012-04-13 15:05:07 +010059 label = "extkb1";
Linus Walleij1b1e8e02016-03-24 15:29:30 +010060 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +000061 };
62 button@3 {
63 debounce_interval = <50>;
Sudeep Holla4db70622015-10-16 17:01:36 +010064 wakeup-source;
Lee Jones7e0ce272012-03-15 16:46:17 +000065 linux,code = <4>;
Lee Jones3f3ed402012-04-13 15:05:07 +010066 label = "extkb2";
Linus Walleij1b1e8e02016-03-24 15:29:30 +010067 gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +000068 };
69 button@4 {
70 debounce_interval = <50>;
Sudeep Holla4db70622015-10-16 17:01:36 +010071 wakeup-source;
Lee Jones7e0ce272012-03-15 16:46:17 +000072 linux,code = <5>;
Lee Jones3f3ed402012-04-13 15:05:07 +010073 label = "extkb3";
Linus Walleij1b1e8e02016-03-24 15:29:30 +010074 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +000075 };
76 button@5 {
77 debounce_interval = <50>;
Sudeep Holla4db70622015-10-16 17:01:36 +010078 wakeup-source;
Lee Jones7e0ce272012-03-15 16:46:17 +000079 linux,code = <6>;
Lee Jones3f3ed402012-04-13 15:05:07 +010080 label = "extkb4";
Linus Walleij1b1e8e02016-03-24 15:29:30 +010081 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
Lee Jones7e0ce272012-03-15 16:46:17 +000082 };
83 };
84
85 leds {
86 compatible = "gpio-leds";
Linus Walleij2f4b84f2013-11-17 11:33:19 +010087 pinctrl-names = "default";
88 pinctrl-0 = <&gpioled_snowball_mode>;
Lee Jones7e0ce272012-03-15 16:46:17 +000089 used-led {
90 label = "user_led";
Linus Walleij1b1e8e02016-03-24 15:29:30 +010091 gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
Lee Jones7fd975f2012-06-15 09:30:30 +010092 default-state = "on";
Lee Jonesfd53d042012-05-02 09:48:38 +010093 linux,default-trigger = "heartbeat";
Lee Jones7e0ce272012-03-15 16:46:17 +000094 };
95 };
96
Gabriel Fernandezb1ba1432013-03-01 14:38:07 +010097 soc {
Linus Walleijad9454b2016-04-21 11:01:02 +020098 /* Name the GPIO muxed rails on the Snowball board */
99 gpio@8012e000 {
100 /* GPIOs 0 - 31 */
101 gpio-line-names = "", "", "", "", "", "", "", "",
102 "", "", "", "", "", "", "", "",
103 "", "", "", "", "", "", "", "",
104 "", "", "", "", "", "", "",
105 "AP_GPIO31";
106 };
107
108 gpio@8012e080 {
109 /* GPIOs 32 - 63 */
110 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
111 "", "", "", "", "", "", "", "",
112 "", "", "", "", "", "", "", "",
113 "", "", "", "", "", "", "", "";
114 };
115
116 gpio@8000e000 {
117 /* GPIOs 64 - 95 */
118 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
119 "", "", "", "", "", "", "", "",
120 "", "", "", "", "", "", "", "",
121 "", "", "", "", "", "", "", "";
122 };
123
124 gpio@8000e100 {
125 /* GPIOs 128 - 159 */
126 gpio-line-names = "", "", "", "", "", "", "", "",
127 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
128 "USR_LED", "", "", "", "", "", "",
129 "", "", "AP_GPIO151", "AP_GPIO152",
130 "", "", "", "", "", "", "";
131 };
132
133 gpio@8000e180 {
134 /* GPIOs 160 - 191 */
135 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
136 "ACCELEROMETER_INT1_RDY",
137 "ACCELEROMETER_INT2", "MAG_DRDY",
138 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
139 "GYRO_INT", "UART_WAKE", "GBF_RESET",
140 "", "", "", "",
141 "", "", "", "", "", "", "", "",
142 "", "", "", "", "", "", "", "";
143 };
144
145 gpio@8011e000 {
146 /* GPIOs 192 - 223 */
147 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
148 "", "", "", "", "", "", "", "", "",
149 "", "", "", "", "", "", "", "", "",
150 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
151 "MMC_CD", "", "", "", "", "";
152 };
153
154 gpio@8011e080 {
155 /* GPIOs 224 - 255 */
156 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
157 "", "", "", "", "", "", "", "",
158 "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "";
160 };
161
Linus Walleija12f7032013-11-13 15:59:40 +0100162 usb_per5@a03e0000 {
163 pinctrl-names = "default", "sleep";
164 pinctrl-0 = <&musb_default_mode>;
165 pinctrl-1 = <&musb_sleep_mode>;
166 };
Lee Jonese6488062012-07-31 13:31:50 +0100167
168 sound {
169 compatible = "stericsson,snd-soc-mop500";
170
171 stericsson,cpu-dai = <&msp1 &msp3>;
172 stericsson,audio-codec = <&codec>;
173 };
174
Linus Walleij70b41ab2013-11-13 14:45:06 +0100175 msp0: msp@80123000 {
176 pinctrl-names = "default";
177 pinctrl-0 = <&msp0_default_mode>;
178 status = "okay";
179 };
180
Lee Jonesfe164522012-07-31 12:37:16 +0100181 msp1: msp@80124000 {
Linus Walleij70b41ab2013-11-13 14:45:06 +0100182 pinctrl-names = "default";
183 pinctrl-0 = <&msp1_default_mode>;
184 status = "okay";
185 };
186
187 msp2: msp@80117000 {
188 pinctrl-names = "default";
189 pinctrl-0 = <&msp2_default_mode>;
Lee Jonesfe164522012-07-31 12:37:16 +0100190 };
191
192 msp3: msp@80125000 {
193 status = "okay";
194 };
195
Lee Jones7e0ce272012-03-15 16:46:17 +0000196 external-bus@50000000 {
Lee Jonesbf76e062012-04-24 10:53:18 +0100197 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000198
Lee Jonesbf76e062012-04-24 10:53:18 +0100199 ethernet@0 {
200 compatible = "smsc,lan9115";
201 reg = <0 0x10000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200202 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000203 interrupt-parent = <&gpio4>;
Lee Jonesbc367482012-05-03 11:23:47 +0100204 vdd33a-supply = <&en_3v3_reg>;
205 vddvario-supply = <&db8500_vape_reg>;
Linus Walleija48bf4b2013-11-17 10:02:22 +0100206 pinctrl-names = "default";
207 pinctrl-0 = <&eth_snowball_mode>;
Lee Jonesbc367482012-05-03 11:23:47 +0100208
Lee Jonesbf76e062012-04-24 10:53:18 +0100209 reg-shift = <1>;
210 reg-io-width = <2>;
211 smsc,force-internal-phy;
212 smsc,irq-active-high;
213 smsc,irq-push-pull;
Lee Jones7fb2afc2013-06-03 13:06:13 +0100214
215 clocks = <&prcc_pclk 3 0>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000216 };
217 };
218
Lee Jones383307c2013-04-02 14:21:54 +0100219 vmmci: regulator-gpio {
Ulf Hansson53d26692015-04-20 16:02:31 +0200220 compatible = "regulator-gpio";
221
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100222 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
223 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
Ulf Hansson53d26692015-04-20 16:02:31 +0200224
225 regulator-min-microvolt = <1800000>;
226 regulator-max-microvolt = <2900000>;
227 regulator-name = "mmci-reg";
228 regulator-type = "voltage";
229
230 startup-delay-us = <100>;
231 enable-active-high;
232
233 states = <1800000 0x1
234 2900000 0x0>;
Lee Jones383307c2013-04-02 14:21:54 +0100235 };
236
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800237 // External Micro SD slot
Lee Jones81bf8c22012-09-26 12:55:56 +0100238 sdi0_per1@80126000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800239 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200240 max-frequency = <100000000>;
Lee Jones92a0f482012-09-26 11:12:48 +0100241 bus-width = <4>;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100242 cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800243 vmmc-supply = <&ab8500_ldo_aux3_reg>;
Lee Jones383307c2013-04-02 14:21:54 +0100244 vqmmc-supply = <&vmmci>;
Linus Walleij1e662352013-11-13 13:46:57 +0100245 pinctrl-names = "default", "sleep";
246 pinctrl-0 = <&sdi0_default_mode>;
247 pinctrl-1 = <&sdi0_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800248
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100249 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>; // 218
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800250
251 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000252 };
253
Linus Walleij1e662352013-11-13 13:46:57 +0100254 // WLAN SDIO channel
255 sdi1_per2@80118000 {
256 arm,primecell-periphid = <0x10480180>;
257 max-frequency = <100000000>;
258 bus-width = <4>;
259 pinctrl-names = "default", "sleep";
260 pinctrl-0 = <&sdi1_default_mode>;
261 pinctrl-1 = <&sdi1_sleep_mode>;
262
263 status = "okay";
264 };
265
266 // Unused PoP eMMC - register and put it to sleep by default */
267 sdi2_per3@80005000 {
268 arm,primecell-periphid = <0x10480180>;
269 pinctrl-names = "default";
270 pinctrl-0 = <&sdi2_sleep_mode>;
271
272 status = "okay";
273 };
274
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800275 // On-board eMMC
Lee Jones81bf8c22012-09-26 12:55:56 +0100276 sdi4_per2@80114000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800277 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200278 max-frequency = <100000000>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800279 bus-width = <8>;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100280 cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800281 vmmc-supply = <&ab8500_ldo_aux2_reg>;
Linus Walleij1e662352013-11-13 13:46:57 +0100282 pinctrl-names = "default", "sleep";
283 pinctrl-0 = <&sdi4_default_mode>;
284 pinctrl-1 = <&sdi4_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800285
286 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000287 };
288
Lee Jones4905af02012-03-07 17:35:04 +0000289 uart@80120000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100290 pinctrl-names = "default", "sleep";
291 pinctrl-0 = <&uart0_default_mode>;
292 pinctrl-1 = <&uart0_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000293 status = "okay";
294 };
295
Linus Walleij1d8aca92015-07-08 15:15:22 +0200296 /* This UART is unused and thus left disabled */
Lee Jones4905af02012-03-07 17:35:04 +0000297 uart@80121000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100298 pinctrl-names = "default", "sleep";
299 pinctrl-0 = <&uart1_default_mode>;
300 pinctrl-1 = <&uart1_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000301 };
302
303 uart@80007000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100304 pinctrl-names = "default", "sleep";
305 pinctrl-0 = <&uart2_default_mode>;
306 pinctrl-1 = <&uart2_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000307 status = "okay";
308 };
309
Linus Walleij96fee132013-11-13 11:10:07 +0100310 i2c@80004000 {
311 pinctrl-names = "default","sleep";
312 pinctrl-0 = <&i2c0_default_mode>;
313 pinctrl-1 = <&i2c0_sleep_mode>;
314 };
315
316 i2c@80122000 {
317 pinctrl-names = "default","sleep";
318 pinctrl-0 = <&i2c1_default_mode>;
319 pinctrl-1 = <&i2c1_sleep_mode>;
320 };
321
322 i2c@80128000 {
323 pinctrl-names = "default","sleep";
324 pinctrl-0 = <&i2c2_default_mode>;
325 pinctrl-1 = <&i2c2_sleep_mode>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200326 lsm303dlh@18 {
327 /* Accelerometer */
328 compatible = "st,lsm303dlh-accel";
329 st,drdy-int-pin = <1>;
330 reg = <0x18>;
331 vdd-supply = <&ab8500_ldo_aux1_reg>;
332 vddio-supply = <&db8500_vsmps2_reg>;
333 pinctrl-names = "default";
334 pinctrl-0 = <&accel_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200335 interrupt-parent = <&gpio5>;
336 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
337 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200338 };
Linus Walleij93deea92015-04-29 14:08:38 +0200339 lsm303dlh@1e {
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200340 /* Magnetometer */
Linus Walleij93deea92015-04-29 14:08:38 +0200341 compatible = "st,lsm303dlh-magn";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200342 reg = <0x1e>;
343 vdd-supply = <&ab8500_ldo_aux1_reg>;
344 vddio-supply = <&db8500_vsmps2_reg>;
345 pinctrl-names = "default";
346 pinctrl-0 = <&magneto_snowball_mode>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100347 interrupt-parent = <&gpio5>;
348 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200349 };
350 l3g4200d@68 {
351 /* Gyroscope */
352 compatible = "st,l3g4200d-gyro";
353 st,drdy-int-pin = <2>;
354 reg = <0x68>;
355 vdd-supply = <&ab8500_ldo_aux1_reg>;
356 vddio-supply = <&db8500_vsmps2_reg>;
Linus Walleij22a93162015-04-27 11:28:33 +0200357 pinctrl-names = "default";
358 pinctrl-0 = <&gyro_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200359 interrupt-parent = <&gpio5>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100360 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
361 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200362 };
363 lsp001wm@5c {
364 /* Barometer/pressure sensor */
365 compatible = "st,lps001wp-press";
366 reg = <0x5c>;
367 vdd-supply = <&ab8500_ldo_aux1_reg>;
368 vddio-supply = <&db8500_vsmps2_reg>;
369 };
Linus Walleij96fee132013-11-13 11:10:07 +0100370 };
371
372 i2c@80110000 {
373 pinctrl-names = "default","sleep";
374 pinctrl-0 = <&i2c3_default_mode>;
375 pinctrl-1 = <&i2c3_sleep_mode>;
376 };
377
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100378 ssp@80002000 {
379 pinctrl-names = "default";
380 pinctrl-0 = <&ssp0_snowball_mode>;
381 };
382
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800383 cpufreq-cooling {
384 status = "okay";
385 };
Linus Torvaldsdb5b0ae2012-12-13 10:39:26 -0800386
Lee Jones809efa52012-09-25 12:04:51 +0100387 prcmu@80157000 {
Lee Jones6cb7ea92013-09-18 16:03:07 +0100388 cpufreq {
389 status = "okay";
390 };
391
Lee Jones6c1d25b2013-04-02 14:21:51 +0100392 thermal@801573c0 {
393 num-trips = <4>;
394
395 trip0-temp = <70000>;
396 trip0-type = "active";
397 trip0-cdev-num = <1>;
398 trip0-cdev-name0 = "thermal-cpufreq-0";
399
400 trip1-temp = <75000>;
401 trip1-type = "active";
402 trip1-cdev-num = <1>;
403 trip1-cdev-name0 = "thermal-cpufreq-0";
404
405 trip2-temp = <80000>;
406 trip2-type = "active";
407 trip2-cdev-num = <1>;
408 trip2-cdev-name0 = "thermal-cpufreq-0";
409
410 trip3-temp = <85000>;
411 trip3-type = "critical";
412 trip3-cdev-num = <0>;
413
414 status = "okay";
415 };
416
Arnd Bergmannd52701d32013-03-12 09:39:01 +0100417 ab8500 {
Lee Jones924e82d2013-01-16 14:28:03 +0000418 ab8500-gpio {
Linus Walleijad9454b2016-04-21 11:01:02 +0200419 /*
420 * AB8500 GPIOs are numbered starting from 1, so the first
421 * index 0 is what in the datasheet is called "GPIO1", and
422 * the second is "GPIO2" and so forth. Confusingly, the
423 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
424 * while later naming "GPIO4" as "PM_GPIO4".
425 */
426 gpio-line-names = "", /* AB8500 GPIO1 */
427 "PM_GPIO1", /* AB8500 GPIO2 */
428 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
429 "PM_GPIO4", /* AB8500 GPIO4 */
430 "", "", "", "", "", "", "", "", "", "", "",
431 "EN_3V6", /* AB8500 GPIO16 */
432 "", "", "", "" ,"", "", "", "", "",
433 "EN_3V3", /* AB8500 GPIO26 */
434 "", "", "", "", "", "", "", "", "", "", "", "", "",
435 "PM_GPIO40", /* AB8500 GPIO40 */
436 "PM_GPIO41", /* AB8500 GPIO41 */
437 "PM_GPIO42"; /* AB8500 GPIO42 */
Lee Jones924e82d2013-01-16 14:28:03 +0000438 };
439
Lee Jonesb0c8fad2013-06-07 17:11:21 +0100440 ext_regulators: ab8500-ext-regulators {
441 ab8500_ext1_reg: ab8500_ext1 {
442 regulator-name = "ab8500-ext-supply1";
443 };
444
445 ab8500_ext2_reg_reg: ab8500_ext2 {
446 regulator-name = "ab8500-ext-supply2";
447 };
448
449 ab8500_ext3_reg_reg: ab8500_ext3 {
450 regulator-name = "ab8500-ext-supply3";
451 };
452 };
453
Lee Jones809efa52012-09-25 12:04:51 +0100454 ab8500-regulators {
455 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
456 regulator-name = "V-DISPLAY";
457 };
458
459 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
460 regulator-name = "V-eMMC1";
461 };
462
463 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
464 regulator-name = "V-MMC-SD";
465 };
466
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200467 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
Lee Jones809efa52012-09-25 12:04:51 +0100468 regulator-name = "V-INTCORE";
469 };
470
471 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
472 regulator-name = "V-TVOUT";
473 };
474
475 ab8500_ldo_usb_reg: ab8500_ldo_usb {
476 regulator-name = "dummy";
477 };
478
479 ab8500_ldo_audio_reg: ab8500_ldo_audio {
480 regulator-name = "V-AUD";
481 };
482
483 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
484 regulator-name = "V-AMIC1";
485 };
486
Fabio Baltieri5510ed92013-05-30 15:27:42 +0200487 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
Lee Jones809efa52012-09-25 12:04:51 +0100488 regulator-name = "V-AMIC2";
489 };
490
491 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
492 regulator-name = "V-DMIC";
493 };
494
495 ab8500_ldo_ana_reg: ab8500_ldo_ana {
496 regulator-name = "V-CSI/DSI";
497 };
498 };
499 };
500 };
Linus Walleij1e662352013-11-13 13:46:57 +0100501
502 pinctrl {
Linus Walleij4d4629f2013-11-17 11:52:32 +0100503 /*
504 * Set this up using hogs, as time goes by and as seems fit, these
505 * can be moved over to being controlled by respective device.
506 */
507 pinctrl-names = "default";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200508 pinctrl-0 = <&gbf_snowball_mode>,
Linus Walleij4d4629f2013-11-17 11:52:32 +0100509 <&wlan_snowball_mode>;
510
Linus Walleija48bf4b2013-11-17 10:02:22 +0100511 ethernet {
512 /*
513 * Mux in "SM" which is used for the
514 * SMSC911x Ethernet adapter
515 */
516 eth_snowball_mode: eth_snowball {
517 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200518 function = "sm";
519 groups = "sm_b_1";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100520 };
521 /* LAN IRQ pin */
522 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200523 pins = "GPIO140_B11";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100524 ste,config = <&in_nopull>;
525 };
526 /* LAN reset pin */
527 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200528 pins = "GPIO141_C12";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100529 ste,config = <&gpio_out_hi>;
530 };
531
532 };
533 };
Linus Walleij1e662352013-11-13 13:46:57 +0100534 sdi0 {
535 sdi0_default_mode: sdi0_default {
536 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200537 function = "mc0";
538 groups = "mc0dat31dir_a_1";
Linus Walleij1e662352013-11-13 13:46:57 +0100539 };
540 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200541 pins = "GPIO21_AB3"; /* DAT31DIR */
Linus Walleij1e662352013-11-13 13:46:57 +0100542 ste,config = <&out_hi>;
543 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200544 /* SD card detect GPIO pin, extend default state */
545 snowball_cfg2 {
546 pins = "GPIO218_AH11";
547 ste,config = <&gpio_in_pu>;
548 };
549 /* VMMCI level-shifter enable */
550 snowball_cfg3 {
551 pins = "GPIO217_AH12";
552 ste,config = <&gpio_out_lo>;
553 };
554 /* VMMCI level-shifter voltage select */
555 snowball_cfg4 {
556 pins = "GPIO228_AJ6";
557 ste,config = <&gpio_out_hi>;
558 };
Linus Walleij1e662352013-11-13 13:46:57 +0100559 };
560 };
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100561 ssp0 {
562 ssp0_snowball_mode: ssp0_snowball_default {
563 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200564 function = "ssp0";
565 groups = "ssp0_a_1";
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100566 };
567 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200568 pins = "GPIO144_B13"; /* FRM */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100569 ste,config = <&gpio_out_hi>;
570 };
571 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200572 pins = "GPIO145_C13"; /* RXD */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100573 ste,config = <&in_pd>;
574 };
575 snowball_cfg3 {
Linus Walleij1637d482014-09-30 12:16:25 +0200576 pins =
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100577 "GPIO146_D13", /* TXD */
578 "GPIO143_D12"; /* CLK */
579 ste,config = <&out_lo>;
580 };
581
582 };
583 };
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100584 gpio_led {
585 gpioled_snowball_mode: gpioled_default {
586 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200587 pins = "GPIO142_C11";
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100588 ste,config = <&gpio_out_hi>;
589 };
590
591 };
592 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100593 accelerometer {
594 accel_snowball_mode: accel_snowball {
595 /* Accelerometer lines */
596 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200597 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100598 "GPIO163_C20", /* ACCEL_IRQ1 */
599 "GPIO164_B21"; /* ACCEL_IRQ2 */
600 ste,config = <&gpio_in_pu>;
601 };
602 };
603 };
Linus Walleij22a93162015-04-27 11:28:33 +0200604 gyro {
605 gyro_snowball_mode: gyro_snowball {
606 snowball_cfg1 {
607 pins =
608 "GPIO166_A22", /* DRDY */
609 "GPIO169_D22"; /* INT */
610 ste,config = <&gpio_in_pu>;
611 };
612 };
613 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100614 magnetometer {
615 magneto_snowball_mode: magneto_snowball {
616 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200617 pins = "GPIO165_C21"; /* MAG_DRDY */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100618 ste,config = <&gpio_in_pu>;
619 };
620 };
621 };
622 gbf {
623 gbf_snowball_mode: gbf_snowball {
624 /*
625 * GBF (GPS, Bluetooth, FM-radio) interface,
626 * pull low to reset state
627 */
628 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200629 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100630 ste,config = <&gpio_out_lo>;
631 };
632 };
633 };
634 wlan {
635 wlan_snowball_mode: wlan_snowball {
636 /*
637 * Activate this mode with the WLAN chip.
638 * These are plain GPIO pins used by WLAN
639 */
640 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200641 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100642 "GPIO161_D21", /* WLAN_PMU_EN */
643 "GPIO215_AH13"; /* WLAN_ENA */
644 ste,config = <&gpio_out_lo>;
645 };
646 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200647 pins = "GPIO216_AG12"; /* WLAN_IRQ */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100648 ste,config = <&gpio_in_pu>;
649 };
650 };
651 };
Linus Walleij1e662352013-11-13 13:46:57 +0100652 };
Linus Walleij817a5b92013-11-14 15:23:20 +0100653
654 mcde@a0350000 {
655 pinctrl-names = "default", "sleep";
656 pinctrl-0 = <&lcd_default_mode>;
657 pinctrl-1 = <&lcd_sleep_mode>;
658 };
Arnd Bergmann2d334292012-03-07 15:04:07 +0000659 };
660};