Linux Audio

Check our new training course

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