1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Devicetree for the Samsung Galaxy Amp SGH-I407 also known as Kyle. 4*724ba675SRob Herring * 5*724ba675SRob Herring * The code also refers to "Kyle AT&T" reflecting that this mobile phone 6*724ba675SRob Herring * was customized for the AT&T subsidiary Aio Wireless (All In One) and 7*724ba675SRob Herring * offered by the company in 2013. 8*724ba675SRob Herring */ 9*724ba675SRob Herring 10*724ba675SRob Herring/dts-v1/; 11*724ba675SRob Herring#include "ste-db8500.dtsi" 12*724ba675SRob Herring#include "ste-ab8505.dtsi" 13*724ba675SRob Herring#include "ste-dbx5x0-pinctrl.dtsi" 14*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 15*724ba675SRob Herring#include <dt-bindings/leds/common.h> 16*724ba675SRob Herring#include <dt-bindings/input/input.h> 17*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h> 18*724ba675SRob Herring 19*724ba675SRob Herring/ { 20*724ba675SRob Herring model = "Samsung Galaxy Amp (SGH-I407)"; 21*724ba675SRob Herring compatible = "samsung,kyle", "st-ericsson,u8500"; 22*724ba675SRob Herring 23*724ba675SRob Herring chosen { 24*724ba675SRob Herring stdout-path = &serial2; 25*724ba675SRob Herring }; 26*724ba675SRob Herring 27*724ba675SRob Herring battery: battery { 28*724ba675SRob Herring compatible = "samsung,eb425161la"; 29*724ba675SRob Herring }; 30*724ba675SRob Herring 31*724ba675SRob Herring thermal-zones { 32*724ba675SRob Herring battery-thermal { 33*724ba675SRob Herring /* This zone will be polled by the battery temperature code */ 34*724ba675SRob Herring polling-delay = <0>; 35*724ba675SRob Herring polling-delay-passive = <0>; 36*724ba675SRob Herring thermal-sensors = <&bat_therm>; 37*724ba675SRob Herring 38*724ba675SRob Herring trips { 39*724ba675SRob Herring battery-crit-hi { 40*724ba675SRob Herring temperature = <70000>; 41*724ba675SRob Herring hysteresis = <2000>; 42*724ba675SRob Herring type = "critical"; 43*724ba675SRob Herring }; 44*724ba675SRob Herring }; 45*724ba675SRob Herring }; 46*724ba675SRob Herring }; 47*724ba675SRob Herring 48*724ba675SRob Herring bat_therm: thermistor { 49*724ba675SRob Herring compatible = "samsung,1404-001221"; 50*724ba675SRob Herring io-channels = <&gpadc 0x02>; /* BatTemp */ 51*724ba675SRob Herring pullup-uv = <1800000>; 52*724ba675SRob Herring pullup-ohm = <230000>; 53*724ba675SRob Herring pulldown-ohm = <0>; 54*724ba675SRob Herring #thermal-sensor-cells = <0>; 55*724ba675SRob Herring }; 56*724ba675SRob Herring 57*724ba675SRob Herring /* TI TXS0206 level translator for 2.9 V */ 58*724ba675SRob Herring sd_level_translator: regulator-gpio { 59*724ba675SRob Herring compatible = "regulator-fixed"; 60*724ba675SRob Herring 61*724ba675SRob Herring /* GPIO87 EN */ 62*724ba675SRob Herring gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>; 63*724ba675SRob Herring enable-active-high; 64*724ba675SRob Herring 65*724ba675SRob Herring regulator-name = "sd-level-translator"; 66*724ba675SRob Herring regulator-min-microvolt = <2900000>; 67*724ba675SRob Herring regulator-max-microvolt = <2900000>; 68*724ba675SRob Herring regulator-type = "voltage"; 69*724ba675SRob Herring 70*724ba675SRob Herring startup-delay-us = <200>; 71*724ba675SRob Herring 72*724ba675SRob Herring pinctrl-names = "default"; 73*724ba675SRob Herring pinctrl-0 = <&sd_level_translator_default>; 74*724ba675SRob Herring }; 75*724ba675SRob Herring 76*724ba675SRob Herring /* External LDO MIC5366-3.3YMT for eMMC */ 77*724ba675SRob Herring ldo_3v3_reg: regulator-gpio-ldo-3v3 { 78*724ba675SRob Herring compatible = "regulator-fixed"; 79*724ba675SRob Herring regulator-name = "en-3v3-fixed-supply"; 80*724ba675SRob Herring regulator-min-microvolt = <3300000>; 81*724ba675SRob Herring regulator-max-microvolt = <3300000>; 82*724ba675SRob Herring gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>; 83*724ba675SRob Herring startup-delay-us = <5000>; 84*724ba675SRob Herring enable-active-high; 85*724ba675SRob Herring pinctrl-names = "default"; 86*724ba675SRob Herring pinctrl-0 = <&emmc_ldo_en_default_mode>; 87*724ba675SRob Herring }; 88*724ba675SRob Herring 89*724ba675SRob Herring /* 90*724ba675SRob Herring * External Ricoh RP152L010B-TR LCD LDO regulator for the display. 91*724ba675SRob Herring * LCD_PWR_EN controls both a 3.0V and 1.8V output. 92*724ba675SRob Herring */ 93*724ba675SRob Herring lcd_3v0_reg: regulator-gpio-lcd-3v0 { 94*724ba675SRob Herring compatible = "regulator-fixed"; 95*724ba675SRob Herring /* Supplied in turn by VBAT */ 96*724ba675SRob Herring regulator-name = "VREG_LCD_3V0"; 97*724ba675SRob Herring regulator-min-microvolt = <3000000>; 98*724ba675SRob Herring regulator-max-microvolt = <3000000>; 99*724ba675SRob Herring /* GPIO219 controls this regulator */ 100*724ba675SRob Herring gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>; 101*724ba675SRob Herring enable-active-high; 102*724ba675SRob Herring pinctrl-names = "default"; 103*724ba675SRob Herring pinctrl-0 = <&lcd_pwr_en_default_mode>; 104*724ba675SRob Herring }; 105*724ba675SRob Herring lcd_1v8_reg: regulator-gpio-lcd-1v8 { 106*724ba675SRob Herring compatible = "regulator-fixed"; 107*724ba675SRob Herring /* Supplied in turn by VBAT */ 108*724ba675SRob Herring regulator-name = "VREG_LCD_1V8"; 109*724ba675SRob Herring regulator-min-microvolt = <1800000>; 110*724ba675SRob Herring regulator-max-microvolt = <1800000>; 111*724ba675SRob Herring /* GPIO219 controls this regulator too */ 112*724ba675SRob Herring gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>; 113*724ba675SRob Herring enable-active-high; 114*724ba675SRob Herring pinctrl-names = "default"; 115*724ba675SRob Herring pinctrl-0 = <&lcd_pwr_en_default_mode>; 116*724ba675SRob Herring }; 117*724ba675SRob Herring 118*724ba675SRob Herring wlan_en: regulator-gpio-wlan-en { 119*724ba675SRob Herring compatible = "regulator-fixed"; 120*724ba675SRob Herring regulator-name = "wl-reg-on"; 121*724ba675SRob Herring regulator-min-microvolt = <3000000>; 122*724ba675SRob Herring regulator-max-microvolt = <3000000>; 123*724ba675SRob Herring startup-delay-us = <200000>; 124*724ba675SRob Herring /* GPIO215 WLAN_EN */ 125*724ba675SRob Herring gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>; 126*724ba675SRob Herring enable-active-high; 127*724ba675SRob Herring pinctrl-names = "default"; 128*724ba675SRob Herring pinctrl-0 = <&wlan_en_default_mode>; 129*724ba675SRob Herring }; 130*724ba675SRob Herring 131*724ba675SRob Herring vibrator { 132*724ba675SRob Herring compatible = "gpio-vibrator"; 133*724ba675SRob Herring enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; 134*724ba675SRob Herring pinctrl-names = "default"; 135*724ba675SRob Herring pinctrl-0 = <&vibrator_default>; 136*724ba675SRob Herring }; 137*724ba675SRob Herring 138*724ba675SRob Herring gpio-keys { 139*724ba675SRob Herring compatible = "gpio-keys"; 140*724ba675SRob Herring pinctrl-names = "default"; 141*724ba675SRob Herring pinctrl-0 = <&gpio_keys_default_mode>; 142*724ba675SRob Herring 143*724ba675SRob Herring button-home { 144*724ba675SRob Herring linux,code = <KEY_HOME>; 145*724ba675SRob Herring label = "HOME"; 146*724ba675SRob Herring /* GPIO91 */ 147*724ba675SRob Herring gpios = <&gpio2 27 GPIO_ACTIVE_LOW>; 148*724ba675SRob Herring }; 149*724ba675SRob Herring button-volup { 150*724ba675SRob Herring linux,code = <KEY_VOLUMEUP>; 151*724ba675SRob Herring label = "VOL+"; 152*724ba675SRob Herring /* GPIO67 */ 153*724ba675SRob Herring gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; 154*724ba675SRob Herring }; 155*724ba675SRob Herring button-voldown { 156*724ba675SRob Herring linux,code = <KEY_VOLUMEDOWN>; 157*724ba675SRob Herring label = "VOL-"; 158*724ba675SRob Herring /* GPIO92 */ 159*724ba675SRob Herring gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; 160*724ba675SRob Herring }; 161*724ba675SRob Herring }; 162*724ba675SRob Herring 163*724ba675SRob Herring ktd253: backlight { 164*724ba675SRob Herring compatible = "kinetic,ktd253"; 165*724ba675SRob Herring /* GPIO 69 */ 166*724ba675SRob Herring enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; 167*724ba675SRob Herring /* Default to 13/32 brightness */ 168*724ba675SRob Herring default-brightness = <13>; 169*724ba675SRob Herring pinctrl-names = "default"; 170*724ba675SRob Herring pinctrl-0 = <&gpio_backlight_default_mode>; 171*724ba675SRob Herring }; 172*724ba675SRob Herring 173*724ba675SRob Herring /* Richtek RT8515GQW Flash LED Driver IC */ 174*724ba675SRob Herring flash { 175*724ba675SRob Herring compatible = "richtek,rt8515"; 176*724ba675SRob Herring /* GPIO 140 */ 177*724ba675SRob Herring enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; 178*724ba675SRob Herring /* GPIO 141 */ 179*724ba675SRob Herring ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; 180*724ba675SRob Herring /* 181*724ba675SRob Herring * RFS is 16 kOhm and RTS is 100 kOhm giving 182*724ba675SRob Herring * the flash max current 343mA and torch max 183*724ba675SRob Herring * current 55 mA. 184*724ba675SRob Herring */ 185*724ba675SRob Herring richtek,rfs-ohms = <16000>; 186*724ba675SRob Herring richtek,rts-ohms = <100000>; 187*724ba675SRob Herring pinctrl-names = "default"; 188*724ba675SRob Herring pinctrl-0 = <&gpio_flash_default_mode>; 189*724ba675SRob Herring 190*724ba675SRob Herring led { 191*724ba675SRob Herring function = LED_FUNCTION_FLASH; 192*724ba675SRob Herring color = <LED_COLOR_ID_WHITE>; 193*724ba675SRob Herring flash-max-timeout-us = <250000>; 194*724ba675SRob Herring flash-max-microamp = <343750>; 195*724ba675SRob Herring led-max-microamp = <55000>; 196*724ba675SRob Herring }; 197*724ba675SRob Herring }; 198*724ba675SRob Herring 199*724ba675SRob Herring i2c-gpio-0 { 200*724ba675SRob Herring compatible = "i2c-gpio"; 201*724ba675SRob Herring sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 202*724ba675SRob Herring scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 203*724ba675SRob Herring pinctrl-names = "default"; 204*724ba675SRob Herring pinctrl-0 = <&i2c_gpio_0_default>; 205*724ba675SRob Herring #address-cells = <1>; 206*724ba675SRob Herring #size-cells = <0>; 207*724ba675SRob Herring /* TODO: this should be used by the NCP6914 Camera power management unit */ 208*724ba675SRob Herring }; 209*724ba675SRob Herring 210*724ba675SRob Herring i2c-gpio-1 { 211*724ba675SRob Herring compatible = "i2c-gpio"; 212*724ba675SRob Herring sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 213*724ba675SRob Herring scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 214*724ba675SRob Herring pinctrl-names = "default"; 215*724ba675SRob Herring pinctrl-0 = <&i2c_gpio_1_default>; 216*724ba675SRob Herring #address-cells = <1>; 217*724ba675SRob Herring #size-cells = <0>; 218*724ba675SRob Herring magnetometer@c { 219*724ba675SRob Herring compatible = "alps,hscdtd008a"; 220*724ba675SRob Herring reg = <0x0c>; 221*724ba675SRob Herring avdd-supply = <&ab8500_ldo_aux1_reg>; 222*724ba675SRob Herring dvdd-supply = <&ab8500_ldo_aux6_reg>; 223*724ba675SRob Herring }; 224*724ba675SRob Herring }; 225*724ba675SRob Herring 226*724ba675SRob Herring soc { 227*724ba675SRob Herring // External Micro SD slot 228*724ba675SRob Herring mmc@80126000 { 229*724ba675SRob Herring arm,primecell-periphid = <0x10480180>; 230*724ba675SRob Herring max-frequency = <100000000>; 231*724ba675SRob Herring bus-width = <4>; 232*724ba675SRob Herring cap-sd-highspeed; 233*724ba675SRob Herring cap-mmc-highspeed; 234*724ba675SRob Herring st,sig-pin-fbclk; 235*724ba675SRob Herring full-pwr-cycle; 236*724ba675SRob Herring vmmc-supply = <&ab8500_ldo_aux3_reg>; 237*724ba675SRob Herring vqmmc-supply = <&sd_level_translator>; 238*724ba675SRob Herring pinctrl-names = "default", "sleep"; 239*724ba675SRob Herring pinctrl-0 = <&mc0_a_1_default>; 240*724ba675SRob Herring pinctrl-1 = <&mc0_a_1_sleep>; 241*724ba675SRob Herring cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217 242*724ba675SRob Herring status = "okay"; 243*724ba675SRob Herring }; 244*724ba675SRob Herring 245*724ba675SRob Herring // WLAN SDIO channel 246*724ba675SRob Herring mmc@80118000 { 247*724ba675SRob Herring arm,primecell-periphid = <0x10480180>; 248*724ba675SRob Herring max-frequency = <50000000>; 249*724ba675SRob Herring bus-width = <4>; 250*724ba675SRob Herring non-removable; 251*724ba675SRob Herring cap-sd-highspeed; 252*724ba675SRob Herring vmmc-supply = <&wlan_en>; 253*724ba675SRob Herring pinctrl-names = "default", "sleep"; 254*724ba675SRob Herring pinctrl-0 = <&mc1_a_2_default>; 255*724ba675SRob Herring pinctrl-1 = <&mc1_a_2_sleep>; 256*724ba675SRob Herring status = "okay"; 257*724ba675SRob Herring #address-cells = <1>; 258*724ba675SRob Herring #size-cells = <0>; 259*724ba675SRob Herring 260*724ba675SRob Herring wifi@1 { 261*724ba675SRob Herring compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac"; 262*724ba675SRob Herring reg = <1>; 263*724ba675SRob Herring /* GPIO216 WL_HOST_WAKE */ 264*724ba675SRob Herring interrupt-parent = <&gpio6>; 265*724ba675SRob Herring interrupts = <24 IRQ_TYPE_EDGE_FALLING>; 266*724ba675SRob Herring interrupt-names = "host-wake"; 267*724ba675SRob Herring pinctrl-names = "default"; 268*724ba675SRob Herring pinctrl-0 = <&wlan_default_mode>; 269*724ba675SRob Herring }; 270*724ba675SRob Herring }; 271*724ba675SRob Herring 272*724ba675SRob Herring /* 273*724ba675SRob Herring * eMMC seems to be mostly Samsung KLM4G1YE4C "4YMD1R" 274*724ba675SRob Herring */ 275*724ba675SRob Herring mmc@80005000 { 276*724ba675SRob Herring arm,primecell-periphid = <0x10480180>; 277*724ba675SRob Herring max-frequency = <100000000>; 278*724ba675SRob Herring bus-width = <8>; 279*724ba675SRob Herring non-removable; 280*724ba675SRob Herring cap-mmc-highspeed; 281*724ba675SRob Herring mmc-ddr-1_8v; 282*724ba675SRob Herring no-sdio; 283*724ba675SRob Herring no-sd; 284*724ba675SRob Herring /* From datasheet page 26 figure 9: 300 ms set-up time for 4GB */ 285*724ba675SRob Herring post-power-on-delay-ms = <300>; 286*724ba675SRob Herring vmmc-supply = <&ldo_3v3_reg>; 287*724ba675SRob Herring pinctrl-names = "default", "sleep"; 288*724ba675SRob Herring pinctrl-0 = <&mc2_a_1_default>; 289*724ba675SRob Herring pinctrl-1 = <&mc2_a_1_sleep>; 290*724ba675SRob Herring 291*724ba675SRob Herring status = "okay"; 292*724ba675SRob Herring }; 293*724ba675SRob Herring 294*724ba675SRob Herring /* GBF (Bluetooth) UART */ 295*724ba675SRob Herring serial@80120000 { 296*724ba675SRob Herring pinctrl-names = "default", "sleep"; 297*724ba675SRob Herring pinctrl-0 = <&u0_a_1_default>; 298*724ba675SRob Herring pinctrl-1 = <&u0_a_1_sleep>; 299*724ba675SRob Herring status = "okay"; 300*724ba675SRob Herring 301*724ba675SRob Herring bluetooth { 302*724ba675SRob Herring /* BCM4334B0 actually */ 303*724ba675SRob Herring compatible = "brcm,bcm4330-bt"; 304*724ba675SRob Herring shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>; 305*724ba675SRob Herring device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 306*724ba675SRob Herring host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; 307*724ba675SRob Herring pinctrl-names = "default"; 308*724ba675SRob Herring pinctrl-0 = <&bluetooth_default_mode>; 309*724ba675SRob Herring }; 310*724ba675SRob Herring }; 311*724ba675SRob Herring 312*724ba675SRob Herring /* GPF UART */ 313*724ba675SRob Herring serial@80121000 { 314*724ba675SRob Herring status = "okay"; 315*724ba675SRob Herring pinctrl-names = "default", "sleep"; 316*724ba675SRob Herring pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>; 317*724ba675SRob Herring pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>; 318*724ba675SRob Herring 319*724ba675SRob Herring gnss { 320*724ba675SRob Herring /* The CSRG05TA03-ICJE-R is a SirfStarV 5t chip */ 321*724ba675SRob Herring compatible = "csr,csrg05ta03-icje-r"; 322*724ba675SRob Herring /* GPS_RSTN on GPIO21 */ 323*724ba675SRob Herring reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; 324*724ba675SRob Herring /* GPS_ON_OFF on GPIO86 */ 325*724ba675SRob Herring sirf,onoff-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; 326*724ba675SRob Herring /* GPS_1V8 (VSMPS2) */ 327*724ba675SRob Herring vcc-supply = <&db8500_vsmps2_reg>; 328*724ba675SRob Herring pinctrl-names = "default"; 329*724ba675SRob Herring pinctrl-0 = <&g05ta03_kyle_default>; 330*724ba675SRob Herring /* According to /etc/sirfgps.conf */ 331*724ba675SRob Herring current-speed = <460800>; 332*724ba675SRob Herring }; 333*724ba675SRob Herring }; 334*724ba675SRob Herring 335*724ba675SRob Herring /* Debugging console UART connected to AB8505 USB */ 336*724ba675SRob Herring serial@80007000 { 337*724ba675SRob Herring status = "okay"; 338*724ba675SRob Herring pinctrl-names = "default", "sleep"; 339*724ba675SRob Herring pinctrl-0 = <&u2rxtx_c_1_default>; 340*724ba675SRob Herring pinctrl-1 = <&u2rxtx_c_1_sleep>; 341*724ba675SRob Herring }; 342*724ba675SRob Herring 343*724ba675SRob Herring prcmu@80157000 { 344*724ba675SRob Herring ab8505 { 345*724ba675SRob Herring phy { 346*724ba675SRob Herring pinctrl-names = "default", "sleep"; 347*724ba675SRob Herring pinctrl-0 = <&usb_a_1_default>; 348*724ba675SRob Herring pinctrl-1 = <&usb_a_1_sleep>; 349*724ba675SRob Herring }; 350*724ba675SRob Herring 351*724ba675SRob Herring ab8500_fg { 352*724ba675SRob Herring line-impedance-micro-ohms = <36000>; 353*724ba675SRob Herring }; 354*724ba675SRob Herring 355*724ba675SRob Herring regulator { 356*724ba675SRob Herring ab8500_ldo_aux1 { 357*724ba675SRob Herring /* Used for VDD for sensors */ 358*724ba675SRob Herring regulator-name = "AUX1"; 359*724ba675SRob Herring regulator-min-microvolt = <3000000>; 360*724ba675SRob Herring regulator-max-microvolt = <3300000>; 361*724ba675SRob Herring }; 362*724ba675SRob Herring 363*724ba675SRob Herring ab8500_ldo_aux2 { 364*724ba675SRob Herring /* Supplies the MMS touchscreen only with 3.3V */ 365*724ba675SRob Herring regulator-name = "AUX2"; 366*724ba675SRob Herring regulator-min-microvolt = <3300000>; 367*724ba675SRob Herring regulator-max-microvolt = <3300000>; 368*724ba675SRob Herring }; 369*724ba675SRob Herring 370*724ba675SRob Herring ab8500_ldo_aux3 { 371*724ba675SRob Herring /* Used for voltage for external MMC/SD card */ 372*724ba675SRob Herring regulator-name = "AUX3"; 373*724ba675SRob Herring regulator-min-microvolt = <1100000>; 374*724ba675SRob Herring regulator-max-microvolt = <3300000>; 375*724ba675SRob Herring }; 376*724ba675SRob Herring 377*724ba675SRob Herring ab8500_ldo_aux4 { 378*724ba675SRob Herring regulator-name = "AUX4"; 379*724ba675SRob Herring /* Hammer to 3.3V for the touchscreen */ 380*724ba675SRob Herring regulator-min-microvolt = <3300000>; 381*724ba675SRob Herring regulator-max-microvolt = <3300000>; 382*724ba675SRob Herring }; 383*724ba675SRob Herring 384*724ba675SRob Herring ab8500_ldo_aux5 { 385*724ba675SRob Herring regulator-name = "AUX5"; 386*724ba675SRob Herring /* 1.8V for the touchscreen */ 387*724ba675SRob Herring regulator-min-microvolt = <1800000>; 388*724ba675SRob Herring regulator-max-microvolt = <1800000>; 389*724ba675SRob Herring }; 390*724ba675SRob Herring 391*724ba675SRob Herring ab8500_ldo_aux6 { 392*724ba675SRob Herring regulator-name = "AUX6"; 393*724ba675SRob Herring /* Used by sensors for 1.8 V in R0.1+ */ 394*724ba675SRob Herring regulator-min-microvolt = <1800000>; 395*724ba675SRob Herring regulator-max-microvolt = <1800000>; 396*724ba675SRob Herring }; 397*724ba675SRob Herring 398*724ba675SRob Herring ab8500_ldo_aux8 { 399*724ba675SRob Herring /* Unused */ 400*724ba675SRob Herring regulator-name = "AUX8"; 401*724ba675SRob Herring }; 402*724ba675SRob Herring }; 403*724ba675SRob Herring }; 404*724ba675SRob Herring }; 405*724ba675SRob Herring 406*724ba675SRob Herring /* I2C0 */ 407*724ba675SRob Herring i2c@80004000 { 408*724ba675SRob Herring status = "okay"; 409*724ba675SRob Herring 410*724ba675SRob Herring pinctrl-names = "default", "sleep"; 411*724ba675SRob Herring pinctrl-0 = <&i2c0_a_1_default>; 412*724ba675SRob Herring pinctrl-1 = <&i2c0_a_1_sleep>; 413*724ba675SRob Herring 414*724ba675SRob Herring proximity@44 { 415*724ba675SRob Herring compatible = "sharp,gp2ap002s00f"; 416*724ba675SRob Herring clock-frequency = <400000>; 417*724ba675SRob Herring reg = <0x44>; 418*724ba675SRob Herring 419*724ba675SRob Herring interrupt-parent = <&gpio4>; 420*724ba675SRob Herring interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 421*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 422*724ba675SRob Herring vio-supply = <&ab8500_ldo_aux6_reg>; 423*724ba675SRob Herring pinctrl-names = "default"; 424*724ba675SRob Herring pinctrl-0 = <&gp2ap002_kyle_default>; 425*724ba675SRob Herring sharp,proximity-far-hysteresis = /bits/ 8 <0x2f>; 426*724ba675SRob Herring sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>; 427*724ba675SRob Herring }; 428*724ba675SRob Herring }; 429*724ba675SRob Herring 430*724ba675SRob Herring /* I2C2 */ 431*724ba675SRob Herring i2c@80128000 { 432*724ba675SRob Herring status = "okay"; 433*724ba675SRob Herring 434*724ba675SRob Herring pinctrl-names = "default", "sleep"; 435*724ba675SRob Herring pinctrl-0 = <&i2c2_b_2_default>; 436*724ba675SRob Herring pinctrl-1 = <&i2c2_b_2_sleep>; 437*724ba675SRob Herring 438*724ba675SRob Herring accel@18 { 439*724ba675SRob Herring compatible = "bosch,bma254"; 440*724ba675SRob Herring clock-frequency = <400000>; 441*724ba675SRob Herring reg = <0x18>; 442*724ba675SRob Herring 443*724ba675SRob Herring mount-matrix = "-1", "0", "0", 444*724ba675SRob Herring "0", "-1", "0", 445*724ba675SRob Herring "0", "0", "-1"; 446*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 447*724ba675SRob Herring vddio-supply = <&ab8500_ldo_aux6_reg>; 448*724ba675SRob Herring }; 449*724ba675SRob Herring }; 450*724ba675SRob Herring 451*724ba675SRob Herring /* I2C3 */ 452*724ba675SRob Herring i2c@80110000 { 453*724ba675SRob Herring status = "okay"; 454*724ba675SRob Herring 455*724ba675SRob Herring pinctrl-names = "default", "sleep"; 456*724ba675SRob Herring pinctrl-0 = <&i2c3_c_2_default>; 457*724ba675SRob Herring pinctrl-1 = <&i2c3_c_2_sleep>; 458*724ba675SRob Herring 459*724ba675SRob Herring /* Melfas MMS134S touchscreen */ 460*724ba675SRob Herring touchscreen@48 { 461*724ba675SRob Herring compatible = "melfas,mms134s"; 462*724ba675SRob Herring reg = <0x48>; 463*724ba675SRob Herring /* GPIO218 for IRQ */ 464*724ba675SRob Herring interrupt-parent = <&gpio6>; 465*724ba675SRob Herring interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 466*724ba675SRob Herring /* AVDD is "analog supply", 2.57-3.47 V */ 467*724ba675SRob Herring avdd-supply = <&ab8500_ldo_aux2_reg>; 468*724ba675SRob Herring /* VDD is "digital supply" 1.71-3.47V */ 469*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux5_reg>; 470*724ba675SRob Herring 471*724ba675SRob Herring touchscreen-size-x = <480>; 472*724ba675SRob Herring touchscreen-size-y = <800>; 473*724ba675SRob Herring 474*724ba675SRob Herring pinctrl-names = "default"; 475*724ba675SRob Herring pinctrl-0 = <&mms134s_kyle_default>; 476*724ba675SRob Herring }; 477*724ba675SRob Herring }; 478*724ba675SRob Herring 479*724ba675SRob Herring mcde@a0350000 { 480*724ba675SRob Herring status = "okay"; 481*724ba675SRob Herring pinctrl-names = "default"; 482*724ba675SRob Herring pinctrl-0 = <&dsi_default_mode>; 483*724ba675SRob Herring 484*724ba675SRob Herring dsi@a0351000 { 485*724ba675SRob Herring panel { 486*724ba675SRob Herring /* 487*724ba675SRob Herring * NT35510-based Hydis HVA40WV1 488*724ba675SRob Herring * Apparently some Kyle models can have a NT35512 fitted 489*724ba675SRob Herring * here instead. In that case the boot loader needs to 490*724ba675SRob Herring * modify this compatible. 491*724ba675SRob Herring */ 492*724ba675SRob Herring compatible = "hydis,hva40wv1", "novatek,nt35510"; 493*724ba675SRob Herring reg = <0>; 494*724ba675SRob Herring /* v_lcd_3v0 2.3-4.8V */ 495*724ba675SRob Herring vdd-supply = <&lcd_3v0_reg>; 496*724ba675SRob Herring /* v_lcd_1v8 1.65-3.3V */ 497*724ba675SRob Herring vddi-supply = <&lcd_1v8_reg>; 498*724ba675SRob Herring /* GPIO 139 */ 499*724ba675SRob Herring reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; 500*724ba675SRob Herring pinctrl-names = "default"; 501*724ba675SRob Herring pinctrl-0 = <&display_default_mode>; 502*724ba675SRob Herring backlight = <&ktd253>; 503*724ba675SRob Herring }; 504*724ba675SRob Herring }; 505*724ba675SRob Herring }; 506*724ba675SRob Herring }; 507*724ba675SRob Herring}; 508*724ba675SRob Herring 509*724ba675SRob Herring&pinctrl { 510*724ba675SRob Herring /* 511*724ba675SRob Herring * This extends the MC0_A_1 default config to include 512*724ba675SRob Herring * the card detect GPIO217 line. 513*724ba675SRob Herring */ 514*724ba675SRob Herring sdi0 { 515*724ba675SRob Herring mc0_a_1_default { 516*724ba675SRob Herring default_cfg1 { 517*724ba675SRob Herring /* GPIO18, 19 & 20 unused so pull down */ 518*724ba675SRob Herring ste,config = <&gpio_in_pd>; 519*724ba675SRob Herring }; 520*724ba675SRob Herring default_cfg4 { 521*724ba675SRob Herring pins = "GPIO217_AH12"; /* card detect */ 522*724ba675SRob Herring ste,config = <&gpio_in_pd>; 523*724ba675SRob Herring }; 524*724ba675SRob Herring }; 525*724ba675SRob Herring }; 526*724ba675SRob Herring 527*724ba675SRob Herring mcde { 528*724ba675SRob Herring dsi_default_mode: dsi_default { 529*724ba675SRob Herring default_mux1 { 530*724ba675SRob Herring /* Mux in VSI0 used for DSI TE */ 531*724ba675SRob Herring function = "lcd"; 532*724ba675SRob Herring groups = "lcdvsi0_a_1"; /* VSI0 for LCD */ 533*724ba675SRob Herring }; 534*724ba675SRob Herring default_cfg1 { 535*724ba675SRob Herring pins = "GPIO68_E1"; /* VSI0 */ 536*724ba675SRob Herring ste,config = <&in_nopull>; 537*724ba675SRob Herring }; 538*724ba675SRob Herring }; 539*724ba675SRob Herring }; 540*724ba675SRob Herring 541*724ba675SRob Herring /* Two GPIO lines used by the display */ 542*724ba675SRob Herring display { 543*724ba675SRob Herring display_default_mode: display_default { 544*724ba675SRob Herring kyle_cfg1 { 545*724ba675SRob Herring /* 546*724ba675SRob Herring * OLED DETECT or check_pba, this appears to be high 547*724ba675SRob Herring * on "PBA" which I guess is "prototype board A". 548*724ba675SRob Herring */ 549*724ba675SRob Herring pins = "GPIO93_B7"; 550*724ba675SRob Herring ste,config = <&gpio_in_nopull>; 551*724ba675SRob Herring }; 552*724ba675SRob Herring kyle_cfg2 { 553*724ba675SRob Herring pins = "GPIO139_C9"; 554*724ba675SRob Herring /* 555*724ba675SRob Herring * MIPI_DSI0_RESET_N resets the display, leave high 556*724ba675SRob Herring * (de-asserted) so we only assert reset explicitly 557*724ba675SRob Herring * from the display driver. 558*724ba675SRob Herring */ 559*724ba675SRob Herring ste,config = <&gpio_out_hi>; 560*724ba675SRob Herring }; 561*724ba675SRob Herring }; 562*724ba675SRob Herring }; 563*724ba675SRob Herring 564*724ba675SRob Herring /* GPIO that enables the LDO regulator for the LCD display */ 565*724ba675SRob Herring lcd-ldo { 566*724ba675SRob Herring lcd_pwr_en_default_mode: lcd_pwr_en_default { 567*724ba675SRob Herring /* LCD_PWR_EN on GPIO219 */ 568*724ba675SRob Herring kyle_cfg1 { 569*724ba675SRob Herring pins = "GPIO219_AG10"; 570*724ba675SRob Herring ste,config = <&gpio_out_hi>; 571*724ba675SRob Herring }; 572*724ba675SRob Herring }; 573*724ba675SRob Herring }; 574*724ba675SRob Herring 575*724ba675SRob Herring backlight { 576*724ba675SRob Herring gpio_backlight_default_mode: backlight_default { 577*724ba675SRob Herring kyle_cfg1 { 578*724ba675SRob Herring pins = "GPIO69_E2"; /* LCD_BL_CTRL */ 579*724ba675SRob Herring ste,config = <&gpio_out_lo>; 580*724ba675SRob Herring }; 581*724ba675SRob Herring }; 582*724ba675SRob Herring }; 583*724ba675SRob Herring flash { 584*724ba675SRob Herring gpio_flash_default_mode: flash_default { 585*724ba675SRob Herring kyle_cfg1 { 586*724ba675SRob Herring pins = "GPIO140_B11", "GPIO141_C12"; 587*724ba675SRob Herring ste,config = <&gpio_out_lo>; 588*724ba675SRob Herring }; 589*724ba675SRob Herring }; 590*724ba675SRob Herring }; 591*724ba675SRob Herring /* GPIO that enables the 2.9V SD card level translator */ 592*724ba675SRob Herring sd-level-translator { 593*724ba675SRob Herring sd_level_translator_default: sd_level_translator_default { 594*724ba675SRob Herring /* level shifter on GPIO87 */ 595*724ba675SRob Herring kyle_cfg1 { 596*724ba675SRob Herring pins = "GPIO87_B3"; 597*724ba675SRob Herring ste,config = <&gpio_out_hi>; 598*724ba675SRob Herring }; 599*724ba675SRob Herring }; 600*724ba675SRob Herring }; 601*724ba675SRob Herring /* GPIO that enables the LDO regulator for the eMMC */ 602*724ba675SRob Herring emmc-ldo { 603*724ba675SRob Herring emmc_ldo_en_default_mode: emmc_ldo_default { 604*724ba675SRob Herring /* LDO enable on GPIO223 */ 605*724ba675SRob Herring kyle_cfg1 { 606*724ba675SRob Herring pins = "GPIO223_AH9"; 607*724ba675SRob Herring ste,config = <&gpio_out_hi>; 608*724ba675SRob Herring }; 609*724ba675SRob Herring }; 610*724ba675SRob Herring }; 611*724ba675SRob Herring /* GPIO keys */ 612*724ba675SRob Herring gpio-keys { 613*724ba675SRob Herring gpio_keys_default_mode: gpio_keys_default { 614*724ba675SRob Herring kyle_cfg1 { 615*724ba675SRob Herring pins = "GPIO67_G2", /* VOL UP */ 616*724ba675SRob Herring "GPIO91_B6", /* HOME */ 617*724ba675SRob Herring "GPIO92_D6"; /* VOL DOWN */ 618*724ba675SRob Herring ste,config = <&gpio_in_pu>; 619*724ba675SRob Herring }; 620*724ba675SRob Herring }; 621*724ba675SRob Herring }; 622*724ba675SRob Herring /* Interrupt line for light/proximity sensor GP2AP002 */ 623*724ba675SRob Herring gp2ap002 { 624*724ba675SRob Herring gp2ap002_kyle_default: gp2ap002_kyle { 625*724ba675SRob Herring kyle_cfg1 { 626*724ba675SRob Herring pins = "GPIO146_D13"; 627*724ba675SRob Herring ste,config = <&gpio_in_nopull>; 628*724ba675SRob Herring }; 629*724ba675SRob Herring }; 630*724ba675SRob Herring }; 631*724ba675SRob Herring /* GPIO-based I2C bus for NCP6914 */ 632*724ba675SRob Herring i2c-gpio-0 { 633*724ba675SRob Herring i2c_gpio_0_default: i2c_gpio_0 { 634*724ba675SRob Herring kyle_cfg1 { 635*724ba675SRob Herring pins = "GPIO143_D12", "GPIO144_B13"; 636*724ba675SRob Herring ste,config = <&gpio_in_nopull>; 637*724ba675SRob Herring }; 638*724ba675SRob Herring }; 639*724ba675SRob Herring }; 640*724ba675SRob Herring /* GPIO-based I2C bus for ALPS HSCD compass */ 641*724ba675SRob Herring i2c-gpio-1 { 642*724ba675SRob Herring i2c_gpio_1_default: i2c_gpio_1 { 643*724ba675SRob Herring kyle_cfg1 { 644*724ba675SRob Herring pins = "GPIO151_B17", "GPIO152_D16"; 645*724ba675SRob Herring ste,config = <&gpio_in_nopull>; 646*724ba675SRob Herring }; 647*724ba675SRob Herring }; 648*724ba675SRob Herring }; 649*724ba675SRob Herring wlan { 650*724ba675SRob Herring wlan_default_mode: wlan_default { 651*724ba675SRob Herring kyle_cfg1 { 652*724ba675SRob Herring pins = "GPIO216_AG12"; 653*724ba675SRob Herring ste,config = <&gpio_in_pd>; 654*724ba675SRob Herring }; 655*724ba675SRob Herring }; 656*724ba675SRob Herring wlan_en_default_mode: wlan_en_default { 657*724ba675SRob Herring kyle_cfg2 { 658*724ba675SRob Herring pins = "GPIO215_AH13"; 659*724ba675SRob Herring ste,config = <&gpio_out_lo>; 660*724ba675SRob Herring }; 661*724ba675SRob Herring }; 662*724ba675SRob Herring }; 663*724ba675SRob Herring bluetooth { 664*724ba675SRob Herring bluetooth_default_mode: bluetooth_default { 665*724ba675SRob Herring kyle_cfg1 { 666*724ba675SRob Herring pins = "GPIO199_AH23", "GPIO222_AJ9"; 667*724ba675SRob Herring ste,config = <&gpio_out_lo>; 668*724ba675SRob Herring }; 669*724ba675SRob Herring kyle_cfg2 { 670*724ba675SRob Herring pins = "GPIO97_D9"; 671*724ba675SRob Herring ste,config = <&gpio_in_nopull>; 672*724ba675SRob Herring }; 673*724ba675SRob Herring }; 674*724ba675SRob Herring }; 675*724ba675SRob Herring vibrator { 676*724ba675SRob Herring vibrator_default: vibrator_default { 677*724ba675SRob Herring kyle_cfg1 { 678*724ba675SRob Herring pins = "GPIO195_AG28"; /* MOT_EN */ 679*724ba675SRob Herring ste,config = <&gpio_out_lo>; 680*724ba675SRob Herring }; 681*724ba675SRob Herring }; 682*724ba675SRob Herring }; 683*724ba675SRob Herring /* Interrupt line for the Melfas MMS134S touchscreen */ 684*724ba675SRob Herring touchscreen { 685*724ba675SRob Herring mms134s_kyle_default: mms134s_kyle { 686*724ba675SRob Herring kyle_cfg1 { 687*724ba675SRob Herring pins = "GPIO218_AH11"; 688*724ba675SRob Herring ste,config = <&gpio_in_nopull>; 689*724ba675SRob Herring }; 690*724ba675SRob Herring }; 691*724ba675SRob Herring }; 692*724ba675SRob Herring g05ta03 { 693*724ba675SRob Herring g05ta03_kyle_default: g05ta03 { 694*724ba675SRob Herring /* Reset line, start out de-asserted */ 695*724ba675SRob Herring kyle_cfg1 { 696*724ba675SRob Herring pins = "GPIO21_AB3"; 697*724ba675SRob Herring ste,config = <&gpio_out_hi>; 698*724ba675SRob Herring }; 699*724ba675SRob Herring /* GPS_ON_OFF, start out deasserted (off) */ 700*724ba675SRob Herring kyle_cfg2 { 701*724ba675SRob Herring pins = "GPIO86_C6"; 702*724ba675SRob Herring ste,config = <&gpio_out_lo>; 703*724ba675SRob Herring }; 704*724ba675SRob Herring }; 705*724ba675SRob Herring }; 706*724ba675SRob Herring}; 707*724ba675SRob Herring 708*724ba675SRob Herring&ab8505_gpio { 709*724ba675SRob Herring /* Hog a few default settings */ 710*724ba675SRob Herring pinctrl-names = "default"; 711*724ba675SRob Herring pinctrl-0 = <&gpio_default>; 712*724ba675SRob Herring 713*724ba675SRob Herring gpio { 714*724ba675SRob Herring gpio_default: gpio_default { 715*724ba675SRob Herring kyle_mux { 716*724ba675SRob Herring /* Change unused pins to GPIO mode */ 717*724ba675SRob Herring function = "gpio"; 718*724ba675SRob Herring groups = "gpio3_a_1", /* default: SysClkReq4 */ 719*724ba675SRob Herring "gpio14_a_1"; /* default: PWMOut1 */ 720*724ba675SRob Herring }; 721*724ba675SRob Herring kyle_cfg1 { 722*724ba675SRob Herring pins = "GPIO11_B17", "GPIO13_D17", "GPIO50_L4"; 723*724ba675SRob Herring bias-disable; 724*724ba675SRob Herring }; 725*724ba675SRob Herring }; 726*724ba675SRob Herring }; 727*724ba675SRob Herring}; 728