blob: 386eee6de2320aa60365095d74378ce11a865f0d [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>;
Linus Walleij1b283ee2016-10-07 10:52:17 +0200242 cap-sd-highspeed;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100243 cap-mmc-highspeed;
Linus Walleij1b283ee2016-10-07 10:52:17 +0200244 sd-uhs-sdr12;
245 sd-uhs-sdr25;
246 /* All direction control is used */
247 st,sig-dir-cmd;
248 st,sig-dir-dat0;
249 st,sig-dir-dat2;
250 st,sig-dir-dat31;
251 st,sig-pin-fbclk;
252 full-pwr-cycle;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800253 vmmc-supply = <&ab8500_ldo_aux3_reg>;
Lee Jones383307c2013-04-02 14:21:54 +0100254 vqmmc-supply = <&vmmci>;
Linus Walleij1e662352013-11-13 13:46:57 +0100255 pinctrl-names = "default", "sleep";
256 pinctrl-0 = <&sdi0_default_mode>;
257 pinctrl-1 = <&sdi0_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800258
Linus Walleij1b283ee2016-10-07 10:52:17 +0200259 /* GPIO218 MMC_CD */
260 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800261
262 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000263 };
264
Linus Walleij1e662352013-11-13 13:46:57 +0100265 // WLAN SDIO channel
266 sdi1_per2@80118000 {
267 arm,primecell-periphid = <0x10480180>;
268 max-frequency = <100000000>;
269 bus-width = <4>;
270 pinctrl-names = "default", "sleep";
271 pinctrl-0 = <&sdi1_default_mode>;
272 pinctrl-1 = <&sdi1_sleep_mode>;
273
274 status = "okay";
275 };
276
277 // Unused PoP eMMC - register and put it to sleep by default */
278 sdi2_per3@80005000 {
279 arm,primecell-periphid = <0x10480180>;
280 pinctrl-names = "default";
281 pinctrl-0 = <&sdi2_sleep_mode>;
282
283 status = "okay";
284 };
285
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800286 // On-board eMMC
Lee Jones81bf8c22012-09-26 12:55:56 +0100287 sdi4_per2@80114000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800288 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200289 max-frequency = <100000000>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800290 bus-width = <8>;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100291 cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800292 vmmc-supply = <&ab8500_ldo_aux2_reg>;
Linus Walleij1e662352013-11-13 13:46:57 +0100293 pinctrl-names = "default", "sleep";
294 pinctrl-0 = <&sdi4_default_mode>;
295 pinctrl-1 = <&sdi4_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800296
297 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000298 };
299
Lee Jones4905af02012-03-07 17:35:04 +0000300 uart@80120000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100301 pinctrl-names = "default", "sleep";
302 pinctrl-0 = <&uart0_default_mode>;
303 pinctrl-1 = <&uart0_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000304 status = "okay";
305 };
306
Linus Walleij1d8aca92015-07-08 15:15:22 +0200307 /* This UART is unused and thus left disabled */
Lee Jones4905af02012-03-07 17:35:04 +0000308 uart@80121000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100309 pinctrl-names = "default", "sleep";
310 pinctrl-0 = <&uart1_default_mode>;
311 pinctrl-1 = <&uart1_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000312 };
313
314 uart@80007000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100315 pinctrl-names = "default", "sleep";
316 pinctrl-0 = <&uart2_default_mode>;
317 pinctrl-1 = <&uart2_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000318 status = "okay";
319 };
320
Linus Walleij96fee132013-11-13 11:10:07 +0100321 i2c@80004000 {
322 pinctrl-names = "default","sleep";
323 pinctrl-0 = <&i2c0_default_mode>;
324 pinctrl-1 = <&i2c0_sleep_mode>;
325 };
326
327 i2c@80122000 {
328 pinctrl-names = "default","sleep";
329 pinctrl-0 = <&i2c1_default_mode>;
330 pinctrl-1 = <&i2c1_sleep_mode>;
331 };
332
333 i2c@80128000 {
334 pinctrl-names = "default","sleep";
335 pinctrl-0 = <&i2c2_default_mode>;
336 pinctrl-1 = <&i2c2_sleep_mode>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200337 lsm303dlh@18 {
338 /* Accelerometer */
339 compatible = "st,lsm303dlh-accel";
340 st,drdy-int-pin = <1>;
341 reg = <0x18>;
342 vdd-supply = <&ab8500_ldo_aux1_reg>;
343 vddio-supply = <&db8500_vsmps2_reg>;
344 pinctrl-names = "default";
345 pinctrl-0 = <&accel_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200346 interrupt-parent = <&gpio5>;
347 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
348 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200349 };
Linus Walleij93deea92015-04-29 14:08:38 +0200350 lsm303dlh@1e {
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200351 /* Magnetometer */
Linus Walleij93deea92015-04-29 14:08:38 +0200352 compatible = "st,lsm303dlh-magn";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200353 reg = <0x1e>;
354 vdd-supply = <&ab8500_ldo_aux1_reg>;
355 vddio-supply = <&db8500_vsmps2_reg>;
356 pinctrl-names = "default";
357 pinctrl-0 = <&magneto_snowball_mode>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100358 interrupt-parent = <&gpio5>;
359 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200360 };
361 l3g4200d@68 {
362 /* Gyroscope */
363 compatible = "st,l3g4200d-gyro";
364 st,drdy-int-pin = <2>;
365 reg = <0x68>;
366 vdd-supply = <&ab8500_ldo_aux1_reg>;
367 vddio-supply = <&db8500_vsmps2_reg>;
Linus Walleij22a93162015-04-27 11:28:33 +0200368 pinctrl-names = "default";
369 pinctrl-0 = <&gyro_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200370 interrupt-parent = <&gpio5>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100371 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
372 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200373 };
374 lsp001wm@5c {
375 /* Barometer/pressure sensor */
376 compatible = "st,lps001wp-press";
377 reg = <0x5c>;
378 vdd-supply = <&ab8500_ldo_aux1_reg>;
379 vddio-supply = <&db8500_vsmps2_reg>;
380 };
Linus Walleij96fee132013-11-13 11:10:07 +0100381 };
382
383 i2c@80110000 {
384 pinctrl-names = "default","sleep";
385 pinctrl-0 = <&i2c3_default_mode>;
386 pinctrl-1 = <&i2c3_sleep_mode>;
387 };
388
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100389 ssp@80002000 {
390 pinctrl-names = "default";
391 pinctrl-0 = <&ssp0_snowball_mode>;
392 };
393
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800394 cpufreq-cooling {
395 status = "okay";
396 };
Linus Torvaldsdb5b0ae2012-12-13 10:39:26 -0800397
Lee Jones809efa52012-09-25 12:04:51 +0100398 prcmu@80157000 {
Lee Jones6cb7ea92013-09-18 16:03:07 +0100399 cpufreq {
400 status = "okay";
401 };
402
Lee Jones6c1d25b2013-04-02 14:21:51 +0100403 thermal@801573c0 {
404 num-trips = <4>;
405
406 trip0-temp = <70000>;
407 trip0-type = "active";
408 trip0-cdev-num = <1>;
409 trip0-cdev-name0 = "thermal-cpufreq-0";
410
411 trip1-temp = <75000>;
412 trip1-type = "active";
413 trip1-cdev-num = <1>;
414 trip1-cdev-name0 = "thermal-cpufreq-0";
415
416 trip2-temp = <80000>;
417 trip2-type = "active";
418 trip2-cdev-num = <1>;
419 trip2-cdev-name0 = "thermal-cpufreq-0";
420
421 trip3-temp = <85000>;
422 trip3-type = "critical";
423 trip3-cdev-num = <0>;
424
425 status = "okay";
426 };
427
Arnd Bergmannd52701d32013-03-12 09:39:01 +0100428 ab8500 {
Lee Jones924e82d2013-01-16 14:28:03 +0000429 ab8500-gpio {
Linus Walleijad9454b2016-04-21 11:01:02 +0200430 /*
431 * AB8500 GPIOs are numbered starting from 1, so the first
432 * index 0 is what in the datasheet is called "GPIO1", and
433 * the second is "GPIO2" and so forth. Confusingly, the
434 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
435 * while later naming "GPIO4" as "PM_GPIO4".
436 */
437 gpio-line-names = "", /* AB8500 GPIO1 */
438 "PM_GPIO1", /* AB8500 GPIO2 */
439 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
440 "PM_GPIO4", /* AB8500 GPIO4 */
441 "", "", "", "", "", "", "", "", "", "", "",
442 "EN_3V6", /* AB8500 GPIO16 */
443 "", "", "", "" ,"", "", "", "", "",
444 "EN_3V3", /* AB8500 GPIO26 */
445 "", "", "", "", "", "", "", "", "", "", "", "", "",
446 "PM_GPIO40", /* AB8500 GPIO40 */
447 "PM_GPIO41", /* AB8500 GPIO41 */
448 "PM_GPIO42"; /* AB8500 GPIO42 */
Lee Jones924e82d2013-01-16 14:28:03 +0000449 };
450
Lee Jonesb0c8fad2013-06-07 17:11:21 +0100451 ext_regulators: ab8500-ext-regulators {
452 ab8500_ext1_reg: ab8500_ext1 {
453 regulator-name = "ab8500-ext-supply1";
454 };
455
456 ab8500_ext2_reg_reg: ab8500_ext2 {
457 regulator-name = "ab8500-ext-supply2";
458 };
459
460 ab8500_ext3_reg_reg: ab8500_ext3 {
461 regulator-name = "ab8500-ext-supply3";
462 };
463 };
464
Lee Jones809efa52012-09-25 12:04:51 +0100465 ab8500-regulators {
466 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
467 regulator-name = "V-DISPLAY";
468 };
469
470 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
471 regulator-name = "V-eMMC1";
472 };
473
474 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
475 regulator-name = "V-MMC-SD";
476 };
477
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200478 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
Lee Jones809efa52012-09-25 12:04:51 +0100479 regulator-name = "V-INTCORE";
480 };
481
482 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
483 regulator-name = "V-TVOUT";
484 };
485
486 ab8500_ldo_usb_reg: ab8500_ldo_usb {
487 regulator-name = "dummy";
488 };
489
490 ab8500_ldo_audio_reg: ab8500_ldo_audio {
491 regulator-name = "V-AUD";
492 };
493
494 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
495 regulator-name = "V-AMIC1";
496 };
497
Fabio Baltieri5510ed92013-05-30 15:27:42 +0200498 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
Lee Jones809efa52012-09-25 12:04:51 +0100499 regulator-name = "V-AMIC2";
500 };
501
502 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
503 regulator-name = "V-DMIC";
504 };
505
506 ab8500_ldo_ana_reg: ab8500_ldo_ana {
507 regulator-name = "V-CSI/DSI";
508 };
509 };
510 };
511 };
Linus Walleij1e662352013-11-13 13:46:57 +0100512
513 pinctrl {
Linus Walleij4d4629f2013-11-17 11:52:32 +0100514 /*
515 * Set this up using hogs, as time goes by and as seems fit, these
516 * can be moved over to being controlled by respective device.
517 */
518 pinctrl-names = "default";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200519 pinctrl-0 = <&gbf_snowball_mode>,
Linus Walleij4d4629f2013-11-17 11:52:32 +0100520 <&wlan_snowball_mode>;
521
Linus Walleija48bf4b2013-11-17 10:02:22 +0100522 ethernet {
523 /*
524 * Mux in "SM" which is used for the
525 * SMSC911x Ethernet adapter
526 */
527 eth_snowball_mode: eth_snowball {
528 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200529 function = "sm";
530 groups = "sm_b_1";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100531 };
532 /* LAN IRQ pin */
533 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200534 pins = "GPIO140_B11";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100535 ste,config = <&in_nopull>;
536 };
537 /* LAN reset pin */
538 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200539 pins = "GPIO141_C12";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100540 ste,config = <&gpio_out_hi>;
541 };
542
543 };
544 };
Linus Walleij1e662352013-11-13 13:46:57 +0100545 sdi0 {
546 sdi0_default_mode: sdi0_default {
547 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200548 function = "mc0";
549 groups = "mc0dat31dir_a_1";
Linus Walleij1e662352013-11-13 13:46:57 +0100550 };
551 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200552 pins = "GPIO21_AB3"; /* DAT31DIR */
Linus Walleij1e662352013-11-13 13:46:57 +0100553 ste,config = <&out_hi>;
554 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200555 /* SD card detect GPIO pin, extend default state */
556 snowball_cfg2 {
557 pins = "GPIO218_AH11";
558 ste,config = <&gpio_in_pu>;
559 };
560 /* VMMCI level-shifter enable */
561 snowball_cfg3 {
562 pins = "GPIO217_AH12";
Linus Walleij1b283ee2016-10-07 10:52:17 +0200563 ste,config = <&gpio_out_hi>;
Linus Walleij1d8aca92015-07-08 15:15:22 +0200564 };
565 /* VMMCI level-shifter voltage select */
566 snowball_cfg4 {
567 pins = "GPIO228_AJ6";
568 ste,config = <&gpio_out_hi>;
569 };
Linus Walleij1e662352013-11-13 13:46:57 +0100570 };
571 };
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100572 ssp0 {
573 ssp0_snowball_mode: ssp0_snowball_default {
574 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200575 function = "ssp0";
576 groups = "ssp0_a_1";
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100577 };
578 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200579 pins = "GPIO144_B13"; /* FRM */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100580 ste,config = <&gpio_out_hi>;
581 };
582 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200583 pins = "GPIO145_C13"; /* RXD */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100584 ste,config = <&in_pd>;
585 };
586 snowball_cfg3 {
Linus Walleij1637d482014-09-30 12:16:25 +0200587 pins =
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100588 "GPIO146_D13", /* TXD */
589 "GPIO143_D12"; /* CLK */
590 ste,config = <&out_lo>;
591 };
592
593 };
594 };
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100595 gpio_led {
596 gpioled_snowball_mode: gpioled_default {
597 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200598 pins = "GPIO142_C11";
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100599 ste,config = <&gpio_out_hi>;
600 };
601
602 };
603 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100604 accelerometer {
605 accel_snowball_mode: accel_snowball {
606 /* Accelerometer lines */
607 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200608 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100609 "GPIO163_C20", /* ACCEL_IRQ1 */
610 "GPIO164_B21"; /* ACCEL_IRQ2 */
611 ste,config = <&gpio_in_pu>;
612 };
613 };
614 };
Linus Walleij22a93162015-04-27 11:28:33 +0200615 gyro {
616 gyro_snowball_mode: gyro_snowball {
617 snowball_cfg1 {
618 pins =
619 "GPIO166_A22", /* DRDY */
620 "GPIO169_D22"; /* INT */
621 ste,config = <&gpio_in_pu>;
622 };
623 };
624 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100625 magnetometer {
626 magneto_snowball_mode: magneto_snowball {
627 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200628 pins = "GPIO165_C21"; /* MAG_DRDY */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100629 ste,config = <&gpio_in_pu>;
630 };
631 };
632 };
633 gbf {
634 gbf_snowball_mode: gbf_snowball {
635 /*
636 * GBF (GPS, Bluetooth, FM-radio) interface,
637 * pull low to reset state
638 */
639 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200640 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100641 ste,config = <&gpio_out_lo>;
642 };
643 };
644 };
645 wlan {
646 wlan_snowball_mode: wlan_snowball {
647 /*
648 * Activate this mode with the WLAN chip.
649 * These are plain GPIO pins used by WLAN
650 */
651 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200652 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100653 "GPIO161_D21", /* WLAN_PMU_EN */
654 "GPIO215_AH13"; /* WLAN_ENA */
655 ste,config = <&gpio_out_lo>;
656 };
657 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200658 pins = "GPIO216_AG12"; /* WLAN_IRQ */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100659 ste,config = <&gpio_in_pu>;
660 };
661 };
662 };
Linus Walleij1e662352013-11-13 13:46:57 +0100663 };
Linus Walleij817a5b92013-11-14 15:23:20 +0100664
665 mcde@a0350000 {
666 pinctrl-names = "default", "sleep";
667 pinctrl-0 = <&lcd_default_mode>;
668 pinctrl-1 = <&lcd_sleep_mode>;
669 };
Arnd Bergmann2d334292012-03-07 15:04:07 +0000670 };
671};