0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Devicetree for the Samsung Galaxy Exhibit SGH-T599 also known as Codina-TMO,
0004 * the "TMO" shall be read "T-Mobile" as this phone was produced exlusively
0005 * for T-Mobile in the United States.
0006 *
0007 * This phone is closely related to the Codina, but has:
0008 * - No CPU speed cap, full ~1GHz rate
0009 * - Different power management IC, AB8505
0010 * - As AB8505 has a micro USB phy, no TI TSU6111
0011 * - Different power routing such as the removal of the external LDO for the
0012 * touchscreen in favor of using the AB8505
0013 * - Using a regulator for the key backlight LED
0014 * - Using the Samsung S6D27A1 panel by default
0015 * - The panel is using one of the ordinary AB8505 regulators for 1.8V
0016 * - WiFi/Bluetooth combi chip upgraded to BCM4334
0017 * - GPIO for backlight control moved from 68 to 69
0018 */
0019
0020 /dts-v1/;
0021 #include "ste-db8500.dtsi"
0022 #include "ste-ab8505.dtsi"
0023 #include "ste-dbx5x0-pinctrl.dtsi"
0024 #include <dt-bindings/gpio/gpio.h>
0025 #include <dt-bindings/leds/common.h>
0026 #include <dt-bindings/input/input.h>
0027 #include <dt-bindings/interrupt-controller/irq.h>
0028
0029 / {
0030 model = "Samsung Galaxy Exhibit (SGH-T599)";
0031 compatible = "samsung,codina-tmo", "st-ericsson,u8500";
0032
0033 chosen {
0034 stdout-path = &serial2;
0035 };
0036
0037 battery: battery {
0038 compatible = "samsung,eb425161lu";
0039 };
0040
0041 thermal-zones {
0042 battery-thermal {
0043 /* This zone will be polled by the battery temperature code */
0044 polling-delay = <0>;
0045 polling-delay-passive = <0>;
0046 thermal-sensors = <&bat_therm>;
0047 };
0048 };
0049
0050 bat_therm: thermistor {
0051 compatible = "samsung,1404-001221";
0052 io-channels = <&gpadc 0x02>; /* BatTemp */
0053 pullup-uv = <1800000>;
0054 pullup-ohm = <230000>;
0055 pulldown-ohm = <0>;
0056 #thermal-sensor-cells = <0>;
0057 };
0058
0059 /* TI TXS0206 level translator for 2.9 V */
0060 sd_level_translator: regulator-gpio {
0061 compatible = "regulator-fixed";
0062
0063 /* GPIO87 EN */
0064 gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
0065 enable-active-high;
0066
0067 regulator-name = "sd-level-translator";
0068 regulator-min-microvolt = <2900000>;
0069 regulator-max-microvolt = <2900000>;
0070 regulator-type = "voltage";
0071
0072 startup-delay-us = <200>;
0073
0074 pinctrl-names = "default";
0075 pinctrl-0 = <&sd_level_translator_default>;
0076 };
0077
0078 /* External LDO MIC5366-3.3YMT for eMMC */
0079 ldo_3v3_reg: regulator-gpio-ldo-3v3 {
0080 compatible = "regulator-fixed";
0081 /* Supplied in turn by VBAT */
0082 regulator-name = "VMEM_3V3";
0083 regulator-min-microvolt = <3300000>;
0084 regulator-max-microvolt = <3300000>;
0085 gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
0086 startup-delay-us = <5000>;
0087 enable-active-high;
0088 pinctrl-names = "default";
0089 pinctrl-0 = <&emmc_ldo_en_default_mode>;
0090 };
0091
0092 /*
0093 * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
0094 * LCD_PWR_EN controls both the 3.0V output.
0095 */
0096 lcd_3v0_reg: regulator-gpio-lcd-3v0 {
0097 compatible = "regulator-fixed";
0098 /* Supplied in turn by VBAT */
0099 regulator-name = "VREG_LCD_3.0V";
0100 regulator-min-microvolt = <3000000>;
0101 regulator-max-microvolt = <3000000>;
0102 /* GPIO219 controls this regulator */
0103 gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
0104 enable-active-high;
0105 pinctrl-names = "default";
0106 pinctrl-0 = <&lcd_pwr_en_default_mode>;
0107 };
0108
0109 /*
0110 * This regulator is a GPIO line that drives the Broadcom WLAN
0111 * line WL_REG_ON high and enables the internal regulators
0112 * inside the chip. Unfortunatley it is erroneously named
0113 * WLAN_RST_N on the schematic but it is not a reset line.
0114 *
0115 * The voltage specified here is only used to determine the OCR mask,
0116 * the for the SDIO connector, the chip is actually connected
0117 * directly to VBAT.
0118 */
0119 wl_reg: regulator-gpio-wlan {
0120 compatible = "regulator-fixed";
0121 regulator-name = "WL_REG_ON";
0122 regulator-min-microvolt = <3000000>;
0123 regulator-max-microvolt = <3000000>;
0124 startup-delay-us = <100000>;
0125 /* GPIO215 (WLAN_RST_N to WL_REG_ON) */
0126 gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
0127 enable-active-high;
0128 pinctrl-names = "default";
0129 pinctrl-0 = <&wlan_ldo_en_default>;
0130 };
0131
0132 vibrator {
0133 compatible = "gpio-vibrator";
0134 /* GPIO195 "MOT_EN" */
0135 enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
0136 pinctrl-names = "default";
0137 pinctrl-0 = <&vibrator_default>;
0138 };
0139
0140 gpio-keys {
0141 compatible = "gpio-keys";
0142 pinctrl-names = "default";
0143 pinctrl-0 = <&gpio_keys_default_mode>;
0144
0145 button-home {
0146 linux,code = <KEY_HOME>;
0147 label = "HOME";
0148 /* GPIO91 */
0149 gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
0150 };
0151 button-volup {
0152 linux,code = <KEY_VOLUMEUP>;
0153 label = "VOL+";
0154 /* GPIO67 */
0155 gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
0156 };
0157 button-voldown {
0158 linux,code = <KEY_VOLUMEDOWN>;
0159 label = "VOL-";
0160 /* GPIO92 */
0161 gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
0162 };
0163 };
0164
0165 led-touchkeys {
0166 compatible = "regulator-led";
0167 vled-supply = <&ab8500_ldo_aux4_reg>; // 3.3V
0168 default-state = "on";
0169 function = LED_FUNCTION_KBD_BACKLIGHT;
0170 color = <LED_COLOR_ID_WHITE>;
0171 };
0172
0173 ktd253: backlight {
0174 compatible = "kinetic,ktd253";
0175 /* GPIO69 is used on Codina R0.4 and Codina TMO */
0176 enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
0177 /* Default to 13/32 brightness */
0178 default-brightness = <13>;
0179 pinctrl-names = "default";
0180 pinctrl-0 = <&ktd253_backlight_default_mode>;
0181 };
0182
0183 /* Richtek RT8515GQW Flash LED Driver IC */
0184 flash {
0185 compatible = "richtek,rt8515";
0186 /* GPIO 140 */
0187 enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
0188 /* GPIO 141 */
0189 ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
0190 /*
0191 * RFS is 16 kOhm and RTS is 100 kOhm giving
0192 * the flash max current 343mA and torch max
0193 * current 55 mA.
0194 */
0195 richtek,rfs-ohms = <16000>;
0196 richtek,rts-ohms = <100000>;
0197 pinctrl-names = "default";
0198 pinctrl-0 = <&gpio_flash_default_mode>;
0199
0200 led {
0201 function = LED_FUNCTION_FLASH;
0202 color = <LED_COLOR_ID_WHITE>;
0203 flash-max-timeout-us = <250000>;
0204 flash-max-microamp = <343750>;
0205 led-max-microamp = <55000>;
0206 };
0207 };
0208
0209 /* Bit-banged I2C on GPIO143 and GPIO144 also called "SUBPMU I2C" */
0210 i2c-gpio-0 {
0211 compatible = "i2c-gpio";
0212 sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
0213 scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
0214 pinctrl-names = "default";
0215 pinctrl-0 = <&i2c_gpio_0_default>;
0216 #address-cells = <1>;
0217 #size-cells = <0>;
0218
0219 /* TODO: this should also be used by the SM5103 Camera power management unit */
0220 };
0221
0222 /* Bit-banged I2C on GPIO151 and GPIO152 also called "COMP I2C" */
0223 i2c-gpio-1 {
0224 compatible = "i2c-gpio";
0225 sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
0226 scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
0227 pinctrl-names = "default";
0228 pinctrl-0 = <&i2c_gpio_1_default>;
0229 #address-cells = <1>;
0230 #size-cells = <0>;
0231
0232 magnetometer@c {
0233 compatible = "alps,hscdtd008a";
0234 reg = <0x0c>;
0235 clock-frequency = <400000>;
0236
0237 avdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
0238 dvdd-supply = <&ab8500_ldo_aux8_reg>; // 1.8V
0239 };
0240 };
0241
0242 spi-gpio-0 {
0243 compatible = "spi-gpio";
0244 /* Clock on GPIO220, pin SCL */
0245 sck-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
0246 /* MOSI on GPIO224, pin SDI "slave data in" */
0247 mosi-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
0248 /* MISO on GPIO225, pin SDO "slave data out" */
0249 miso-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
0250 /* Chip select on GPIO201 */
0251 cs-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
0252 num-chipselects = <1>;
0253
0254 pinctrl-names = "default";
0255 pinctrl-0 = <&spi_gpio_0_default>;
0256 #address-cells = <1>;
0257 #size-cells = <0>;
0258
0259 panel@0 {
0260 compatible = "samsung,s6d27a1";
0261 spi-max-frequency = <1200000>;
0262 /* TYPE 3: inverse clock polarity and phase */
0263 spi-cpha;
0264 spi-cpol;
0265
0266 reg = <0>;
0267 vci-supply = <&lcd_3v0_reg>;
0268 vccio-supply = <&ab8500_ldo_aux6_reg>;
0269
0270 /* Reset on GPIO139 */
0271 reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
0272 /* LCD_VGH/LCD_DETECT, ESD IRQ on GPIO93 */
0273 interrupt-parent = <&gpio2>;
0274 interrupts = <29 IRQ_TYPE_EDGE_RISING>;
0275
0276 pinctrl-names = "default";
0277 pinctrl-0 = <&panel_default_mode>;
0278 backlight = <&ktd253>;
0279
0280 port {
0281 panel_in: endpoint {
0282 remote-endpoint = <&display_out>;
0283 };
0284 };
0285 };
0286 };
0287
0288 soc {
0289 /* External Micro SD slot */
0290 mmc@80126000 {
0291 arm,primecell-periphid = <0x10480180>;
0292 max-frequency = <100000000>;
0293 bus-width = <4>;
0294 cap-sd-highspeed;
0295 cap-mmc-highspeed;
0296 st,sig-pin-fbclk;
0297 full-pwr-cycle;
0298 /* MMC is powered by AUX3 1.2V .. 2.91V */
0299 vmmc-supply = <&ab8500_ldo_aux3_reg>;
0300 /* 2.9 V level translator is using AUX3 at 2.9 V as well */
0301 vqmmc-supply = <&sd_level_translator>;
0302 pinctrl-names = "default", "sleep";
0303 pinctrl-0 = <&mc0_a_2_default>;
0304 pinctrl-1 = <&mc0_a_2_sleep>;
0305 cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
0306 status = "okay";
0307 };
0308
0309 /* WLAN SDIO channel */
0310 mmc@80118000 {
0311 arm,primecell-periphid = <0x10480180>;
0312 max-frequency = <50000000>;
0313 bus-width = <4>;
0314 non-removable;
0315 cap-sd-highspeed;
0316 pinctrl-names = "default", "sleep";
0317 pinctrl-0 = <&mc1_a_2_default>;
0318 pinctrl-1 = <&mc1_a_2_sleep>;
0319 /*
0320 * GPIO-controlled voltage enablement: this drives
0321 * the WL_REG_ON line high when we use this device.
0322 * Represented as regulator to fill OCR mask.
0323 */
0324 vmmc-supply = <&wl_reg>;
0325
0326 #address-cells = <1>;
0327 #size-cells = <0>;
0328 status = "okay";
0329
0330 wifi@1 {
0331 compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
0332 reg = <1>;
0333 /* GPIO216 WL_HOST_WAKE */
0334 interrupt-parent = <&gpio6>;
0335 interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
0336 interrupt-names = "host-wake";
0337 pinctrl-names = "default";
0338 pinctrl-0 = <&wlan_default_mode>;
0339 };
0340 };
0341
0342 /* eMMC */
0343 mmc@80005000 {
0344 arm,primecell-periphid = <0x10480180>;
0345 max-frequency = <100000000>;
0346 bus-width = <8>;
0347 non-removable;
0348 cap-mmc-highspeed;
0349 mmc-ddr-1_8v;
0350 no-sdio;
0351 no-sd;
0352 vmmc-supply = <&ldo_3v3_reg>;
0353 pinctrl-names = "default", "sleep";
0354 /*
0355 * GPIO130 will be set to input no pull-up resulting in a resistor
0356 * pulling the reset high and taking the memory out of reset.
0357 */
0358 pinctrl-0 = <&mc2_a_1_default>;
0359 pinctrl-1 = <&mc2_a_1_sleep>;
0360 status = "okay";
0361 };
0362
0363 /* GBF (Bluetooth) UART */
0364 uart@80120000 {
0365 pinctrl-names = "default", "sleep";
0366 pinctrl-0 = <&u0_a_1_default>;
0367 pinctrl-1 = <&u0_a_1_sleep>;
0368 status = "okay";
0369
0370 bluetooth {
0371 /* BCM4334B0 actually */
0372 compatible = "brcm,bcm4330-bt";
0373 /* GPIO222 rail BT_VREG_EN to BT_REG_ON */
0374 shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
0375 /* BT_WAKE on GPIO199 */
0376 device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
0377 /* BT_HOST_WAKE on GPIO97 */
0378 /* FIXME: convert to interrupt */
0379 host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
0380 /* BT_RST_N on GPIO209 */
0381 reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>;
0382 pinctrl-names = "default";
0383 pinctrl-0 = <&bluetooth_default_mode>;
0384 };
0385 };
0386
0387 /* GPS UART */
0388 uart@80121000 {
0389 status = "okay";
0390 pinctrl-names = "default", "sleep";
0391 /* CTS/RTS is not used, CTS is repurposed as GPIO */
0392 pinctrl-0 = <&u1rxtx_a_1_default>;
0393 pinctrl-1 = <&u1rxtx_a_1_sleep>;
0394 /* FIXME: add a device for the GPS here */
0395 };
0396
0397 /* Debugging console UART connected to AB8505 */
0398 uart@80007000 {
0399 status = "okay";
0400 pinctrl-names = "default", "sleep";
0401 pinctrl-0 = <&u2rxtx_c_1_default>;
0402 pinctrl-1 = <&u2rxtx_c_1_sleep>;
0403 };
0404
0405 prcmu@80157000 {
0406 ab8505 {
0407 phy {
0408 pinctrl-names = "default", "sleep";
0409 pinctrl-0 = <&usb_a_1_default>;
0410 pinctrl-1 = <&usb_a_1_sleep>;
0411 };
0412
0413 ab8500_fg {
0414 line-impedance-micro-ohms = <36000>;
0415 };
0416
0417 /* This is mostly identical to the Codina v0.4 regulators */
0418 regulator {
0419 ab8500_ldo_aux1 {
0420 regulator-name = "v-sensors-vdd";
0421 regulator-min-microvolt = <3000000>;
0422 regulator-max-microvolt = <3300000>;
0423 };
0424
0425 ab8500_ldo_aux2 {
0426 regulator-name = "v-aux2";
0427 regulator-min-microvolt = <3300000>;
0428 regulator-max-microvolt = <3300000>;
0429 };
0430
0431 ab8500_ldo_aux3 {
0432 regulator-name = "v-mmc-sd";
0433 };
0434
0435 ab8500_ldo_aux4 {
0436 regulator-name = "v-aux4";
0437 /*
0438 * Providing some span here makes the touchkey
0439 * LEDs actually dimmable.
0440 */
0441 regulator-min-microvolt = <1100000>;
0442 regulator-max-microvolt = <3300000>;
0443 };
0444
0445 ab8500_ldo_aux5 {
0446 regulator-name = "v-aux5";
0447 regulator-min-microvolt = <1800000>;
0448 regulator-max-microvolt = <1800000>;
0449 };
0450
0451 ab8500_ldo_aux6 {
0452 /* 1.8 V to the display */
0453 regulator-name = "v-aux6";
0454 regulator-min-microvolt = <1800000>;
0455 regulator-max-microvolt = <1800000>;
0456 };
0457
0458 ab8500_ldo_aux8 {
0459 regulator-name = "v-sensors-vio";
0460 };
0461 };
0462 };
0463 };
0464
0465 /* I2C0 also known as "AGC I2C" */
0466 i2c@80004000 {
0467 status = "okay";
0468 pinctrl-names = "default", "sleep";
0469 pinctrl-0 = <&i2c0_a_1_default>;
0470 pinctrl-1 = <&i2c0_a_1_sleep>;
0471
0472 proximity@39 {
0473 /* Codina has the Amstaos TMD2672 */
0474 compatible = "amstaos,tmd2672";
0475 clock-frequency = <400000>;
0476 reg = <0x39>;
0477
0478 /* IRQ on GPIO146 "PS_INT" */
0479 interrupt-parent = <&gpio4>;
0480 interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
0481 vdd-supply = <&ab8500_ldo_aux1_reg>;
0482 vddio-supply = <&ab8500_ldo_aux8_reg>;
0483 pinctrl-names = "default";
0484 pinctrl-0 = <&tmd2672_codina_default>;
0485 };
0486 };
0487
0488 /* I2C2 on GPIO10 and GPIO11 also called "SENSORS I2C" */
0489 i2c@80128000 {
0490 status = "okay";
0491 pinctrl-names = "default", "sleep";
0492 pinctrl-0 = <&i2c2_b_2_default>;
0493 pinctrl-1 = <&i2c2_b_2_sleep>;
0494
0495 /* Bosch BMA254 accelerometer */
0496 accelerometer@18 {
0497 compatible = "bosch,bma254";
0498 reg = <0x18>;
0499 mount-matrix = "0", "1", "0",
0500 "-1", "0", "0",
0501 "0", "0", "1";
0502 vddio-supply = <&ab8500_ldo_aux8_reg>; // 1.8V
0503 vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
0504 };
0505 };
0506
0507 /* I2C3 */
0508 i2c@80110000 {
0509 status = "okay";
0510
0511 pinctrl-names = "default", "sleep";
0512 pinctrl-0 = <&i2c3_c_2_default>;
0513 pinctrl-1 = <&i2c3_c_2_sleep>;
0514
0515 /* TODO: write bindings and driver for this touchscreen */
0516
0517 /* Zinitix BT404 ISP part */
0518 isp@50 {
0519 compatible = "zinitix,bt404-isp";
0520 reg = <0x50>;
0521 pinctrl-names = "default";
0522 pinctrl-0 = <&tsp_default>;
0523 };
0524
0525 /* Zinitix BT404 touchscreen, also has the touchkeys for menu and back */
0526 touchscreen@20 {
0527 compatible = "zinitix,bt404";
0528 reg = <0x20>;
0529 /* GPIO218 (TSP_INT_1V8) */
0530 interrupt-parent = <&gpio6>;
0531 interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
0532 vcca-supply = <&ab8500_ldo_aux2_reg>; // 3.3V
0533 vdd-supply = <&ab8500_ldo_aux5_reg>; // 1.8V
0534 zinitix,mode = <2>;
0535 touchscreen-size-x = <480>;
0536 touchscreen-size-y = <800>;
0537 pinctrl-names = "default";
0538 pinctrl-0 = <&tsp_default>;
0539 };
0540 };
0541
0542 mcde@a0350000 {
0543 status = "okay";
0544 pinctrl-names = "default";
0545 pinctrl-0 = <&dpi_default_mode>;
0546
0547 port {
0548 display_out: endpoint {
0549 remote-endpoint = <&panel_in>;
0550 };
0551 };
0552 };
0553 };
0554 };
0555
0556 &pinctrl {
0557 /*
0558 * This extends the MC0_A_2 default config to include
0559 * the card detect GPIO217 line.
0560 */
0561 sdi0 {
0562 mc0_a_2_default {
0563 default_cfg4 {
0564 pins = "GPIO217_AH12"; /* card detect */
0565 ste,config = <&gpio_in_pd>;
0566 };
0567 };
0568 };
0569 sdi2 {
0570 /*
0571 * GPIO130 should be set in GPIO mode and
0572 * pulled down. (Not connected.)
0573 */
0574 mc2_a_1_default {
0575 default_cfg2 {
0576 pins = "GPIO130_C8"; /* FBCLK */
0577 ste,config = <&gpio_in_pd>;
0578 };
0579 };
0580 };
0581 /* GPIO that enables the 2.9V SD card level translator */
0582 sd-level-translator {
0583 sd_level_translator_default: sd_level_translator_default {
0584 /* level shifter on GPIO87 */
0585 codina_cfg1 {
0586 pins = "GPIO87_B3";
0587 ste,config = <&gpio_out_hi>;
0588 };
0589 };
0590 };
0591 /* GPIO that enables the LDO regulator for the eMMC */
0592 emmc-ldo {
0593 emmc_ldo_en_default_mode: emmc_ldo_default {
0594 /* LDO enable on GPIO223 */
0595 codina_cfg1 {
0596 pins = "GPIO223_AH9";
0597 ste,config = <&gpio_out_hi>;
0598 };
0599 };
0600 };
0601 /* GPIOs for panel control */
0602 panel {
0603 panel_default_mode: panel_default {
0604 codina_cfg1 {
0605 /* Reset line */
0606 pins = "GPIO139_C9";
0607 ste,config = <&gpio_out_lo>;
0608 };
0609 codina_cfg2 {
0610 /* ESD IRQ line "LCD detect" */
0611 pins = "GPIO93_B7";
0612 ste,config = <&gpio_in_nopull>;
0613 };
0614 };
0615 };
0616 /* GPIO that enables the LDO regulator for the LCD display */
0617 lcd-ldo {
0618 lcd_pwr_en_default_mode: lcd_pwr_en_default {
0619 /* LCD_PWR_EN on GPIO219 */
0620 codina_cfg1 {
0621 pins = "GPIO219_AG10";
0622 ste,config = <&gpio_out_hi>;
0623 };
0624 };
0625 };
0626 /* GPIO that enables the WLAN internal LDO regulators */
0627 wlan-ldo {
0628 wlan_ldo_en_default: wlan_ldo_default {
0629 /* GPIO215 named WLAN_RST_N */
0630 codina_cfg1 {
0631 pins = "GPIO215_AH13";
0632 ste,config = <&gpio_out_lo>;
0633 };
0634 };
0635 };
0636 /* Backlight GPIO */
0637 backlight {
0638 ktd253_backlight_default_mode: backlight_default {
0639 skomer_cfg1 {
0640 pins = "GPIO69_E2"; /* LCD_BL_CTRL */
0641 ste,config = <&gpio_out_lo>;
0642 };
0643 };
0644 };
0645 /* Flash and torch */
0646 flash {
0647 gpio_flash_default_mode: flash_default {
0648 codina_cfg1 {
0649 pins = "GPIO140_B11", "GPIO141_C12";
0650 ste,config = <&gpio_out_lo>;
0651 };
0652 };
0653 };
0654 /* GPIO keys */
0655 gpio-keys {
0656 gpio_keys_default_mode: gpio_keys_default {
0657 skomer_cfg1 {
0658 pins = "GPIO67_G2", /* VOL UP */
0659 "GPIO91_B6", /* HOME */
0660 "GPIO92_D6"; /* VOL DOWN */
0661 ste,config = <&gpio_in_pu>;
0662 };
0663 };
0664 };
0665 /* Interrupt line for the Zinitix BT404 touchscreen */
0666 tsp {
0667 tsp_default: tsp_default {
0668 codina_cfg1 {
0669 pins = "GPIO218_AH11"; /* TSP_INT_1V8 */
0670 ste,config = <&gpio_in_nopull>;
0671 };
0672 };
0673 };
0674 /* Interrupt line for light/proximity sensor TMD2672 */
0675 tmd2672 {
0676 tmd2672_codina_default: tmd2672_codina {
0677 codina_cfg1 {
0678 pins = "GPIO146_D13";
0679 ste,config = <&gpio_in_nopull>;
0680 };
0681 };
0682 };
0683 /* GPIO-based I2C bus for subpmu */
0684 i2c-gpio-0 {
0685 i2c_gpio_0_default: i2c_gpio_0 {
0686 codina_cfg1 {
0687 pins = "GPIO143_D12", "GPIO144_B13";
0688 ste,config = <&gpio_in_nopull>;
0689 };
0690 };
0691 };
0692 /* GPIO-based I2C bus for the NFC */
0693 i2c-gpio-1 {
0694 i2c_gpio_1_default: i2c_gpio_1 {
0695 codina_cfg1 {
0696 pins = "GPIO151_D17", "GPIO152_D16";
0697 ste,config = <&gpio_in_nopull>;
0698 };
0699 };
0700 };
0701 /* GPIO-based SPI bus for the display */
0702 spi-gpio-0 {
0703 spi_gpio_0_default: spi_gpio_0_d {
0704 codina_cfg1 {
0705 pins = "GPIO220_AH10", "GPIO201_AF24", "GPIO224_AG9";
0706 ste,config = <&gpio_out_hi>;
0707 };
0708 codina_cfg2 {
0709 pins = "GPIO225_AG8";
0710 /* Needs pull down, no pull down resistor on board */
0711 ste,config = <&gpio_in_pd>;
0712 };
0713 };
0714 spi_gpio_0_sleep: spi_gpio_0_s {
0715 codina_cfg1 {
0716 pins = "GPIO220_AH10", "GPIO201_AF24",
0717 "GPIO224_AG9", "GPIO225_AG8";
0718 ste,config = <&gpio_out_hi>;
0719 };
0720 };
0721 };
0722 wlan {
0723 wlan_default_mode: wlan_default {
0724 /* GPIO216 for WL_HOST_WAKE */
0725 codina_cfg2 {
0726 pins = "GPIO216_AG12";
0727 ste,config = <&gpio_in_pd>;
0728 };
0729 };
0730 };
0731 bluetooth {
0732 bluetooth_default_mode: bluetooth_default {
0733 /* GPIO199 BT_WAKE and GPIO222 BT_VREG_ON */
0734 codina_cfg1 {
0735 pins = "GPIO199_AH23", "GPIO222_AJ9";
0736 ste,config = <&gpio_out_lo>;
0737 };
0738 /* GPIO97 BT_HOST_WAKE */
0739 codina_cfg2 {
0740 pins = "GPIO97_D9";
0741 ste,config = <&gpio_in_nopull>;
0742 };
0743 /* GPIO209 BT_RST_N */
0744 codina_cfg3 {
0745 pins = "GPIO209_AG15";
0746 ste,config = <&gpio_out_hi>;
0747 };
0748 };
0749 };
0750 vibrator {
0751 vibrator_default: vibrator_default {
0752 codina_cfg1 {
0753 pins = "GPIO195_AG28"; /* MOT_EN */
0754 ste,config = <&gpio_out_lo>;
0755 };
0756 };
0757 };
0758 mcde {
0759 dpi_default_mode: dpi_default {
0760 default_mux1 {
0761 /* Mux in all the data lines */
0762 function = "lcd";
0763 groups =
0764 /* Data lines D0-D7 GPIO70..GPIO77 */
0765 "lcd_d0_d7_a_1",
0766 /* Data lines D8-D11 GPIO78..GPIO81 */
0767 "lcd_d8_d11_a_1",
0768 /* Data lines D12-D15 GPIO82..GPIO85 */
0769 "lcd_d12_d15_a_1",
0770 /* Data lines D16-D23 GPIO161..GPIO168 */
0771 "lcd_d16_d23_b_1";
0772 };
0773 default_mux2 {
0774 function = "lcda";
0775 /* Clock line on GPIO150, DE, VSO, HSO on GPIO169..GPIO171 */
0776 groups = "lcdaclk_b_1", "lcda_b_1";
0777 };
0778 /* Input, no pull-up is the default state for pins used for an alt function */
0779 default_cfg1 {
0780 pins = "GPIO150_C14", "GPIO169_D22", "GPIO170_C23", "GPIO171_D23";
0781 ste,config = <&in_nopull>;
0782 };
0783 };
0784 };
0785 };