The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/src/arm/ste-ux500-samsung-codina-tmo.dts

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 // SPDX-License-Identifier: GPL-2.0-only
    2 /*
    3  * Devicetree for the Samsung Galaxy Exhibit SGH-T599 also known as Codina-TMO,
    4  * the "TMO" shall be read "T-Mobile" as this phone was produced exlusively
    5  * for T-Mobile in the United States.
    6  *
    7  * This phone is closely related to the Codina, but has:
    8  * - No CPU speed cap, full ~1GHz rate
    9  * - Different power management IC, AB8505
   10  * - As AB8505 has a micro USB phy, no TI TSU6111
   11  * - Different power routing such as the removal of the external LDO for the
   12  *   touchscreen in favor of using the AB8505
   13  * - Using a regulator for the key backlight LED
   14  * - Using the Samsung S6D27A1 panel by default
   15  * - The panel is using one of the ordinary AB8505 regulators for 1.8V
   16  * - WiFi/Bluetooth combi chip upgraded to BCM4334
   17  * - GPIO for backlight control moved from 68 to 69
   18  */
   19 
   20 /dts-v1/;
   21 #include "ste-db8500.dtsi"
   22 #include "ste-ab8505.dtsi"
   23 #include "ste-dbx5x0-pinctrl.dtsi"
   24 #include <dt-bindings/gpio/gpio.h>
   25 #include <dt-bindings/leds/common.h>
   26 #include <dt-bindings/input/input.h>
   27 #include <dt-bindings/interrupt-controller/irq.h>
   28 
   29 / {
   30         model = "Samsung Galaxy Exhibit (SGH-T599)";
   31         compatible = "samsung,codina-tmo", "st-ericsson,u8500";
   32 
   33         chosen {
   34                 stdout-path = &serial2;
   35         };
   36 
   37         battery: battery {
   38                 compatible = "samsung,eb425161lu";
   39         };
   40 
   41         thermal-zones {
   42                 battery-thermal {
   43                         /* This zone will be polled by the battery temperature code */
   44                         polling-delay = <0>;
   45                         polling-delay-passive = <0>;
   46                         thermal-sensors = <&bat_therm>;
   47                 };
   48         };
   49 
   50         bat_therm: thermistor {
   51                 compatible = "samsung,1404-001221";
   52                 io-channels = <&gpadc 0x02>; /* BatTemp */
   53                 pullup-uv = <1800000>;
   54                 pullup-ohm = <230000>;
   55                 pulldown-ohm = <0>;
   56                 #thermal-sensor-cells = <0>;
   57         };
   58 
   59         /* TI TXS0206 level translator for 2.9 V */
   60         sd_level_translator: regulator-gpio {
   61                 compatible = "regulator-fixed";
   62 
   63                 /* GPIO87 EN */
   64                 gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
   65                 enable-active-high;
   66 
   67                 regulator-name = "sd-level-translator";
   68                 regulator-min-microvolt = <2900000>;
   69                 regulator-max-microvolt = <2900000>;
   70                 regulator-type = "voltage";
   71 
   72                 startup-delay-us = <200>;
   73 
   74                 pinctrl-names = "default";
   75                 pinctrl-0 = <&sd_level_translator_default>;
   76         };
   77 
   78         /* External LDO MIC5366-3.3YMT for eMMC */
   79         ldo_3v3_reg: regulator-gpio-ldo-3v3 {
   80                 compatible = "regulator-fixed";
   81                 /* Supplied in turn by VBAT */
   82                 regulator-name = "VMEM_3V3";
   83                 regulator-min-microvolt = <3300000>;
   84                 regulator-max-microvolt = <3300000>;
   85                 gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
   86                 startup-delay-us = <5000>;
   87                 enable-active-high;
   88                 pinctrl-names = "default";
   89                 pinctrl-0 = <&emmc_ldo_en_default_mode>;
   90         };
   91 
   92         /*
   93          * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
   94          * LCD_PWR_EN controls both the 3.0V output.
   95          */
   96         lcd_3v0_reg: regulator-gpio-lcd-3v0 {
   97                 compatible = "regulator-fixed";
   98                 /* Supplied in turn by VBAT */
   99                 regulator-name = "VREG_LCD_3.0V";
  100                 regulator-min-microvolt = <3000000>;
  101                 regulator-max-microvolt = <3000000>;
  102                 /* GPIO219 controls this regulator */
  103                 gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
  104                 enable-active-high;
  105                 pinctrl-names = "default";
  106                 pinctrl-0 = <&lcd_pwr_en_default_mode>;
  107         };
  108 
  109         /*
  110          * This regulator is a GPIO line that drives the Broadcom WLAN
  111          * line WL_REG_ON high and enables the internal regulators
  112          * inside the chip. Unfortunatley it is erroneously named
  113          * WLAN_RST_N on the schematic but it is not a reset line.
  114          *
  115          * The voltage specified here is only used to determine the OCR mask,
  116          * the for the SDIO connector, the chip is actually connected
  117          * directly to VBAT.
  118          */
  119         wl_reg: regulator-gpio-wlan {
  120                 compatible = "regulator-fixed";
  121                 regulator-name = "WL_REG_ON";
  122                 regulator-min-microvolt = <3000000>;
  123                 regulator-max-microvolt = <3000000>;
  124                 startup-delay-us = <100000>;
  125                 /* GPIO215 (WLAN_RST_N to WL_REG_ON) */
  126                 gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
  127                 enable-active-high;
  128                 pinctrl-names = "default";
  129                 pinctrl-0 = <&wlan_ldo_en_default>;
  130         };
  131 
  132         vibrator {
  133                 compatible = "gpio-vibrator";
  134                 /* GPIO195 "MOT_EN" */
  135                 enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
  136                 pinctrl-names = "default";
  137                 pinctrl-0 = <&vibrator_default>;
  138         };
  139 
  140         gpio-keys {
  141                 compatible = "gpio-keys";
  142                 pinctrl-names = "default";
  143                 pinctrl-0 = <&gpio_keys_default_mode>;
  144 
  145                 button-home {
  146                         linux,code = <KEY_HOME>;
  147                         label = "HOME";
  148                         /* GPIO91 */
  149                         gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
  150                 };
  151                 button-volup {
  152                         linux,code = <KEY_VOLUMEUP>;
  153                         label = "VOL+";
  154                         /* GPIO67 */
  155                         gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
  156                 };
  157                 button-voldown {
  158                         linux,code = <KEY_VOLUMEDOWN>;
  159                         label = "VOL-";
  160                         /* GPIO92 */
  161                         gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
  162                 };
  163         };
  164 
  165         led-touchkeys {
  166                 compatible = "regulator-led";
  167                 vled-supply = <&ab8500_ldo_aux4_reg>; // 3.3V
  168                 default-state = "on";
  169                 function = LED_FUNCTION_KBD_BACKLIGHT;
  170                 color = <LED_COLOR_ID_WHITE>;
  171         };
  172 
  173         ktd253: backlight {
  174                 compatible = "kinetic,ktd253";
  175                 /* GPIO69 is used on Codina R0.4 and Codina TMO */
  176                 enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
  177                 /* Default to 13/32 brightness */
  178                 default-brightness = <13>;
  179                 pinctrl-names = "default";
  180                 pinctrl-0 = <&ktd253_backlight_default_mode>;
  181         };
  182 
  183         /* Richtek RT8515GQW Flash LED Driver IC */
  184         flash {
  185                 compatible = "richtek,rt8515";
  186                 /* GPIO 140 */
  187                 enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
  188                 /* GPIO 141 */
  189                 ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
  190                 /*
  191                  * RFS is 16 kOhm and RTS is 100 kOhm giving
  192                  * the flash max current 343mA and torch max
  193                  * current 55 mA.
  194                  */
  195                 richtek,rfs-ohms = <16000>;
  196                 richtek,rts-ohms = <100000>;
  197                 pinctrl-names = "default";
  198                 pinctrl-0 = <&gpio_flash_default_mode>;
  199 
  200                 led {
  201                         function = LED_FUNCTION_FLASH;
  202                         color = <LED_COLOR_ID_WHITE>;
  203                         flash-max-timeout-us = <250000>;
  204                         flash-max-microamp = <343750>;
  205                         led-max-microamp = <55000>;
  206                 };
  207         };
  208 
  209         /* Bit-banged I2C on GPIO143 and GPIO144 also called "SUBPMU I2C" */
  210         i2c-gpio-0 {
  211                 compatible = "i2c-gpio";
  212                 sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  213                 scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  214                 pinctrl-names = "default";
  215                 pinctrl-0 = <&i2c_gpio_0_default>;
  216                 #address-cells = <1>;
  217                 #size-cells = <0>;
  218 
  219                 /* TODO: this should also be used by the SM5103 Camera power management unit */
  220         };
  221 
  222         /* Bit-banged I2C on GPIO151 and GPIO152 also called "COMP I2C" */
  223         i2c-gpio-1 {
  224                 compatible = "i2c-gpio";
  225                 sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  226                 scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  227                 pinctrl-names = "default";
  228                 pinctrl-0 = <&i2c_gpio_1_default>;
  229                 #address-cells = <1>;
  230                 #size-cells = <0>;
  231 
  232                 magnetometer@c {
  233                         compatible = "alps,hscdtd008a";
  234                         reg = <0x0c>;
  235                         clock-frequency = <400000>;
  236 
  237                         avdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
  238                         dvdd-supply = <&ab8500_ldo_aux8_reg>; // 1.8V
  239                 };
  240         };
  241 
  242         spi-gpio-0 {
  243                 compatible = "spi-gpio";
  244                 /* Clock on GPIO220, pin SCL */
  245                 sck-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
  246                 /* MOSI on GPIO224, pin SDI "slave data in" */
  247                 mosi-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
  248                 /* MISO on GPIO225, pin SDO "slave data out" */
  249                 miso-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
  250                 /* Chip select on GPIO201 */
  251                 cs-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
  252                 num-chipselects = <1>;
  253 
  254                 pinctrl-names = "default";
  255                 pinctrl-0 = <&spi_gpio_0_default>;
  256                 #address-cells = <1>;
  257                 #size-cells = <0>;
  258 
  259                 panel@0 {
  260                         compatible = "samsung,s6d27a1";
  261                         spi-max-frequency = <1200000>;
  262                         /* TYPE 3: inverse clock polarity and phase */
  263                         spi-cpha;
  264                         spi-cpol;
  265 
  266                         reg = <0>;
  267                         vci-supply = <&lcd_3v0_reg>;
  268                         vccio-supply = <&ab8500_ldo_aux6_reg>;
  269 
  270                         /* Reset on GPIO139 */
  271                         reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
  272                         /* LCD_VGH/LCD_DETECT, ESD IRQ on GPIO93 */
  273                         interrupt-parent = <&gpio2>;
  274                         interrupts = <29 IRQ_TYPE_EDGE_RISING>;
  275 
  276                         pinctrl-names = "default";
  277                         pinctrl-0 = <&panel_default_mode>;
  278                         backlight = <&ktd253>;
  279 
  280                         port {
  281                                 panel_in: endpoint {
  282                                         remote-endpoint = <&display_out>;
  283                                 };
  284                         };
  285                 };
  286         };
  287 
  288         soc {
  289                 /* External Micro SD slot */
  290                 mmc@80126000 {
  291                         arm,primecell-periphid = <0x10480180>;
  292                         max-frequency = <100000000>;
  293                         bus-width = <4>;
  294                         cap-sd-highspeed;
  295                         cap-mmc-highspeed;
  296                         st,sig-pin-fbclk;
  297                         full-pwr-cycle;
  298                         /* MMC is powered by AUX3 1.2V .. 2.91V */
  299                         vmmc-supply = <&ab8500_ldo_aux3_reg>;
  300                         /* 2.9 V level translator is using AUX3 at 2.9 V as well */
  301                         vqmmc-supply = <&sd_level_translator>;
  302                         pinctrl-names = "default", "sleep";
  303                         pinctrl-0 = <&mc0_a_2_default>;
  304                         pinctrl-1 = <&mc0_a_2_sleep>;
  305                         cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
  306                         status = "okay";
  307                 };
  308 
  309                 /* WLAN SDIO channel */
  310                 mmc@80118000 {
  311                         arm,primecell-periphid = <0x10480180>;
  312                         max-frequency = <50000000>;
  313                         bus-width = <4>;
  314                         non-removable;
  315                         cap-sd-highspeed;
  316                         pinctrl-names = "default", "sleep";
  317                         pinctrl-0 = <&mc1_a_2_default>;
  318                         pinctrl-1 = <&mc1_a_2_sleep>;
  319                         /*
  320                          * GPIO-controlled voltage enablement: this drives
  321                          * the WL_REG_ON line high when we use this device.
  322                          * Represented as regulator to fill OCR mask.
  323                          */
  324                         vmmc-supply = <&wl_reg>;
  325 
  326                         #address-cells = <1>;
  327                         #size-cells = <0>;
  328                         status = "okay";
  329 
  330                         wifi@1 {
  331                                 compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
  332                                 reg = <1>;
  333                                 /* GPIO216 WL_HOST_WAKE */
  334                                 interrupt-parent = <&gpio6>;
  335                                 interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
  336                                 interrupt-names = "host-wake";
  337                                 pinctrl-names = "default";
  338                                 pinctrl-0 = <&wlan_default_mode>;
  339                         };
  340                 };
  341 
  342                 /* eMMC */
  343                 mmc@80005000 {
  344                         arm,primecell-periphid = <0x10480180>;
  345                         max-frequency = <100000000>;
  346                         bus-width = <8>;
  347                         non-removable;
  348                         cap-mmc-highspeed;
  349                         mmc-ddr-1_8v;
  350                         no-sdio;
  351                         no-sd;
  352                         vmmc-supply = <&ldo_3v3_reg>;
  353                         pinctrl-names = "default", "sleep";
  354                         /*
  355                          * GPIO130 will be set to input no pull-up resulting in a resistor
  356                          * pulling the reset high and taking the memory out of reset.
  357                          */
  358                         pinctrl-0 = <&mc2_a_1_default>;
  359                         pinctrl-1 = <&mc2_a_1_sleep>;
  360                         status = "okay";
  361                 };
  362 
  363                 /* GBF (Bluetooth) UART */
  364                 uart@80120000 {
  365                         pinctrl-names = "default", "sleep";
  366                         pinctrl-0 = <&u0_a_1_default>;
  367                         pinctrl-1 = <&u0_a_1_sleep>;
  368                         status = "okay";
  369 
  370                         bluetooth {
  371                                 /* BCM4334B0 actually */
  372                                 compatible = "brcm,bcm4330-bt";
  373                                 /* GPIO222 rail BT_VREG_EN to BT_REG_ON */
  374                                 shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
  375                                 /* BT_WAKE on GPIO199 */
  376                                 device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
  377                                 /* BT_HOST_WAKE on GPIO97 */
  378                                 /* FIXME: convert to interrupt */
  379                                 host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
  380                                 /* BT_RST_N on GPIO209 */
  381                                 reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>;
  382                                 pinctrl-names = "default";
  383                                 pinctrl-0 = <&bluetooth_default_mode>;
  384                         };
  385                 };
  386 
  387                 /* GPS UART */
  388                 uart@80121000 {
  389                         status = "okay";
  390                         pinctrl-names = "default", "sleep";
  391                         /* CTS/RTS is not used, CTS is repurposed as GPIO */
  392                         pinctrl-0 = <&u1rxtx_a_1_default>;
  393                         pinctrl-1 = <&u1rxtx_a_1_sleep>;
  394                         /* FIXME: add a device for the GPS here */
  395                 };
  396 
  397                 /* Debugging console UART connected to AB8505 */
  398                 uart@80007000 {
  399                         status = "okay";
  400                         pinctrl-names = "default", "sleep";
  401                         pinctrl-0 = <&u2rxtx_c_1_default>;
  402                         pinctrl-1 = <&u2rxtx_c_1_sleep>;
  403                 };
  404 
  405                 prcmu@80157000 {
  406                         ab8505 {
  407                                 phy {
  408                                         pinctrl-names = "default", "sleep";
  409                                         pinctrl-0 = <&usb_a_1_default>;
  410                                         pinctrl-1 = <&usb_a_1_sleep>;
  411                                 };
  412 
  413                                 ab8500_fg {
  414                                         line-impedance-micro-ohms = <36000>;
  415                                 };
  416 
  417                                 /* This is mostly identical to the Codina v0.4 regulators */
  418                                 regulator {
  419                                         ab8500_ldo_aux1 {
  420                                                 regulator-name = "v-sensors-vdd";
  421                                                 regulator-min-microvolt = <3000000>;
  422                                                 regulator-max-microvolt = <3300000>;
  423                                         };
  424 
  425                                         ab8500_ldo_aux2 {
  426                                                 regulator-name = "v-aux2";
  427                                                 regulator-min-microvolt = <3300000>;
  428                                                 regulator-max-microvolt = <3300000>;
  429                                         };
  430 
  431                                         ab8500_ldo_aux3 {
  432                                                 regulator-name = "v-mmc-sd";
  433                                         };
  434 
  435                                         ab8500_ldo_aux4 {
  436                                                 regulator-name = "v-aux4";
  437                                                 /*
  438                                                  * Providing some span here makes the touchkey
  439                                                  * LEDs actually dimmable.
  440                                                  */
  441                                                 regulator-min-microvolt = <1100000>;
  442                                                 regulator-max-microvolt = <3300000>;
  443                                         };
  444 
  445                                         ab8500_ldo_aux5 {
  446                                                 regulator-name = "v-aux5";
  447                                                 regulator-min-microvolt = <1800000>;
  448                                                 regulator-max-microvolt = <1800000>;
  449                                         };
  450 
  451                                         ab8500_ldo_aux6 {
  452                                                 /* 1.8 V to the display */
  453                                                 regulator-name = "v-aux6";
  454                                                 regulator-min-microvolt = <1800000>;
  455                                                 regulator-max-microvolt = <1800000>;
  456                                         };
  457 
  458                                         ab8500_ldo_aux8 {
  459                                                 regulator-name = "v-sensors-vio";
  460                                         };
  461                                 };
  462                         };
  463                 };
  464 
  465                 /* I2C0 also known as "AGC I2C" */
  466                 i2c@80004000 {
  467                         status = "okay";
  468                         pinctrl-names = "default", "sleep";
  469                         pinctrl-0 = <&i2c0_a_1_default>;
  470                         pinctrl-1 = <&i2c0_a_1_sleep>;
  471 
  472                         proximity@39 {
  473                                 /* Codina has the Amstaos TMD2672 */
  474                                 compatible = "amstaos,tmd2672";
  475                                 clock-frequency = <400000>;
  476                                 reg = <0x39>;
  477 
  478                                 /* IRQ on GPIO146 "PS_INT" */
  479                                 interrupt-parent = <&gpio4>;
  480                                 interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
  481                                 vdd-supply = <&ab8500_ldo_aux1_reg>;
  482                                 vddio-supply = <&ab8500_ldo_aux8_reg>;
  483                                 pinctrl-names = "default";
  484                                 pinctrl-0 = <&tmd2672_codina_default>;
  485                         };
  486                 };
  487 
  488                 /* I2C2 on GPIO10 and GPIO11 also called "SENSORS I2C" */
  489                 i2c@80128000 {
  490                         status = "okay";
  491                         pinctrl-names = "default", "sleep";
  492                         pinctrl-0 = <&i2c2_b_2_default>;
  493                         pinctrl-1 = <&i2c2_b_2_sleep>;
  494 
  495                         /* Bosch BMA254 accelerometer */
  496                         accelerometer@18 {
  497                                 compatible = "bosch,bma254";
  498                                 reg = <0x18>;
  499                                 mount-matrix = "0", "1", "0",
  500                                                "-1", "0", "0",
  501                                                "0", "0", "1";
  502                                 vddio-supply = <&ab8500_ldo_aux8_reg>; // 1.8V
  503                                 vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
  504                         };
  505                 };
  506 
  507                 /* I2C3 */
  508                 i2c@80110000 {
  509                         status = "okay";
  510 
  511                         pinctrl-names = "default", "sleep";
  512                         pinctrl-0 = <&i2c3_c_2_default>;
  513                         pinctrl-1 = <&i2c3_c_2_sleep>;
  514 
  515                         /* TODO: write bindings and driver for this touchscreen */
  516 
  517                         /* Zinitix BT404 ISP part */
  518                         isp@50 {
  519                                 compatible = "zinitix,bt404-isp";
  520                                 reg = <0x50>;
  521                                 pinctrl-names = "default";
  522                                 pinctrl-0 = <&tsp_default>;
  523                         };
  524 
  525                         /* Zinitix BT404 touchscreen, also has the touchkeys for menu and back */
  526                         touchscreen@20 {
  527                                 compatible = "zinitix,bt404";
  528                                 reg = <0x20>;
  529                                 /* GPIO218 (TSP_INT_1V8) */
  530                                 interrupt-parent = <&gpio6>;
  531                                 interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
  532                                 vcca-supply = <&ab8500_ldo_aux2_reg>; // 3.3V
  533                                 vdd-supply = <&ab8500_ldo_aux5_reg>; // 1.8V
  534                                 zinitix,mode = <2>;
  535                                 touchscreen-size-x = <480>;
  536                                 touchscreen-size-y = <800>;
  537                                 pinctrl-names = "default";
  538                                 pinctrl-0 = <&tsp_default>;
  539                         };
  540                 };
  541 
  542                 mcde@a0350000 {
  543                         status = "okay";
  544                         pinctrl-names = "default";
  545                         pinctrl-0 = <&dpi_default_mode>;
  546 
  547                         port {
  548                                 display_out: endpoint {
  549                                         remote-endpoint = <&panel_in>;
  550                                 };
  551                         };
  552                 };
  553         };
  554 };
  555 
  556 &pinctrl {
  557         /*
  558          * This extends the MC0_A_2 default config to include
  559          * the card detect GPIO217 line.
  560          */
  561         sdi0 {
  562                 mc0_a_2_default {
  563                         default_cfg4 {
  564                                 pins = "GPIO217_AH12"; /* card detect */
  565                                 ste,config = <&gpio_in_pd>;
  566                         };
  567                 };
  568         };
  569         sdi2 {
  570                 /*
  571                  * GPIO130 should be set in GPIO mode and
  572                  * pulled down. (Not connected.)
  573                  */
  574                 mc2_a_1_default {
  575                         default_cfg2 {
  576                                 pins = "GPIO130_C8"; /* FBCLK */
  577                                 ste,config = <&gpio_in_pd>;
  578                         };
  579                 };
  580         };
  581         /* GPIO that enables the 2.9V SD card level translator */
  582         sd-level-translator {
  583                 sd_level_translator_default: sd_level_translator_default {
  584                         /* level shifter on GPIO87 */
  585                         codina_cfg1 {
  586                                 pins = "GPIO87_B3";
  587                                 ste,config = <&gpio_out_hi>;
  588                         };
  589                 };
  590         };
  591         /* GPIO that enables the LDO regulator for the eMMC */
  592         emmc-ldo {
  593                 emmc_ldo_en_default_mode: emmc_ldo_default {
  594                         /* LDO enable on GPIO223 */
  595                         codina_cfg1 {
  596                                 pins = "GPIO223_AH9";
  597                                 ste,config = <&gpio_out_hi>;
  598                         };
  599                 };
  600         };
  601         /* GPIOs for panel control */
  602         panel {
  603                 panel_default_mode: panel_default {
  604                         codina_cfg1 {
  605                                 /* Reset line */
  606                                 pins = "GPIO139_C9";
  607                                 ste,config = <&gpio_out_lo>;
  608                         };
  609                         codina_cfg2 {
  610                                 /* ESD IRQ line "LCD detect" */
  611                                 pins = "GPIO93_B7";
  612                                 ste,config = <&gpio_in_nopull>;
  613                         };
  614                 };
  615         };
  616         /* GPIO that enables the LDO regulator for the LCD display */
  617         lcd-ldo {
  618                 lcd_pwr_en_default_mode: lcd_pwr_en_default {
  619                         /* LCD_PWR_EN on GPIO219 */
  620                         codina_cfg1 {
  621                                 pins = "GPIO219_AG10";
  622                                 ste,config = <&gpio_out_hi>;
  623                         };
  624                 };
  625         };
  626         /* GPIO that enables the WLAN internal LDO regulators */
  627         wlan-ldo {
  628                 wlan_ldo_en_default: wlan_ldo_default {
  629                         /* GPIO215 named WLAN_RST_N */
  630                         codina_cfg1 {
  631                                 pins = "GPIO215_AH13";
  632                                 ste,config = <&gpio_out_lo>;
  633                         };
  634                 };
  635         };
  636         /* Backlight GPIO */
  637         backlight {
  638                 ktd253_backlight_default_mode: backlight_default {
  639                         skomer_cfg1 {
  640                                 pins = "GPIO69_E2"; /* LCD_BL_CTRL */
  641                                 ste,config = <&gpio_out_lo>;
  642                         };
  643                 };
  644         };
  645         /* Flash and torch */
  646         flash {
  647                 gpio_flash_default_mode: flash_default {
  648                         codina_cfg1 {
  649                                 pins = "GPIO140_B11", "GPIO141_C12";
  650                                 ste,config = <&gpio_out_lo>;
  651                         };
  652                 };
  653         };
  654         /* GPIO keys */
  655         gpio-keys {
  656                 gpio_keys_default_mode: gpio_keys_default {
  657                         skomer_cfg1 {
  658                                 pins = "GPIO67_G2", /* VOL UP */
  659                                        "GPIO91_B6", /* HOME */
  660                                        "GPIO92_D6"; /* VOL DOWN */
  661                                 ste,config = <&gpio_in_pu>;
  662                         };
  663                 };
  664         };
  665         /* Interrupt line for the Zinitix BT404 touchscreen */
  666         tsp {
  667                 tsp_default: tsp_default {
  668                         codina_cfg1 {
  669                                 pins = "GPIO218_AH11";  /* TSP_INT_1V8 */
  670                                 ste,config = <&gpio_in_nopull>;
  671                         };
  672                 };
  673         };
  674         /* Interrupt line for light/proximity sensor TMD2672 */
  675         tmd2672 {
  676                 tmd2672_codina_default: tmd2672_codina {
  677                         codina_cfg1 {
  678                                 pins = "GPIO146_D13";
  679                                 ste,config = <&gpio_in_nopull>;
  680                         };
  681                 };
  682         };
  683         /* GPIO-based I2C bus for subpmu */
  684         i2c-gpio-0 {
  685                 i2c_gpio_0_default: i2c_gpio_0 {
  686                         codina_cfg1 {
  687                                 pins = "GPIO143_D12", "GPIO144_B13";
  688                                 ste,config = <&gpio_in_nopull>;
  689                         };
  690                 };
  691         };
  692         /* GPIO-based I2C bus for the NFC */
  693         i2c-gpio-1 {
  694                 i2c_gpio_1_default: i2c_gpio_1 {
  695                         codina_cfg1 {
  696                                 pins = "GPIO151_D17", "GPIO152_D16";
  697                                 ste,config = <&gpio_in_nopull>;
  698                         };
  699                 };
  700         };
  701         /* GPIO-based SPI bus for the display */
  702         spi-gpio-0 {
  703                 spi_gpio_0_default: spi_gpio_0_d {
  704                         codina_cfg1 {
  705                                 pins = "GPIO220_AH10", "GPIO201_AF24", "GPIO224_AG9";
  706                                 ste,config = <&gpio_out_hi>;
  707                         };
  708                         codina_cfg2 {
  709                                 pins = "GPIO225_AG8";
  710                                 /* Needs pull down, no pull down resistor on board */
  711                                 ste,config = <&gpio_in_pd>;
  712                         };
  713                 };
  714                 spi_gpio_0_sleep: spi_gpio_0_s {
  715                         codina_cfg1 {
  716                                 pins = "GPIO220_AH10", "GPIO201_AF24",
  717                                        "GPIO224_AG9", "GPIO225_AG8";
  718                                 ste,config = <&gpio_out_hi>;
  719                         };
  720                 };
  721         };
  722         wlan {
  723                 wlan_default_mode: wlan_default {
  724                         /* GPIO216 for WL_HOST_WAKE */
  725                         codina_cfg2 {
  726                                 pins = "GPIO216_AG12";
  727                                 ste,config = <&gpio_in_pd>;
  728                         };
  729                 };
  730         };
  731         bluetooth {
  732                 bluetooth_default_mode: bluetooth_default {
  733                         /* GPIO199 BT_WAKE and GPIO222 BT_VREG_ON */
  734                         codina_cfg1 {
  735                                 pins = "GPIO199_AH23", "GPIO222_AJ9";
  736                                 ste,config = <&gpio_out_lo>;
  737                         };
  738                         /* GPIO97 BT_HOST_WAKE */
  739                         codina_cfg2 {
  740                                 pins = "GPIO97_D9";
  741                                 ste,config = <&gpio_in_nopull>;
  742                         };
  743                         /* GPIO209 BT_RST_N */
  744                         codina_cfg3 {
  745                                 pins = "GPIO209_AG15";
  746                                 ste,config = <&gpio_out_hi>;
  747                         };
  748                 };
  749         };
  750         vibrator {
  751                 vibrator_default: vibrator_default {
  752                         codina_cfg1 {
  753                                 pins = "GPIO195_AG28";  /* MOT_EN */
  754                                 ste,config = <&gpio_out_lo>;
  755                         };
  756                 };
  757         };
  758         mcde {
  759                 dpi_default_mode: dpi_default {
  760                         default_mux1 {
  761                                 /* Mux in all the data lines */
  762                                 function = "lcd";
  763                                 groups =
  764                                         /* Data lines D0-D7 GPIO70..GPIO77 */
  765                                         "lcd_d0_d7_a_1",
  766                                         /* Data lines D8-D11 GPIO78..GPIO81 */
  767                                         "lcd_d8_d11_a_1",
  768                                         /* Data lines D12-D15 GPIO82..GPIO85 */
  769                                         "lcd_d12_d15_a_1",
  770                                         /* Data lines D16-D23 GPIO161..GPIO168 */
  771                                         "lcd_d16_d23_b_1";
  772                         };
  773                         default_mux2 {
  774                                 function = "lcda";
  775                                 /* Clock line on GPIO150, DE, VSO, HSO on GPIO169..GPIO171 */
  776                                 groups = "lcdaclk_b_1", "lcda_b_1";
  777                         };
  778                         /* Input, no pull-up is the default state for pins used for an alt function */
  779                         default_cfg1 {
  780                                 pins = "GPIO150_C14", "GPIO169_D22", "GPIO170_C23", "GPIO171_D23";
  781                                 ste,config = <&in_nopull>;
  782                         };
  783                 };
  784         };
  785 };

Cache object: ed4444aae823f5e3c657b1bc43043da4


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.