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