ste-snowball.dts revision 284090
1/*
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/;
13#include "ste-dbx5x0.dtsi"
14#include "ste-href-ab8500.dtsi"
15#include "ste-href-family-pinctrl.dtsi"
16
17/ {
18	model = "Calao Systems Snowball platform with device tree";
19	compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
20
21	memory {
22		reg = <0x00000000 0x20000000>;
23	};
24
25	en_3v3_reg: en_3v3 {
26		compatible = "regulator-fixed";
27		regulator-name = "en-3v3-fixed-supply";
28		regulator-min-microvolt = <3300000>;
29		regulator-max-microvolt = <3300000>;
30		/* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
31		gpio = <&ab8500_gpio 25 0x4>;
32		startup-delay-us = <5000>;
33		enable-active-high;
34	};
35
36	gpio_keys {
37		compatible = "gpio-keys";
38		#address-cells = <1>;
39		#size-cells = <0>;
40
41		button@1 {
42			debounce_interval = <50>;
43			wakeup = <1>;
44			linux,code = <2>;
45			label = "userpb";
46			gpios = <&gpio1 0 0x4>;
47		};
48		button@2 {
49			debounce_interval = <50>;
50			wakeup = <1>;
51			linux,code = <3>;
52			label = "extkb1";
53			gpios = <&gpio4 23 0x4>;
54		};
55		button@3 {
56			debounce_interval = <50>;
57			wakeup = <1>;
58			linux,code = <4>;
59			label = "extkb2";
60			gpios = <&gpio4 24 0x4>;
61		};
62		button@4 {
63			debounce_interval = <50>;
64			wakeup = <1>;
65			linux,code = <5>;
66			label = "extkb3";
67			gpios = <&gpio5 1 0x4>;
68		};
69		button@5 {
70			debounce_interval = <50>;
71			wakeup = <1>;
72			linux,code = <6>;
73			label = "extkb4";
74			gpios = <&gpio5 2 0x4>;
75		};
76	};
77
78	leds {
79		compatible = "gpio-leds";
80		pinctrl-names = "default";
81		pinctrl-0 = <&gpioled_snowball_mode>;
82		used-led {
83			label = "user_led";
84			gpios = <&gpio4 14 0x4>;
85			default-state = "on";
86			linux,default-trigger = "heartbeat";
87		};
88	};
89
90	soc {
91		usb_per5@a03e0000 {
92			pinctrl-names = "default", "sleep";
93			pinctrl-0 = <&musb_default_mode>;
94			pinctrl-1 = <&musb_sleep_mode>;
95		};
96
97		sound {
98			compatible = "stericsson,snd-soc-mop500";
99
100			stericsson,cpu-dai = <&msp1 &msp3>;
101			stericsson,audio-codec = <&codec>;
102		};
103
104		msp0: msp@80123000 {
105			pinctrl-names = "default";
106			pinctrl-0 = <&msp0_default_mode>;
107			status = "okay";
108		};
109
110		msp1: msp@80124000 {
111			pinctrl-names = "default";
112			pinctrl-0 = <&msp1_default_mode>;
113			status = "okay";
114		};
115
116		msp2: msp@80117000 {
117			pinctrl-names = "default";
118			pinctrl-0 = <&msp2_default_mode>;
119		};
120
121		msp3: msp@80125000 {
122			status = "okay";
123		};
124
125		external-bus@50000000 {
126			status = "okay";
127
128			ethernet@0 {
129				compatible = "smsc,lan9115";
130				reg = <0 0x10000>;
131				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
132				interrupt-parent = <&gpio4>;
133				vdd33a-supply = <&en_3v3_reg>;
134				vddvario-supply = <&db8500_vape_reg>;
135				pinctrl-names = "default";
136				pinctrl-0 = <&eth_snowball_mode>;
137
138				reg-shift = <1>;
139				reg-io-width = <2>;
140				smsc,force-internal-phy;
141				smsc,irq-active-high;
142				smsc,irq-push-pull;
143
144				clocks = <&prcc_pclk 3 0>;
145			};
146		};
147
148		vmmci: regulator-gpio {
149			gpios = <&gpio7 4 0x4>;
150			enable-gpio = <&gpio6 25 0x4>;
151		};
152
153		// External Micro SD slot
154		sdi0_per1@80126000 {
155			arm,primecell-periphid = <0x10480180>;
156			max-frequency = <100000000>;
157			bus-width = <4>;
158			cap-mmc-highspeed;
159			vmmc-supply = <&ab8500_ldo_aux3_reg>;
160			vqmmc-supply = <&vmmci>;
161			pinctrl-names = "default", "sleep";
162			pinctrl-0 = <&sdi0_default_mode>;
163			pinctrl-1 = <&sdi0_sleep_mode>;
164
165			cd-gpios  = <&gpio6 26 0x4>; // 218
166			cd-inverted;
167
168			status = "okay";
169		};
170
171		// WLAN SDIO channel
172		sdi1_per2@80118000 {
173			arm,primecell-periphid = <0x10480180>;
174			max-frequency = <100000000>;
175			bus-width = <4>;
176			pinctrl-names = "default", "sleep";
177			pinctrl-0 = <&sdi1_default_mode>;
178			pinctrl-1 = <&sdi1_sleep_mode>;
179
180			status = "okay";
181		};
182
183		// Unused PoP eMMC - register and put it to sleep by default */
184		sdi2_per3@80005000 {
185			arm,primecell-periphid = <0x10480180>;
186			pinctrl-names = "default";
187			pinctrl-0 = <&sdi2_sleep_mode>;
188
189			status = "okay";
190		};
191
192		// On-board eMMC
193		sdi4_per2@80114000 {
194			arm,primecell-periphid = <0x10480180>;
195		        max-frequency = <100000000>;
196			bus-width = <8>;
197			cap-mmc-highspeed;
198			vmmc-supply = <&ab8500_ldo_aux2_reg>;
199			pinctrl-names = "default", "sleep";
200			pinctrl-0 = <&sdi4_default_mode>;
201			pinctrl-1 = <&sdi4_sleep_mode>;
202
203			status = "okay";
204		};
205
206		uart@80120000 {
207			pinctrl-names = "default", "sleep";
208			pinctrl-0 = <&uart0_default_mode>;
209			pinctrl-1 = <&uart0_sleep_mode>;
210			status = "okay";
211		};
212
213		uart@80121000 {
214			pinctrl-names = "default", "sleep";
215			pinctrl-0 = <&uart1_default_mode>;
216			pinctrl-1 = <&uart1_sleep_mode>;
217			status = "okay";
218		};
219
220		uart@80007000 {
221			pinctrl-names = "default", "sleep";
222			pinctrl-0 = <&uart2_default_mode>;
223			pinctrl-1 = <&uart2_sleep_mode>;
224			status = "okay";
225		};
226
227		i2c@80004000 {
228			pinctrl-names = "default","sleep";
229			pinctrl-0 = <&i2c0_default_mode>;
230			pinctrl-1 = <&i2c0_sleep_mode>;
231		};
232
233		i2c@80122000 {
234			pinctrl-names = "default","sleep";
235			pinctrl-0 = <&i2c1_default_mode>;
236			pinctrl-1 = <&i2c1_sleep_mode>;
237		};
238
239		i2c@80128000 {
240			pinctrl-names = "default","sleep";
241			pinctrl-0 = <&i2c2_default_mode>;
242			pinctrl-1 = <&i2c2_sleep_mode>;
243			lsm303dlh@18 {
244				/* Accelerometer */
245				compatible = "st,lsm303dlh-accel";
246				st,drdy-int-pin = <1>;
247				reg = <0x18>;
248				vdd-supply = <&ab8500_ldo_aux1_reg>;
249				vddio-supply = <&db8500_vsmps2_reg>;
250				pinctrl-names = "default";
251				pinctrl-0 = <&accel_snowball_mode>;
252			};
253			lsm303dlm@1e {
254				/* Magnetometer */
255				compatible = "st,lsm303dlm-magn";
256				reg = <0x1e>;
257				vdd-supply = <&ab8500_ldo_aux1_reg>;
258				vddio-supply = <&db8500_vsmps2_reg>;
259				pinctrl-names = "default";
260				pinctrl-0 = <&magneto_snowball_mode>;
261			};
262			l3g4200d@68 {
263				/* Gyroscope */
264				compatible = "st,l3g4200d-gyro";
265				st,drdy-int-pin = <2>;
266				reg = <0x68>;
267				vdd-supply = <&ab8500_ldo_aux1_reg>;
268				vddio-supply = <&db8500_vsmps2_reg>;
269			};
270			lsp001wm@5c {
271				/* Barometer/pressure sensor */
272				compatible = "st,lps001wp-press";
273				reg = <0x5c>;
274				vdd-supply = <&ab8500_ldo_aux1_reg>;
275				vddio-supply = <&db8500_vsmps2_reg>;
276			};
277		};
278
279		i2c@80110000 {
280			pinctrl-names = "default","sleep";
281			pinctrl-0 = <&i2c3_default_mode>;
282			pinctrl-1 = <&i2c3_sleep_mode>;
283		};
284
285		ssp@80002000 {
286			pinctrl-names = "default";
287			pinctrl-0 = <&ssp0_snowball_mode>;
288		};
289
290		cpufreq-cooling {
291			status = "okay";
292		};
293
294		prcmu@80157000 {
295			cpufreq {
296				status = "okay";
297			};
298
299			thermal@801573c0 {
300				num-trips = <4>;
301
302				trip0-temp = <70000>;
303				trip0-type = "active";
304				trip0-cdev-num = <1>;
305				trip0-cdev-name0 = "thermal-cpufreq-0";
306
307				trip1-temp = <75000>;
308				trip1-type = "active";
309				trip1-cdev-num = <1>;
310				trip1-cdev-name0 = "thermal-cpufreq-0";
311
312				trip2-temp = <80000>;
313				trip2-type = "active";
314				trip2-cdev-num = <1>;
315				trip2-cdev-name0 = "thermal-cpufreq-0";
316
317				trip3-temp = <85000>;
318				trip3-type = "critical";
319				trip3-cdev-num = <0>;
320
321				status = "okay";
322			};
323
324			ab8500 {
325				ab8500-gpio {
326					compatible = "stericsson,ab8500-gpio";
327				};
328
329				ext_regulators: ab8500-ext-regulators {
330					ab8500_ext1_reg: ab8500_ext1 {
331						regulator-name = "ab8500-ext-supply1";
332					};
333
334					ab8500_ext2_reg_reg: ab8500_ext2 {
335						regulator-name = "ab8500-ext-supply2";
336					};
337
338					ab8500_ext3_reg_reg: ab8500_ext3 {
339						regulator-name = "ab8500-ext-supply3";
340					};
341				};
342
343				ab8500-regulators {
344					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
345						regulator-name = "V-DISPLAY";
346					};
347
348					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
349						regulator-name = "V-eMMC1";
350					};
351
352					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
353						regulator-name = "V-MMC-SD";
354					};
355
356					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
357						regulator-name = "V-INTCORE";
358					};
359
360					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
361						regulator-name = "V-TVOUT";
362					};
363
364					ab8500_ldo_usb_reg: ab8500_ldo_usb {
365						regulator-name = "dummy";
366					};
367
368					ab8500_ldo_audio_reg: ab8500_ldo_audio {
369						regulator-name = "V-AUD";
370					};
371
372					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
373						regulator-name = "V-AMIC1";
374					};
375
376					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
377						regulator-name = "V-AMIC2";
378					};
379
380					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
381						regulator-name = "V-DMIC";
382					};
383
384					ab8500_ldo_ana_reg: ab8500_ldo_ana {
385						regulator-name = "V-CSI/DSI";
386					};
387				};
388			};
389		};
390
391		pinctrl {
392			/*
393			 * Set this up using hogs, as time goes by and as seems fit, these
394			 * can be moved over to being controlled by respective device.
395			 */
396			pinctrl-names = "default";
397			pinctrl-0 = <&gbf_snowball_mode>,
398				  <&wlan_snowball_mode>;
399
400			ethernet {
401				/*
402				 * Mux in "SM" which is used for the
403				 * SMSC911x Ethernet adapter
404				 */
405				eth_snowball_mode: eth_snowball {
406					snowball_mux {
407						function = "sm";
408						groups = "sm_b_1";
409					};
410					/* LAN IRQ pin */
411					snowball_cfg1 {
412						pins = "GPIO140_B11";
413						ste,config = <&in_nopull>;
414					};
415					/* LAN reset pin */
416					snowball_cfg2 {
417						pins = "GPIO141_C12";
418						ste,config = <&gpio_out_hi>;
419					};
420
421				};
422			};
423			sdi0 {
424				sdi0_default_mode: sdi0_default {
425					snowball_mux {
426						function = "mc0";
427						groups = "mc0dat31dir_a_1";
428					};
429					snowball_cfg1 {
430						pins = "GPIO21_AB3"; /* DAT31DIR */
431						ste,config = <&out_hi>;
432					};
433
434				};
435			};
436			ssp0 {
437				ssp0_snowball_mode: ssp0_snowball_default {
438					snowball_mux {
439						function = "ssp0";
440						groups = "ssp0_a_1";
441					};
442					snowball_cfg1 {
443						pins = "GPIO144_B13"; /* FRM */
444						ste,config = <&gpio_out_hi>;
445					};
446					snowball_cfg2 {
447						pins = "GPIO145_C13"; /* RXD */
448						ste,config = <&in_pd>;
449					};
450					snowball_cfg3 {
451						pins =
452						"GPIO146_D13", /* TXD */
453						"GPIO143_D12"; /* CLK */
454						ste,config = <&out_lo>;
455					};
456
457				};
458			};
459			gpio_led {
460				gpioled_snowball_mode: gpioled_default {
461					snowball_cfg1 {
462						pins = "GPIO142_C11";
463						ste,config = <&gpio_out_hi>;
464					};
465
466				};
467			};
468			accelerometer {
469				accel_snowball_mode: accel_snowball {
470					/* Accelerometer lines */
471					snowball_cfg1 {
472						pins =
473						"GPIO163_C20", /* ACCEL_IRQ1 */
474						"GPIO164_B21"; /* ACCEL_IRQ2 */
475						ste,config = <&gpio_in_pu>;
476					};
477				};
478			};
479			magnetometer {
480				magneto_snowball_mode: magneto_snowball {
481					snowball_cfg1 {
482						pins = "GPIO165_C21"; /* MAG_DRDY */
483						ste,config = <&gpio_in_pu>;
484					};
485				};
486			};
487			gbf {
488				gbf_snowball_mode: gbf_snowball {
489					/*
490					 * GBF (GPS, Bluetooth, FM-radio) interface,
491					 * pull low to reset state
492					 */
493					snowball_cfg1 {
494						pins = "GPIO171_D23"; /* GBF_ENA_RESET */
495						ste,config = <&gpio_out_lo>;
496					};
497				 };
498			};
499			wlan {
500				wlan_snowball_mode: wlan_snowball {
501					/*
502					 * Activate this mode with the WLAN chip.
503					 * These are plain GPIO pins used by WLAN
504					 */
505					snowball_cfg1 {
506						pins =
507						"GPIO161_D21", /* WLAN_PMU_EN */
508						"GPIO215_AH13"; /* WLAN_ENA */
509						ste,config = <&gpio_out_lo>;
510					};
511					snowball_cfg2 {
512						pins = "GPIO216_AG12"; /* WLAN_IRQ */
513						ste,config = <&gpio_in_pu>;
514					};
515				};
516			};
517		};
518
519		mcde@a0350000 {
520			pinctrl-names = "default", "sleep";
521			pinctrl-0 = <&lcd_default_mode>;
522			pinctrl-1 = <&lcd_sleep_mode>;
523		};
524	};
525};
526