1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright 2011 ST-Ericsson AB
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring/dts-v1/;
7*724ba675SRob Herring#include "ste-db9500.dtsi"
8*724ba675SRob Herring#include "ste-href-ab8500.dtsi"
9*724ba675SRob Herring#include "ste-href-family-pinctrl.dtsi"
10*724ba675SRob Herring
11*724ba675SRob Herring/ {
12*724ba675SRob Herring	model = "Calao Systems Snowball platform with device tree";
13*724ba675SRob Herring	compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
14*724ba675SRob Herring
15*724ba675SRob Herring	memory {
16*724ba675SRob Herring		device_type = "memory";
17*724ba675SRob Herring		reg = <0x00000000 0x20000000>;
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	battery: battery {
21*724ba675SRob Herring		compatible = "simple-battery";
22*724ba675SRob Herring		battery-type = "lithium-ion-polymer";
23*724ba675SRob Herring	};
24*724ba675SRob Herring
25*724ba675SRob Herring	thermal-zones {
26*724ba675SRob Herring		battery-thermal {
27*724ba675SRob Herring			/* This zone will be polled by the battery temperature code */
28*724ba675SRob Herring			polling-delay = <0>;
29*724ba675SRob Herring			polling-delay-passive = <0>;
30*724ba675SRob Herring			thermal-sensors = <&bat_therm>;
31*724ba675SRob Herring
32*724ba675SRob Herring			trips {
33*724ba675SRob Herring				battery-crit-hi {
34*724ba675SRob Herring					temperature = <70000>;
35*724ba675SRob Herring					hysteresis = <2000>;
36*724ba675SRob Herring					type = "critical";
37*724ba675SRob Herring				};
38*724ba675SRob Herring			};
39*724ba675SRob Herring		};
40*724ba675SRob Herring	};
41*724ba675SRob Herring
42*724ba675SRob Herring	bat_therm: thermistor {
43*724ba675SRob Herring		compatible = "murata,ncp18wb473";
44*724ba675SRob Herring		io-channels = <&gpadc 0x02>; /* BatTemp */
45*724ba675SRob Herring		pullup-uv = <1800000>;
46*724ba675SRob Herring		pullup-ohm = <230000>;
47*724ba675SRob Herring		pulldown-ohm = <0>;
48*724ba675SRob Herring		#thermal-sensor-cells = <0>;
49*724ba675SRob Herring	};
50*724ba675SRob Herring
51*724ba675SRob Herring	en_3v3_reg: en_3v3 {
52*724ba675SRob Herring		compatible = "regulator-fixed";
53*724ba675SRob Herring		regulator-name = "en-3v3-fixed-supply";
54*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
55*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
56*724ba675SRob Herring		/* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
57*724ba675SRob Herring		gpio = <&ab8500_gpio 25 0x4>;
58*724ba675SRob Herring		startup-delay-us = <5000>;
59*724ba675SRob Herring		enable-active-high;
60*724ba675SRob Herring	};
61*724ba675SRob Herring
62*724ba675SRob Herring	gpio_keys {
63*724ba675SRob Herring		compatible = "gpio-keys";
64*724ba675SRob Herring		#address-cells = <1>;
65*724ba675SRob Herring		#size-cells = <0>;
66*724ba675SRob Herring
67*724ba675SRob Herring		button@1 {
68*724ba675SRob Herring			debounce-interval = <50>;
69*724ba675SRob Herring			wakeup-source;
70*724ba675SRob Herring			linux,code = <2>;
71*724ba675SRob Herring			label = "userpb";
72*724ba675SRob Herring			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
73*724ba675SRob Herring		};
74*724ba675SRob Herring		button@2 {
75*724ba675SRob Herring			debounce-interval = <50>;
76*724ba675SRob Herring			wakeup-source;
77*724ba675SRob Herring			linux,code = <3>;
78*724ba675SRob Herring			label = "extkb1";
79*724ba675SRob Herring			gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
80*724ba675SRob Herring		};
81*724ba675SRob Herring		button@3 {
82*724ba675SRob Herring			debounce-interval = <50>;
83*724ba675SRob Herring			wakeup-source;
84*724ba675SRob Herring			linux,code = <4>;
85*724ba675SRob Herring			label = "extkb2";
86*724ba675SRob Herring			gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
87*724ba675SRob Herring		};
88*724ba675SRob Herring		button@4 {
89*724ba675SRob Herring			debounce-interval = <50>;
90*724ba675SRob Herring			wakeup-source;
91*724ba675SRob Herring			linux,code = <5>;
92*724ba675SRob Herring			label = "extkb3";
93*724ba675SRob Herring			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
94*724ba675SRob Herring		};
95*724ba675SRob Herring		button@5 {
96*724ba675SRob Herring			debounce-interval = <50>;
97*724ba675SRob Herring			wakeup-source;
98*724ba675SRob Herring			linux,code = <6>;
99*724ba675SRob Herring			label = "extkb4";
100*724ba675SRob Herring			gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
101*724ba675SRob Herring		};
102*724ba675SRob Herring	};
103*724ba675SRob Herring
104*724ba675SRob Herring	leds {
105*724ba675SRob Herring		compatible = "gpio-leds";
106*724ba675SRob Herring		pinctrl-names = "default";
107*724ba675SRob Herring		pinctrl-0 = <&gpioled_snowball_mode>;
108*724ba675SRob Herring		used-led {
109*724ba675SRob Herring			label = "user_led";
110*724ba675SRob Herring			gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
111*724ba675SRob Herring			default-state = "on";
112*724ba675SRob Herring			linux,default-trigger = "heartbeat";
113*724ba675SRob Herring		};
114*724ba675SRob Herring	};
115*724ba675SRob Herring
116*724ba675SRob Herring	soc {
117*724ba675SRob Herring		/* Name the GPIO muxed rails on the Snowball board */
118*724ba675SRob Herring		gpio@8012e000 {
119*724ba675SRob Herring			/* GPIOs 0 - 31 */
120*724ba675SRob Herring			gpio-line-names = "", "", "", "", "", "", "", "",
121*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
122*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
123*724ba675SRob Herring				     "", "", "", "", "", "", "",
124*724ba675SRob Herring				     "AP_GPIO31";
125*724ba675SRob Herring		};
126*724ba675SRob Herring
127*724ba675SRob Herring		gpio@8012e080 {
128*724ba675SRob Herring			/* GPIOs 32 - 63 */
129*724ba675SRob Herring			gpio-line-names = "USR PB", "", "", "", "", "", "", "",
130*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
131*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
132*724ba675SRob Herring				     "", "", "", "", "", "", "", "";
133*724ba675SRob Herring		};
134*724ba675SRob Herring
135*724ba675SRob Herring		gpio@8000e000 {
136*724ba675SRob Herring			/* GPIOs 64 - 95 */
137*724ba675SRob Herring			gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
138*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
139*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
140*724ba675SRob Herring				     "", "", "", "", "", "", "", "";
141*724ba675SRob Herring		};
142*724ba675SRob Herring
143*724ba675SRob Herring		gpio@8000e100 {
144*724ba675SRob Herring			/* GPIOs 128 - 159 */
145*724ba675SRob Herring			gpio-line-names = "", "", "", "", "", "", "", "",
146*724ba675SRob Herring				     "", "", "", "", "IRQ_LAN", "RSTn_LAN",
147*724ba675SRob Herring				     "USR_LED", "", "", "", "", "", "",
148*724ba675SRob Herring				     "", "", "AP_GPIO151", "AP_GPIO152",
149*724ba675SRob Herring				     "", "", "", "", "", "", "";
150*724ba675SRob Herring		};
151*724ba675SRob Herring
152*724ba675SRob Herring		gpio@8000e180 {
153*724ba675SRob Herring			/* GPIOs 160 - 191 */
154*724ba675SRob Herring			gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
155*724ba675SRob Herring				     "ACCELEROMETER_INT1_RDY",
156*724ba675SRob Herring				     "ACCELEROMETER_INT2", "MAG_DRDY",
157*724ba675SRob Herring				     "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
158*724ba675SRob Herring				     "GYRO_INT", "UART_WAKE", "GBF_RESET",
159*724ba675SRob Herring				     "", "", "", "",
160*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
161*724ba675SRob Herring				     "", "", "", "", "", "", "", "";
162*724ba675SRob Herring		};
163*724ba675SRob Herring
164*724ba675SRob Herring		gpio@8011e000 {
165*724ba675SRob Herring			/* GPIOs 192 - 223 */
166*724ba675SRob Herring			gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
167*724ba675SRob Herring				     "", "", "", "", "", "", "", "", "",
168*724ba675SRob Herring				     "", "", "", "", "", "", "", "", "",
169*724ba675SRob Herring				     "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
170*724ba675SRob Herring				     "MMC_CD", "", "", "", "", "";
171*724ba675SRob Herring		};
172*724ba675SRob Herring
173*724ba675SRob Herring		gpio@8011e080 {
174*724ba675SRob Herring			/* GPIOs 224 - 255 */
175*724ba675SRob Herring			gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
176*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
177*724ba675SRob Herring				     "", "", "", "", "", "", "", "",
178*724ba675SRob Herring				     "", "", "", "", "", "", "", "";
179*724ba675SRob Herring		};
180*724ba675SRob Herring
181*724ba675SRob Herring		msp0: msp@80123000 {
182*724ba675SRob Herring			pinctrl-names = "default";
183*724ba675SRob Herring			pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
184*724ba675SRob Herring			status = "okay";
185*724ba675SRob Herring		};
186*724ba675SRob Herring
187*724ba675SRob Herring		msp1: msp@80124000 {
188*724ba675SRob Herring			pinctrl-names = "default";
189*724ba675SRob Herring			pinctrl-0 = <&msp1txrx_a_1_default>;
190*724ba675SRob Herring			status = "okay";
191*724ba675SRob Herring		};
192*724ba675SRob Herring
193*724ba675SRob Herring		msp2: msp@80117000 {
194*724ba675SRob Herring			pinctrl-names = "default";
195*724ba675SRob Herring			pinctrl-0 = <&msp2_a_1_default>;
196*724ba675SRob Herring		};
197*724ba675SRob Herring
198*724ba675SRob Herring		msp3: msp@80125000 {
199*724ba675SRob Herring			status = "okay";
200*724ba675SRob Herring		};
201*724ba675SRob Herring
202*724ba675SRob Herring		external-bus@50000000 {
203*724ba675SRob Herring			status = "okay";
204*724ba675SRob Herring
205*724ba675SRob Herring			ethernet@0 {
206*724ba675SRob Herring				compatible = "smsc,lan9115";
207*724ba675SRob Herring				reg = <0 0x10000>;
208*724ba675SRob Herring				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
209*724ba675SRob Herring				interrupt-parent = <&gpio4>;
210*724ba675SRob Herring				vdd33a-supply = <&en_3v3_reg>;
211*724ba675SRob Herring				vddvario-supply = <&db8500_vape_reg>;
212*724ba675SRob Herring				pinctrl-names = "default";
213*724ba675SRob Herring				pinctrl-0 = <&eth_snowball_mode>;
214*724ba675SRob Herring
215*724ba675SRob Herring				reg-shift = <1>;
216*724ba675SRob Herring				reg-io-width = <2>;
217*724ba675SRob Herring				smsc,force-internal-phy;
218*724ba675SRob Herring				smsc,irq-active-high;
219*724ba675SRob Herring				smsc,irq-push-pull;
220*724ba675SRob Herring
221*724ba675SRob Herring				clocks = <&prcc_pclk 3 0>;
222*724ba675SRob Herring			};
223*724ba675SRob Herring		};
224*724ba675SRob Herring
225*724ba675SRob Herring		/* ST6G3244ME level translator for 1.8/2.9 V */
226*724ba675SRob Herring		vmmci: regulator-gpio {
227*724ba675SRob Herring			compatible = "regulator-gpio";
228*724ba675SRob Herring
229*724ba675SRob Herring			/* GPIO228 SD_SEL */
230*724ba675SRob Herring			gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
231*724ba675SRob Herring			/* GPIO217 MMC_EN */
232*724ba675SRob Herring			enable-gpio = <&gpio6 25 GPIO_ACTIVE_HIGH>;
233*724ba675SRob Herring			enable-active-high;
234*724ba675SRob Herring
235*724ba675SRob Herring			regulator-min-microvolt = <1800000>;
236*724ba675SRob Herring			regulator-max-microvolt = <2900000>;
237*724ba675SRob Herring			regulator-name = "mmci-reg";
238*724ba675SRob Herring			regulator-type = "voltage";
239*724ba675SRob Herring
240*724ba675SRob Herring			startup-delay-us = <100>;
241*724ba675SRob Herring
242*724ba675SRob Herring			states = <1800000 0x1
243*724ba675SRob Herring				  2900000 0x0>;
244*724ba675SRob Herring		};
245*724ba675SRob Herring
246*724ba675SRob Herring		// External Micro SD slot
247*724ba675SRob Herring		mmc@80126000 {
248*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
249*724ba675SRob Herring			max-frequency = <100000000>;
250*724ba675SRob Herring			bus-width = <4>;
251*724ba675SRob Herring			cap-sd-highspeed;
252*724ba675SRob Herring			cap-mmc-highspeed;
253*724ba675SRob Herring			sd-uhs-sdr12;
254*724ba675SRob Herring			sd-uhs-sdr25;
255*724ba675SRob Herring			/* All direction control is used */
256*724ba675SRob Herring			st,sig-dir-cmd;
257*724ba675SRob Herring			st,sig-dir-dat0;
258*724ba675SRob Herring			st,sig-dir-dat2;
259*724ba675SRob Herring			st,sig-dir-dat31;
260*724ba675SRob Herring			st,sig-pin-fbclk;
261*724ba675SRob Herring			full-pwr-cycle;
262*724ba675SRob Herring			vmmc-supply = <&ab8500_ldo_aux3_reg>;
263*724ba675SRob Herring			vqmmc-supply = <&vmmci>;
264*724ba675SRob Herring			pinctrl-names = "default", "sleep";
265*724ba675SRob Herring			pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>;
266*724ba675SRob Herring			pinctrl-1 = <&mc0_a_1_sleep>;
267*724ba675SRob Herring
268*724ba675SRob Herring			/* GPIO218 MMC_CD */
269*724ba675SRob Herring			cd-gpios  = <&gpio6 26 GPIO_ACTIVE_LOW>;
270*724ba675SRob Herring
271*724ba675SRob Herring			status = "okay";
272*724ba675SRob Herring		};
273*724ba675SRob Herring
274*724ba675SRob Herring		// WLAN SDIO channel
275*724ba675SRob Herring		mmc@80118000 {
276*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
277*724ba675SRob Herring			max-frequency = <100000000>;
278*724ba675SRob Herring			bus-width = <4>;
279*724ba675SRob Herring			pinctrl-names = "default", "sleep";
280*724ba675SRob Herring			pinctrl-0 = <&mc1_a_1_default>;
281*724ba675SRob Herring			pinctrl-1 = <&mc1_a_1_sleep>;
282*724ba675SRob Herring
283*724ba675SRob Herring			status = "okay";
284*724ba675SRob Herring		};
285*724ba675SRob Herring
286*724ba675SRob Herring		// Unused PoP eMMC - register and put it to sleep by default */
287*724ba675SRob Herring		mmc@80005000 {
288*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
289*724ba675SRob Herring			pinctrl-names = "default";
290*724ba675SRob Herring			pinctrl-0 = <&mc2_a_1_sleep>;
291*724ba675SRob Herring
292*724ba675SRob Herring			status = "okay";
293*724ba675SRob Herring		};
294*724ba675SRob Herring
295*724ba675SRob Herring		// On-board eMMC
296*724ba675SRob Herring		mmc@80114000 {
297*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
298*724ba675SRob Herring		        max-frequency = <100000000>;
299*724ba675SRob Herring			bus-width = <8>;
300*724ba675SRob Herring			cap-mmc-highspeed;
301*724ba675SRob Herring			no-sdio;
302*724ba675SRob Herring			no-sd;
303*724ba675SRob Herring			vmmc-supply = <&ab8500_ldo_aux2_reg>;
304*724ba675SRob Herring			pinctrl-names = "default", "sleep";
305*724ba675SRob Herring			pinctrl-0 = <&mc4_a_1_default>;
306*724ba675SRob Herring			pinctrl-1 = <&mc4_a_1_sleep>;
307*724ba675SRob Herring
308*724ba675SRob Herring			status = "okay";
309*724ba675SRob Herring		};
310*724ba675SRob Herring
311*724ba675SRob Herring		serial@80120000 {
312*724ba675SRob Herring			pinctrl-names = "default", "sleep";
313*724ba675SRob Herring			pinctrl-0 = <&u0_a_1_default>;
314*724ba675SRob Herring			pinctrl-1 = <&u0_a_1_sleep>;
315*724ba675SRob Herring			status = "okay";
316*724ba675SRob Herring		};
317*724ba675SRob Herring
318*724ba675SRob Herring		/* This UART is unused and thus left disabled */
319*724ba675SRob Herring		serial@80121000 {
320*724ba675SRob Herring			pinctrl-names = "default", "sleep";
321*724ba675SRob Herring			pinctrl-0 = <&u1rxtx_a_1_default>;
322*724ba675SRob Herring			pinctrl-1 = <&u1rxtx_a_1_sleep>;
323*724ba675SRob Herring		};
324*724ba675SRob Herring
325*724ba675SRob Herring		serial@80007000 {
326*724ba675SRob Herring			pinctrl-names = "default", "sleep";
327*724ba675SRob Herring			pinctrl-0 = <&u2rxtx_c_1_default>;
328*724ba675SRob Herring			pinctrl-1 = <&u2rxtx_c_1_sleep>;
329*724ba675SRob Herring			status = "okay";
330*724ba675SRob Herring		};
331*724ba675SRob Herring
332*724ba675SRob Herring		i2c@80004000 {
333*724ba675SRob Herring			pinctrl-names = "default","sleep";
334*724ba675SRob Herring			pinctrl-0 = <&i2c0_a_1_default>;
335*724ba675SRob Herring			pinctrl-1 = <&i2c0_a_1_sleep>;
336*724ba675SRob Herring			status = "okay";
337*724ba675SRob Herring		};
338*724ba675SRob Herring
339*724ba675SRob Herring		i2c@80122000 {
340*724ba675SRob Herring			pinctrl-names = "default","sleep";
341*724ba675SRob Herring			pinctrl-0 = <&i2c1_b_2_default>;
342*724ba675SRob Herring			pinctrl-1 = <&i2c1_b_2_sleep>;
343*724ba675SRob Herring			status = "okay";
344*724ba675SRob Herring		};
345*724ba675SRob Herring
346*724ba675SRob Herring		i2c@80128000 {
347*724ba675SRob Herring			pinctrl-names = "default","sleep";
348*724ba675SRob Herring			pinctrl-0 = <&i2c2_b_2_default>;
349*724ba675SRob Herring			pinctrl-1 = <&i2c2_b_2_sleep>;
350*724ba675SRob Herring			status = "okay";
351*724ba675SRob Herring			lsm303dlh@18 {
352*724ba675SRob Herring				/* Accelerometer */
353*724ba675SRob Herring				compatible = "st,lsm303dlh-accel";
354*724ba675SRob Herring				st,drdy-int-pin = <1>;
355*724ba675SRob Herring				reg = <0x18>;
356*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
357*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
358*724ba675SRob Herring				pinctrl-names = "default";
359*724ba675SRob Herring				pinctrl-0 = <&accel_snowball_mode>;
360*724ba675SRob Herring				interrupt-parent = <&gpio5>;
361*724ba675SRob Herring				interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
362*724ba675SRob Herring					     <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
363*724ba675SRob Herring			};
364*724ba675SRob Herring			lsm303dlh@1e {
365*724ba675SRob Herring				/* Magnetometer */
366*724ba675SRob Herring				compatible = "st,lsm303dlh-magn";
367*724ba675SRob Herring				reg = <0x1e>;
368*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
369*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
370*724ba675SRob Herring				pinctrl-names = "default";
371*724ba675SRob Herring				pinctrl-0 = <&magneto_snowball_mode>;
372*724ba675SRob Herring				interrupt-parent = <&gpio5>;
373*724ba675SRob Herring				interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
374*724ba675SRob Herring			};
375*724ba675SRob Herring			l3g4200d@68 {
376*724ba675SRob Herring				/* Gyroscope */
377*724ba675SRob Herring				compatible = "st,l3g4200d-gyro";
378*724ba675SRob Herring				st,drdy-int-pin = <2>;
379*724ba675SRob Herring				reg = <0x68>;
380*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
381*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
382*724ba675SRob Herring				pinctrl-names = "default";
383*724ba675SRob Herring				pinctrl-0 = <&gyro_snowball_mode>;
384*724ba675SRob Herring				interrupt-parent = <&gpio5>;
385*724ba675SRob Herring				interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
386*724ba675SRob Herring					     <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
387*724ba675SRob Herring			};
388*724ba675SRob Herring			lsp001wm@5c {
389*724ba675SRob Herring				/* Barometer/pressure sensor */
390*724ba675SRob Herring				compatible = "st,lps001wp-press";
391*724ba675SRob Herring				reg = <0x5c>;
392*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
393*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
394*724ba675SRob Herring			};
395*724ba675SRob Herring		};
396*724ba675SRob Herring
397*724ba675SRob Herring		i2c@80110000 {
398*724ba675SRob Herring			pinctrl-names = "default","sleep";
399*724ba675SRob Herring			pinctrl-0 = <&i2c3_c_2_default>;
400*724ba675SRob Herring			pinctrl-1 = <&i2c3_c_2_sleep>;
401*724ba675SRob Herring			status = "okay";
402*724ba675SRob Herring		};
403*724ba675SRob Herring
404*724ba675SRob Herring		spi@80002000 {
405*724ba675SRob Herring			pinctrl-names = "default";
406*724ba675SRob Herring			pinctrl-0 = <&ssp0_snowball_mode>;
407*724ba675SRob Herring			status = "okay";
408*724ba675SRob Herring		};
409*724ba675SRob Herring
410*724ba675SRob Herring		prcmu@80157000 {
411*724ba675SRob Herring			ab8500 {
412*724ba675SRob Herring				gpio {
413*724ba675SRob Herring					/*
414*724ba675SRob Herring					 * AB8500 GPIOs are numbered starting from 1, so the first
415*724ba675SRob Herring					 * index 0 is what in the datasheet is called "GPIO1", and
416*724ba675SRob Herring					 * the second is "GPIO2" and so forth. Confusingly, the
417*724ba675SRob Herring					 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
418*724ba675SRob Herring					 * while later naming "GPIO4" as "PM_GPIO4".
419*724ba675SRob Herring					 */
420*724ba675SRob Herring					gpio-line-names = "", /* AB8500 GPIO1 */
421*724ba675SRob Herring						     "PM_GPIO1", /* AB8500 GPIO2 */
422*724ba675SRob Herring						     "WLAN_CLK_REQ", /* AB8500 GPIO3 */
423*724ba675SRob Herring						     "PM_GPIO4", /* AB8500 GPIO4 */
424*724ba675SRob Herring						     "", "", "", "", "", "", "", "", "", "", "",
425*724ba675SRob Herring						     "EN_3V6", /* AB8500 GPIO16 */
426*724ba675SRob Herring						     "", "", "", "" ,"", "", "", "", "",
427*724ba675SRob Herring						     "EN_3V3", /* AB8500 GPIO26 */
428*724ba675SRob Herring						     "", "", "", "", "", "", "", "", "", "", "", "", "",
429*724ba675SRob Herring						     "PM_GPIO40", /* AB8500 GPIO40 */
430*724ba675SRob Herring						     "PM_GPIO41", /* AB8500 GPIO41 */
431*724ba675SRob Herring						     "PM_GPIO42"; /* AB8500 GPIO42 */
432*724ba675SRob Herring				};
433*724ba675SRob Herring
434*724ba675SRob Herring				phy {
435*724ba675SRob Herring					pinctrl-names = "default", "sleep";
436*724ba675SRob Herring					pinctrl-0 = <&usb_a_1_default>;
437*724ba675SRob Herring					pinctrl-1 = <&usb_a_1_sleep>;
438*724ba675SRob Herring				};
439*724ba675SRob Herring
440*724ba675SRob Herring				ext_regulators: regulator-external {
441*724ba675SRob Herring					ab8500_ext1_reg: ab8500_ext1 {
442*724ba675SRob Herring						regulator-name = "ab8500-ext-supply1";
443*724ba675SRob Herring					};
444*724ba675SRob Herring
445*724ba675SRob Herring					ab8500_ext2_reg_reg: ab8500_ext2 {
446*724ba675SRob Herring						regulator-name = "ab8500-ext-supply2";
447*724ba675SRob Herring					};
448*724ba675SRob Herring
449*724ba675SRob Herring					ab8500_ext3_reg_reg: ab8500_ext3 {
450*724ba675SRob Herring						regulator-name = "ab8500-ext-supply3";
451*724ba675SRob Herring					};
452*724ba675SRob Herring				};
453*724ba675SRob Herring
454*724ba675SRob Herring				regulator {
455*724ba675SRob Herring					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
456*724ba675SRob Herring						regulator-name = "V-DISPLAY";
457*724ba675SRob Herring					};
458*724ba675SRob Herring
459*724ba675SRob Herring					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
460*724ba675SRob Herring						regulator-name = "V-eMMC1";
461*724ba675SRob Herring					};
462*724ba675SRob Herring
463*724ba675SRob Herring					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
464*724ba675SRob Herring						regulator-name = "V-MMC-SD";
465*724ba675SRob Herring					};
466*724ba675SRob Herring
467*724ba675SRob Herring					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
468*724ba675SRob Herring						regulator-name = "V-INTCORE";
469*724ba675SRob Herring					};
470*724ba675SRob Herring
471*724ba675SRob Herring					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
472*724ba675SRob Herring						regulator-name = "V-TVOUT";
473*724ba675SRob Herring					};
474*724ba675SRob Herring
475*724ba675SRob Herring					ab8500_ldo_audio_reg: ab8500_ldo_audio {
476*724ba675SRob Herring						regulator-name = "V-AUD";
477*724ba675SRob Herring					};
478*724ba675SRob Herring
479*724ba675SRob Herring					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
480*724ba675SRob Herring						regulator-name = "V-AMIC1";
481*724ba675SRob Herring					};
482*724ba675SRob Herring
483*724ba675SRob Herring					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
484*724ba675SRob Herring						regulator-name = "V-AMIC2";
485*724ba675SRob Herring					};
486*724ba675SRob Herring
487*724ba675SRob Herring					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
488*724ba675SRob Herring						regulator-name = "V-DMIC";
489*724ba675SRob Herring					};
490*724ba675SRob Herring
491*724ba675SRob Herring					ab8500_ldo_ana_reg: ab8500_ldo_ana {
492*724ba675SRob Herring						regulator-name = "V-CSI/DSI";
493*724ba675SRob Herring					};
494*724ba675SRob Herring				};
495*724ba675SRob Herring			};
496*724ba675SRob Herring		};
497*724ba675SRob Herring
498*724ba675SRob Herring		pinctrl {
499*724ba675SRob Herring			/*
500*724ba675SRob Herring			 * Set this up using hogs, as time goes by and as seems fit, these
501*724ba675SRob Herring			 * can be moved over to being controlled by respective device.
502*724ba675SRob Herring			 */
503*724ba675SRob Herring			pinctrl-names = "default";
504*724ba675SRob Herring			pinctrl-0 = <&gbf_snowball_mode>,
505*724ba675SRob Herring				  <&wlan_snowball_mode>;
506*724ba675SRob Herring
507*724ba675SRob Herring			ethernet {
508*724ba675SRob Herring				/*
509*724ba675SRob Herring				 * Mux in "SM" which is used for the
510*724ba675SRob Herring				 * SMSC911x Ethernet adapter
511*724ba675SRob Herring				 */
512*724ba675SRob Herring				eth_snowball_mode: eth_snowball {
513*724ba675SRob Herring					snowball_mux {
514*724ba675SRob Herring						function = "sm";
515*724ba675SRob Herring						groups = "sm_b_1";
516*724ba675SRob Herring					};
517*724ba675SRob Herring					/* LAN IRQ pin */
518*724ba675SRob Herring					snowball_cfg1 {
519*724ba675SRob Herring						pins = "GPIO140_B11";
520*724ba675SRob Herring						ste,config = <&in_nopull>;
521*724ba675SRob Herring					};
522*724ba675SRob Herring					/* LAN reset pin */
523*724ba675SRob Herring					snowball_cfg2 {
524*724ba675SRob Herring						pins = "GPIO141_C12";
525*724ba675SRob Herring						ste,config = <&gpio_out_hi>;
526*724ba675SRob Herring					};
527*724ba675SRob Herring
528*724ba675SRob Herring				};
529*724ba675SRob Herring			};
530*724ba675SRob Herring			sdi0 {
531*724ba675SRob Herring				sdi0_default_mode: sdi0_default {
532*724ba675SRob Herring					snowball_mux {
533*724ba675SRob Herring						function = "mc0";
534*724ba675SRob Herring						/* Add the DAT31 pin even if it is not really used */
535*724ba675SRob Herring						groups = "mc0dat31dir_a_1";
536*724ba675SRob Herring					};
537*724ba675SRob Herring					snowball_cfg1 {
538*724ba675SRob Herring						pins = "GPIO21_AB3"; /* DAT31DIR */
539*724ba675SRob Herring						ste,config = <&out_hi>;
540*724ba675SRob Herring					};
541*724ba675SRob Herring					/* SD card detect GPIO pin, extend default state */
542*724ba675SRob Herring					snowball_cfg2 {
543*724ba675SRob Herring						pins = "GPIO218_AH11";
544*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
545*724ba675SRob Herring					};
546*724ba675SRob Herring					/* VMMCI level-shifter enable */
547*724ba675SRob Herring					snowball_cfg3 {
548*724ba675SRob Herring						pins = "GPIO217_AH12";
549*724ba675SRob Herring						ste,config = <&gpio_out_hi>;
550*724ba675SRob Herring					};
551*724ba675SRob Herring					/* VMMCI level-shifter voltage select */
552*724ba675SRob Herring					snowball_cfg4 {
553*724ba675SRob Herring						pins = "GPIO228_AJ6";
554*724ba675SRob Herring						ste,config = <&gpio_out_hi>;
555*724ba675SRob Herring					};
556*724ba675SRob Herring				};
557*724ba675SRob Herring			};
558*724ba675SRob Herring			ssp0 {
559*724ba675SRob Herring				ssp0_snowball_mode: ssp0_snowball_default {
560*724ba675SRob Herring					snowball_mux {
561*724ba675SRob Herring						function = "ssp0";
562*724ba675SRob Herring						groups = "ssp0_a_1";
563*724ba675SRob Herring					};
564*724ba675SRob Herring					snowball_cfg1 {
565*724ba675SRob Herring						pins = "GPIO144_B13"; /* FRM */
566*724ba675SRob Herring						ste,config = <&gpio_out_hi>;
567*724ba675SRob Herring					};
568*724ba675SRob Herring					snowball_cfg2 {
569*724ba675SRob Herring						pins = "GPIO145_C13"; /* RXD */
570*724ba675SRob Herring						ste,config = <&in_pd>;
571*724ba675SRob Herring					};
572*724ba675SRob Herring					snowball_cfg3 {
573*724ba675SRob Herring						pins =
574*724ba675SRob Herring						"GPIO146_D13", /* TXD */
575*724ba675SRob Herring						"GPIO143_D12"; /* CLK */
576*724ba675SRob Herring						ste,config = <&out_lo>;
577*724ba675SRob Herring					};
578*724ba675SRob Herring
579*724ba675SRob Herring				};
580*724ba675SRob Herring			};
581*724ba675SRob Herring			gpio_led {
582*724ba675SRob Herring				gpioled_snowball_mode: gpioled_default {
583*724ba675SRob Herring					snowball_cfg1 {
584*724ba675SRob Herring						pins = "GPIO142_C11";
585*724ba675SRob Herring						ste,config = <&gpio_out_hi>;
586*724ba675SRob Herring					};
587*724ba675SRob Herring
588*724ba675SRob Herring				};
589*724ba675SRob Herring			};
590*724ba675SRob Herring			accelerometer {
591*724ba675SRob Herring				accel_snowball_mode: accel_snowball {
592*724ba675SRob Herring					/* Accelerometer lines */
593*724ba675SRob Herring					snowball_cfg1 {
594*724ba675SRob Herring						pins =
595*724ba675SRob Herring						"GPIO163_C20", /* ACCEL_IRQ1 */
596*724ba675SRob Herring						"GPIO164_B21"; /* ACCEL_IRQ2 */
597*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
598*724ba675SRob Herring					};
599*724ba675SRob Herring				};
600*724ba675SRob Herring			};
601*724ba675SRob Herring			gyro {
602*724ba675SRob Herring				gyro_snowball_mode: gyro_snowball {
603*724ba675SRob Herring					snowball_cfg1 {
604*724ba675SRob Herring						pins =
605*724ba675SRob Herring						"GPIO166_A22", /* DRDY */
606*724ba675SRob Herring						"GPIO169_D22"; /* INT */
607*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
608*724ba675SRob Herring					};
609*724ba675SRob Herring				};
610*724ba675SRob Herring			};
611*724ba675SRob Herring			magnetometer {
612*724ba675SRob Herring				magneto_snowball_mode: magneto_snowball {
613*724ba675SRob Herring					snowball_cfg1 {
614*724ba675SRob Herring						pins = "GPIO165_C21"; /* MAG_DRDY */
615*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
616*724ba675SRob Herring					};
617*724ba675SRob Herring				};
618*724ba675SRob Herring			};
619*724ba675SRob Herring			gbf {
620*724ba675SRob Herring				gbf_snowball_mode: gbf_snowball {
621*724ba675SRob Herring					/*
622*724ba675SRob Herring					 * GBF (GPS, Bluetooth, FM-radio) interface,
623*724ba675SRob Herring					 * pull low to reset state
624*724ba675SRob Herring					 */
625*724ba675SRob Herring					snowball_cfg1 {
626*724ba675SRob Herring						pins = "GPIO171_D23"; /* GBF_ENA_RESET */
627*724ba675SRob Herring						ste,config = <&gpio_out_lo>;
628*724ba675SRob Herring					};
629*724ba675SRob Herring				 };
630*724ba675SRob Herring			};
631*724ba675SRob Herring			wlan {
632*724ba675SRob Herring				wlan_snowball_mode: wlan_snowball {
633*724ba675SRob Herring					/*
634*724ba675SRob Herring					 * Activate this mode with the WLAN chip.
635*724ba675SRob Herring					 * These are plain GPIO pins used by WLAN
636*724ba675SRob Herring					 */
637*724ba675SRob Herring					snowball_cfg1 {
638*724ba675SRob Herring						pins =
639*724ba675SRob Herring						"GPIO161_D21", /* WLAN_PMU_EN */
640*724ba675SRob Herring						"GPIO215_AH13"; /* WLAN_ENA */
641*724ba675SRob Herring						ste,config = <&gpio_out_lo>;
642*724ba675SRob Herring					};
643*724ba675SRob Herring					snowball_cfg2 {
644*724ba675SRob Herring						pins = "GPIO216_AG12"; /* WLAN_IRQ */
645*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
646*724ba675SRob Herring					};
647*724ba675SRob Herring				};
648*724ba675SRob Herring			};
649*724ba675SRob Herring		};
650*724ba675SRob Herring
651*724ba675SRob Herring		mcde@a0350000 {
652*724ba675SRob Herring			pinctrl-names = "default", "sleep";
653*724ba675SRob Herring			pinctrl-0 = <&lcd_default_mode>;
654*724ba675SRob Herring			pinctrl-1 = <&lcd_sleep_mode>;
655*724ba675SRob Herring		};
656*724ba675SRob Herring	};
657*724ba675SRob Herring};
658