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 = <ð_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