cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ste-ux500-samsung-gavini.dts (22471B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * Devicetree for the Samsung Galaxy Beam GT-I8530 also known as Gavini.
      4 */
      5
      6/dts-v1/;
      7#include "ste-db8500.dtsi"
      8#include "ste-ab8500.dtsi"
      9#include "ste-dbx5x0-pinctrl.dtsi"
     10#include <dt-bindings/gpio/gpio.h>
     11#include <dt-bindings/leds/common.h>
     12#include <dt-bindings/input/input.h>
     13#include <dt-bindings/interrupt-controller/irq.h>
     14
     15/ {
     16	model = "Samsung Galaxy Beam (GT-I8530)";
     17	compatible = "samsung,gavini", "st-ericsson,u8500";
     18
     19	chosen {
     20		stdout-path = &serial2;
     21	};
     22
     23	battery: battery {
     24		compatible = "samsung,eb585157lu";
     25	};
     26
     27	thermal-zones {
     28		battery-thermal {
     29			/* This zone will be polled by the battery temperature code */
     30			polling-delay = <0>;
     31			polling-delay-passive = <0>;
     32			thermal-sensors = <&bat_therm>;
     33		};
     34	};
     35
     36	bat_therm: thermistor {
     37		compatible = "samsung,1404-001221";
     38		io-channels = <&gpadc 0x02>; /* BatTemp */
     39		pullup-uv = <1800000>;
     40		pullup-ohm = <230000>;
     41		pulldown-ohm = <0>;
     42		#thermal-sensor-cells = <0>;
     43	};
     44
     45	/* TI TXS0206 level translator for 2.9 V */
     46	sd_level_translator: regulator-gpio {
     47		compatible = "regulator-fixed";
     48
     49		/* GPIO193 EN */
     50		gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>;
     51		enable-active-high;
     52
     53		regulator-name = "sd-level-translator";
     54		regulator-min-microvolt = <2900000>;
     55		regulator-max-microvolt = <2900000>;
     56		regulator-type = "voltage";
     57
     58		startup-delay-us = <200>;
     59
     60		pinctrl-names = "default";
     61		pinctrl-0 = <&sd_level_translator_default>;
     62	};
     63
     64	/* External LDO for eMMC LDO VMEM_3V3 controlled by GPIO6 */
     65	ldo_3v3_reg: regulator-gpio-ldo-3v3 {
     66		compatible = "regulator-fixed";
     67		/* Supplied in turn by VBAT */
     68		regulator-name = "VMEM_3V3";
     69		regulator-min-microvolt = <3300000>;
     70		regulator-max-microvolt = <3300000>;
     71		gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>;
     72		startup-delay-us = <5000>; // FIXME
     73		enable-active-high;
     74		pinctrl-names = "default";
     75		pinctrl-0 = <&emmc_ldo_en_default_mode>;
     76	};
     77
     78	/*
     79	 * External Ricoh "TSP" regulator for the touchscreen.
     80	 * One GPIO line controls two voltages of 3.3V and 1.8V
     81	 * this line is known as "TSP_LDO_ON1" in the schematics.
     82	 */
     83	ldo_tsp_3v3_reg: regulator-gpio-tsp-ldo-3v3 {
     84		compatible = "regulator-fixed";
     85		/* Supplied in turn by VBAT */
     86		regulator-name = "LDO_TSP_A3V3";
     87		regulator-min-microvolt = <3300000>;
     88		regulator-max-microvolt = <3300000>;
     89		/* GPIO94 controls this regulator */
     90		gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
     91		/* 70 ms power-on delay */
     92		startup-delay-us = <70000>;
     93		enable-active-high;
     94		pinctrl-names = "default";
     95		pinctrl-0 = <&tsp_ldo_en_default_mode>;
     96	};
     97	ldo_tsp_1v8_reg: regulator-gpio-tsp-ldo-1v8 {
     98		compatible = "regulator-fixed";
     99		/* Supplied in turn by VBAT */
    100		regulator-name = "VREG_TSP_1V8";
    101		regulator-min-microvolt = <1800000>;
    102		regulator-max-microvolt = <1800000>;
    103		/* GPIO94 controls this regulator */
    104		gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
    105		/* 70 ms power-on delay */
    106		startup-delay-us = <70000>;
    107		enable-active-high;
    108		pinctrl-names = "default";
    109		pinctrl-0 = <&tsp_ldo_en_default_mode>;
    110	};
    111
    112	/*
    113	 * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
    114	 * LCD_PWR_EN controls both a 3.0V and 1.8V output.
    115	 */
    116	lcd_3v0_reg: regulator-gpio-lcd-3v0 {
    117		compatible = "regulator-fixed";
    118		/* Supplied in turn by VBAT */
    119		regulator-name = "VREG_LCD_3V0";
    120		regulator-min-microvolt = <3000000>;
    121		regulator-max-microvolt = <3000000>;
    122		/* GPIO219 controls this regulator */
    123		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
    124		enable-active-high;
    125		pinctrl-names = "default";
    126		pinctrl-0 = <&lcd_pwr_en_default_mode>;
    127	};
    128	lcd_1v8_reg: regulator-gpio-lcd-1v8 {
    129		compatible = "regulator-fixed";
    130		/* Supplied in turn by VBAT */
    131		regulator-name = "VREG_LCD_1V8";
    132		regulator-min-microvolt = <1800000>;
    133		regulator-max-microvolt = <1800000>;
    134		/* GPIO219 controls this regulator too */
    135		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
    136		enable-active-high;
    137		pinctrl-names = "default";
    138		pinctrl-0 = <&lcd_pwr_en_default_mode>;
    139	};
    140
    141	/*
    142	 * This regulator is a GPIO line that drives the Broadcom WLAN
    143	 * line WL_REG_ON high and enables the internal regulators
    144	 * inside the chip. Unfortunatley it is erroneously named
    145	 * WLAN_RST_N on the schematic but it is not a reset line.
    146	 *
    147	 * The voltage specified here is only used to determine the OCR mask,
    148	 * the for the SDIO connector, the chip is actually connected
    149	 * directly to VBAT.
    150	 */
    151	wl_reg: regulator-gpio-wlan {
    152		compatible = "regulator-fixed";
    153		regulator-name = "WL_REG_ON";
    154		regulator-min-microvolt = <3000000>;
    155		regulator-max-microvolt = <3000000>;
    156		startup-delay-us = <100000>;
    157		/* GPIO215 (WLAN_RST_N to WL_REG_ON) */
    158		gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
    159		enable-active-high;
    160		pinctrl-names = "default";
    161		pinctrl-0 = <&wlan_ldo_en_default>;
    162	};
    163
    164	gpio-keys {
    165		compatible = "gpio-keys";
    166		pinctrl-names = "default";
    167		pinctrl-0 = <&gpio_keys_default_mode>;
    168
    169		button-projector {
    170			linux,code = <KEY_SWITCHVIDEOMODE>;
    171			label = "Projector";
    172			/* GPIO32 "Projector On HotKey" */
    173			gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
    174		};
    175		button-home {
    176			linux,code = <KEY_HOME>;
    177			label = "HOME";
    178			/* GPIO91 */
    179			gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
    180		};
    181		button-volup {
    182			linux,code = <KEY_VOLUMEUP>;
    183			label = "VOL+";
    184			/* GPIO67 */
    185			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
    186		};
    187		button-voldown {
    188			linux,code = <KEY_VOLUMEDOWN>;
    189			label = "VOL-";
    190			/* GPIO92 */
    191			gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
    192		};
    193	};
    194
    195	/* Richtek RT8515GQW Flash LED Driver IC */
    196	flash {
    197		compatible = "richtek,rt8515";
    198		/* GPIO 140 */
    199		enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
    200		/* GPIO 141 */
    201		ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
    202		/*
    203		 * RFS is 16 kOhm and RTS is 100 kOhm giving
    204		 * the flash max current 343mA and torch max
    205		 * current 55 mA.
    206		 */
    207		richtek,rfs-ohms = <16000>;
    208		richtek,rts-ohms = <100000>;
    209		pinctrl-names = "default";
    210		pinctrl-0 = <&gpio_flash_default_mode>;
    211
    212		led {
    213			function = LED_FUNCTION_FLASH;
    214			color = <LED_COLOR_ID_WHITE>;
    215			flash-max-timeout-us = <250000>;
    216			flash-max-microamp = <343750>;
    217			led-max-microamp = <55000>;
    218		};
    219	};
    220
    221	gpio-leds {
    222		compatible = "gpio-leds";
    223		pinctrl-names = "default";
    224		pinctrl-0 = <&gpio_leds_default_mode>;
    225		used-led {
    226			label = "touchkeys";
    227			/* GPIO68 */
    228			gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
    229			default-state = "on";
    230		};
    231	};
    232
    233	ktd259: backlight {
    234		compatible = "kinetic,ktd259";
    235		/* GPIO20 */
    236		enable-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
    237		/* Default to 13/32 brightness */
    238		default-brightness = <13>;
    239		pinctrl-names = "default";
    240		pinctrl-0 = <&ktd259_backlight_default_mode>;
    241	};
    242
    243	/* Bit-banged I2C on GPIO143 and GPIO144 also called "SUBPMU I2C" */
    244	i2c-gpio-0 {
    245		compatible = "i2c-gpio";
    246		sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    247		scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    248		pinctrl-names = "default";
    249		pinctrl-0 = <&i2c_gpio_0_default>;
    250		#address-cells = <1>;
    251		#size-cells = <0>;
    252
    253		/* Yamaha YAS530 magnetometer */
    254		magnetometer@2e {
    255			compatible = "yamaha,yas530";
    256			reg = <0x2e>;
    257			/* VDD 3V */
    258			vdd-supply = <&ab8500_ldo_aux1_reg>;
    259			/* IOVDD 1.8V */
    260			iovdd-supply = <&ab8500_ldo_aux2_reg>;
    261			/* GPIO204 COMPASS_RST_N */
    262			reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
    263			pinctrl-names = "default";
    264			pinctrl-0 = <&yas530_default>;
    265		};
    266		/* TODO: this should also be used by the NCP6914 Camera power management unit */
    267	};
    268
    269	/*
    270	 * TODO: See if we can use the PL023 for this instead.
    271	 */
    272	spi-gpio-0 {
    273		compatible = "spi-gpio";
    274		/* Clock on GPIO220, pin SCL */
    275		sck-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
    276		/* MOSI on GPIO224, pin SDI "slave data in" */
    277		mosi-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
    278		/* MISO on GPIO225, pin SDO "slave data out" */
    279		miso-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
    280		/* Chip select on GPIO223 */
    281		cs-gpios = <&gpio6 31 GPIO_ACTIVE_LOW>;
    282		num-chipselects = <1>;
    283
    284		pinctrl-names = "default";
    285		pinctrl-0 = <&spi_gpio_0_default>;
    286		#address-cells = <1>;
    287		#size-cells = <0>;
    288
    289		panel@0 {
    290			compatible = "samsung,lms397kf04";
    291			/* 300 ns at read cycle -> 3 MHz max speed */
    292			//spi-max-frequency = <3000000>;
    293			spi-max-frequency = <1200000>;
    294			/* TYPE 3: inverse clock polarity and phase */
    295			spi-cpha;
    296			spi-cpol;
    297
    298			reg = <0>;
    299			vci-supply = <&lcd_3v0_reg>;
    300			vccio-supply = <&lcd_1v8_reg>;
    301			/* Reset on GPIO139 */
    302			reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
    303			pinctrl-names = "default";
    304			pinctrl-0 = <&panel_default_mode>;
    305			backlight = <&ktd259>;
    306
    307			port {
    308				panel_in: endpoint {
    309					remote-endpoint = <&display_out>;
    310				};
    311			};
    312		};
    313	};
    314
    315	/* Bit-banged I2C on GPIO201 and GPIO202 also called "MOT_I2C" */
    316	i2c-gpio-2 {
    317		compatible = "i2c-gpio";
    318		sda-gpios = <&gpio6 10 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    319		scl-gpios = <&gpio6 9 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    320		pinctrl-names = "default";
    321		pinctrl-0 = <&i2c_gpio_2_default>;
    322		#address-cells = <1>;
    323		#size-cells = <0>;
    324		/* TODO: add the Immersion ISA1200 I2C device here */
    325	};
    326
    327	/* Bit-banged I2C on GPIO196 and GPIO197 also called "MPR_I2C" */
    328	i2c-gpio-3 {
    329		compatible = "i2c-gpio";
    330		sda-gpios = <&gpio6 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    331		scl-gpios = <&gpio6 4 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
    332		pinctrl-names = "default";
    333		pinctrl-0 = <&i2c_gpio_3_default>;
    334		#address-cells = <1>;
    335		#size-cells = <0>;
    336		/* TODO: add the DPP2601 projector I2C device 0x1b here */
    337	};
    338
    339	soc {
    340		/* External Micro SD slot */
    341		mmc@80126000 {
    342			arm,primecell-periphid = <0x10480180>;
    343			max-frequency = <50000000>;
    344			bus-width = <4>;
    345			cap-sd-highspeed;
    346			cap-mmc-highspeed;
    347			st,sig-pin-fbclk;
    348			full-pwr-cycle;
    349			/* MMC is powered by AUX3 1.2V .. 2.91V */
    350			vmmc-supply = <&ab8500_ldo_aux3_reg>;
    351			/* 2.9 V level translator */
    352			vqmmc-supply = <&sd_level_translator>;
    353			pinctrl-names = "default", "sleep";
    354			pinctrl-0 = <&mc0_a_2_default>;
    355			pinctrl-1 = <&mc0_a_2_sleep>;
    356			/* "flash detect" actually card detect */
    357			cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>;
    358			status = "okay";
    359		};
    360
    361		/* WLAN SDIO channel */
    362		mmc@80118000 {
    363			arm,primecell-periphid = <0x10480180>;
    364			max-frequency = <50000000>;
    365			bus-width = <4>;
    366			non-removable;
    367			cap-sd-highspeed;
    368			pinctrl-names = "default", "sleep";
    369			pinctrl-0 = <&mc1_a_2_default>;
    370			pinctrl-1 = <&mc1_a_2_sleep>;
    371			/*
    372			 * GPIO-controlled voltage enablement: this drives
    373			 * the WL_REG_ON line high when we use this device.
    374			 * Represented as regulator to fill OCR mask.
    375			 */
    376			vmmc-supply = <&wl_reg>;
    377
    378			#address-cells = <1>;
    379			#size-cells = <0>;
    380			status = "okay";
    381
    382			wifi@1 {
    383				compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
    384				reg = <1>;
    385				/* GPIO216 WL_HOST_WAKE */
    386				interrupt-parent = <&gpio6>;
    387				interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
    388				interrupt-names = "host-wake";
    389				pinctrl-names = "default";
    390				pinctrl-0 = <&wlan_default_mode>;
    391			};
    392		};
    393
    394		/* eMMC */
    395		mmc@80005000 {
    396			arm,primecell-periphid = <0x10480180>;
    397		        max-frequency = <50000000>;
    398			bus-width = <8>;
    399			non-removable;
    400			cap-mmc-highspeed;
    401			mmc-ddr-1_8v;
    402			no-sdio;
    403			no-sd;
    404			vmmc-supply = <&ldo_3v3_reg>;
    405			pinctrl-names = "default", "sleep";
    406			pinctrl-0 = <&mc2_a_1_default>;
    407			pinctrl-1 = <&mc2_a_1_sleep>;
    408			status = "okay";
    409		};
    410
    411		/* GBF (Bluetooth) UART */
    412		uart@80120000 {
    413			pinctrl-names = "default", "sleep";
    414			pinctrl-0 = <&u0_a_1_default>;
    415			pinctrl-1 = <&u0_a_1_sleep>;
    416			status = "okay";
    417
    418			bluetooth {
    419				compatible = "brcm,bcm4330-bt";
    420				/* GPIO222 rail BT_VREG_EN to BT_REG_ON */
    421				shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
    422				/* BT_WAKE on GPIO199 */
    423				device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
    424				/* BT_HOST_WAKE on GPIO97 */
    425				host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
    426				/* BT_RST_N on GPIO209 */
    427				reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>;
    428				pinctrl-names = "default";
    429				pinctrl-0 = <&bluetooth_default_mode>;
    430			};
    431		};
    432
    433		/* GPS UART */
    434		uart@80121000 {
    435			status = "okay";
    436			pinctrl-names = "default", "sleep";
    437			/* CTS/RTS is not used, CTS is repurposed as GPIO */
    438			pinctrl-0 = <&u1rxtx_a_1_default>;
    439			pinctrl-1 = <&u1rxtx_a_1_sleep>;
    440			/* FIXME: add a device for the GPS here */
    441		};
    442
    443		/* Debugging console UART connected to TSU6111RSVR (FSA880) */
    444		uart@80007000 {
    445			status = "okay";
    446			pinctrl-names = "default", "sleep";
    447			pinctrl-0 = <&u2rxtx_c_1_default>;
    448			pinctrl-1 = <&u2rxtx_c_1_sleep>;
    449		};
    450
    451		prcmu@80157000 {
    452			ab8500 {
    453				phy {
    454					pinctrl-names = "default", "sleep";
    455					pinctrl-0 = <&usb_a_1_default>;
    456					pinctrl-1 = <&usb_a_1_sleep>;
    457				};
    458
    459				ab8500_fg {
    460					line-impedance-micro-ohms = <43000>;
    461				};
    462
    463				regulator {
    464					ab8500_ldo_aux1 {
    465						/* Used for VDD for sensors */
    466						regulator-name = "V-SENSORS-VDD";
    467						regulator-min-microvolt = <3000000>;
    468						regulator-max-microvolt = <3000000>;
    469					};
    470
    471					ab8500_ldo_aux2 {
    472						/* Used for VIO for sensors */
    473						regulator-name = "V-SENSORS-VIO";
    474						regulator-min-microvolt = <1800000>;
    475						regulator-max-microvolt = <1800000>;
    476					};
    477
    478					ab8500_ldo_aux3 {
    479						/* Used for voltage for external MMC/SD card */
    480						regulator-name = "V-MMC-SD";
    481						regulator-min-microvolt = <1200000>;
    482						regulator-max-microvolt = <2910000>;
    483					};
    484				};
    485			};
    486		};
    487
    488		/* I2C0 */
    489		i2c@80004000 {
    490			status = "okay";
    491			pinctrl-names = "default", "sleep";
    492			pinctrl-0 = <&i2c0_a_1_default>;
    493			pinctrl-1 = <&i2c0_a_1_sleep>;
    494
    495			/* FIXME: fix the proximity sensor bindings and driver */
    496			proximity@39 {
    497				/* Gavini has the GP2A030S00F proximity sensor */
    498				compatible = "sharp,gp2a030s00f";
    499				clock-frequency = <400000>;
    500				reg = <0x39>;
    501				/* FIXME: GPIO146 provides power on, IR LED? */
    502			};
    503
    504			gyroscope@68 {
    505				compatible = "invensense,mpu3050";
    506				reg = <0x68>;
    507				/* GPIO226 interrupt */
    508				interrupt-parent = <&gpio7>;
    509				interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
    510				mount-matrix = "0", "1", "0",
    511					       "1", "0", "0",
    512					       "0", "0", "1";
    513				vlogic-supply = <&ab8500_ldo_aux2_reg>; // 1.8V
    514				vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
    515				pinctrl-names = "default";
    516				pinctrl-0 = <&mpu3050_default>;
    517
    518				/*
    519				 * The MPU-3050 acts as a hub for the
    520				 * accelerometer.
    521				 */
    522				i2c-gate {
    523					#address-cells = <1>;
    524					#size-cells = <0>;
    525
    526					/* Bosch BMA222E accelerometer */
    527					accelerometer@18 {
    528						compatible = "bosch,bma222e";
    529						reg = <0x18>;
    530						mount-matrix = "0", "1", "0",
    531							       "-1", "0", "0",
    532							       "0", "0", "1";
    533						vddio-supply = <&ab8500_ldo_aux2_reg>; // 1.8V
    534						vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
    535					};
    536				};
    537			};
    538		};
    539
    540		/* I2C2 "AGC I2C" */
    541		i2c@80128000 {
    542			status = "okay";
    543			pinctrl-names = "default", "sleep";
    544			pinctrl-0 = <&i2c2_b_1_default>;
    545			pinctrl-1 = <&i2c2_b_1_sleep>;
    546
    547			/* Texas Instruments TSU6111 micro USB switch */
    548			usb-switch@25 {
    549				compatible = "ti,tsu6111";
    550				reg = <0x25>;
    551				/* Interrupt JACK_INT_N on GPIO95 */
    552				interrupt-parent = <&gpio2>;
    553				interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
    554				pinctrl-names = "default";
    555				pinctrl-0 = <&tsu6111_default>;
    556			};
    557		};
    558
    559		/* I2C3 */
    560		i2c@80110000 {
    561			status = "okay";
    562
    563			pinctrl-names = "default", "sleep";
    564			pinctrl-0 = <&i2c3_c_2_default>;
    565			pinctrl-1 = <&i2c3_c_2_sleep>;
    566
    567			/* Melfas MMS136 touchscreen */
    568			touchscreen@48 {
    569				compatible = "melfas,mms136";
    570				reg = <0x48>;
    571				/* GPIO218 (TSP_INT_1V8) */
    572				interrupt-parent = <&gpio6>;
    573				interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
    574				/* AVDD is "analog supply", 2.57-3.47 V */
    575				avdd-supply = <&ldo_tsp_3v3_reg>;
    576				/* VDD is "digital supply" 1.71-3.47V */
    577				vdd-supply = <&ldo_tsp_1v8_reg>;
    578				pinctrl-names = "default";
    579				pinctrl-0 = <&tsp_default>;
    580				touchscreen-size-x = <480>;
    581				touchscreen-size-y = <800>;
    582			};
    583		};
    584
    585		mcde@a0350000 {
    586			status = "okay";
    587			pinctrl-names = "default";
    588			pinctrl-0 = <&dpi_default_mode>;
    589
    590			port {
    591				display_out: endpoint {
    592					remote-endpoint = <&panel_in>;
    593				};
    594			};
    595		};
    596	};
    597};
    598
    599&pinctrl {
    600	/*
    601	 * This extends the MC0_A_2 default config to include
    602	 * the card detect GPIO217 line.
    603	 */
    604	sdi0 {
    605		mc0_a_2_default {
    606			default_cfg4 {
    607				pins = "GPIO217_AH12"; /* card detect */
    608				ste,config = <&gpio_in_nopull>;
    609			};
    610		};
    611	};
    612	mcde {
    613		dpi_default_mode: dpi_default {
    614			default_mux1 {
    615				/* Mux in all the data lines */
    616				function = "lcd";
    617				groups =
    618					/* Data lines D0-D7 GPIO70..GPIO77 */
    619					"lcd_d0_d7_a_1",
    620					/* Data lines D8-D11 GPIO78..GPIO81 */
    621					"lcd_d8_d11_a_1",
    622					/* Data lines D12-D15 GPIO82..GPIO85 */
    623					"lcd_d12_d15_a_1",
    624					/* Data lines D16-D23 GPIO161..GPIO168 */
    625					"lcd_d16_d23_b_1";
    626			};
    627			default_mux2 {
    628				function = "lcda";
    629				/* Clock line on GPIO150, DE, VSO, HSO on GPIO169..GPIO171 */
    630				groups = "lcdaclk_b_1", "lcda_b_1";
    631			};
    632			/* Input, no pull-up is the default state for pins used for an alt function */
    633			default_cfg1 {
    634				pins = "GPIO150_C14", "GPIO169_D22", "GPIO170_C23", "GPIO171_D23";
    635				ste,config = <&in_nopull>;
    636			};
    637		};
    638	};
    639	/* GPIO for panel reset control */
    640	panel {
    641		panel_default_mode: panel_default {
    642			gavini_cfg1 {
    643				/* Reset line */
    644				pins = "GPIO139_C9";
    645				ste,config = <&gpio_out_lo>;
    646			};
    647		};
    648	};
    649	/* GPIO that enables the LDO regulator for the eMMC */
    650	emmc-ldo {
    651		emmc_ldo_en_default_mode: emmc_ldo_default {
    652			/* LDO enable on GPIO6 */
    653			gavini_cfg1 {
    654				pins = "GPIO6_AF6";
    655				ste,config = <&gpio_out_hi>;
    656			};
    657		};
    658	};
    659	/* GPIO that enables the LDO regulator for the touchscreen */
    660	tsp-ldo {
    661		tsp_ldo_en_default_mode: tsp_ldo_default {
    662			/* LDO enable on GPIO94 */
    663			gavini_cfg1 {
    664				pins = "GPIO94_D7";
    665				ste,config = <&gpio_out_hi>;
    666			};
    667		};
    668	};
    669	/* Reset line for the Yamaha YAS530 magnetometer */
    670	yas530 {
    671		yas530_default: yas530_janice {
    672			janice_cfg1 {
    673				pins = "GPIO204_AF23";
    674				ste,config = <&gpio_out_hi>;
    675			};
    676		};
    677	};
    678	/* Flash and torch */
    679	flash {
    680		gpio_flash_default_mode: flash_default {
    681			janice_cfg1 {
    682				pins = "GPIO140_B11", "GPIO141_C12";
    683				ste,config = <&gpio_out_lo>;
    684			};
    685		};
    686	};
    687	/* GPIO that enables the LDO regulator for the key LED */
    688	gpio-leds {
    689		gpio_leds_default_mode: gpio_leds_default {
    690			/* EN_LED_LDO on GPIO68 */
    691			gavini_cfg1 {
    692				pins = "GPIO68_E1";
    693				ste,config = <&gpio_out_hi>;
    694			};
    695		};
    696	};
    697	backlight {
    698		ktd259_backlight_default_mode: backlight_default {
    699			skomer_cfg1 {
    700				pins = "GPIO20_AB4"; /* LCD_BL_EN */
    701				ste,config = <&gpio_out_lo>;
    702			};
    703		};
    704	};
    705	/* GPIO that enables the LDO regulator for the touchkeys */
    706	touchkey-ldo {
    707		tsp_ldo_on2_default_mode: tsp_ldo_on2_default {
    708			/* TSP_LDO_ON2 on GPIO89 */
    709			gavini_cfg1 {
    710				pins = "GPIO89_E6";
    711				ste,config = <&gpio_out_lo>;
    712			};
    713		};
    714	};
    715	touchkey {
    716		touchkey_default_mode: touchkey_default {
    717			gavini_cfg1 {
    718				/* Interrupt */
    719				pins = "GPIO198_AG25";
    720				ste,config = <&gpio_in_nopull>;
    721			};
    722			gavini_cfg2 {
    723				/* Reset, actually completely unused (not routed) */
    724				pins = "GPIO205_AG23";
    725				ste,config = <&gpio_in_pd>;
    726			};
    727		};
    728	};
    729	/* GPIO that enables the LDO regulator for the LCD display */
    730	lcd-ldo {
    731		lcd_pwr_en_default_mode: lcd_pwr_en_default {
    732			/* LCD_PWR_EN on GPIO219 */
    733			gavini_cfg1 {
    734				pins = "GPIO219_AG10";
    735				ste,config = <&gpio_out_hi>;
    736			};
    737		};
    738	};
    739	/* GPIO that enables the WLAN internal LDO regulators */
    740	wlan-ldo {
    741		wlan_ldo_en_default: wlan_ldo_default {
    742			/* GPIO215 named WLAN_RST_N */
    743			gavini_cfg1 {
    744				pins = "GPIO215_AH13";
    745				ste,config = <&gpio_out_lo>;
    746			};
    747		};
    748	};
    749	/* GPIO that enables the 2.9V SD card level translator */
    750	sd-level-translator {
    751		sd_level_translator_default: sd_level_translator_default {
    752			/* level shifter on GPIO193 */
    753			skomer_cfg1 {
    754				pins = "GPIO193_AH27";
    755				ste,config = <&gpio_out_hi>;
    756			};
    757		};
    758	};
    759	/* GPIO keys */
    760	gpio-keys {
    761		gpio_keys_default_mode: gpio_keys_default {
    762			skomer_cfg1 {
    763				pins = "GPIO32_V2", /* Projector On HotKey */
    764				       "GPIO67_G2", /* VOL UP */
    765				       "GPIO91_B6", /* HOME */
    766				       "GPIO92_D6"; /* VOL DOWN */
    767				ste,config = <&gpio_in_pu>;
    768			};
    769		};
    770	};
    771	/* Interrupt line for the Atmel MXT228 touchscreen */
    772	tsp {
    773		tsp_default: tsp_default {
    774			gavini_cfg1 {
    775				pins = "GPIO218_AH11";	/* TSP_INT_1V8 */
    776				ste,config = <&gpio_in_nopull>;
    777			};
    778		};
    779	};
    780	/* Interrupt line for Invensense MPU3050 gyroscope */
    781	mpu3050 {
    782		mpu3050_default: mpu3050 {
    783			gavini_cfg1 {
    784				/* GPIO226 used for IRQ */
    785				pins = "GPIO226_AF8";
    786				ste,config = <&gpio_in_nopull>;
    787			};
    788		};
    789	};
    790	/* GPIO-based I2C bus for magnetometer and NCP6914 */
    791	i2c-gpio-0 {
    792		i2c_gpio_0_default: i2c_gpio_0 {
    793			gavini_cfg1 {
    794				pins = "GPIO143_D12", "GPIO144_B13";
    795				ste,config = <&gpio_in_nopull>;
    796			};
    797		};
    798	};
    799	/* GPIO-based I2C bus for the Immersion ISA1200 */
    800	i2c-gpio-2 {
    801		i2c_gpio_2_default: i2c_gpio_2 {
    802			gavini_cfg1 {
    803				pins = "GPIO201_AF24", "GPIO202_AF25";
    804				ste,config = <&gpio_in_nopull>;
    805			};
    806		};
    807	};
    808	/* GPIO-based I2C bus for the TI DPP2601 */
    809	i2c-gpio-3 {
    810		i2c_gpio_3_default: i2c_gpio_3 {
    811			gavini_cfg1 {
    812				pins = "GPIO196_AG26", "GPIO197_AH24";
    813				ste,config = <&gpio_in_nopull>;
    814			};
    815		};
    816	};
    817	/* GPIO-based SPI bus for the display */
    818	spi-gpio-0 {
    819		spi_gpio_0_default: spi_gpio_0_d {
    820			gavini_cfg1 {
    821				pins = "GPIO220_AH10", "GPIO223_AH9", "GPIO224_AG9";
    822				ste,config = <&gpio_out_hi>;
    823			};
    824			gavini_cfg2 {
    825				pins = "GPIO225_AG8";
    826				ste,config = <&gpio_in_nopull>;
    827			};
    828		};
    829		spi_gpio_0_sleep: spi_gpio_0_s {
    830			gavini_cfg1 {
    831				pins = "GPIO220_AH10", "GPIO223_AH9",
    832				     "GPIO224_AG9", "GPIO225_AG8";
    833				ste,config = <&gpio_out_hi>;
    834			};
    835			gavini_cfg2 {
    836				pins = "GPIO225_AG8";
    837				ste,config = <&gpio_out_lo>;
    838			};
    839		};
    840	};
    841	wlan {
    842		wlan_default_mode: wlan_default {
    843			/* GPIO216 for WL_HOST_WAKE */
    844			gavini_cfg2 {
    845				pins = "GPIO216_AG12";
    846				ste,config = <&gpio_in_pd>;
    847			};
    848		};
    849	};
    850	bluetooth {
    851		bluetooth_default_mode: bluetooth_default {
    852			/* GPIO199 BT_WAKE and GPIO222 BT_VREG_ON */
    853			gavini_cfg1 {
    854				pins = "GPIO199_AH23", "GPIO222_AJ9";
    855				ste,config = <&gpio_out_lo>;
    856			};
    857			/* GPIO97 BT_HOST_WAKE */
    858			gavini_cfg2 {
    859				pins = "GPIO97_D9";
    860				ste,config = <&gpio_in_nopull>;
    861			};
    862			/* GPIO209 BT_RST_N */
    863			gavini_cfg3 {
    864				pins = "GPIO209_AG15";
    865				ste,config = <&gpio_out_hi>;
    866			};
    867		};
    868	};
    869	/* Interrupt line for TI TSU6111 Micro USB switch */
    870	tsu6111 {
    871		tsu6111_default: tsu6111 {
    872			gavini_cfg1 {
    873				/* GPIO95 used for IRQ */
    874				pins = "GPIO95_E8";
    875				ste,config = <&gpio_in_nopull>;
    876			};
    877		};
    878	};
    879};