blob: dd5514def6042470aabea1ee29853d6c713c2691 [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
Lee Jonese6488062012-07-31 13:31:50 +0100162 sound {
163 compatible = "stericsson,snd-soc-mop500";
164
165 stericsson,cpu-dai = <&msp1 &msp3>;
166 stericsson,audio-codec = <&codec>;
Linus Walleij3015d3b2017-01-12 15:07:35 +0100167 clocks = <&prcmu_clk PRCMU_SYSCLK>;
168 clock-names = "sysclk";
Lee Jonese6488062012-07-31 13:31:50 +0100169 };
170
Linus Walleij70b41ab2013-11-13 14:45:06 +0100171 msp0: msp@80123000 {
172 pinctrl-names = "default";
173 pinctrl-0 = <&msp0_default_mode>;
174 status = "okay";
175 };
176
Lee Jonesfe164522012-07-31 12:37:16 +0100177 msp1: msp@80124000 {
Linus Walleij70b41ab2013-11-13 14:45:06 +0100178 pinctrl-names = "default";
179 pinctrl-0 = <&msp1_default_mode>;
180 status = "okay";
181 };
182
183 msp2: msp@80117000 {
184 pinctrl-names = "default";
185 pinctrl-0 = <&msp2_default_mode>;
Lee Jonesfe164522012-07-31 12:37:16 +0100186 };
187
188 msp3: msp@80125000 {
189 status = "okay";
190 };
191
Lee Jones7e0ce272012-03-15 16:46:17 +0000192 external-bus@50000000 {
Lee Jonesbf76e062012-04-24 10:53:18 +0100193 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000194
Lee Jonesbf76e062012-04-24 10:53:18 +0100195 ethernet@0 {
196 compatible = "smsc,lan9115";
197 reg = <0 0x10000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200198 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000199 interrupt-parent = <&gpio4>;
Lee Jonesbc367482012-05-03 11:23:47 +0100200 vdd33a-supply = <&en_3v3_reg>;
201 vddvario-supply = <&db8500_vape_reg>;
Linus Walleija48bf4b2013-11-17 10:02:22 +0100202 pinctrl-names = "default";
203 pinctrl-0 = <&eth_snowball_mode>;
Lee Jonesbc367482012-05-03 11:23:47 +0100204
Lee Jonesbf76e062012-04-24 10:53:18 +0100205 reg-shift = <1>;
206 reg-io-width = <2>;
207 smsc,force-internal-phy;
208 smsc,irq-active-high;
209 smsc,irq-push-pull;
Lee Jones7fb2afc2013-06-03 13:06:13 +0100210
211 clocks = <&prcc_pclk 3 0>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000212 };
213 };
214
Linus Walleijadef9532016-10-07 09:30:46 +0200215 /* ST6G3244ME level translator for 1.8/2.9 V */
Lee Jones383307c2013-04-02 14:21:54 +0100216 vmmci: regulator-gpio {
Ulf Hansson53d26692015-04-20 16:02:31 +0200217 compatible = "regulator-gpio";
218
Linus Walleijadef9532016-10-07 09:30:46 +0200219 /* GPIO228 SD_SEL */
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100220 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
Linus Walleijadef9532016-10-07 09:30:46 +0200221 /* GPIO217 MMC_EN */
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100222 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
Linus Walleijadef9532016-10-07 09:30:46 +0200223 enable-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>;
Ulf Hansson53d26692015-04-20 16:02:31 +0200231
232 states = <1800000 0x1
233 2900000 0x0>;
Lee Jones383307c2013-04-02 14:21:54 +0100234 };
235
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800236 // External Micro SD slot
Lee Jones81bf8c22012-09-26 12:55:56 +0100237 sdi0_per1@80126000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800238 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200239 max-frequency = <100000000>;
Lee Jones92a0f482012-09-26 11:12:48 +0100240 bus-width = <4>;
Linus Walleij1b283ee2016-10-07 10:52:17 +0200241 cap-sd-highspeed;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100242 cap-mmc-highspeed;
Linus Walleij1b283ee2016-10-07 10:52:17 +0200243 sd-uhs-sdr12;
244 sd-uhs-sdr25;
245 /* All direction control is used */
246 st,sig-dir-cmd;
247 st,sig-dir-dat0;
248 st,sig-dir-dat2;
249 st,sig-dir-dat31;
250 st,sig-pin-fbclk;
251 full-pwr-cycle;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800252 vmmc-supply = <&ab8500_ldo_aux3_reg>;
Lee Jones383307c2013-04-02 14:21:54 +0100253 vqmmc-supply = <&vmmci>;
Linus Walleij1e662352013-11-13 13:46:57 +0100254 pinctrl-names = "default", "sleep";
255 pinctrl-0 = <&sdi0_default_mode>;
256 pinctrl-1 = <&sdi0_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800257
Linus Walleij1b283ee2016-10-07 10:52:17 +0200258 /* GPIO218 MMC_CD */
259 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800260
261 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000262 };
263
Linus Walleij1e662352013-11-13 13:46:57 +0100264 // WLAN SDIO channel
265 sdi1_per2@80118000 {
266 arm,primecell-periphid = <0x10480180>;
267 max-frequency = <100000000>;
268 bus-width = <4>;
269 pinctrl-names = "default", "sleep";
270 pinctrl-0 = <&sdi1_default_mode>;
271 pinctrl-1 = <&sdi1_sleep_mode>;
272
273 status = "okay";
274 };
275
276 // Unused PoP eMMC - register and put it to sleep by default */
277 sdi2_per3@80005000 {
278 arm,primecell-periphid = <0x10480180>;
279 pinctrl-names = "default";
280 pinctrl-0 = <&sdi2_sleep_mode>;
281
282 status = "okay";
283 };
284
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800285 // On-board eMMC
Lee Jones81bf8c22012-09-26 12:55:56 +0100286 sdi4_per2@80114000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800287 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200288 max-frequency = <100000000>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800289 bus-width = <8>;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100290 cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800291 vmmc-supply = <&ab8500_ldo_aux2_reg>;
Linus Walleij1e662352013-11-13 13:46:57 +0100292 pinctrl-names = "default", "sleep";
293 pinctrl-0 = <&sdi4_default_mode>;
294 pinctrl-1 = <&sdi4_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800295
296 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000297 };
298
Lee Jones4905af02012-03-07 17:35:04 +0000299 uart@80120000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100300 pinctrl-names = "default", "sleep";
301 pinctrl-0 = <&uart0_default_mode>;
302 pinctrl-1 = <&uart0_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000303 status = "okay";
304 };
305
Linus Walleij1d8aca92015-07-08 15:15:22 +0200306 /* This UART is unused and thus left disabled */
Lee Jones4905af02012-03-07 17:35:04 +0000307 uart@80121000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100308 pinctrl-names = "default", "sleep";
309 pinctrl-0 = <&uart1_default_mode>;
310 pinctrl-1 = <&uart1_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000311 };
312
313 uart@80007000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100314 pinctrl-names = "default", "sleep";
315 pinctrl-0 = <&uart2_default_mode>;
316 pinctrl-1 = <&uart2_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000317 status = "okay";
318 };
319
Linus Walleij96fee132013-11-13 11:10:07 +0100320 i2c@80004000 {
321 pinctrl-names = "default","sleep";
322 pinctrl-0 = <&i2c0_default_mode>;
323 pinctrl-1 = <&i2c0_sleep_mode>;
324 };
325
326 i2c@80122000 {
327 pinctrl-names = "default","sleep";
328 pinctrl-0 = <&i2c1_default_mode>;
329 pinctrl-1 = <&i2c1_sleep_mode>;
330 };
331
332 i2c@80128000 {
333 pinctrl-names = "default","sleep";
334 pinctrl-0 = <&i2c2_default_mode>;
335 pinctrl-1 = <&i2c2_sleep_mode>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200336 lsm303dlh@18 {
337 /* Accelerometer */
338 compatible = "st,lsm303dlh-accel";
339 st,drdy-int-pin = <1>;
340 reg = <0x18>;
341 vdd-supply = <&ab8500_ldo_aux1_reg>;
342 vddio-supply = <&db8500_vsmps2_reg>;
343 pinctrl-names = "default";
344 pinctrl-0 = <&accel_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200345 interrupt-parent = <&gpio5>;
346 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
347 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200348 };
Linus Walleij93deea92015-04-29 14:08:38 +0200349 lsm303dlh@1e {
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200350 /* Magnetometer */
Linus Walleij93deea92015-04-29 14:08:38 +0200351 compatible = "st,lsm303dlh-magn";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200352 reg = <0x1e>;
353 vdd-supply = <&ab8500_ldo_aux1_reg>;
354 vddio-supply = <&db8500_vsmps2_reg>;
355 pinctrl-names = "default";
356 pinctrl-0 = <&magneto_snowball_mode>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100357 interrupt-parent = <&gpio5>;
358 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200359 };
360 l3g4200d@68 {
361 /* Gyroscope */
362 compatible = "st,l3g4200d-gyro";
363 st,drdy-int-pin = <2>;
364 reg = <0x68>;
365 vdd-supply = <&ab8500_ldo_aux1_reg>;
366 vddio-supply = <&db8500_vsmps2_reg>;
Linus Walleij22a93162015-04-27 11:28:33 +0200367 pinctrl-names = "default";
368 pinctrl-0 = <&gyro_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200369 interrupt-parent = <&gpio5>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100370 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
371 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200372 };
373 lsp001wm@5c {
374 /* Barometer/pressure sensor */
375 compatible = "st,lps001wp-press";
376 reg = <0x5c>;
377 vdd-supply = <&ab8500_ldo_aux1_reg>;
378 vddio-supply = <&db8500_vsmps2_reg>;
379 };
Linus Walleij96fee132013-11-13 11:10:07 +0100380 };
381
382 i2c@80110000 {
383 pinctrl-names = "default","sleep";
384 pinctrl-0 = <&i2c3_default_mode>;
385 pinctrl-1 = <&i2c3_sleep_mode>;
386 };
387
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100388 ssp@80002000 {
389 pinctrl-names = "default";
390 pinctrl-0 = <&ssp0_snowball_mode>;
391 };
392
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800393 cpufreq-cooling {
394 status = "okay";
395 };
Linus Torvaldsdb5b0ae2012-12-13 10:39:26 -0800396
Lee Jones809efa52012-09-25 12:04:51 +0100397 prcmu@80157000 {
Lee Jones6cb7ea92013-09-18 16:03:07 +0100398 cpufreq {
399 status = "okay";
400 };
401
Lee Jones6c1d25b2013-04-02 14:21:51 +0100402 thermal@801573c0 {
403 num-trips = <4>;
404
405 trip0-temp = <70000>;
406 trip0-type = "active";
407 trip0-cdev-num = <1>;
408 trip0-cdev-name0 = "thermal-cpufreq-0";
409
410 trip1-temp = <75000>;
411 trip1-type = "active";
412 trip1-cdev-num = <1>;
413 trip1-cdev-name0 = "thermal-cpufreq-0";
414
415 trip2-temp = <80000>;
416 trip2-type = "active";
417 trip2-cdev-num = <1>;
418 trip2-cdev-name0 = "thermal-cpufreq-0";
419
420 trip3-temp = <85000>;
421 trip3-type = "critical";
422 trip3-cdev-num = <0>;
423
424 status = "okay";
425 };
426
Arnd Bergmannd52701d32013-03-12 09:39:01 +0100427 ab8500 {
Lee Jones924e82d2013-01-16 14:28:03 +0000428 ab8500-gpio {
Linus Walleijad9454b2016-04-21 11:01:02 +0200429 /*
430 * AB8500 GPIOs are numbered starting from 1, so the first
431 * index 0 is what in the datasheet is called "GPIO1", and
432 * the second is "GPIO2" and so forth. Confusingly, the
433 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
434 * while later naming "GPIO4" as "PM_GPIO4".
435 */
436 gpio-line-names = "", /* AB8500 GPIO1 */
437 "PM_GPIO1", /* AB8500 GPIO2 */
438 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
439 "PM_GPIO4", /* AB8500 GPIO4 */
440 "", "", "", "", "", "", "", "", "", "", "",
441 "EN_3V6", /* AB8500 GPIO16 */
442 "", "", "", "" ,"", "", "", "", "",
443 "EN_3V3", /* AB8500 GPIO26 */
444 "", "", "", "", "", "", "", "", "", "", "", "", "",
445 "PM_GPIO40", /* AB8500 GPIO40 */
446 "PM_GPIO41", /* AB8500 GPIO41 */
447 "PM_GPIO42"; /* AB8500 GPIO42 */
Lee Jones924e82d2013-01-16 14:28:03 +0000448 };
449
Linus Walleij6097c2d2017-01-12 15:22:42 +0100450 ab8500_usb {
451 pinctrl-names = "default", "sleep";
452 pinctrl-0 = <&musb_default_mode>;
453 pinctrl-1 = <&musb_sleep_mode>;
454 };
455
Lee Jonesb0c8fad2013-06-07 17:11:21 +0100456 ext_regulators: ab8500-ext-regulators {
457 ab8500_ext1_reg: ab8500_ext1 {
458 regulator-name = "ab8500-ext-supply1";
459 };
460
461 ab8500_ext2_reg_reg: ab8500_ext2 {
462 regulator-name = "ab8500-ext-supply2";
463 };
464
465 ab8500_ext3_reg_reg: ab8500_ext3 {
466 regulator-name = "ab8500-ext-supply3";
467 };
468 };
469
Lee Jones809efa52012-09-25 12:04:51 +0100470 ab8500-regulators {
471 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
472 regulator-name = "V-DISPLAY";
473 };
474
475 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
476 regulator-name = "V-eMMC1";
477 };
478
479 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
480 regulator-name = "V-MMC-SD";
481 };
482
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200483 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
Lee Jones809efa52012-09-25 12:04:51 +0100484 regulator-name = "V-INTCORE";
485 };
486
487 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
488 regulator-name = "V-TVOUT";
489 };
490
491 ab8500_ldo_usb_reg: ab8500_ldo_usb {
492 regulator-name = "dummy";
493 };
494
495 ab8500_ldo_audio_reg: ab8500_ldo_audio {
496 regulator-name = "V-AUD";
497 };
498
499 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
500 regulator-name = "V-AMIC1";
501 };
502
Fabio Baltieri5510ed92013-05-30 15:27:42 +0200503 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
Lee Jones809efa52012-09-25 12:04:51 +0100504 regulator-name = "V-AMIC2";
505 };
506
507 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
508 regulator-name = "V-DMIC";
509 };
510
511 ab8500_ldo_ana_reg: ab8500_ldo_ana {
512 regulator-name = "V-CSI/DSI";
513 };
514 };
515 };
516 };
Linus Walleij1e662352013-11-13 13:46:57 +0100517
518 pinctrl {
Linus Walleij4d4629f2013-11-17 11:52:32 +0100519 /*
520 * Set this up using hogs, as time goes by and as seems fit, these
521 * can be moved over to being controlled by respective device.
522 */
523 pinctrl-names = "default";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200524 pinctrl-0 = <&gbf_snowball_mode>,
Linus Walleij4d4629f2013-11-17 11:52:32 +0100525 <&wlan_snowball_mode>;
526
Linus Walleija48bf4b2013-11-17 10:02:22 +0100527 ethernet {
528 /*
529 * Mux in "SM" which is used for the
530 * SMSC911x Ethernet adapter
531 */
532 eth_snowball_mode: eth_snowball {
533 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200534 function = "sm";
535 groups = "sm_b_1";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100536 };
537 /* LAN IRQ pin */
538 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200539 pins = "GPIO140_B11";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100540 ste,config = <&in_nopull>;
541 };
542 /* LAN reset pin */
543 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200544 pins = "GPIO141_C12";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100545 ste,config = <&gpio_out_hi>;
546 };
547
548 };
549 };
Linus Walleij1e662352013-11-13 13:46:57 +0100550 sdi0 {
551 sdi0_default_mode: sdi0_default {
552 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200553 function = "mc0";
Linus Walleijadef9532016-10-07 09:30:46 +0200554 /* Add the DAT31 pin even if it is not really used */
Linus Walleij68d41f22014-09-29 17:21:56 +0200555 groups = "mc0dat31dir_a_1";
Linus Walleij1e662352013-11-13 13:46:57 +0100556 };
557 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200558 pins = "GPIO21_AB3"; /* DAT31DIR */
Linus Walleij1e662352013-11-13 13:46:57 +0100559 ste,config = <&out_hi>;
560 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200561 /* SD card detect GPIO pin, extend default state */
562 snowball_cfg2 {
563 pins = "GPIO218_AH11";
564 ste,config = <&gpio_in_pu>;
565 };
566 /* VMMCI level-shifter enable */
567 snowball_cfg3 {
568 pins = "GPIO217_AH12";
Linus Walleij1b283ee2016-10-07 10:52:17 +0200569 ste,config = <&gpio_out_hi>;
Linus Walleij1d8aca92015-07-08 15:15:22 +0200570 };
571 /* VMMCI level-shifter voltage select */
572 snowball_cfg4 {
573 pins = "GPIO228_AJ6";
574 ste,config = <&gpio_out_hi>;
575 };
Linus Walleij1e662352013-11-13 13:46:57 +0100576 };
577 };
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100578 ssp0 {
579 ssp0_snowball_mode: ssp0_snowball_default {
580 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200581 function = "ssp0";
582 groups = "ssp0_a_1";
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100583 };
584 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200585 pins = "GPIO144_B13"; /* FRM */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100586 ste,config = <&gpio_out_hi>;
587 };
588 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200589 pins = "GPIO145_C13"; /* RXD */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100590 ste,config = <&in_pd>;
591 };
592 snowball_cfg3 {
Linus Walleij1637d482014-09-30 12:16:25 +0200593 pins =
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100594 "GPIO146_D13", /* TXD */
595 "GPIO143_D12"; /* CLK */
596 ste,config = <&out_lo>;
597 };
598
599 };
600 };
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100601 gpio_led {
602 gpioled_snowball_mode: gpioled_default {
603 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200604 pins = "GPIO142_C11";
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100605 ste,config = <&gpio_out_hi>;
606 };
607
608 };
609 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100610 accelerometer {
611 accel_snowball_mode: accel_snowball {
612 /* Accelerometer lines */
613 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200614 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100615 "GPIO163_C20", /* ACCEL_IRQ1 */
616 "GPIO164_B21"; /* ACCEL_IRQ2 */
617 ste,config = <&gpio_in_pu>;
618 };
619 };
620 };
Linus Walleij22a93162015-04-27 11:28:33 +0200621 gyro {
622 gyro_snowball_mode: gyro_snowball {
623 snowball_cfg1 {
624 pins =
625 "GPIO166_A22", /* DRDY */
626 "GPIO169_D22"; /* INT */
627 ste,config = <&gpio_in_pu>;
628 };
629 };
630 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100631 magnetometer {
632 magneto_snowball_mode: magneto_snowball {
633 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200634 pins = "GPIO165_C21"; /* MAG_DRDY */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100635 ste,config = <&gpio_in_pu>;
636 };
637 };
638 };
639 gbf {
640 gbf_snowball_mode: gbf_snowball {
641 /*
642 * GBF (GPS, Bluetooth, FM-radio) interface,
643 * pull low to reset state
644 */
645 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200646 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100647 ste,config = <&gpio_out_lo>;
648 };
649 };
650 };
651 wlan {
652 wlan_snowball_mode: wlan_snowball {
653 /*
654 * Activate this mode with the WLAN chip.
655 * These are plain GPIO pins used by WLAN
656 */
657 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200658 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100659 "GPIO161_D21", /* WLAN_PMU_EN */
660 "GPIO215_AH13"; /* WLAN_ENA */
661 ste,config = <&gpio_out_lo>;
662 };
663 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200664 pins = "GPIO216_AG12"; /* WLAN_IRQ */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100665 ste,config = <&gpio_in_pu>;
666 };
667 };
668 };
Linus Walleij1e662352013-11-13 13:46:57 +0100669 };
Linus Walleij817a5b92013-11-14 15:23:20 +0100670
671 mcde@a0350000 {
672 pinctrl-names = "default", "sleep";
673 pinctrl-0 = <&lcd_default_mode>;
674 pinctrl-1 = <&lcd_sleep_mode>;
675 };
Arnd Bergmann2d334292012-03-07 15:04:07 +0000676 };
677};