blob: b0b94d05309855f4816a05295cbeb19251bc89e5 [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 {
Geert Uytterhoevene40e7c52018-02-13 15:15:34 +010049 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 {
Geert Uytterhoevene40e7c52018-02-13 15:15:34 +010056 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 {
Geert Uytterhoevene40e7c52018-02-13 15:15:34 +010063 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 {
Geert Uytterhoevene40e7c52018-02-13 15:15:34 +010070 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 {
Geert Uytterhoevene40e7c52018-02-13 15:15:34 +010077 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 Walleij70b41ab2013-11-13 14:45:06 +0100162 msp0: msp@80123000 {
163 pinctrl-names = "default";
164 pinctrl-0 = <&msp0_default_mode>;
165 status = "okay";
166 };
167
Lee Jonesfe164522012-07-31 12:37:16 +0100168 msp1: msp@80124000 {
Linus Walleij70b41ab2013-11-13 14:45:06 +0100169 pinctrl-names = "default";
170 pinctrl-0 = <&msp1_default_mode>;
171 status = "okay";
172 };
173
174 msp2: msp@80117000 {
175 pinctrl-names = "default";
176 pinctrl-0 = <&msp2_default_mode>;
Lee Jonesfe164522012-07-31 12:37:16 +0100177 };
178
179 msp3: msp@80125000 {
180 status = "okay";
181 };
182
Lee Jones7e0ce272012-03-15 16:46:17 +0000183 external-bus@50000000 {
Lee Jonesbf76e062012-04-24 10:53:18 +0100184 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000185
Lee Jonesbf76e062012-04-24 10:53:18 +0100186 ethernet@0 {
187 compatible = "smsc,lan9115";
188 reg = <0 0x10000>;
Linus Walleij90c40252013-05-29 19:15:39 +0200189 interrupts = <12 IRQ_TYPE_EDGE_RISING>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000190 interrupt-parent = <&gpio4>;
Lee Jonesbc367482012-05-03 11:23:47 +0100191 vdd33a-supply = <&en_3v3_reg>;
192 vddvario-supply = <&db8500_vape_reg>;
Linus Walleija48bf4b2013-11-17 10:02:22 +0100193 pinctrl-names = "default";
194 pinctrl-0 = <&eth_snowball_mode>;
Lee Jonesbc367482012-05-03 11:23:47 +0100195
Lee Jonesbf76e062012-04-24 10:53:18 +0100196 reg-shift = <1>;
197 reg-io-width = <2>;
198 smsc,force-internal-phy;
199 smsc,irq-active-high;
200 smsc,irq-push-pull;
Lee Jones7fb2afc2013-06-03 13:06:13 +0100201
202 clocks = <&prcc_pclk 3 0>;
Lee Jones7e0ce272012-03-15 16:46:17 +0000203 };
204 };
205
Linus Walleijadef9532016-10-07 09:30:46 +0200206 /* ST6G3244ME level translator for 1.8/2.9 V */
Lee Jones383307c2013-04-02 14:21:54 +0100207 vmmci: regulator-gpio {
Ulf Hansson53d26692015-04-20 16:02:31 +0200208 compatible = "regulator-gpio";
209
Linus Walleijadef9532016-10-07 09:30:46 +0200210 /* GPIO228 SD_SEL */
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100211 gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
Linus Walleijadef9532016-10-07 09:30:46 +0200212 /* GPIO217 MMC_EN */
Linus Walleij1b1e8e02016-03-24 15:29:30 +0100213 enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
Linus Walleijadef9532016-10-07 09:30:46 +0200214 enable-active-high;
Ulf Hansson53d26692015-04-20 16:02:31 +0200215
216 regulator-min-microvolt = <1800000>;
217 regulator-max-microvolt = <2900000>;
218 regulator-name = "mmci-reg";
219 regulator-type = "voltage";
220
221 startup-delay-us = <100>;
Ulf Hansson53d26692015-04-20 16:02:31 +0200222
223 states = <1800000 0x1
224 2900000 0x0>;
Lee Jones383307c2013-04-02 14:21:54 +0100225 };
226
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800227 // External Micro SD slot
Lee Jones81bf8c22012-09-26 12:55:56 +0100228 sdi0_per1@80126000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800229 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200230 max-frequency = <100000000>;
Lee Jones92a0f482012-09-26 11:12:48 +0100231 bus-width = <4>;
Linus Walleij1b283ee2016-10-07 10:52:17 +0200232 cap-sd-highspeed;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100233 cap-mmc-highspeed;
Linus Walleij1b283ee2016-10-07 10:52:17 +0200234 sd-uhs-sdr12;
235 sd-uhs-sdr25;
236 /* All direction control is used */
237 st,sig-dir-cmd;
238 st,sig-dir-dat0;
239 st,sig-dir-dat2;
240 st,sig-dir-dat31;
241 st,sig-pin-fbclk;
242 full-pwr-cycle;
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 Walleij1b283ee2016-10-07 10:52:17 +0200249 /* GPIO218 MMC_CD */
250 cd-gpios = <&gpio6 26 GPIO_ACTIVE_LOW>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800251
252 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000253 };
254
Linus Walleij1e662352013-11-13 13:46:57 +0100255 // WLAN SDIO channel
256 sdi1_per2@80118000 {
257 arm,primecell-periphid = <0x10480180>;
258 max-frequency = <100000000>;
259 bus-width = <4>;
260 pinctrl-names = "default", "sleep";
261 pinctrl-0 = <&sdi1_default_mode>;
262 pinctrl-1 = <&sdi1_sleep_mode>;
263
264 status = "okay";
265 };
266
267 // Unused PoP eMMC - register and put it to sleep by default */
268 sdi2_per3@80005000 {
269 arm,primecell-periphid = <0x10480180>;
270 pinctrl-names = "default";
271 pinctrl-0 = <&sdi2_sleep_mode>;
272
273 status = "okay";
274 };
275
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800276 // On-board eMMC
Lee Jones81bf8c22012-09-26 12:55:56 +0100277 sdi4_per2@80114000 {
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800278 arm,primecell-periphid = <0x10480180>;
Linus Walleij90ccde42013-05-27 13:15:05 +0200279 max-frequency = <100000000>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800280 bus-width = <8>;
Ulf Hansson30cdd662014-03-18 20:34:04 +0100281 cap-mmc-highspeed;
Lee Jones4a85c7f2012-05-29 14:29:53 +0800282 vmmc-supply = <&ab8500_ldo_aux2_reg>;
Linus Walleij1e662352013-11-13 13:46:57 +0100283 pinctrl-names = "default", "sleep";
284 pinctrl-0 = <&sdi4_default_mode>;
285 pinctrl-1 = <&sdi4_sleep_mode>;
Lee Jones5e1ac7d2012-05-29 14:40:04 +0800286
287 status = "okay";
Lee Jones7e0ce272012-03-15 16:46:17 +0000288 };
289
Lee Jones4905af02012-03-07 17:35:04 +0000290 uart@80120000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100291 pinctrl-names = "default", "sleep";
292 pinctrl-0 = <&uart0_default_mode>;
293 pinctrl-1 = <&uart0_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000294 status = "okay";
295 };
296
Linus Walleij1d8aca92015-07-08 15:15:22 +0200297 /* This UART is unused and thus left disabled */
Lee Jones4905af02012-03-07 17:35:04 +0000298 uart@80121000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100299 pinctrl-names = "default", "sleep";
300 pinctrl-0 = <&uart1_default_mode>;
301 pinctrl-1 = <&uart1_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000302 };
303
304 uart@80007000 {
Linus Walleij3bfdebb2013-11-13 10:32:20 +0100305 pinctrl-names = "default", "sleep";
306 pinctrl-0 = <&uart2_default_mode>;
307 pinctrl-1 = <&uart2_sleep_mode>;
Lee Jones4905af02012-03-07 17:35:04 +0000308 status = "okay";
309 };
310
Linus Walleij96fee132013-11-13 11:10:07 +0100311 i2c@80004000 {
312 pinctrl-names = "default","sleep";
313 pinctrl-0 = <&i2c0_default_mode>;
314 pinctrl-1 = <&i2c0_sleep_mode>;
315 };
316
317 i2c@80122000 {
318 pinctrl-names = "default","sleep";
319 pinctrl-0 = <&i2c1_default_mode>;
320 pinctrl-1 = <&i2c1_sleep_mode>;
321 };
322
323 i2c@80128000 {
324 pinctrl-names = "default","sleep";
325 pinctrl-0 = <&i2c2_default_mode>;
326 pinctrl-1 = <&i2c2_sleep_mode>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200327 lsm303dlh@18 {
328 /* Accelerometer */
329 compatible = "st,lsm303dlh-accel";
330 st,drdy-int-pin = <1>;
331 reg = <0x18>;
332 vdd-supply = <&ab8500_ldo_aux1_reg>;
333 vddio-supply = <&db8500_vsmps2_reg>;
334 pinctrl-names = "default";
335 pinctrl-0 = <&accel_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200336 interrupt-parent = <&gpio5>;
337 interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
338 <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200339 };
Linus Walleij93deea92015-04-29 14:08:38 +0200340 lsm303dlh@1e {
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200341 /* Magnetometer */
Linus Walleij93deea92015-04-29 14:08:38 +0200342 compatible = "st,lsm303dlh-magn";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200343 reg = <0x1e>;
344 vdd-supply = <&ab8500_ldo_aux1_reg>;
345 vddio-supply = <&db8500_vsmps2_reg>;
346 pinctrl-names = "default";
347 pinctrl-0 = <&magneto_snowball_mode>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100348 interrupt-parent = <&gpio5>;
349 interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200350 };
351 l3g4200d@68 {
352 /* Gyroscope */
353 compatible = "st,l3g4200d-gyro";
354 st,drdy-int-pin = <2>;
355 reg = <0x68>;
356 vdd-supply = <&ab8500_ldo_aux1_reg>;
357 vddio-supply = <&db8500_vsmps2_reg>;
Linus Walleij22a93162015-04-27 11:28:33 +0200358 pinctrl-names = "default";
359 pinctrl-0 = <&gyro_snowball_mode>;
Linus Walleij22a93162015-04-27 11:28:33 +0200360 interrupt-parent = <&gpio5>;
Linus Walleijc80b4012015-11-05 10:18:14 +0100361 interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
362 <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200363 };
364 lsp001wm@5c {
365 /* Barometer/pressure sensor */
366 compatible = "st,lps001wp-press";
367 reg = <0x5c>;
368 vdd-supply = <&ab8500_ldo_aux1_reg>;
369 vddio-supply = <&db8500_vsmps2_reg>;
370 };
Linus Walleij96fee132013-11-13 11:10:07 +0100371 };
372
373 i2c@80110000 {
374 pinctrl-names = "default","sleep";
375 pinctrl-0 = <&i2c3_default_mode>;
376 pinctrl-1 = <&i2c3_sleep_mode>;
377 };
378
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100379 ssp@80002000 {
380 pinctrl-names = "default";
381 pinctrl-0 = <&ssp0_snowball_mode>;
382 };
383
hongbo.zhangdc1956b2012-11-15 18:56:43 +0800384 cpufreq-cooling {
385 status = "okay";
386 };
Linus Torvaldsdb5b0ae2012-12-13 10:39:26 -0800387
Lee Jones809efa52012-09-25 12:04:51 +0100388 prcmu@80157000 {
Lee Jones6cb7ea92013-09-18 16:03:07 +0100389 cpufreq {
390 status = "okay";
391 };
392
Lee Jones6c1d25b2013-04-02 14:21:51 +0100393 thermal@801573c0 {
394 num-trips = <4>;
395
396 trip0-temp = <70000>;
397 trip0-type = "active";
398 trip0-cdev-num = <1>;
399 trip0-cdev-name0 = "thermal-cpufreq-0";
400
401 trip1-temp = <75000>;
402 trip1-type = "active";
403 trip1-cdev-num = <1>;
404 trip1-cdev-name0 = "thermal-cpufreq-0";
405
406 trip2-temp = <80000>;
407 trip2-type = "active";
408 trip2-cdev-num = <1>;
409 trip2-cdev-name0 = "thermal-cpufreq-0";
410
411 trip3-temp = <85000>;
412 trip3-type = "critical";
413 trip3-cdev-num = <0>;
414
415 status = "okay";
416 };
417
Arnd Bergmannd52701d32013-03-12 09:39:01 +0100418 ab8500 {
Lee Jones924e82d2013-01-16 14:28:03 +0000419 ab8500-gpio {
Linus Walleijad9454b2016-04-21 11:01:02 +0200420 /*
421 * AB8500 GPIOs are numbered starting from 1, so the first
422 * index 0 is what in the datasheet is called "GPIO1", and
423 * the second is "GPIO2" and so forth. Confusingly, the
424 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
425 * while later naming "GPIO4" as "PM_GPIO4".
426 */
427 gpio-line-names = "", /* AB8500 GPIO1 */
428 "PM_GPIO1", /* AB8500 GPIO2 */
429 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
430 "PM_GPIO4", /* AB8500 GPIO4 */
431 "", "", "", "", "", "", "", "", "", "", "",
432 "EN_3V6", /* AB8500 GPIO16 */
433 "", "", "", "" ,"", "", "", "", "",
434 "EN_3V3", /* AB8500 GPIO26 */
435 "", "", "", "", "", "", "", "", "", "", "", "", "",
436 "PM_GPIO40", /* AB8500 GPIO40 */
437 "PM_GPIO41", /* AB8500 GPIO41 */
438 "PM_GPIO42"; /* AB8500 GPIO42 */
Lee Jones924e82d2013-01-16 14:28:03 +0000439 };
440
Linus Walleij6097c2d2017-01-12 15:22:42 +0100441 ab8500_usb {
442 pinctrl-names = "default", "sleep";
443 pinctrl-0 = <&musb_default_mode>;
444 pinctrl-1 = <&musb_sleep_mode>;
445 };
446
Lee Jonesb0c8fad2013-06-07 17:11:21 +0100447 ext_regulators: ab8500-ext-regulators {
448 ab8500_ext1_reg: ab8500_ext1 {
449 regulator-name = "ab8500-ext-supply1";
450 };
451
452 ab8500_ext2_reg_reg: ab8500_ext2 {
453 regulator-name = "ab8500-ext-supply2";
454 };
455
456 ab8500_ext3_reg_reg: ab8500_ext3 {
457 regulator-name = "ab8500-ext-supply3";
458 };
459 };
460
Lee Jones809efa52012-09-25 12:04:51 +0100461 ab8500-regulators {
462 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
463 regulator-name = "V-DISPLAY";
464 };
465
466 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
467 regulator-name = "V-eMMC1";
468 };
469
470 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
471 regulator-name = "V-MMC-SD";
472 };
473
Fabio Baltieri99b38ee2013-04-09 11:16:56 +0200474 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
Lee Jones809efa52012-09-25 12:04:51 +0100475 regulator-name = "V-INTCORE";
476 };
477
478 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
479 regulator-name = "V-TVOUT";
480 };
481
482 ab8500_ldo_usb_reg: ab8500_ldo_usb {
483 regulator-name = "dummy";
484 };
485
486 ab8500_ldo_audio_reg: ab8500_ldo_audio {
487 regulator-name = "V-AUD";
488 };
489
490 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
491 regulator-name = "V-AMIC1";
492 };
493
Fabio Baltieri5510ed92013-05-30 15:27:42 +0200494 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
Lee Jones809efa52012-09-25 12:04:51 +0100495 regulator-name = "V-AMIC2";
496 };
497
498 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
499 regulator-name = "V-DMIC";
500 };
501
502 ab8500_ldo_ana_reg: ab8500_ldo_ana {
503 regulator-name = "V-CSI/DSI";
504 };
505 };
506 };
507 };
Linus Walleij1e662352013-11-13 13:46:57 +0100508
509 pinctrl {
Linus Walleij4d4629f2013-11-17 11:52:32 +0100510 /*
511 * Set this up using hogs, as time goes by and as seems fit, these
512 * can be moved over to being controlled by respective device.
513 */
514 pinctrl-names = "default";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200515 pinctrl-0 = <&gbf_snowball_mode>,
Linus Walleij4d4629f2013-11-17 11:52:32 +0100516 <&wlan_snowball_mode>;
517
Linus Walleija48bf4b2013-11-17 10:02:22 +0100518 ethernet {
519 /*
520 * Mux in "SM" which is used for the
521 * SMSC911x Ethernet adapter
522 */
523 eth_snowball_mode: eth_snowball {
524 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200525 function = "sm";
526 groups = "sm_b_1";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100527 };
528 /* LAN IRQ pin */
529 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200530 pins = "GPIO140_B11";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100531 ste,config = <&in_nopull>;
532 };
533 /* LAN reset pin */
534 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200535 pins = "GPIO141_C12";
Linus Walleija48bf4b2013-11-17 10:02:22 +0100536 ste,config = <&gpio_out_hi>;
537 };
538
539 };
540 };
Linus Walleij1e662352013-11-13 13:46:57 +0100541 sdi0 {
542 sdi0_default_mode: sdi0_default {
543 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200544 function = "mc0";
Linus Walleijadef9532016-10-07 09:30:46 +0200545 /* Add the DAT31 pin even if it is not really used */
Linus Walleij68d41f22014-09-29 17:21:56 +0200546 groups = "mc0dat31dir_a_1";
Linus Walleij1e662352013-11-13 13:46:57 +0100547 };
548 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200549 pins = "GPIO21_AB3"; /* DAT31DIR */
Linus Walleij1e662352013-11-13 13:46:57 +0100550 ste,config = <&out_hi>;
551 };
Linus Walleij1d8aca92015-07-08 15:15:22 +0200552 /* SD card detect GPIO pin, extend default state */
553 snowball_cfg2 {
554 pins = "GPIO218_AH11";
555 ste,config = <&gpio_in_pu>;
556 };
557 /* VMMCI level-shifter enable */
558 snowball_cfg3 {
559 pins = "GPIO217_AH12";
Linus Walleij1b283ee2016-10-07 10:52:17 +0200560 ste,config = <&gpio_out_hi>;
Linus Walleij1d8aca92015-07-08 15:15:22 +0200561 };
562 /* VMMCI level-shifter voltage select */
563 snowball_cfg4 {
564 pins = "GPIO228_AJ6";
565 ste,config = <&gpio_out_hi>;
566 };
Linus Walleij1e662352013-11-13 13:46:57 +0100567 };
568 };
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100569 ssp0 {
570 ssp0_snowball_mode: ssp0_snowball_default {
571 snowball_mux {
Linus Walleij68d41f22014-09-29 17:21:56 +0200572 function = "ssp0";
573 groups = "ssp0_a_1";
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100574 };
575 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200576 pins = "GPIO144_B13"; /* FRM */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100577 ste,config = <&gpio_out_hi>;
578 };
579 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200580 pins = "GPIO145_C13"; /* RXD */
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100581 ste,config = <&in_pd>;
582 };
583 snowball_cfg3 {
Linus Walleij1637d482014-09-30 12:16:25 +0200584 pins =
Linus Walleijfd8f9ea2013-11-17 11:13:21 +0100585 "GPIO146_D13", /* TXD */
586 "GPIO143_D12"; /* CLK */
587 ste,config = <&out_lo>;
588 };
589
590 };
591 };
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100592 gpio_led {
593 gpioled_snowball_mode: gpioled_default {
594 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200595 pins = "GPIO142_C11";
Linus Walleij2f4b84f2013-11-17 11:33:19 +0100596 ste,config = <&gpio_out_hi>;
597 };
598
599 };
600 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100601 accelerometer {
602 accel_snowball_mode: accel_snowball {
603 /* Accelerometer lines */
604 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200605 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100606 "GPIO163_C20", /* ACCEL_IRQ1 */
607 "GPIO164_B21"; /* ACCEL_IRQ2 */
608 ste,config = <&gpio_in_pu>;
609 };
610 };
611 };
Linus Walleij22a93162015-04-27 11:28:33 +0200612 gyro {
613 gyro_snowball_mode: gyro_snowball {
614 snowball_cfg1 {
615 pins =
616 "GPIO166_A22", /* DRDY */
617 "GPIO169_D22"; /* INT */
618 ste,config = <&gpio_in_pu>;
619 };
620 };
621 };
Linus Walleij4d4629f2013-11-17 11:52:32 +0100622 magnetometer {
623 magneto_snowball_mode: magneto_snowball {
624 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200625 pins = "GPIO165_C21"; /* MAG_DRDY */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100626 ste,config = <&gpio_in_pu>;
627 };
628 };
629 };
630 gbf {
631 gbf_snowball_mode: gbf_snowball {
632 /*
633 * GBF (GPS, Bluetooth, FM-radio) interface,
634 * pull low to reset state
635 */
636 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200637 pins = "GPIO171_D23"; /* GBF_ENA_RESET */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100638 ste,config = <&gpio_out_lo>;
639 };
640 };
641 };
642 wlan {
643 wlan_snowball_mode: wlan_snowball {
644 /*
645 * Activate this mode with the WLAN chip.
646 * These are plain GPIO pins used by WLAN
647 */
648 snowball_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200649 pins =
Linus Walleij4d4629f2013-11-17 11:52:32 +0100650 "GPIO161_D21", /* WLAN_PMU_EN */
651 "GPIO215_AH13"; /* WLAN_ENA */
652 ste,config = <&gpio_out_lo>;
653 };
654 snowball_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200655 pins = "GPIO216_AG12"; /* WLAN_IRQ */
Linus Walleij4d4629f2013-11-17 11:52:32 +0100656 ste,config = <&gpio_in_pu>;
657 };
658 };
659 };
Linus Walleij1e662352013-11-13 13:46:57 +0100660 };
Linus Walleij817a5b92013-11-14 15:23:20 +0100661
662 mcde@a0350000 {
663 pinctrl-names = "default", "sleep";
664 pinctrl-0 = <&lcd_default_mode>;
665 pinctrl-1 = <&lcd_sleep_mode>;
666 };
Arnd Bergmann2d334292012-03-07 15:04:07 +0000667 };
668};