1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright 2011 ST-Ericsson AB
4724ba675SRob Herring */
5724ba675SRob Herring
6724ba675SRob Herring/dts-v1/;
7724ba675SRob Herring#include "ste-db9500.dtsi"
8724ba675SRob Herring#include "ste-href-ab8500.dtsi"
9724ba675SRob Herring#include "ste-href-family-pinctrl.dtsi"
10724ba675SRob Herring
11724ba675SRob Herring/ {
12724ba675SRob Herring	model = "Calao Systems Snowball platform with device tree";
13724ba675SRob Herring	compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
14724ba675SRob Herring
15724ba675SRob Herring	memory {
16724ba675SRob Herring		device_type = "memory";
17724ba675SRob Herring		reg = <0x00000000 0x20000000>;
18724ba675SRob Herring	};
19724ba675SRob Herring
20724ba675SRob Herring	battery: battery {
21724ba675SRob Herring		compatible = "simple-battery";
22724ba675SRob Herring		battery-type = "lithium-ion-polymer";
23724ba675SRob Herring	};
24724ba675SRob Herring
25724ba675SRob Herring	thermal-zones {
26724ba675SRob Herring		battery-thermal {
27724ba675SRob Herring			/* This zone will be polled by the battery temperature code */
28724ba675SRob Herring			polling-delay = <0>;
29724ba675SRob Herring			polling-delay-passive = <0>;
30724ba675SRob Herring			thermal-sensors = <&bat_therm>;
31724ba675SRob Herring
32724ba675SRob Herring			trips {
33724ba675SRob Herring				battery-crit-hi {
34724ba675SRob Herring					temperature = <70000>;
35724ba675SRob Herring					hysteresis = <2000>;
36724ba675SRob Herring					type = "critical";
37724ba675SRob Herring				};
38724ba675SRob Herring			};
39724ba675SRob Herring		};
40724ba675SRob Herring	};
41724ba675SRob Herring
42724ba675SRob Herring	bat_therm: thermistor {
43724ba675SRob Herring		compatible = "murata,ncp18wb473";
44724ba675SRob Herring		io-channels = <&gpadc 0x02>; /* BatTemp */
45724ba675SRob Herring		pullup-uv = <1800000>;
46724ba675SRob Herring		pullup-ohm = <230000>;
47724ba675SRob Herring		pulldown-ohm = <0>;
48724ba675SRob Herring		#thermal-sensor-cells = <0>;
49724ba675SRob Herring	};
50724ba675SRob Herring
51724ba675SRob Herring	en_3v3_reg: en_3v3 {
52724ba675SRob Herring		compatible = "regulator-fixed";
53724ba675SRob Herring		regulator-name = "en-3v3-fixed-supply";
54724ba675SRob Herring		regulator-min-microvolt = <3300000>;
55724ba675SRob Herring		regulator-max-microvolt = <3300000>;
56724ba675SRob Herring		/* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
57724ba675SRob Herring		gpio = <&ab8500_gpio 25 0x4>;
58724ba675SRob Herring		startup-delay-us = <5000>;
59724ba675SRob Herring		enable-active-high;
60724ba675SRob Herring	};
61724ba675SRob Herring
62724ba675SRob Herring	gpio_keys {
63724ba675SRob Herring		compatible = "gpio-keys";
64724ba675SRob Herring		#address-cells = <1>;
65724ba675SRob Herring		#size-cells = <0>;
66724ba675SRob Herring
67724ba675SRob Herring		button@1 {
68724ba675SRob Herring			debounce-interval = <50>;
69724ba675SRob Herring			wakeup-source;
70724ba675SRob Herring			linux,code = <2>;
71724ba675SRob Herring			label = "userpb";
72724ba675SRob Herring			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
73724ba675SRob Herring		};
74724ba675SRob Herring		button@2 {
75724ba675SRob Herring			debounce-interval = <50>;
76724ba675SRob Herring			wakeup-source;
77724ba675SRob Herring			linux,code = <3>;
78724ba675SRob Herring			label = "extkb1";
79724ba675SRob Herring			gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
80724ba675SRob Herring		};
81724ba675SRob Herring		button@3 {
82724ba675SRob Herring			debounce-interval = <50>;
83724ba675SRob Herring			wakeup-source;
84724ba675SRob Herring			linux,code = <4>;
85724ba675SRob Herring			label = "extkb2";
86724ba675SRob Herring			gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
87724ba675SRob Herring		};
88724ba675SRob Herring		button@4 {
89724ba675SRob Herring			debounce-interval = <50>;
90724ba675SRob Herring			wakeup-source;
91724ba675SRob Herring			linux,code = <5>;
92724ba675SRob Herring			label = "extkb3";
93724ba675SRob Herring			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
94724ba675SRob Herring		};
95724ba675SRob Herring		button@5 {
96724ba675SRob Herring			debounce-interval = <50>;
97724ba675SRob Herring			wakeup-source;
98724ba675SRob Herring			linux,code = <6>;
99724ba675SRob Herring			label = "extkb4";
100724ba675SRob Herring			gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
101724ba675SRob Herring		};
102724ba675SRob Herring	};
103724ba675SRob Herring
104724ba675SRob Herring	leds {
105724ba675SRob Herring		compatible = "gpio-leds";
106724ba675SRob Herring		pinctrl-names = "default";
107724ba675SRob Herring		pinctrl-0 = <&gpioled_snowball_mode>;
108724ba675SRob Herring		used-led {
109724ba675SRob Herring			label = "user_led";
110724ba675SRob Herring			gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
111724ba675SRob Herring			default-state = "on";
112724ba675SRob Herring			linux,default-trigger = "heartbeat";
113724ba675SRob Herring		};
114724ba675SRob Herring	};
115724ba675SRob Herring
116724ba675SRob Herring	soc {
117724ba675SRob Herring		/* Name the GPIO muxed rails on the Snowball board */
118724ba675SRob Herring		gpio@8012e000 {
119724ba675SRob Herring			/* GPIOs 0 - 31 */
120724ba675SRob Herring			gpio-line-names = "", "", "", "", "", "", "", "",
121724ba675SRob Herring				     "", "", "", "", "", "", "", "",
122724ba675SRob Herring				     "", "", "", "", "", "", "", "",
123724ba675SRob Herring				     "", "", "", "", "", "", "",
124724ba675SRob Herring				     "AP_GPIO31";
125724ba675SRob Herring		};
126724ba675SRob Herring
127724ba675SRob Herring		gpio@8012e080 {
128724ba675SRob Herring			/* GPIOs 32 - 63 */
129724ba675SRob Herring			gpio-line-names = "USR PB", "", "", "", "", "", "", "",
130724ba675SRob Herring				     "", "", "", "", "", "", "", "",
131724ba675SRob Herring				     "", "", "", "", "", "", "", "",
132724ba675SRob Herring				     "", "", "", "", "", "", "", "";
133724ba675SRob Herring		};
134724ba675SRob Herring
135724ba675SRob Herring		gpio@8000e000 {
136724ba675SRob Herring			/* GPIOs 64 - 95 */
137724ba675SRob Herring			gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
138724ba675SRob Herring				     "", "", "", "", "", "", "", "",
139724ba675SRob Herring				     "", "", "", "", "", "", "", "",
140724ba675SRob Herring				     "", "", "", "", "", "", "", "";
141724ba675SRob Herring		};
142724ba675SRob Herring
143724ba675SRob Herring		gpio@8000e100 {
144724ba675SRob Herring			/* GPIOs 128 - 159 */
145724ba675SRob Herring			gpio-line-names = "", "", "", "", "", "", "", "",
146724ba675SRob Herring				     "", "", "", "", "IRQ_LAN", "RSTn_LAN",
147724ba675SRob Herring				     "USR_LED", "", "", "", "", "", "",
148724ba675SRob Herring				     "", "", "AP_GPIO151", "AP_GPIO152",
149724ba675SRob Herring				     "", "", "", "", "", "", "";
150724ba675SRob Herring		};
151724ba675SRob Herring
152724ba675SRob Herring		gpio@8000e180 {
153724ba675SRob Herring			/* GPIOs 160 - 191 */
154724ba675SRob Herring			gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
155724ba675SRob Herring				     "ACCELEROMETER_INT1_RDY",
156724ba675SRob Herring				     "ACCELEROMETER_INT2", "MAG_DRDY",
157724ba675SRob Herring				     "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
158724ba675SRob Herring				     "GYRO_INT", "UART_WAKE", "GBF_RESET",
159724ba675SRob Herring				     "", "", "", "",
160724ba675SRob Herring				     "", "", "", "", "", "", "", "",
161724ba675SRob Herring				     "", "", "", "", "", "", "", "";
162724ba675SRob Herring		};
163724ba675SRob Herring
164724ba675SRob Herring		gpio@8011e000 {
165724ba675SRob Herring			/* GPIOs 192 - 223 */
166724ba675SRob Herring			gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
167724ba675SRob Herring				     "", "", "", "", "", "", "", "", "",
168724ba675SRob Herring				     "", "", "", "", "", "", "", "", "",
169724ba675SRob Herring				     "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
170724ba675SRob Herring				     "MMC_CD", "", "", "", "", "";
171724ba675SRob Herring		};
172724ba675SRob Herring
173724ba675SRob Herring		gpio@8011e080 {
174724ba675SRob Herring			/* GPIOs 224 - 255 */
175724ba675SRob Herring			gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
176724ba675SRob Herring				     "", "", "", "", "", "", "", "",
177724ba675SRob Herring				     "", "", "", "", "", "", "", "",
178724ba675SRob Herring				     "", "", "", "", "", "", "", "";
179724ba675SRob Herring		};
180724ba675SRob Herring
181724ba675SRob Herring		msp0: msp@80123000 {
182724ba675SRob Herring			pinctrl-names = "default";
183724ba675SRob Herring			pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
184724ba675SRob Herring			status = "okay";
185724ba675SRob Herring		};
186724ba675SRob Herring
187724ba675SRob Herring		msp1: msp@80124000 {
188724ba675SRob Herring			pinctrl-names = "default";
189724ba675SRob Herring			pinctrl-0 = <&msp1txrx_a_1_default>;
190724ba675SRob Herring			status = "okay";
191724ba675SRob Herring		};
192724ba675SRob Herring
193724ba675SRob Herring		msp2: msp@80117000 {
194724ba675SRob Herring			pinctrl-names = "default";
195724ba675SRob Herring			pinctrl-0 = <&msp2_a_1_default>;
196724ba675SRob Herring		};
197724ba675SRob Herring
198724ba675SRob Herring		msp3: msp@80125000 {
199724ba675SRob Herring			status = "okay";
200724ba675SRob Herring		};
201724ba675SRob Herring
202724ba675SRob Herring		external-bus@50000000 {
203724ba675SRob Herring			status = "okay";
204724ba675SRob Herring
205724ba675SRob Herring			ethernet@0 {
206724ba675SRob Herring				compatible = "smsc,lan9115";
207724ba675SRob Herring				reg = <0 0x10000>;
208724ba675SRob Herring				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
209724ba675SRob Herring				interrupt-parent = <&gpio4>;
210724ba675SRob Herring				vdd33a-supply = <&en_3v3_reg>;
211724ba675SRob Herring				vddvario-supply = <&db8500_vape_reg>;
212724ba675SRob Herring				pinctrl-names = "default";
213724ba675SRob Herring				pinctrl-0 = <&eth_snowball_mode>;
214724ba675SRob Herring
215724ba675SRob Herring				reg-shift = <1>;
216724ba675SRob Herring				reg-io-width = <2>;
217724ba675SRob Herring				smsc,force-internal-phy;
218724ba675SRob Herring				smsc,irq-active-high;
219724ba675SRob Herring				smsc,irq-push-pull;
220724ba675SRob Herring
221724ba675SRob Herring				clocks = <&prcc_pclk 3 0>;
222724ba675SRob Herring			};
223724ba675SRob Herring		};
224724ba675SRob Herring
225724ba675SRob Herring		/* ST6G3244ME level translator for 1.8/2.9 V */
226724ba675SRob Herring		vmmci: regulator-gpio {
227724ba675SRob Herring			compatible = "regulator-gpio";
228724ba675SRob Herring
229724ba675SRob Herring			/* GPIO228 SD_SEL */
230724ba675SRob Herring			gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
231724ba675SRob Herring			/* GPIO217 MMC_EN */
232*137062f1SKrzysztof Kozlowski			enable-gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
233724ba675SRob Herring			enable-active-high;
234724ba675SRob Herring
235724ba675SRob Herring			regulator-min-microvolt = <1800000>;
236724ba675SRob Herring			regulator-max-microvolt = <2900000>;
237724ba675SRob Herring			regulator-name = "mmci-reg";
238724ba675SRob Herring			regulator-type = "voltage";
239724ba675SRob Herring
240724ba675SRob Herring			startup-delay-us = <100>;
241724ba675SRob Herring
242724ba675SRob Herring			states = <1800000 0x1
243724ba675SRob Herring				  2900000 0x0>;
244724ba675SRob Herring		};
245724ba675SRob Herring
246724ba675SRob Herring		// External Micro SD slot
247724ba675SRob Herring		mmc@80126000 {
248724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
249724ba675SRob Herring			max-frequency = <100000000>;
250724ba675SRob Herring			bus-width = <4>;
251724ba675SRob Herring			cap-sd-highspeed;
252724ba675SRob Herring			cap-mmc-highspeed;
253724ba675SRob Herring			sd-uhs-sdr12;
254724ba675SRob Herring			sd-uhs-sdr25;
255724ba675SRob Herring			/* All direction control is used */
256724ba675SRob Herring			st,sig-dir-cmd;
257724ba675SRob Herring			st,sig-dir-dat0;
258724ba675SRob Herring			st,sig-dir-dat2;
259724ba675SRob Herring			st,sig-dir-dat31;
260724ba675SRob Herring			st,sig-pin-fbclk;
261724ba675SRob Herring			full-pwr-cycle;
262724ba675SRob Herring			vmmc-supply = <&ab8500_ldo_aux3_reg>;
263724ba675SRob Herring			vqmmc-supply = <&vmmci>;
264724ba675SRob Herring			pinctrl-names = "default", "sleep";
265724ba675SRob Herring			pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>;
266724ba675SRob Herring			pinctrl-1 = <&mc0_a_1_sleep>;
267724ba675SRob Herring
268724ba675SRob Herring			/* GPIO218 MMC_CD */
269724ba675SRob Herring			cd-gpios  = <&gpio6 26 GPIO_ACTIVE_LOW>;
270724ba675SRob Herring
271724ba675SRob Herring			status = "okay";
272724ba675SRob Herring		};
273724ba675SRob Herring
274724ba675SRob Herring		// WLAN SDIO channel
275724ba675SRob Herring		mmc@80118000 {
276724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
277724ba675SRob Herring			max-frequency = <100000000>;
278724ba675SRob Herring			bus-width = <4>;
279724ba675SRob Herring			pinctrl-names = "default", "sleep";
280724ba675SRob Herring			pinctrl-0 = <&mc1_a_1_default>;
281724ba675SRob Herring			pinctrl-1 = <&mc1_a_1_sleep>;
282724ba675SRob Herring
283724ba675SRob Herring			status = "okay";
284724ba675SRob Herring		};
285724ba675SRob Herring
286724ba675SRob Herring		// Unused PoP eMMC - register and put it to sleep by default */
287724ba675SRob Herring		mmc@80005000 {
288724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
289724ba675SRob Herring			pinctrl-names = "default";
290724ba675SRob Herring			pinctrl-0 = <&mc2_a_1_sleep>;
291724ba675SRob Herring
292724ba675SRob Herring			status = "okay";
293724ba675SRob Herring		};
294724ba675SRob Herring
295724ba675SRob Herring		// On-board eMMC
296724ba675SRob Herring		mmc@80114000 {
297724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
298724ba675SRob Herring		        max-frequency = <100000000>;
299724ba675SRob Herring			bus-width = <8>;
300724ba675SRob Herring			cap-mmc-highspeed;
301724ba675SRob Herring			no-sdio;
302724ba675SRob Herring			no-sd;
303724ba675SRob Herring			vmmc-supply = <&ab8500_ldo_aux2_reg>;
304724ba675SRob Herring			pinctrl-names = "default", "sleep";
305724ba675SRob Herring			pinctrl-0 = <&mc4_a_1_default>;
306724ba675SRob Herring			pinctrl-1 = <&mc4_a_1_sleep>;
307724ba675SRob Herring
308724ba675SRob Herring			status = "okay";
309724ba675SRob Herring		};
310724ba675SRob Herring
311724ba675SRob Herring		serial@80120000 {
312724ba675SRob Herring			pinctrl-names = "default", "sleep";
313724ba675SRob Herring			pinctrl-0 = <&u0_a_1_default>;
314724ba675SRob Herring			pinctrl-1 = <&u0_a_1_sleep>;
315724ba675SRob Herring			status = "okay";
316724ba675SRob Herring		};
317724ba675SRob Herring
318724ba675SRob Herring		/* This UART is unused and thus left disabled */
319724ba675SRob Herring		serial@80121000 {
320724ba675SRob Herring			pinctrl-names = "default", "sleep";
321724ba675SRob Herring			pinctrl-0 = <&u1rxtx_a_1_default>;
322724ba675SRob Herring			pinctrl-1 = <&u1rxtx_a_1_sleep>;
323724ba675SRob Herring		};
324724ba675SRob Herring
325724ba675SRob Herring		serial@80007000 {
326724ba675SRob Herring			pinctrl-names = "default", "sleep";
327724ba675SRob Herring			pinctrl-0 = <&u2rxtx_c_1_default>;
328724ba675SRob Herring			pinctrl-1 = <&u2rxtx_c_1_sleep>;
329724ba675SRob Herring			status = "okay";
330724ba675SRob Herring		};
331724ba675SRob Herring
332724ba675SRob Herring		i2c@80004000 {
333724ba675SRob Herring			pinctrl-names = "default","sleep";
334724ba675SRob Herring			pinctrl-0 = <&i2c0_a_1_default>;
335724ba675SRob Herring			pinctrl-1 = <&i2c0_a_1_sleep>;
336724ba675SRob Herring			status = "okay";
337724ba675SRob Herring		};
338724ba675SRob Herring
339724ba675SRob Herring		i2c@80122000 {
340724ba675SRob Herring			pinctrl-names = "default","sleep";
341724ba675SRob Herring			pinctrl-0 = <&i2c1_b_2_default>;
342724ba675SRob Herring			pinctrl-1 = <&i2c1_b_2_sleep>;
343724ba675SRob Herring			status = "okay";
344724ba675SRob Herring		};
345724ba675SRob Herring
346724ba675SRob Herring		i2c@80128000 {
347724ba675SRob Herring			pinctrl-names = "default","sleep";
348724ba675SRob Herring			pinctrl-0 = <&i2c2_b_2_default>;
349724ba675SRob Herring			pinctrl-1 = <&i2c2_b_2_sleep>;
350724ba675SRob Herring			status = "okay";
351724ba675SRob Herring			lsm303dlh@18 {
352724ba675SRob Herring				/* Accelerometer */
353724ba675SRob Herring				compatible = "st,lsm303dlh-accel";
354724ba675SRob Herring				st,drdy-int-pin = <1>;
355724ba675SRob Herring				reg = <0x18>;
356724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
357724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
358724ba675SRob Herring				pinctrl-names = "default";
359724ba675SRob Herring				pinctrl-0 = <&accel_snowball_mode>;
360724ba675SRob Herring				interrupt-parent = <&gpio5>;
361724ba675SRob Herring				interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
362724ba675SRob Herring					     <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
363724ba675SRob Herring			};
364724ba675SRob Herring			lsm303dlh@1e {
365724ba675SRob Herring				/* Magnetometer */
366724ba675SRob Herring				compatible = "st,lsm303dlh-magn";
367724ba675SRob Herring				reg = <0x1e>;
368724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
369724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
370724ba675SRob Herring				pinctrl-names = "default";
371724ba675SRob Herring				pinctrl-0 = <&magneto_snowball_mode>;
372724ba675SRob Herring				interrupt-parent = <&gpio5>;
373724ba675SRob Herring				interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
374724ba675SRob Herring			};
375724ba675SRob Herring			l3g4200d@68 {
376724ba675SRob Herring				/* Gyroscope */
377724ba675SRob Herring				compatible = "st,l3g4200d-gyro";
378724ba675SRob Herring				st,drdy-int-pin = <2>;
379724ba675SRob Herring				reg = <0x68>;
380724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
381724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
382724ba675SRob Herring				pinctrl-names = "default";
383724ba675SRob Herring				pinctrl-0 = <&gyro_snowball_mode>;
384724ba675SRob Herring				interrupt-parent = <&gpio5>;
385724ba675SRob Herring				interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
386724ba675SRob Herring					     <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
387724ba675SRob Herring			};
388724ba675SRob Herring			lsp001wm@5c {
389724ba675SRob Herring				/* Barometer/pressure sensor */
390724ba675SRob Herring				compatible = "st,lps001wp-press";
391724ba675SRob Herring				reg = <0x5c>;
392724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
393724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
394724ba675SRob Herring			};
395724ba675SRob Herring		};
396724ba675SRob Herring
397724ba675SRob Herring		i2c@80110000 {
398724ba675SRob Herring			pinctrl-names = "default","sleep";
399724ba675SRob Herring			pinctrl-0 = <&i2c3_c_2_default>;
400724ba675SRob Herring			pinctrl-1 = <&i2c3_c_2_sleep>;
401724ba675SRob Herring			status = "okay";
402724ba675SRob Herring		};
403724ba675SRob Herring
404724ba675SRob Herring		spi@80002000 {
405724ba675SRob Herring			pinctrl-names = "default";
406724ba675SRob Herring			pinctrl-0 = <&ssp0_snowball_mode>;
407724ba675SRob Herring			status = "okay";
408724ba675SRob Herring		};
409724ba675SRob Herring
410724ba675SRob Herring		prcmu@80157000 {
411724ba675SRob Herring			ab8500 {
412724ba675SRob Herring				gpio {
413724ba675SRob Herring					/*
414724ba675SRob Herring					 * AB8500 GPIOs are numbered starting from 1, so the first
415724ba675SRob Herring					 * index 0 is what in the datasheet is called "GPIO1", and
416724ba675SRob Herring					 * the second is "GPIO2" and so forth. Confusingly, the
417724ba675SRob Herring					 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
418724ba675SRob Herring					 * while later naming "GPIO4" as "PM_GPIO4".
419724ba675SRob Herring					 */
420724ba675SRob Herring					gpio-line-names = "", /* AB8500 GPIO1 */
421724ba675SRob Herring						     "PM_GPIO1", /* AB8500 GPIO2 */
422724ba675SRob Herring						     "WLAN_CLK_REQ", /* AB8500 GPIO3 */
423724ba675SRob Herring						     "PM_GPIO4", /* AB8500 GPIO4 */
424724ba675SRob Herring						     "", "", "", "", "", "", "", "", "", "", "",
425724ba675SRob Herring						     "EN_3V6", /* AB8500 GPIO16 */
426724ba675SRob Herring						     "", "", "", "" ,"", "", "", "", "",
427724ba675SRob Herring						     "EN_3V3", /* AB8500 GPIO26 */
428724ba675SRob Herring						     "", "", "", "", "", "", "", "", "", "", "", "", "",
429724ba675SRob Herring						     "PM_GPIO40", /* AB8500 GPIO40 */
430724ba675SRob Herring						     "PM_GPIO41", /* AB8500 GPIO41 */
431724ba675SRob Herring						     "PM_GPIO42"; /* AB8500 GPIO42 */
432724ba675SRob Herring				};
433724ba675SRob Herring
434724ba675SRob Herring				phy {
435724ba675SRob Herring					pinctrl-names = "default", "sleep";
436724ba675SRob Herring					pinctrl-0 = <&usb_a_1_default>;
437724ba675SRob Herring					pinctrl-1 = <&usb_a_1_sleep>;
438724ba675SRob Herring				};
439724ba675SRob Herring
440724ba675SRob Herring				ext_regulators: regulator-external {
441724ba675SRob Herring					ab8500_ext1_reg: ab8500_ext1 {
442724ba675SRob Herring						regulator-name = "ab8500-ext-supply1";
443724ba675SRob Herring					};
444724ba675SRob Herring
445724ba675SRob Herring					ab8500_ext2_reg_reg: ab8500_ext2 {
446724ba675SRob Herring						regulator-name = "ab8500-ext-supply2";
447724ba675SRob Herring					};
448724ba675SRob Herring
449724ba675SRob Herring					ab8500_ext3_reg_reg: ab8500_ext3 {
450724ba675SRob Herring						regulator-name = "ab8500-ext-supply3";
451724ba675SRob Herring					};
452724ba675SRob Herring				};
453724ba675SRob Herring
454724ba675SRob Herring				regulator {
455724ba675SRob Herring					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
456724ba675SRob Herring						regulator-name = "V-DISPLAY";
457724ba675SRob Herring					};
458724ba675SRob Herring
459724ba675SRob Herring					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
460724ba675SRob Herring						regulator-name = "V-eMMC1";
461724ba675SRob Herring					};
462724ba675SRob Herring
463724ba675SRob Herring					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
464724ba675SRob Herring						regulator-name = "V-MMC-SD";
465724ba675SRob Herring					};
466724ba675SRob Herring
467724ba675SRob Herring					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
468724ba675SRob Herring						regulator-name = "V-INTCORE";
469724ba675SRob Herring					};
470724ba675SRob Herring
471724ba675SRob Herring					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
472724ba675SRob Herring						regulator-name = "V-TVOUT";
473724ba675SRob Herring					};
474724ba675SRob Herring
475724ba675SRob Herring					ab8500_ldo_audio_reg: ab8500_ldo_audio {
476724ba675SRob Herring						regulator-name = "V-AUD";
477724ba675SRob Herring					};
478724ba675SRob Herring
479724ba675SRob Herring					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
480724ba675SRob Herring						regulator-name = "V-AMIC1";
481724ba675SRob Herring					};
482724ba675SRob Herring
483724ba675SRob Herring					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
484724ba675SRob Herring						regulator-name = "V-AMIC2";
485724ba675SRob Herring					};
486724ba675SRob Herring
487724ba675SRob Herring					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
488724ba675SRob Herring						regulator-name = "V-DMIC";
489724ba675SRob Herring					};
490724ba675SRob Herring
491724ba675SRob Herring					ab8500_ldo_ana_reg: ab8500_ldo_ana {
492724ba675SRob Herring						regulator-name = "V-CSI/DSI";
493724ba675SRob Herring					};
494724ba675SRob Herring				};
495724ba675SRob Herring			};
496724ba675SRob Herring		};
497724ba675SRob Herring
498724ba675SRob Herring		pinctrl {
499724ba675SRob Herring			/*
500724ba675SRob Herring			 * Set this up using hogs, as time goes by and as seems fit, these
501724ba675SRob Herring			 * can be moved over to being controlled by respective device.
502724ba675SRob Herring			 */
503724ba675SRob Herring			pinctrl-names = "default";
504724ba675SRob Herring			pinctrl-0 = <&gbf_snowball_mode>,
505724ba675SRob Herring				  <&wlan_snowball_mode>;
506724ba675SRob Herring
507724ba675SRob Herring			ethernet {
508724ba675SRob Herring				/*
509724ba675SRob Herring				 * Mux in "SM" which is used for the
510724ba675SRob Herring				 * SMSC911x Ethernet adapter
511724ba675SRob Herring				 */
512724ba675SRob Herring				eth_snowball_mode: eth_snowball {
513724ba675SRob Herring					snowball_mux {
514724ba675SRob Herring						function = "sm";
515724ba675SRob Herring						groups = "sm_b_1";
516724ba675SRob Herring					};
517724ba675SRob Herring					/* LAN IRQ pin */
518724ba675SRob Herring					snowball_cfg1 {
519724ba675SRob Herring						pins = "GPIO140_B11";
520724ba675SRob Herring						ste,config = <&in_nopull>;
521724ba675SRob Herring					};
522724ba675SRob Herring					/* LAN reset pin */
523724ba675SRob Herring					snowball_cfg2 {
524724ba675SRob Herring						pins = "GPIO141_C12";
525724ba675SRob Herring						ste,config = <&gpio_out_hi>;
526724ba675SRob Herring					};
527724ba675SRob Herring
528724ba675SRob Herring				};
529724ba675SRob Herring			};
530724ba675SRob Herring			sdi0 {
531724ba675SRob Herring				sdi0_default_mode: sdi0_default {
532724ba675SRob Herring					snowball_mux {
533724ba675SRob Herring						function = "mc0";
534724ba675SRob Herring						/* Add the DAT31 pin even if it is not really used */
535724ba675SRob Herring						groups = "mc0dat31dir_a_1";
536724ba675SRob Herring					};
537724ba675SRob Herring					snowball_cfg1 {
538724ba675SRob Herring						pins = "GPIO21_AB3"; /* DAT31DIR */
539724ba675SRob Herring						ste,config = <&out_hi>;
540724ba675SRob Herring					};
541724ba675SRob Herring					/* SD card detect GPIO pin, extend default state */
542724ba675SRob Herring					snowball_cfg2 {
543724ba675SRob Herring						pins = "GPIO218_AH11";
544724ba675SRob Herring						ste,config = <&gpio_in_pu>;
545724ba675SRob Herring					};
546724ba675SRob Herring					/* VMMCI level-shifter enable */
547724ba675SRob Herring					snowball_cfg3 {
548724ba675SRob Herring						pins = "GPIO217_AH12";
549724ba675SRob Herring						ste,config = <&gpio_out_hi>;
550724ba675SRob Herring					};
551724ba675SRob Herring					/* VMMCI level-shifter voltage select */
552724ba675SRob Herring					snowball_cfg4 {
553724ba675SRob Herring						pins = "GPIO228_AJ6";
554724ba675SRob Herring						ste,config = <&gpio_out_hi>;
555724ba675SRob Herring					};
556724ba675SRob Herring				};
557724ba675SRob Herring			};
558724ba675SRob Herring			ssp0 {
559724ba675SRob Herring				ssp0_snowball_mode: ssp0_snowball_default {
560724ba675SRob Herring					snowball_mux {
561724ba675SRob Herring						function = "ssp0";
562724ba675SRob Herring						groups = "ssp0_a_1";
563724ba675SRob Herring					};
564724ba675SRob Herring					snowball_cfg1 {
565724ba675SRob Herring						pins = "GPIO144_B13"; /* FRM */
566724ba675SRob Herring						ste,config = <&gpio_out_hi>;
567724ba675SRob Herring					};
568724ba675SRob Herring					snowball_cfg2 {
569724ba675SRob Herring						pins = "GPIO145_C13"; /* RXD */
570724ba675SRob Herring						ste,config = <&in_pd>;
571724ba675SRob Herring					};
572724ba675SRob Herring					snowball_cfg3 {
573724ba675SRob Herring						pins =
574724ba675SRob Herring						"GPIO146_D13", /* TXD */
575724ba675SRob Herring						"GPIO143_D12"; /* CLK */
576724ba675SRob Herring						ste,config = <&out_lo>;
577724ba675SRob Herring					};
578724ba675SRob Herring
579724ba675SRob Herring				};
580724ba675SRob Herring			};
581724ba675SRob Herring			gpio_led {
582724ba675SRob Herring				gpioled_snowball_mode: gpioled_default {
583724ba675SRob Herring					snowball_cfg1 {
584724ba675SRob Herring						pins = "GPIO142_C11";
585724ba675SRob Herring						ste,config = <&gpio_out_hi>;
586724ba675SRob Herring					};
587724ba675SRob Herring
588724ba675SRob Herring				};
589724ba675SRob Herring			};
590724ba675SRob Herring			accelerometer {
591724ba675SRob Herring				accel_snowball_mode: accel_snowball {
592724ba675SRob Herring					/* Accelerometer lines */
593724ba675SRob Herring					snowball_cfg1 {
594724ba675SRob Herring						pins =
595724ba675SRob Herring						"GPIO163_C20", /* ACCEL_IRQ1 */
596724ba675SRob Herring						"GPIO164_B21"; /* ACCEL_IRQ2 */
597724ba675SRob Herring						ste,config = <&gpio_in_pu>;
598724ba675SRob Herring					};
599724ba675SRob Herring				};
600724ba675SRob Herring			};
601724ba675SRob Herring			gyro {
602724ba675SRob Herring				gyro_snowball_mode: gyro_snowball {
603724ba675SRob Herring					snowball_cfg1 {
604724ba675SRob Herring						pins =
605724ba675SRob Herring						"GPIO166_A22", /* DRDY */
606724ba675SRob Herring						"GPIO169_D22"; /* INT */
607724ba675SRob Herring						ste,config = <&gpio_in_pu>;
608724ba675SRob Herring					};
609724ba675SRob Herring				};
610724ba675SRob Herring			};
611724ba675SRob Herring			magnetometer {
612724ba675SRob Herring				magneto_snowball_mode: magneto_snowball {
613724ba675SRob Herring					snowball_cfg1 {
614724ba675SRob Herring						pins = "GPIO165_C21"; /* MAG_DRDY */
615724ba675SRob Herring						ste,config = <&gpio_in_pu>;
616724ba675SRob Herring					};
617724ba675SRob Herring				};
618724ba675SRob Herring			};
619724ba675SRob Herring			gbf {
620724ba675SRob Herring				gbf_snowball_mode: gbf_snowball {
621724ba675SRob Herring					/*
622724ba675SRob Herring					 * GBF (GPS, Bluetooth, FM-radio) interface,
623724ba675SRob Herring					 * pull low to reset state
624724ba675SRob Herring					 */
625724ba675SRob Herring					snowball_cfg1 {
626724ba675SRob Herring						pins = "GPIO171_D23"; /* GBF_ENA_RESET */
627724ba675SRob Herring						ste,config = <&gpio_out_lo>;
628724ba675SRob Herring					};
629724ba675SRob Herring				 };
630724ba675SRob Herring			};
631724ba675SRob Herring			wlan {
632724ba675SRob Herring				wlan_snowball_mode: wlan_snowball {
633724ba675SRob Herring					/*
634724ba675SRob Herring					 * Activate this mode with the WLAN chip.
635724ba675SRob Herring					 * These are plain GPIO pins used by WLAN
636724ba675SRob Herring					 */
637724ba675SRob Herring					snowball_cfg1 {
638724ba675SRob Herring						pins =
639724ba675SRob Herring						"GPIO161_D21", /* WLAN_PMU_EN */
640724ba675SRob Herring						"GPIO215_AH13"; /* WLAN_ENA */
641724ba675SRob Herring						ste,config = <&gpio_out_lo>;
642724ba675SRob Herring					};
643724ba675SRob Herring					snowball_cfg2 {
644724ba675SRob Herring						pins = "GPIO216_AG12"; /* WLAN_IRQ */
645724ba675SRob Herring						ste,config = <&gpio_in_pu>;
646724ba675SRob Herring					};
647724ba675SRob Herring				};
648724ba675SRob Herring			};
649724ba675SRob Herring		};
650724ba675SRob Herring
651724ba675SRob Herring		mcde@a0350000 {
652724ba675SRob Herring			pinctrl-names = "default", "sleep";
653724ba675SRob Herring			pinctrl-0 = <&lcd_default_mode>;
654724ba675SRob Herring			pinctrl-1 = <&lcd_sleep_mode>;
655724ba675SRob Herring		};
656724ba675SRob Herring	};
657724ba675SRob Herring};
658