Back to home page

OSCL-LXR

 
 

    


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 };