162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2011 ST-Ericsson AB
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/dts-v1/;
762306a36Sopenharmony_ci#include "ste-db9500.dtsi"
862306a36Sopenharmony_ci#include "ste-href-ab8500.dtsi"
962306a36Sopenharmony_ci#include "ste-href-family-pinctrl.dtsi"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/ {
1262306a36Sopenharmony_ci	model = "Calao Systems Snowball platform with device tree";
1362306a36Sopenharmony_ci	compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	memory {
1662306a36Sopenharmony_ci		device_type = "memory";
1762306a36Sopenharmony_ci		reg = <0x00000000 0x20000000>;
1862306a36Sopenharmony_ci	};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	battery: battery {
2162306a36Sopenharmony_ci		compatible = "simple-battery";
2262306a36Sopenharmony_ci		battery-type = "lithium-ion-polymer";
2362306a36Sopenharmony_ci	};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	thermal-zones {
2662306a36Sopenharmony_ci		battery-thermal {
2762306a36Sopenharmony_ci			/* This zone will be polled by the battery temperature code */
2862306a36Sopenharmony_ci			polling-delay = <0>;
2962306a36Sopenharmony_ci			polling-delay-passive = <0>;
3062306a36Sopenharmony_ci			thermal-sensors = <&bat_therm>;
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci			trips {
3362306a36Sopenharmony_ci				battery-crit-hi {
3462306a36Sopenharmony_ci					temperature = <70000>;
3562306a36Sopenharmony_ci					hysteresis = <2000>;
3662306a36Sopenharmony_ci					type = "critical";
3762306a36Sopenharmony_ci				};
3862306a36Sopenharmony_ci			};
3962306a36Sopenharmony_ci		};
4062306a36Sopenharmony_ci	};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci	bat_therm: thermistor {
4362306a36Sopenharmony_ci		compatible = "murata,ncp18wb473";
4462306a36Sopenharmony_ci		io-channels = <&gpadc 0x02>; /* BatTemp */
4562306a36Sopenharmony_ci		pullup-uv = <1800000>;
4662306a36Sopenharmony_ci		pullup-ohm = <230000>;
4762306a36Sopenharmony_ci		pulldown-ohm = <0>;
4862306a36Sopenharmony_ci		#thermal-sensor-cells = <0>;
4962306a36Sopenharmony_ci	};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	en_3v3_reg: en_3v3 {
5262306a36Sopenharmony_ci		compatible = "regulator-fixed";
5362306a36Sopenharmony_ci		regulator-name = "en-3v3-fixed-supply";
5462306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
5562306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
5662306a36Sopenharmony_ci		/* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
5762306a36Sopenharmony_ci		gpio = <&ab8500_gpio 25 0x4>;
5862306a36Sopenharmony_ci		startup-delay-us = <5000>;
5962306a36Sopenharmony_ci		enable-active-high;
6062306a36Sopenharmony_ci	};
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	gpio_keys {
6362306a36Sopenharmony_ci		compatible = "gpio-keys";
6462306a36Sopenharmony_ci		#address-cells = <1>;
6562306a36Sopenharmony_ci		#size-cells = <0>;
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci		button@1 {
6862306a36Sopenharmony_ci			debounce-interval = <50>;
6962306a36Sopenharmony_ci			wakeup-source;
7062306a36Sopenharmony_ci			linux,code = <2>;
7162306a36Sopenharmony_ci			label = "userpb";
7262306a36Sopenharmony_ci			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
7362306a36Sopenharmony_ci		};
7462306a36Sopenharmony_ci		button@2 {
7562306a36Sopenharmony_ci			debounce-interval = <50>;
7662306a36Sopenharmony_ci			wakeup-source;
7762306a36Sopenharmony_ci			linux,code = <3>;
7862306a36Sopenharmony_ci			label = "extkb1";
7962306a36Sopenharmony_ci			gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
8062306a36Sopenharmony_ci		};
8162306a36Sopenharmony_ci		button@3 {
8262306a36Sopenharmony_ci			debounce-interval = <50>;
8362306a36Sopenharmony_ci			wakeup-source;
8462306a36Sopenharmony_ci			linux,code = <4>;
8562306a36Sopenharmony_ci			label = "extkb2";
8662306a36Sopenharmony_ci			gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>;
8762306a36Sopenharmony_ci		};
8862306a36Sopenharmony_ci		button@4 {
8962306a36Sopenharmony_ci			debounce-interval = <50>;
9062306a36Sopenharmony_ci			wakeup-source;
9162306a36Sopenharmony_ci			linux,code = <5>;
9262306a36Sopenharmony_ci			label = "extkb3";
9362306a36Sopenharmony_ci			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
9462306a36Sopenharmony_ci		};
9562306a36Sopenharmony_ci		button@5 {
9662306a36Sopenharmony_ci			debounce-interval = <50>;
9762306a36Sopenharmony_ci			wakeup-source;
9862306a36Sopenharmony_ci			linux,code = <6>;
9962306a36Sopenharmony_ci			label = "extkb4";
10062306a36Sopenharmony_ci			gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
10162306a36Sopenharmony_ci		};
10262306a36Sopenharmony_ci	};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci	leds {
10562306a36Sopenharmony_ci		compatible = "gpio-leds";
10662306a36Sopenharmony_ci		pinctrl-names = "default";
10762306a36Sopenharmony_ci		pinctrl-0 = <&gpioled_snowball_mode>;
10862306a36Sopenharmony_ci		used-led {
10962306a36Sopenharmony_ci			label = "user_led";
11062306a36Sopenharmony_ci			gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
11162306a36Sopenharmony_ci			default-state = "on";
11262306a36Sopenharmony_ci			linux,default-trigger = "heartbeat";
11362306a36Sopenharmony_ci		};
11462306a36Sopenharmony_ci	};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci	soc {
11762306a36Sopenharmony_ci		/* Name the GPIO muxed rails on the Snowball board */
11862306a36Sopenharmony_ci		gpio@8012e000 {
11962306a36Sopenharmony_ci			/* GPIOs 0 - 31 */
12062306a36Sopenharmony_ci			gpio-line-names = "", "", "", "", "", "", "", "",
12162306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
12262306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
12362306a36Sopenharmony_ci				     "", "", "", "", "", "", "",
12462306a36Sopenharmony_ci				     "AP_GPIO31";
12562306a36Sopenharmony_ci		};
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci		gpio@8012e080 {
12862306a36Sopenharmony_ci			/* GPIOs 32 - 63 */
12962306a36Sopenharmony_ci			gpio-line-names = "USR PB", "", "", "", "", "", "", "",
13062306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
13162306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
13262306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "";
13362306a36Sopenharmony_ci		};
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci		gpio@8000e000 {
13662306a36Sopenharmony_ci			/* GPIOs 64 - 95 */
13762306a36Sopenharmony_ci			gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
13862306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
13962306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
14062306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "";
14162306a36Sopenharmony_ci		};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci		gpio@8000e100 {
14462306a36Sopenharmony_ci			/* GPIOs 128 - 159 */
14562306a36Sopenharmony_ci			gpio-line-names = "", "", "", "", "", "", "", "",
14662306a36Sopenharmony_ci				     "", "", "", "", "IRQ_LAN", "RSTn_LAN",
14762306a36Sopenharmony_ci				     "USR_LED", "", "", "", "", "", "",
14862306a36Sopenharmony_ci				     "", "", "AP_GPIO151", "AP_GPIO152",
14962306a36Sopenharmony_ci				     "", "", "", "", "", "", "";
15062306a36Sopenharmony_ci		};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci		gpio@8000e180 {
15362306a36Sopenharmony_ci			/* GPIOs 160 - 191 */
15462306a36Sopenharmony_ci			gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
15562306a36Sopenharmony_ci				     "ACCELEROMETER_INT1_RDY",
15662306a36Sopenharmony_ci				     "ACCELEROMETER_INT2", "MAG_DRDY",
15762306a36Sopenharmony_ci				     "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
15862306a36Sopenharmony_ci				     "GYRO_INT", "UART_WAKE", "GBF_RESET",
15962306a36Sopenharmony_ci				     "", "", "", "",
16062306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
16162306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "";
16262306a36Sopenharmony_ci		};
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci		gpio@8011e000 {
16562306a36Sopenharmony_ci			/* GPIOs 192 - 223 */
16662306a36Sopenharmony_ci			gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
16762306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "", "",
16862306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "", "",
16962306a36Sopenharmony_ci				     "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
17062306a36Sopenharmony_ci				     "MMC_CD", "", "", "", "", "";
17162306a36Sopenharmony_ci		};
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci		gpio@8011e080 {
17462306a36Sopenharmony_ci			/* GPIOs 224 - 255 */
17562306a36Sopenharmony_ci			gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
17662306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
17762306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "",
17862306a36Sopenharmony_ci				     "", "", "", "", "", "", "", "";
17962306a36Sopenharmony_ci		};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci		msp0: msp@80123000 {
18262306a36Sopenharmony_ci			pinctrl-names = "default";
18362306a36Sopenharmony_ci			pinctrl-0 = <&msp0txrxtfstck_a_1_default>;
18462306a36Sopenharmony_ci			status = "okay";
18562306a36Sopenharmony_ci		};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci		msp1: msp@80124000 {
18862306a36Sopenharmony_ci			pinctrl-names = "default";
18962306a36Sopenharmony_ci			pinctrl-0 = <&msp1txrx_a_1_default>;
19062306a36Sopenharmony_ci			status = "okay";
19162306a36Sopenharmony_ci		};
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci		msp2: msp@80117000 {
19462306a36Sopenharmony_ci			pinctrl-names = "default";
19562306a36Sopenharmony_ci			pinctrl-0 = <&msp2_a_1_default>;
19662306a36Sopenharmony_ci		};
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci		msp3: msp@80125000 {
19962306a36Sopenharmony_ci			status = "okay";
20062306a36Sopenharmony_ci		};
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci		external-bus@50000000 {
20362306a36Sopenharmony_ci			status = "okay";
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci			ethernet@0 {
20662306a36Sopenharmony_ci				compatible = "smsc,lan9115";
20762306a36Sopenharmony_ci				reg = <0 0x10000>;
20862306a36Sopenharmony_ci				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
20962306a36Sopenharmony_ci				interrupt-parent = <&gpio4>;
21062306a36Sopenharmony_ci				vdd33a-supply = <&en_3v3_reg>;
21162306a36Sopenharmony_ci				vddvario-supply = <&db8500_vape_reg>;
21262306a36Sopenharmony_ci				pinctrl-names = "default";
21362306a36Sopenharmony_ci				pinctrl-0 = <&eth_snowball_mode>;
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ci				reg-shift = <1>;
21662306a36Sopenharmony_ci				reg-io-width = <2>;
21762306a36Sopenharmony_ci				smsc,force-internal-phy;
21862306a36Sopenharmony_ci				smsc,irq-active-high;
21962306a36Sopenharmony_ci				smsc,irq-push-pull;
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci				clocks = <&prcc_pclk 3 0>;
22262306a36Sopenharmony_ci			};
22362306a36Sopenharmony_ci		};
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci		/* ST6G3244ME level translator for 1.8/2.9 V */
22662306a36Sopenharmony_ci		vmmci: regulator-gpio {
22762306a36Sopenharmony_ci			compatible = "regulator-gpio";
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci			/* GPIO228 SD_SEL */
23062306a36Sopenharmony_ci			gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
23162306a36Sopenharmony_ci			/* GPIO217 MMC_EN */
23262306a36Sopenharmony_ci			enable-gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
23362306a36Sopenharmony_ci			enable-active-high;
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
23662306a36Sopenharmony_ci			regulator-max-microvolt = <2900000>;
23762306a36Sopenharmony_ci			regulator-name = "mmci-reg";
23862306a36Sopenharmony_ci			regulator-type = "voltage";
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ci			startup-delay-us = <100>;
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci			states = <1800000 0x1
24362306a36Sopenharmony_ci				  2900000 0x0>;
24462306a36Sopenharmony_ci		};
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci		// External Micro SD slot
24762306a36Sopenharmony_ci		mmc@80126000 {
24862306a36Sopenharmony_ci			arm,primecell-periphid = <0x10480180>;
24962306a36Sopenharmony_ci			max-frequency = <100000000>;
25062306a36Sopenharmony_ci			bus-width = <4>;
25162306a36Sopenharmony_ci			cap-sd-highspeed;
25262306a36Sopenharmony_ci			cap-mmc-highspeed;
25362306a36Sopenharmony_ci			sd-uhs-sdr12;
25462306a36Sopenharmony_ci			sd-uhs-sdr25;
25562306a36Sopenharmony_ci			/* All direction control is used */
25662306a36Sopenharmony_ci			st,sig-dir-cmd;
25762306a36Sopenharmony_ci			st,sig-dir-dat0;
25862306a36Sopenharmony_ci			st,sig-dir-dat2;
25962306a36Sopenharmony_ci			st,sig-dir-dat31;
26062306a36Sopenharmony_ci			st,sig-pin-fbclk;
26162306a36Sopenharmony_ci			full-pwr-cycle;
26262306a36Sopenharmony_ci			vmmc-supply = <&ab8500_ldo_aux3_reg>;
26362306a36Sopenharmony_ci			vqmmc-supply = <&vmmci>;
26462306a36Sopenharmony_ci			pinctrl-names = "default", "sleep";
26562306a36Sopenharmony_ci			pinctrl-0 = <&mc0_a_1_default &sdi0_default_mode>;
26662306a36Sopenharmony_ci			pinctrl-1 = <&mc0_a_1_sleep>;
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci			/* GPIO218 MMC_CD */
26962306a36Sopenharmony_ci			cd-gpios  = <&gpio6 26 GPIO_ACTIVE_LOW>;
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci			status = "okay";
27262306a36Sopenharmony_ci		};
27362306a36Sopenharmony_ci
27462306a36Sopenharmony_ci		// WLAN SDIO channel
27562306a36Sopenharmony_ci		mmc@80118000 {
27662306a36Sopenharmony_ci			arm,primecell-periphid = <0x10480180>;
27762306a36Sopenharmony_ci			max-frequency = <100000000>;
27862306a36Sopenharmony_ci			bus-width = <4>;
27962306a36Sopenharmony_ci			pinctrl-names = "default", "sleep";
28062306a36Sopenharmony_ci			pinctrl-0 = <&mc1_a_1_default>;
28162306a36Sopenharmony_ci			pinctrl-1 = <&mc1_a_1_sleep>;
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ci			status = "okay";
28462306a36Sopenharmony_ci		};
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_ci		// Unused PoP eMMC - register and put it to sleep by default */
28762306a36Sopenharmony_ci		mmc@80005000 {
28862306a36Sopenharmony_ci			arm,primecell-periphid = <0x10480180>;
28962306a36Sopenharmony_ci			pinctrl-names = "default";
29062306a36Sopenharmony_ci			pinctrl-0 = <&mc2_a_1_sleep>;
29162306a36Sopenharmony_ci
29262306a36Sopenharmony_ci			status = "okay";
29362306a36Sopenharmony_ci		};
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ci		// On-board eMMC
29662306a36Sopenharmony_ci		mmc@80114000 {
29762306a36Sopenharmony_ci			arm,primecell-periphid = <0x10480180>;
29862306a36Sopenharmony_ci		        max-frequency = <100000000>;
29962306a36Sopenharmony_ci			bus-width = <8>;
30062306a36Sopenharmony_ci			cap-mmc-highspeed;
30162306a36Sopenharmony_ci			no-sdio;
30262306a36Sopenharmony_ci			no-sd;
30362306a36Sopenharmony_ci			vmmc-supply = <&ab8500_ldo_aux2_reg>;
30462306a36Sopenharmony_ci			pinctrl-names = "default", "sleep";
30562306a36Sopenharmony_ci			pinctrl-0 = <&mc4_a_1_default>;
30662306a36Sopenharmony_ci			pinctrl-1 = <&mc4_a_1_sleep>;
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci			status = "okay";
30962306a36Sopenharmony_ci		};
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci		serial@80120000 {
31262306a36Sopenharmony_ci			pinctrl-names = "default", "sleep";
31362306a36Sopenharmony_ci			pinctrl-0 = <&u0_a_1_default>;
31462306a36Sopenharmony_ci			pinctrl-1 = <&u0_a_1_sleep>;
31562306a36Sopenharmony_ci			status = "okay";
31662306a36Sopenharmony_ci		};
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_ci		/* This UART is unused and thus left disabled */
31962306a36Sopenharmony_ci		serial@80121000 {
32062306a36Sopenharmony_ci			pinctrl-names = "default", "sleep";
32162306a36Sopenharmony_ci			pinctrl-0 = <&u1rxtx_a_1_default>;
32262306a36Sopenharmony_ci			pinctrl-1 = <&u1rxtx_a_1_sleep>;
32362306a36Sopenharmony_ci		};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ci		serial@80007000 {
32662306a36Sopenharmony_ci			pinctrl-names = "default", "sleep";
32762306a36Sopenharmony_ci			pinctrl-0 = <&u2rxtx_c_1_default>;
32862306a36Sopenharmony_ci			pinctrl-1 = <&u2rxtx_c_1_sleep>;
32962306a36Sopenharmony_ci			status = "okay";
33062306a36Sopenharmony_ci		};
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_ci		i2c@80004000 {
33362306a36Sopenharmony_ci			pinctrl-names = "default","sleep";
33462306a36Sopenharmony_ci			pinctrl-0 = <&i2c0_a_1_default>;
33562306a36Sopenharmony_ci			pinctrl-1 = <&i2c0_a_1_sleep>;
33662306a36Sopenharmony_ci			status = "okay";
33762306a36Sopenharmony_ci		};
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ci		i2c@80122000 {
34062306a36Sopenharmony_ci			pinctrl-names = "default","sleep";
34162306a36Sopenharmony_ci			pinctrl-0 = <&i2c1_b_2_default>;
34262306a36Sopenharmony_ci			pinctrl-1 = <&i2c1_b_2_sleep>;
34362306a36Sopenharmony_ci			status = "okay";
34462306a36Sopenharmony_ci		};
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_ci		i2c@80128000 {
34762306a36Sopenharmony_ci			pinctrl-names = "default","sleep";
34862306a36Sopenharmony_ci			pinctrl-0 = <&i2c2_b_2_default>;
34962306a36Sopenharmony_ci			pinctrl-1 = <&i2c2_b_2_sleep>;
35062306a36Sopenharmony_ci			status = "okay";
35162306a36Sopenharmony_ci			lsm303dlh@18 {
35262306a36Sopenharmony_ci				/* Accelerometer */
35362306a36Sopenharmony_ci				compatible = "st,lsm303dlh-accel";
35462306a36Sopenharmony_ci				st,drdy-int-pin = <1>;
35562306a36Sopenharmony_ci				reg = <0x18>;
35662306a36Sopenharmony_ci				vdd-supply = <&ab8500_ldo_aux1_reg>;
35762306a36Sopenharmony_ci				vddio-supply = <&db8500_vsmps2_reg>;
35862306a36Sopenharmony_ci				pinctrl-names = "default";
35962306a36Sopenharmony_ci				pinctrl-0 = <&accel_snowball_mode>;
36062306a36Sopenharmony_ci				interrupt-parent = <&gpio5>;
36162306a36Sopenharmony_ci				interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
36262306a36Sopenharmony_ci					     <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
36362306a36Sopenharmony_ci			};
36462306a36Sopenharmony_ci			lsm303dlh@1e {
36562306a36Sopenharmony_ci				/* Magnetometer */
36662306a36Sopenharmony_ci				compatible = "st,lsm303dlh-magn";
36762306a36Sopenharmony_ci				reg = <0x1e>;
36862306a36Sopenharmony_ci				vdd-supply = <&ab8500_ldo_aux1_reg>;
36962306a36Sopenharmony_ci				vddio-supply = <&db8500_vsmps2_reg>;
37062306a36Sopenharmony_ci				pinctrl-names = "default";
37162306a36Sopenharmony_ci				pinctrl-0 = <&magneto_snowball_mode>;
37262306a36Sopenharmony_ci				interrupt-parent = <&gpio5>;
37362306a36Sopenharmony_ci				interrupts = <5 IRQ_TYPE_EDGE_RISING>; /* DRDY line */
37462306a36Sopenharmony_ci			};
37562306a36Sopenharmony_ci			l3g4200d@68 {
37662306a36Sopenharmony_ci				/* Gyroscope */
37762306a36Sopenharmony_ci				compatible = "st,l3g4200d-gyro";
37862306a36Sopenharmony_ci				st,drdy-int-pin = <2>;
37962306a36Sopenharmony_ci				reg = <0x68>;
38062306a36Sopenharmony_ci				vdd-supply = <&ab8500_ldo_aux1_reg>;
38162306a36Sopenharmony_ci				vddio-supply = <&db8500_vsmps2_reg>;
38262306a36Sopenharmony_ci				pinctrl-names = "default";
38362306a36Sopenharmony_ci				pinctrl-0 = <&gyro_snowball_mode>;
38462306a36Sopenharmony_ci				interrupt-parent = <&gpio5>;
38562306a36Sopenharmony_ci				interrupts = <6 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
38662306a36Sopenharmony_ci					     <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
38762306a36Sopenharmony_ci			};
38862306a36Sopenharmony_ci			lsp001wm@5c {
38962306a36Sopenharmony_ci				/* Barometer/pressure sensor */
39062306a36Sopenharmony_ci				compatible = "st,lps001wp-press";
39162306a36Sopenharmony_ci				reg = <0x5c>;
39262306a36Sopenharmony_ci				vdd-supply = <&ab8500_ldo_aux1_reg>;
39362306a36Sopenharmony_ci				vddio-supply = <&db8500_vsmps2_reg>;
39462306a36Sopenharmony_ci			};
39562306a36Sopenharmony_ci		};
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ci		i2c@80110000 {
39862306a36Sopenharmony_ci			pinctrl-names = "default","sleep";
39962306a36Sopenharmony_ci			pinctrl-0 = <&i2c3_c_2_default>;
40062306a36Sopenharmony_ci			pinctrl-1 = <&i2c3_c_2_sleep>;
40162306a36Sopenharmony_ci			status = "okay";
40262306a36Sopenharmony_ci		};
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci		spi@80002000 {
40562306a36Sopenharmony_ci			pinctrl-names = "default";
40662306a36Sopenharmony_ci			pinctrl-0 = <&ssp0_snowball_mode>;
40762306a36Sopenharmony_ci			status = "okay";
40862306a36Sopenharmony_ci		};
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_ci		prcmu@80157000 {
41162306a36Sopenharmony_ci			ab8500 {
41262306a36Sopenharmony_ci				gpio {
41362306a36Sopenharmony_ci					/*
41462306a36Sopenharmony_ci					 * AB8500 GPIOs are numbered starting from 1, so the first
41562306a36Sopenharmony_ci					 * index 0 is what in the datasheet is called "GPIO1", and
41662306a36Sopenharmony_ci					 * the second is "GPIO2" and so forth. Confusingly, the
41762306a36Sopenharmony_ci					 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
41862306a36Sopenharmony_ci					 * while later naming "GPIO4" as "PM_GPIO4".
41962306a36Sopenharmony_ci					 */
42062306a36Sopenharmony_ci					gpio-line-names = "", /* AB8500 GPIO1 */
42162306a36Sopenharmony_ci						     "PM_GPIO1", /* AB8500 GPIO2 */
42262306a36Sopenharmony_ci						     "WLAN_CLK_REQ", /* AB8500 GPIO3 */
42362306a36Sopenharmony_ci						     "PM_GPIO4", /* AB8500 GPIO4 */
42462306a36Sopenharmony_ci						     "", "", "", "", "", "", "", "", "", "", "",
42562306a36Sopenharmony_ci						     "EN_3V6", /* AB8500 GPIO16 */
42662306a36Sopenharmony_ci						     "", "", "", "" ,"", "", "", "", "",
42762306a36Sopenharmony_ci						     "EN_3V3", /* AB8500 GPIO26 */
42862306a36Sopenharmony_ci						     "", "", "", "", "", "", "", "", "", "", "", "", "",
42962306a36Sopenharmony_ci						     "PM_GPIO40", /* AB8500 GPIO40 */
43062306a36Sopenharmony_ci						     "PM_GPIO41", /* AB8500 GPIO41 */
43162306a36Sopenharmony_ci						     "PM_GPIO42"; /* AB8500 GPIO42 */
43262306a36Sopenharmony_ci				};
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_ci				phy {
43562306a36Sopenharmony_ci					pinctrl-names = "default", "sleep";
43662306a36Sopenharmony_ci					pinctrl-0 = <&usb_a_1_default>;
43762306a36Sopenharmony_ci					pinctrl-1 = <&usb_a_1_sleep>;
43862306a36Sopenharmony_ci				};
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ci				ext_regulators: regulator-external {
44162306a36Sopenharmony_ci					ab8500_ext1_reg: ab8500_ext1 {
44262306a36Sopenharmony_ci						regulator-name = "ab8500-ext-supply1";
44362306a36Sopenharmony_ci					};
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ci					ab8500_ext2_reg_reg: ab8500_ext2 {
44662306a36Sopenharmony_ci						regulator-name = "ab8500-ext-supply2";
44762306a36Sopenharmony_ci					};
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_ci					ab8500_ext3_reg_reg: ab8500_ext3 {
45062306a36Sopenharmony_ci						regulator-name = "ab8500-ext-supply3";
45162306a36Sopenharmony_ci					};
45262306a36Sopenharmony_ci				};
45362306a36Sopenharmony_ci
45462306a36Sopenharmony_ci				regulator {
45562306a36Sopenharmony_ci					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
45662306a36Sopenharmony_ci						regulator-name = "V-DISPLAY";
45762306a36Sopenharmony_ci					};
45862306a36Sopenharmony_ci
45962306a36Sopenharmony_ci					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
46062306a36Sopenharmony_ci						regulator-name = "V-eMMC1";
46162306a36Sopenharmony_ci					};
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_ci					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
46462306a36Sopenharmony_ci						regulator-name = "V-MMC-SD";
46562306a36Sopenharmony_ci					};
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ci					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
46862306a36Sopenharmony_ci						regulator-name = "V-INTCORE";
46962306a36Sopenharmony_ci					};
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_ci					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
47262306a36Sopenharmony_ci						regulator-name = "V-TVOUT";
47362306a36Sopenharmony_ci					};
47462306a36Sopenharmony_ci
47562306a36Sopenharmony_ci					ab8500_ldo_audio_reg: ab8500_ldo_audio {
47662306a36Sopenharmony_ci						regulator-name = "V-AUD";
47762306a36Sopenharmony_ci					};
47862306a36Sopenharmony_ci
47962306a36Sopenharmony_ci					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
48062306a36Sopenharmony_ci						regulator-name = "V-AMIC1";
48162306a36Sopenharmony_ci					};
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ci					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
48462306a36Sopenharmony_ci						regulator-name = "V-AMIC2";
48562306a36Sopenharmony_ci					};
48662306a36Sopenharmony_ci
48762306a36Sopenharmony_ci					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
48862306a36Sopenharmony_ci						regulator-name = "V-DMIC";
48962306a36Sopenharmony_ci					};
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_ci					ab8500_ldo_ana_reg: ab8500_ldo_ana {
49262306a36Sopenharmony_ci						regulator-name = "V-CSI/DSI";
49362306a36Sopenharmony_ci					};
49462306a36Sopenharmony_ci				};
49562306a36Sopenharmony_ci			};
49662306a36Sopenharmony_ci		};
49762306a36Sopenharmony_ci
49862306a36Sopenharmony_ci		pinctrl {
49962306a36Sopenharmony_ci			/*
50062306a36Sopenharmony_ci			 * Set this up using hogs, as time goes by and as seems fit, these
50162306a36Sopenharmony_ci			 * can be moved over to being controlled by respective device.
50262306a36Sopenharmony_ci			 */
50362306a36Sopenharmony_ci			pinctrl-names = "default";
50462306a36Sopenharmony_ci			pinctrl-0 = <&gbf_snowball_mode>,
50562306a36Sopenharmony_ci				  <&wlan_snowball_mode>;
50662306a36Sopenharmony_ci
50762306a36Sopenharmony_ci			ethernet {
50862306a36Sopenharmony_ci				/*
50962306a36Sopenharmony_ci				 * Mux in "SM" which is used for the
51062306a36Sopenharmony_ci				 * SMSC911x Ethernet adapter
51162306a36Sopenharmony_ci				 */
51262306a36Sopenharmony_ci				eth_snowball_mode: eth_snowball {
51362306a36Sopenharmony_ci					snowball_mux {
51462306a36Sopenharmony_ci						function = "sm";
51562306a36Sopenharmony_ci						groups = "sm_b_1";
51662306a36Sopenharmony_ci					};
51762306a36Sopenharmony_ci					/* LAN IRQ pin */
51862306a36Sopenharmony_ci					snowball_cfg1 {
51962306a36Sopenharmony_ci						pins = "GPIO140_B11";
52062306a36Sopenharmony_ci						ste,config = <&in_nopull>;
52162306a36Sopenharmony_ci					};
52262306a36Sopenharmony_ci					/* LAN reset pin */
52362306a36Sopenharmony_ci					snowball_cfg2 {
52462306a36Sopenharmony_ci						pins = "GPIO141_C12";
52562306a36Sopenharmony_ci						ste,config = <&gpio_out_hi>;
52662306a36Sopenharmony_ci					};
52762306a36Sopenharmony_ci
52862306a36Sopenharmony_ci				};
52962306a36Sopenharmony_ci			};
53062306a36Sopenharmony_ci			sdi0 {
53162306a36Sopenharmony_ci				sdi0_default_mode: sdi0_default {
53262306a36Sopenharmony_ci					snowball_mux {
53362306a36Sopenharmony_ci						function = "mc0";
53462306a36Sopenharmony_ci						/* Add the DAT31 pin even if it is not really used */
53562306a36Sopenharmony_ci						groups = "mc0dat31dir_a_1";
53662306a36Sopenharmony_ci					};
53762306a36Sopenharmony_ci					snowball_cfg1 {
53862306a36Sopenharmony_ci						pins = "GPIO21_AB3"; /* DAT31DIR */
53962306a36Sopenharmony_ci						ste,config = <&out_hi>;
54062306a36Sopenharmony_ci					};
54162306a36Sopenharmony_ci					/* SD card detect GPIO pin, extend default state */
54262306a36Sopenharmony_ci					snowball_cfg2 {
54362306a36Sopenharmony_ci						pins = "GPIO218_AH11";
54462306a36Sopenharmony_ci						ste,config = <&gpio_in_pu>;
54562306a36Sopenharmony_ci					};
54662306a36Sopenharmony_ci					/* VMMCI level-shifter enable */
54762306a36Sopenharmony_ci					snowball_cfg3 {
54862306a36Sopenharmony_ci						pins = "GPIO217_AH12";
54962306a36Sopenharmony_ci						ste,config = <&gpio_out_hi>;
55062306a36Sopenharmony_ci					};
55162306a36Sopenharmony_ci					/* VMMCI level-shifter voltage select */
55262306a36Sopenharmony_ci					snowball_cfg4 {
55362306a36Sopenharmony_ci						pins = "GPIO228_AJ6";
55462306a36Sopenharmony_ci						ste,config = <&gpio_out_hi>;
55562306a36Sopenharmony_ci					};
55662306a36Sopenharmony_ci				};
55762306a36Sopenharmony_ci			};
55862306a36Sopenharmony_ci			ssp0 {
55962306a36Sopenharmony_ci				ssp0_snowball_mode: ssp0_snowball_default {
56062306a36Sopenharmony_ci					snowball_mux {
56162306a36Sopenharmony_ci						function = "ssp0";
56262306a36Sopenharmony_ci						groups = "ssp0_a_1";
56362306a36Sopenharmony_ci					};
56462306a36Sopenharmony_ci					snowball_cfg1 {
56562306a36Sopenharmony_ci						pins = "GPIO144_B13"; /* FRM */
56662306a36Sopenharmony_ci						ste,config = <&gpio_out_hi>;
56762306a36Sopenharmony_ci					};
56862306a36Sopenharmony_ci					snowball_cfg2 {
56962306a36Sopenharmony_ci						pins = "GPIO145_C13"; /* RXD */
57062306a36Sopenharmony_ci						ste,config = <&in_pd>;
57162306a36Sopenharmony_ci					};
57262306a36Sopenharmony_ci					snowball_cfg3 {
57362306a36Sopenharmony_ci						pins =
57462306a36Sopenharmony_ci						"GPIO146_D13", /* TXD */
57562306a36Sopenharmony_ci						"GPIO143_D12"; /* CLK */
57662306a36Sopenharmony_ci						ste,config = <&out_lo>;
57762306a36Sopenharmony_ci					};
57862306a36Sopenharmony_ci
57962306a36Sopenharmony_ci				};
58062306a36Sopenharmony_ci			};
58162306a36Sopenharmony_ci			gpio_led {
58262306a36Sopenharmony_ci				gpioled_snowball_mode: gpioled_default {
58362306a36Sopenharmony_ci					snowball_cfg1 {
58462306a36Sopenharmony_ci						pins = "GPIO142_C11";
58562306a36Sopenharmony_ci						ste,config = <&gpio_out_hi>;
58662306a36Sopenharmony_ci					};
58762306a36Sopenharmony_ci
58862306a36Sopenharmony_ci				};
58962306a36Sopenharmony_ci			};
59062306a36Sopenharmony_ci			accelerometer {
59162306a36Sopenharmony_ci				accel_snowball_mode: accel_snowball {
59262306a36Sopenharmony_ci					/* Accelerometer lines */
59362306a36Sopenharmony_ci					snowball_cfg1 {
59462306a36Sopenharmony_ci						pins =
59562306a36Sopenharmony_ci						"GPIO163_C20", /* ACCEL_IRQ1 */
59662306a36Sopenharmony_ci						"GPIO164_B21"; /* ACCEL_IRQ2 */
59762306a36Sopenharmony_ci						ste,config = <&gpio_in_pu>;
59862306a36Sopenharmony_ci					};
59962306a36Sopenharmony_ci				};
60062306a36Sopenharmony_ci			};
60162306a36Sopenharmony_ci			gyro {
60262306a36Sopenharmony_ci				gyro_snowball_mode: gyro_snowball {
60362306a36Sopenharmony_ci					snowball_cfg1 {
60462306a36Sopenharmony_ci						pins =
60562306a36Sopenharmony_ci						"GPIO166_A22", /* DRDY */
60662306a36Sopenharmony_ci						"GPIO169_D22"; /* INT */
60762306a36Sopenharmony_ci						ste,config = <&gpio_in_pu>;
60862306a36Sopenharmony_ci					};
60962306a36Sopenharmony_ci				};
61062306a36Sopenharmony_ci			};
61162306a36Sopenharmony_ci			magnetometer {
61262306a36Sopenharmony_ci				magneto_snowball_mode: magneto_snowball {
61362306a36Sopenharmony_ci					snowball_cfg1 {
61462306a36Sopenharmony_ci						pins = "GPIO165_C21"; /* MAG_DRDY */
61562306a36Sopenharmony_ci						ste,config = <&gpio_in_pu>;
61662306a36Sopenharmony_ci					};
61762306a36Sopenharmony_ci				};
61862306a36Sopenharmony_ci			};
61962306a36Sopenharmony_ci			gbf {
62062306a36Sopenharmony_ci				gbf_snowball_mode: gbf_snowball {
62162306a36Sopenharmony_ci					/*
62262306a36Sopenharmony_ci					 * GBF (GPS, Bluetooth, FM-radio) interface,
62362306a36Sopenharmony_ci					 * pull low to reset state
62462306a36Sopenharmony_ci					 */
62562306a36Sopenharmony_ci					snowball_cfg1 {
62662306a36Sopenharmony_ci						pins = "GPIO171_D23"; /* GBF_ENA_RESET */
62762306a36Sopenharmony_ci						ste,config = <&gpio_out_lo>;
62862306a36Sopenharmony_ci					};
62962306a36Sopenharmony_ci				 };
63062306a36Sopenharmony_ci			};
63162306a36Sopenharmony_ci			wlan {
63262306a36Sopenharmony_ci				wlan_snowball_mode: wlan_snowball {
63362306a36Sopenharmony_ci					/*
63462306a36Sopenharmony_ci					 * Activate this mode with the WLAN chip.
63562306a36Sopenharmony_ci					 * These are plain GPIO pins used by WLAN
63662306a36Sopenharmony_ci					 */
63762306a36Sopenharmony_ci					snowball_cfg1 {
63862306a36Sopenharmony_ci						pins =
63962306a36Sopenharmony_ci						"GPIO161_D21", /* WLAN_PMU_EN */
64062306a36Sopenharmony_ci						"GPIO215_AH13"; /* WLAN_ENA */
64162306a36Sopenharmony_ci						ste,config = <&gpio_out_lo>;
64262306a36Sopenharmony_ci					};
64362306a36Sopenharmony_ci					snowball_cfg2 {
64462306a36Sopenharmony_ci						pins = "GPIO216_AG12"; /* WLAN_IRQ */
64562306a36Sopenharmony_ci						ste,config = <&gpio_in_pu>;
64662306a36Sopenharmony_ci					};
64762306a36Sopenharmony_ci				};
64862306a36Sopenharmony_ci			};
64962306a36Sopenharmony_ci		};
65062306a36Sopenharmony_ci
65162306a36Sopenharmony_ci		mcde@a0350000 {
65262306a36Sopenharmony_ci			pinctrl-names = "default", "sleep";
65362306a36Sopenharmony_ci			pinctrl-0 = <&lcd_default_mode>;
65462306a36Sopenharmony_ci			pinctrl-1 = <&lcd_sleep_mode>;
65562306a36Sopenharmony_ci		};
65662306a36Sopenharmony_ci	};
65762306a36Sopenharmony_ci};
658