1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Devicetree for the Samsung Galaxy Ace 2 GT-I8160 also known as Codina.
4*724ba675SRob Herring *
5*724ba675SRob Herring * NOTE: this is the most common variant according to the vendor tree, known
6*724ba675SRob Herring * as "R0.0". There appears to be a "R0.4" variant with backlight on GPIO69,
7*724ba675SRob Herring * AB8505 and other changes. There is also talk about some variants having a
8*724ba675SRob Herring * Samsung S6D27A1 display, indicated by passing a different command line from
9*724ba675SRob Herring * the boot loader.
10*724ba675SRob Herring *
11*724ba675SRob Herring * The Samsung tree further talks about GT-I8160P and GT-I8160chn (China).
12*724ba675SRob Herring * The GT-I8160 plain is known as the "europe" variant.
13*724ba675SRob Herring * The GT-I8160P is the CDMA version and it appears to not use the ST
14*724ba675SRob Herring * Microelectronics accelerometer and reportedly has NFC mounted.
15*724ba675SRob Herring * The GT-I8160chn appears to be the same as the europe variant.
16*724ba675SRob Herring *
17*724ba675SRob Herring * There is also the Codina-TMO, Samsung SGH-T599, which has its own device
18*724ba675SRob Herring * tree.
19*724ba675SRob Herring */
20*724ba675SRob Herring
21*724ba675SRob Herring/dts-v1/;
22*724ba675SRob Herring#include "ste-db8500.dtsi"
23*724ba675SRob Herring#include "ste-ab8500.dtsi"
24*724ba675SRob Herring#include "ste-dbx5x0-pinctrl.dtsi"
25*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
26*724ba675SRob Herring#include <dt-bindings/leds/common.h>
27*724ba675SRob Herring#include <dt-bindings/input/input.h>
28*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
29*724ba675SRob Herring
30*724ba675SRob Herring/ {
31*724ba675SRob Herring	model = "Samsung Galaxy Ace 2 (GT-I8160)";
32*724ba675SRob Herring	compatible = "samsung,codina", "st-ericsson,u8500";
33*724ba675SRob Herring
34*724ba675SRob Herring	cpus {
35*724ba675SRob Herring		cpu@300 {
36*724ba675SRob Herring			/*
37*724ba675SRob Herring			 * This has a frequency cap at ~800 MHz in the firmware.
38*724ba675SRob Herring			 * (Changing this number here will not overclock it.)
39*724ba675SRob Herring			 */
40*724ba675SRob Herring			operating-points = <798720 0
41*724ba675SRob Herring					    399360 0
42*724ba675SRob Herring					    199680 0>;
43*724ba675SRob Herring		};
44*724ba675SRob Herring	};
45*724ba675SRob Herring
46*724ba675SRob Herring	chosen {
47*724ba675SRob Herring		stdout-path = &serial2;
48*724ba675SRob Herring	};
49*724ba675SRob Herring
50*724ba675SRob Herring	battery: battery {
51*724ba675SRob Herring		compatible = "samsung,eb425161lu";
52*724ba675SRob Herring	};
53*724ba675SRob Herring
54*724ba675SRob Herring	thermal-zones {
55*724ba675SRob Herring		battery-thermal {
56*724ba675SRob Herring			/* This zone will be polled by the battery temperature code */
57*724ba675SRob Herring			polling-delay = <0>;
58*724ba675SRob Herring			polling-delay-passive = <0>;
59*724ba675SRob Herring			thermal-sensors = <&bat_therm>;
60*724ba675SRob Herring
61*724ba675SRob Herring			trips {
62*724ba675SRob Herring				battery-crit-hi {
63*724ba675SRob Herring					temperature = <70000>;
64*724ba675SRob Herring					hysteresis = <2000>;
65*724ba675SRob Herring					type = "critical";
66*724ba675SRob Herring				};
67*724ba675SRob Herring			};
68*724ba675SRob Herring		};
69*724ba675SRob Herring	};
70*724ba675SRob Herring
71*724ba675SRob Herring	bat_therm: thermistor {
72*724ba675SRob Herring		compatible = "samsung,1404-001221";
73*724ba675SRob Herring		io-channels = <&gpadc 0x02>; /* BatTemp */
74*724ba675SRob Herring		pullup-uv = <1800000>;
75*724ba675SRob Herring		pullup-ohm = <230000>;
76*724ba675SRob Herring		pulldown-ohm = <0>;
77*724ba675SRob Herring		#thermal-sensor-cells = <0>;
78*724ba675SRob Herring	};
79*724ba675SRob Herring
80*724ba675SRob Herring	/* TI TXS0206 level translator for 2.9 V */
81*724ba675SRob Herring	sd_level_translator: regulator-gpio {
82*724ba675SRob Herring		compatible = "regulator-fixed";
83*724ba675SRob Herring
84*724ba675SRob Herring		/* GPIO87 EN */
85*724ba675SRob Herring		gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
86*724ba675SRob Herring		enable-active-high;
87*724ba675SRob Herring
88*724ba675SRob Herring		regulator-name = "sd-level-translator";
89*724ba675SRob Herring		regulator-min-microvolt = <2900000>;
90*724ba675SRob Herring		regulator-max-microvolt = <2900000>;
91*724ba675SRob Herring		regulator-type = "voltage";
92*724ba675SRob Herring
93*724ba675SRob Herring		startup-delay-us = <200>;
94*724ba675SRob Herring
95*724ba675SRob Herring		pinctrl-names = "default";
96*724ba675SRob Herring		pinctrl-0 = <&sd_level_translator_default>;
97*724ba675SRob Herring	};
98*724ba675SRob Herring
99*724ba675SRob Herring	/* External LDO MIC5366-3.3YMT for eMMC */
100*724ba675SRob Herring	ldo_3v3_reg: regulator-gpio-ldo-3v3 {
101*724ba675SRob Herring		compatible = "regulator-fixed";
102*724ba675SRob Herring		/* Supplied in turn by VBAT */
103*724ba675SRob Herring		regulator-name = "VMEM_3V3";
104*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
105*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
106*724ba675SRob Herring		gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
107*724ba675SRob Herring		startup-delay-us = <5000>;
108*724ba675SRob Herring		enable-active-high;
109*724ba675SRob Herring		pinctrl-names = "default";
110*724ba675SRob Herring		pinctrl-0 = <&emmc_ldo_en_default_mode>;
111*724ba675SRob Herring	};
112*724ba675SRob Herring
113*724ba675SRob Herring	/*
114*724ba675SRob Herring	 * External Ricoh "TSP" regulator for the touchscreen.
115*724ba675SRob Herring	 * One GPIO line controls two voltages of 3.3V and 1.8V
116*724ba675SRob Herring	 * this line is known as "TSP_LDO_ON1" in the schematics.
117*724ba675SRob Herring	 */
118*724ba675SRob Herring	ldo_tsp_3v3_reg: regulator-gpio-tsp-ldo-3v3 {
119*724ba675SRob Herring		compatible = "regulator-fixed";
120*724ba675SRob Herring		/* Supplied in turn by VBAT */
121*724ba675SRob Herring		regulator-name = "LDO_TSP_A3V3";
122*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
123*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
124*724ba675SRob Herring		/* GPIO94 controls this regulator */
125*724ba675SRob Herring		gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
126*724ba675SRob Herring		/* 70 ms power-on delay */
127*724ba675SRob Herring		startup-delay-us = <70000>;
128*724ba675SRob Herring		enable-active-high;
129*724ba675SRob Herring		pinctrl-names = "default";
130*724ba675SRob Herring		pinctrl-0 = <&tsp_ldo_en_default_mode>;
131*724ba675SRob Herring	};
132*724ba675SRob Herring	ldo_tsp_1v8_reg: regulator-gpio-tsp-ldo-1v8 {
133*724ba675SRob Herring		compatible = "regulator-fixed";
134*724ba675SRob Herring		/* Supplied in turn by VBAT */
135*724ba675SRob Herring		regulator-name = "VREG_TSP_1V8";
136*724ba675SRob Herring		regulator-min-microvolt = <1800000>;
137*724ba675SRob Herring		regulator-max-microvolt = <1800000>;
138*724ba675SRob Herring		/* GPIO94 controls this regulator */
139*724ba675SRob Herring		gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
140*724ba675SRob Herring		/* 70 ms power-on delay */
141*724ba675SRob Herring		startup-delay-us = <70000>;
142*724ba675SRob Herring		enable-active-high;
143*724ba675SRob Herring		pinctrl-names = "default";
144*724ba675SRob Herring		pinctrl-0 = <&tsp_ldo_en_default_mode>;
145*724ba675SRob Herring	};
146*724ba675SRob Herring
147*724ba675SRob Herring	/*
148*724ba675SRob Herring	 * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
149*724ba675SRob Herring	 * LCD_PWR_EN controls both a 3.0V and 1.8V output.
150*724ba675SRob Herring	 */
151*724ba675SRob Herring	lcd_3v0_reg: regulator-gpio-lcd-3v0 {
152*724ba675SRob Herring		compatible = "regulator-fixed";
153*724ba675SRob Herring		/* Supplied in turn by VBAT */
154*724ba675SRob Herring		regulator-name = "VREG_LCD_3.0V";
155*724ba675SRob Herring		regulator-min-microvolt = <3000000>;
156*724ba675SRob Herring		regulator-max-microvolt = <3000000>;
157*724ba675SRob Herring		/* GPIO219 controls this regulator */
158*724ba675SRob Herring		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
159*724ba675SRob Herring		enable-active-high;
160*724ba675SRob Herring		pinctrl-names = "default";
161*724ba675SRob Herring		pinctrl-0 = <&lcd_pwr_en_default_mode>;
162*724ba675SRob Herring	};
163*724ba675SRob Herring	lcd_1v8_reg: regulator-gpio-lcd-1v8 {
164*724ba675SRob Herring		compatible = "regulator-fixed";
165*724ba675SRob Herring		/* Supplied in turn by VBAT */
166*724ba675SRob Herring		regulator-name = "VREG_LCD_1.8V";
167*724ba675SRob Herring		regulator-min-microvolt = <1800000>;
168*724ba675SRob Herring		regulator-max-microvolt = <1800000>;
169*724ba675SRob Herring		/* GPIO219 controls this regulator too */
170*724ba675SRob Herring		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
171*724ba675SRob Herring		enable-active-high;
172*724ba675SRob Herring		pinctrl-names = "default";
173*724ba675SRob Herring		pinctrl-0 = <&lcd_pwr_en_default_mode>;
174*724ba675SRob Herring	};
175*724ba675SRob Herring
176*724ba675SRob Herring	/*
177*724ba675SRob Herring	 * This regulator is a GPIO line that drives the Broadcom WLAN
178*724ba675SRob Herring	 * line WL_REG_ON high and enables the internal regulators
179*724ba675SRob Herring	 * inside the chip. Unfortunatley it is erroneously named
180*724ba675SRob Herring	 * WLAN_RST_N on the schematic but it is not a reset line.
181*724ba675SRob Herring	 *
182*724ba675SRob Herring	 * The voltage specified here is only used to determine the OCR mask,
183*724ba675SRob Herring	 * the for the SDIO connector, the chip is actually connected
184*724ba675SRob Herring	 * directly to VBAT.
185*724ba675SRob Herring	 */
186*724ba675SRob Herring	wl_reg: regulator-gpio-wlan {
187*724ba675SRob Herring		compatible = "regulator-fixed";
188*724ba675SRob Herring		regulator-name = "WL_REG_ON";
189*724ba675SRob Herring		regulator-min-microvolt = <3000000>;
190*724ba675SRob Herring		regulator-max-microvolt = <3000000>;
191*724ba675SRob Herring		startup-delay-us = <100000>;
192*724ba675SRob Herring		/* GPIO215 (WLAN_RST_N to WL_REG_ON) */
193*724ba675SRob Herring		gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
194*724ba675SRob Herring		enable-active-high;
195*724ba675SRob Herring		pinctrl-names = "default";
196*724ba675SRob Herring		pinctrl-0 = <&wlan_ldo_en_default>;
197*724ba675SRob Herring	};
198*724ba675SRob Herring
199*724ba675SRob Herring	vibrator {
200*724ba675SRob Herring		compatible = "gpio-vibrator";
201*724ba675SRob Herring		/* GPIO195 "MOT_EN" */
202*724ba675SRob Herring		enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
203*724ba675SRob Herring		pinctrl-names = "default";
204*724ba675SRob Herring		pinctrl-0 = <&vibrator_default>;
205*724ba675SRob Herring	};
206*724ba675SRob Herring
207*724ba675SRob Herring	gpio-keys {
208*724ba675SRob Herring		compatible = "gpio-keys";
209*724ba675SRob Herring		pinctrl-names = "default";
210*724ba675SRob Herring		pinctrl-0 = <&gpio_keys_default_mode>;
211*724ba675SRob Herring
212*724ba675SRob Herring		button-home {
213*724ba675SRob Herring			linux,code = <KEY_HOME>;
214*724ba675SRob Herring			label = "HOME";
215*724ba675SRob Herring			/* GPIO91 */
216*724ba675SRob Herring			gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
217*724ba675SRob Herring		};
218*724ba675SRob Herring		button-volup {
219*724ba675SRob Herring			linux,code = <KEY_VOLUMEUP>;
220*724ba675SRob Herring			label = "VOL+";
221*724ba675SRob Herring			/* GPIO67 */
222*724ba675SRob Herring			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
223*724ba675SRob Herring		};
224*724ba675SRob Herring		button-voldown {
225*724ba675SRob Herring			linux,code = <KEY_VOLUMEDOWN>;
226*724ba675SRob Herring			label = "VOL-";
227*724ba675SRob Herring			/* GPIO92 */
228*724ba675SRob Herring			gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
229*724ba675SRob Herring		};
230*724ba675SRob Herring	};
231*724ba675SRob Herring
232*724ba675SRob Herring	gpio-leds {
233*724ba675SRob Herring		compatible = "gpio-leds";
234*724ba675SRob Herring		pinctrl-names = "default";
235*724ba675SRob Herring		pinctrl-0 = <&gpio_leds_default_mode>;
236*724ba675SRob Herring		touchkey-led {
237*724ba675SRob Herring			label = "touchkeys";
238*724ba675SRob Herring			/*
239*724ba675SRob Herring			 * GPIO194 on R0.0, R0.4 does not use this at all, it
240*724ba675SRob Herring			 * will instead turn LDO AUX4 on/off for key led backlighy.
241*724ba675SRob Herring			 * (Line is pulled down on R0.4)
242*724ba675SRob Herring			 */
243*724ba675SRob Herring			gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;
244*724ba675SRob Herring			default-state = "on";
245*724ba675SRob Herring		};
246*724ba675SRob Herring	};
247*724ba675SRob Herring
248*724ba675SRob Herring	ktd253: backlight {
249*724ba675SRob Herring		compatible = "kinetic,ktd253";
250*724ba675SRob Herring		/*
251*724ba675SRob Herring		 * GPIO68 is for R0.0, the board file talks about a TMO variant
252*724ba675SRob Herring		 * (R0.4) using GPIO69.
253*724ba675SRob Herring		 */
254*724ba675SRob Herring		enable-gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
255*724ba675SRob Herring		/* Default to 13/32 brightness */
256*724ba675SRob Herring		default-brightness = <13>;
257*724ba675SRob Herring		pinctrl-names = "default";
258*724ba675SRob Herring		pinctrl-0 = <&ktd253_backlight_default_mode>;
259*724ba675SRob Herring	};
260*724ba675SRob Herring
261*724ba675SRob Herring	/* Richtek RT8515GQW Flash LED Driver IC */
262*724ba675SRob Herring	flash {
263*724ba675SRob Herring		compatible = "richtek,rt8515";
264*724ba675SRob Herring		/* GPIO 140 */
265*724ba675SRob Herring		enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
266*724ba675SRob Herring		/* GPIO 141 */
267*724ba675SRob Herring		ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
268*724ba675SRob Herring		/*
269*724ba675SRob Herring		 * RFS is 16 kOhm and RTS is 100 kOhm giving
270*724ba675SRob Herring		 * the flash max current 343mA and torch max
271*724ba675SRob Herring		 * current 55 mA.
272*724ba675SRob Herring		 */
273*724ba675SRob Herring		richtek,rfs-ohms = <16000>;
274*724ba675SRob Herring		richtek,rts-ohms = <100000>;
275*724ba675SRob Herring		pinctrl-names = "default";
276*724ba675SRob Herring		pinctrl-0 = <&gpio_flash_default_mode>;
277*724ba675SRob Herring
278*724ba675SRob Herring		led {
279*724ba675SRob Herring			function = LED_FUNCTION_FLASH;
280*724ba675SRob Herring			color = <LED_COLOR_ID_WHITE>;
281*724ba675SRob Herring			flash-max-timeout-us = <250000>;
282*724ba675SRob Herring			flash-max-microamp = <343750>;
283*724ba675SRob Herring			led-max-microamp = <55000>;
284*724ba675SRob Herring		};
285*724ba675SRob Herring	};
286*724ba675SRob Herring
287*724ba675SRob Herring	/* Bit-banged I2C on GPIO143 and GPIO144 also called "SUBPMU I2C" */
288*724ba675SRob Herring	i2c-gpio-0 {
289*724ba675SRob Herring		compatible = "i2c-gpio";
290*724ba675SRob Herring		sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
291*724ba675SRob Herring		scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
292*724ba675SRob Herring		pinctrl-names = "default";
293*724ba675SRob Herring		pinctrl-0 = <&i2c_gpio_0_default>;
294*724ba675SRob Herring		#address-cells = <1>;
295*724ba675SRob Herring		#size-cells = <0>;
296*724ba675SRob Herring
297*724ba675SRob Herring		magnetometer@c {
298*724ba675SRob Herring			compatible = "alps,hscdtd008a";
299*724ba675SRob Herring			reg = <0x0c>;
300*724ba675SRob Herring			clock-frequency = <400000>;
301*724ba675SRob Herring
302*724ba675SRob Herring			avdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
303*724ba675SRob Herring			dvdd-supply = <&ab8500_ldo_aux2_reg>; // 1.8V
304*724ba675SRob Herring		};
305*724ba675SRob Herring		/* TODO: this should also be used by the SM5103 Camera power management unit */
306*724ba675SRob Herring	};
307*724ba675SRob Herring
308*724ba675SRob Herring	/* Bit-banged I2C on GPIO151 and GPIO152 also called "NFC I2C" */
309*724ba675SRob Herring	i2c-gpio-1 {
310*724ba675SRob Herring		compatible = "i2c-gpio";
311*724ba675SRob Herring		sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
312*724ba675SRob Herring		scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
313*724ba675SRob Herring		pinctrl-names = "default";
314*724ba675SRob Herring		pinctrl-0 = <&i2c_gpio_1_default>;
315*724ba675SRob Herring		#address-cells = <1>;
316*724ba675SRob Herring		#size-cells = <0>;
317*724ba675SRob Herring
318*724ba675SRob Herring		nfc@2b {
319*724ba675SRob Herring			/* NXP NFC circuit PN544 C1 marked NXP 44501  */
320*724ba675SRob Herring			compatible = "nxp,pn544-i2c";
321*724ba675SRob Herring			/* IF0, IF1 high, gives I2C address 0x2B */
322*724ba675SRob Herring			reg = <0x2b>;
323*724ba675SRob Herring			clock-frequency = <400000>;
324*724ba675SRob Herring			/* NFC IRQ on GPIO32 */
325*724ba675SRob Herring			interrupt-parent = <&gpio1>;
326*724ba675SRob Herring			interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
327*724ba675SRob Herring			/* GPIO 31 */
328*724ba675SRob Herring			firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
329*724ba675SRob Herring			/* GPIO88 */
330*724ba675SRob Herring			enable-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
331*724ba675SRob Herring			pinctrl-names = "default";
332*724ba675SRob Herring			pinctrl-0 = <&pn544_codina_default>;
333*724ba675SRob Herring		};
334*724ba675SRob Herring	};
335*724ba675SRob Herring
336*724ba675SRob Herring	spi {
337*724ba675SRob Herring		compatible = "spi-gpio";
338*724ba675SRob Herring		/* Clock on GPIO220, pin SCL */
339*724ba675SRob Herring		sck-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
340*724ba675SRob Herring		/* MOSI on GPIO224, pin SDI "slave data in" */
341*724ba675SRob Herring		mosi-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
342*724ba675SRob Herring		/* MISO on GPIO225, pin SDO "slave data out" */
343*724ba675SRob Herring		miso-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
344*724ba675SRob Herring		/* Chip select on GPIO201 */
345*724ba675SRob Herring		cs-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
346*724ba675SRob Herring		num-chipselects = <1>;
347*724ba675SRob Herring
348*724ba675SRob Herring		pinctrl-names = "default";
349*724ba675SRob Herring		pinctrl-0 = <&spi_gpio_0_default>;
350*724ba675SRob Herring		#address-cells = <1>;
351*724ba675SRob Herring		#size-cells = <0>;
352*724ba675SRob Herring
353*724ba675SRob Herring		/*
354*724ba675SRob Herring		 * Some Codinas (90%) have a WideChips WS2401-based LMS380KF01
355*724ba675SRob Herring		 * display mounted and some 10% has a Samsung S6D27A1 instead.
356*724ba675SRob Herring		 * The boot loader needs to modify this compatible to
357*724ba675SRob Herring		 * correspond to whatever is passed from the early Samsung boot.
358*724ba675SRob Herring		 */
359*724ba675SRob Herring		panel@0 {
360*724ba675SRob Herring			compatible = "samsung,lms380kf01";
361*724ba675SRob Herring			spi-max-frequency = <1200000>;
362*724ba675SRob Herring			/* TYPE 3: inverse clock polarity and phase */
363*724ba675SRob Herring			spi-cpha;
364*724ba675SRob Herring			spi-cpol;
365*724ba675SRob Herring
366*724ba675SRob Herring			reg = <0>;
367*724ba675SRob Herring			vci-supply = <&lcd_3v0_reg>;
368*724ba675SRob Herring			vccio-supply = <&lcd_1v8_reg>;
369*724ba675SRob Herring
370*724ba675SRob Herring			/* Reset on GPIO139 */
371*724ba675SRob Herring			reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
372*724ba675SRob Herring			/* LCD_VGH/LCD_DETECT, ESD IRQ on GPIO93 */
373*724ba675SRob Herring			interrupt-parent = <&gpio2>;
374*724ba675SRob Herring			interrupts = <29 IRQ_TYPE_EDGE_RISING>;
375*724ba675SRob Herring
376*724ba675SRob Herring			pinctrl-names = "default";
377*724ba675SRob Herring			pinctrl-0 = <&panel_default_mode>;
378*724ba675SRob Herring			backlight = <&ktd253>;
379*724ba675SRob Herring
380*724ba675SRob Herring			port {
381*724ba675SRob Herring				panel_in: endpoint {
382*724ba675SRob Herring					remote-endpoint = <&display_out>;
383*724ba675SRob Herring				};
384*724ba675SRob Herring			};
385*724ba675SRob Herring		};
386*724ba675SRob Herring	};
387*724ba675SRob Herring
388*724ba675SRob Herring	soc {
389*724ba675SRob Herring		/* External Micro SD slot */
390*724ba675SRob Herring		mmc@80126000 {
391*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
392*724ba675SRob Herring			max-frequency = <100000000>;
393*724ba675SRob Herring			bus-width = <4>;
394*724ba675SRob Herring			cap-sd-highspeed;
395*724ba675SRob Herring			cap-mmc-highspeed;
396*724ba675SRob Herring			st,sig-pin-fbclk;
397*724ba675SRob Herring			full-pwr-cycle;
398*724ba675SRob Herring			/* MMC is powered by AUX3 1.2V .. 2.91V */
399*724ba675SRob Herring			vmmc-supply = <&ab8500_ldo_aux3_reg>;
400*724ba675SRob Herring			/* 2.9 V level translator is using AUX3 at 2.9 V as well */
401*724ba675SRob Herring			vqmmc-supply = <&sd_level_translator>;
402*724ba675SRob Herring			pinctrl-names = "default", "sleep";
403*724ba675SRob Herring			pinctrl-0 = <&mc0_a_2_default>;
404*724ba675SRob Herring			pinctrl-1 = <&mc0_a_2_sleep>;
405*724ba675SRob Herring			cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
406*724ba675SRob Herring			status = "okay";
407*724ba675SRob Herring		};
408*724ba675SRob Herring
409*724ba675SRob Herring		/* WLAN SDIO channel */
410*724ba675SRob Herring		mmc@80118000 {
411*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
412*724ba675SRob Herring			max-frequency = <50000000>;
413*724ba675SRob Herring			bus-width = <4>;
414*724ba675SRob Herring			non-removable;
415*724ba675SRob Herring			cap-sd-highspeed;
416*724ba675SRob Herring			pinctrl-names = "default", "sleep";
417*724ba675SRob Herring			pinctrl-0 = <&mc1_a_2_default>;
418*724ba675SRob Herring			pinctrl-1 = <&mc1_a_2_sleep>;
419*724ba675SRob Herring			/*
420*724ba675SRob Herring			 * GPIO-controlled voltage enablement: this drives
421*724ba675SRob Herring			 * the WL_REG_ON line high when we use this device.
422*724ba675SRob Herring			 * Represented as regulator to fill OCR mask.
423*724ba675SRob Herring			 */
424*724ba675SRob Herring			vmmc-supply = <&wl_reg>;
425*724ba675SRob Herring
426*724ba675SRob Herring			#address-cells = <1>;
427*724ba675SRob Herring			#size-cells = <0>;
428*724ba675SRob Herring			status = "okay";
429*724ba675SRob Herring
430*724ba675SRob Herring			wifi@1 {
431*724ba675SRob Herring				/* Actually BRCM4330 */
432*724ba675SRob Herring				compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
433*724ba675SRob Herring				reg = <1>;
434*724ba675SRob Herring				/* GPIO216 WL_HOST_WAKE */
435*724ba675SRob Herring				interrupt-parent = <&gpio6>;
436*724ba675SRob Herring				interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
437*724ba675SRob Herring				interrupt-names = "host-wake";
438*724ba675SRob Herring				pinctrl-names = "default";
439*724ba675SRob Herring				pinctrl-0 = <&wlan_default_mode>;
440*724ba675SRob Herring			};
441*724ba675SRob Herring		};
442*724ba675SRob Herring
443*724ba675SRob Herring		/* eMMC */
444*724ba675SRob Herring		mmc@80005000 {
445*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
446*724ba675SRob Herring			max-frequency = <100000000>;
447*724ba675SRob Herring			bus-width = <8>;
448*724ba675SRob Herring			non-removable;
449*724ba675SRob Herring			cap-mmc-highspeed;
450*724ba675SRob Herring			mmc-ddr-1_8v;
451*724ba675SRob Herring			no-sdio;
452*724ba675SRob Herring			no-sd;
453*724ba675SRob Herring			vmmc-supply = <&ldo_3v3_reg>;
454*724ba675SRob Herring			pinctrl-names = "default", "sleep";
455*724ba675SRob Herring			/*
456*724ba675SRob Herring			 * GPIO130 will be set to input no pull-up resulting in a resistor
457*724ba675SRob Herring			 * pulling the reset high and taking the memory out of reset.
458*724ba675SRob Herring			 */
459*724ba675SRob Herring			pinctrl-0 = <&mc2_a_1_default>;
460*724ba675SRob Herring			pinctrl-1 = <&mc2_a_1_sleep>;
461*724ba675SRob Herring			status = "okay";
462*724ba675SRob Herring		};
463*724ba675SRob Herring
464*724ba675SRob Herring		/* GBF (Bluetooth) UART */
465*724ba675SRob Herring		serial@80120000 {
466*724ba675SRob Herring			pinctrl-names = "default", "sleep";
467*724ba675SRob Herring			pinctrl-0 = <&u0_a_1_default>;
468*724ba675SRob Herring			pinctrl-1 = <&u0_a_1_sleep>;
469*724ba675SRob Herring			status = "okay";
470*724ba675SRob Herring
471*724ba675SRob Herring			bluetooth {
472*724ba675SRob Herring				compatible = "brcm,bcm4330-bt";
473*724ba675SRob Herring				/* GPIO222 rail BT_VREG_EN to BT_REG_ON */
474*724ba675SRob Herring				shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
475*724ba675SRob Herring				/* BT_WAKE on GPIO199 */
476*724ba675SRob Herring				device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
477*724ba675SRob Herring				/* BT_HOST_WAKE on GPIO97 */
478*724ba675SRob Herring				/* FIXME: convert to interrupt */
479*724ba675SRob Herring				host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
480*724ba675SRob Herring				/* BT_RST_N on GPIO209 */
481*724ba675SRob Herring				reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>;
482*724ba675SRob Herring				pinctrl-names = "default";
483*724ba675SRob Herring				pinctrl-0 = <&bluetooth_default_mode>;
484*724ba675SRob Herring			};
485*724ba675SRob Herring		};
486*724ba675SRob Herring
487*724ba675SRob Herring		/* GPS UART */
488*724ba675SRob Herring		serial@80121000 {
489*724ba675SRob Herring			status = "okay";
490*724ba675SRob Herring			pinctrl-names = "default", "sleep";
491*724ba675SRob Herring			pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>;
492*724ba675SRob Herring			pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>;
493*724ba675SRob Herring
494*724ba675SRob Herring			gnss {
495*724ba675SRob Herring				compatible = "brcm,bcm4751";
496*724ba675SRob Herring				/* GPS_RSTN on GPIO21 */
497*724ba675SRob Herring				reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
498*724ba675SRob Herring				/* GPS_ON_OFF on GPIO86 */
499*724ba675SRob Herring				enable-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
500*724ba675SRob Herring				/* GPS_1V8 (VSMPS2) */
501*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
502*724ba675SRob Herring				pinctrl-names = "default";
503*724ba675SRob Herring				pinctrl-0 = <&bcm4751_codina_default>;
504*724ba675SRob Herring			};
505*724ba675SRob Herring		};
506*724ba675SRob Herring
507*724ba675SRob Herring		/* Debugging console UART connected to TSU6111RSVR (FSA880) */
508*724ba675SRob Herring		serial@80007000 {
509*724ba675SRob Herring			status = "okay";
510*724ba675SRob Herring			pinctrl-names = "default", "sleep";
511*724ba675SRob Herring			pinctrl-0 = <&u2rxtx_c_1_default>;
512*724ba675SRob Herring			pinctrl-1 = <&u2rxtx_c_1_sleep>;
513*724ba675SRob Herring		};
514*724ba675SRob Herring
515*724ba675SRob Herring		prcmu@80157000 {
516*724ba675SRob Herring			ab8500 {
517*724ba675SRob Herring				phy {
518*724ba675SRob Herring					pinctrl-names = "default", "sleep";
519*724ba675SRob Herring					pinctrl-0 = <&usb_a_1_default>;
520*724ba675SRob Herring					pinctrl-1 = <&usb_a_1_sleep>;
521*724ba675SRob Herring				};
522*724ba675SRob Herring
523*724ba675SRob Herring				ab8500_fg {
524*724ba675SRob Herring					line-impedance-micro-ohms = <36000>;
525*724ba675SRob Herring				};
526*724ba675SRob Herring
527*724ba675SRob Herring				regulator {
528*724ba675SRob Herring					ab8500_ldo_aux1 {
529*724ba675SRob Herring						/* Used for VDD for sensors */
530*724ba675SRob Herring						regulator-name = "V-SENSORS-VDD";
531*724ba675SRob Herring						regulator-min-microvolt = <3000000>;
532*724ba675SRob Herring						regulator-max-microvolt = <3000000>;
533*724ba675SRob Herring					};
534*724ba675SRob Herring
535*724ba675SRob Herring					ab8500_ldo_aux2 {
536*724ba675SRob Herring						/* Used for VIO for sensors */
537*724ba675SRob Herring						regulator-name = "V-SENSORS-VIO";
538*724ba675SRob Herring						regulator-min-microvolt = <1800000>;
539*724ba675SRob Herring						regulator-max-microvolt = <1800000>;
540*724ba675SRob Herring					};
541*724ba675SRob Herring
542*724ba675SRob Herring					ab8500_ldo_aux3 {
543*724ba675SRob Herring						/* Used for voltage for external MMC/SD card */
544*724ba675SRob Herring						regulator-name = "V-MMC-SD";
545*724ba675SRob Herring						regulator-min-microvolt = <1200000>;
546*724ba675SRob Herring						regulator-max-microvolt = <2910000>;
547*724ba675SRob Herring					};
548*724ba675SRob Herring				};
549*724ba675SRob Herring			};
550*724ba675SRob Herring		};
551*724ba675SRob Herring
552*724ba675SRob Herring		/* I2C0 also known as "AGC I2C" */
553*724ba675SRob Herring		i2c@80004000 {
554*724ba675SRob Herring			status = "okay";
555*724ba675SRob Herring			pinctrl-names = "default", "sleep";
556*724ba675SRob Herring			pinctrl-0 = <&i2c0_a_1_default>;
557*724ba675SRob Herring			pinctrl-1 = <&i2c0_a_1_sleep>;
558*724ba675SRob Herring
559*724ba675SRob Herring			proximity@39 {
560*724ba675SRob Herring				/* Codina has the Amstaos TMD2672 */
561*724ba675SRob Herring				compatible = "amstaos,tmd2672";
562*724ba675SRob Herring				clock-frequency = <400000>;
563*724ba675SRob Herring				reg = <0x39>;
564*724ba675SRob Herring
565*724ba675SRob Herring				/* IRQ on GPIO146 "PS_INT" */
566*724ba675SRob Herring				interrupt-parent = <&gpio4>;
567*724ba675SRob Herring				interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
568*724ba675SRob Herring				/* FIXME: needs a VDDIO supply that is connected to a pull-up resistor */
569*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
570*724ba675SRob Herring				pinctrl-names = "default";
571*724ba675SRob Herring				pinctrl-0 = <&tms2672_codina_default>;
572*724ba675SRob Herring			};
573*724ba675SRob Herring		};
574*724ba675SRob Herring
575*724ba675SRob Herring		/* I2C1 on GPIO16 and GPIO17 also called "MUS I2C" */
576*724ba675SRob Herring		i2c@80122000 {
577*724ba675SRob Herring			status = "okay";
578*724ba675SRob Herring			pinctrl-names = "default","sleep";
579*724ba675SRob Herring			/* FIXME: If it doesn't work try what we use on Gavini */
580*724ba675SRob Herring			pinctrl-0 = <&i2c1_b_2_default>;
581*724ba675SRob Herring			pinctrl-1 = <&i2c1_b_2_sleep>;
582*724ba675SRob Herring
583*724ba675SRob Herring			/* Texas Instruments TSU6111 micro USB switch */
584*724ba675SRob Herring			usb-switch@25 {
585*724ba675SRob Herring				compatible = "ti,tsu6111";
586*724ba675SRob Herring				reg = <0x25>;
587*724ba675SRob Herring				/* Interrupt JACK_INT_N on GPIO95 */
588*724ba675SRob Herring				interrupt-parent = <&gpio2>;
589*724ba675SRob Herring				interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
590*724ba675SRob Herring				pinctrl-names = "default";
591*724ba675SRob Herring				pinctrl-0 = <&tsu6111_codina_default>;
592*724ba675SRob Herring			};
593*724ba675SRob Herring		};
594*724ba675SRob Herring
595*724ba675SRob Herring		/* I2C2 on GPIO10 and GPIO11 also called "SENSORS I2C" */
596*724ba675SRob Herring		i2c@80128000 {
597*724ba675SRob Herring			status = "okay";
598*724ba675SRob Herring			pinctrl-names = "default", "sleep";
599*724ba675SRob Herring			pinctrl-0 = <&i2c2_b_2_default>;
600*724ba675SRob Herring			pinctrl-1 = <&i2c2_b_2_sleep>;
601*724ba675SRob Herring
602*724ba675SRob Herring			lisd3dh@19 {
603*724ba675SRob Herring				/* ST Microelectronics Accelerometer */
604*724ba675SRob Herring				compatible = "st,lis3dh-accel";
605*724ba675SRob Herring				st,drdy-int-pin = <1>;
606*724ba675SRob Herring				reg = <0x19>;
607*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
608*724ba675SRob Herring				vddio-supply = <&ab8500_ldo_aux2_reg>; // 1.8V
609*724ba675SRob Herring				mount-matrix = "0", "1", "0",
610*724ba675SRob Herring					       "-1", "0", "0",
611*724ba675SRob Herring					       "0", "0", "1";
612*724ba675SRob Herring			};
613*724ba675SRob Herring		};
614*724ba675SRob Herring
615*724ba675SRob Herring		/* I2C3 */
616*724ba675SRob Herring		i2c@80110000 {
617*724ba675SRob Herring			status = "okay";
618*724ba675SRob Herring
619*724ba675SRob Herring			pinctrl-names = "default", "sleep";
620*724ba675SRob Herring			pinctrl-0 = <&i2c3_c_2_default>;
621*724ba675SRob Herring			pinctrl-1 = <&i2c3_c_2_sleep>;
622*724ba675SRob Herring
623*724ba675SRob Herring			/* TODO: write bindings and driver for this touchscreen */
624*724ba675SRob Herring
625*724ba675SRob Herring			/* Zinitix BT404 ISP part */
626*724ba675SRob Herring			isp@50 {
627*724ba675SRob Herring				compatible = "zinitix,bt404-isp";
628*724ba675SRob Herring				reg = <0x50>;
629*724ba675SRob Herring				pinctrl-names = "default";
630*724ba675SRob Herring				pinctrl-0 = <&tsp_default>;
631*724ba675SRob Herring			};
632*724ba675SRob Herring
633*724ba675SRob Herring			/* Zinitix BT404 touchscreen, also has the touchkeys for menu and back */
634*724ba675SRob Herring			touchscreen@20 {
635*724ba675SRob Herring				compatible = "zinitix,bt404";
636*724ba675SRob Herring				reg = <0x20>;
637*724ba675SRob Herring				/* GPIO218 (TSP_INT_1V8) */
638*724ba675SRob Herring				interrupt-parent = <&gpio6>;
639*724ba675SRob Herring				interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
640*724ba675SRob Herring				vcca-supply = <&ldo_tsp_3v3_reg>;
641*724ba675SRob Herring				vdd-supply = <&ldo_tsp_1v8_reg>;
642*724ba675SRob Herring				zinitix,mode = <2>;
643*724ba675SRob Herring				touchscreen-size-x = <480>;
644*724ba675SRob Herring				touchscreen-size-y = <800>;
645*724ba675SRob Herring				pinctrl-names = "default";
646*724ba675SRob Herring				pinctrl-0 = <&tsp_default>;
647*724ba675SRob Herring			};
648*724ba675SRob Herring		};
649*724ba675SRob Herring
650*724ba675SRob Herring		mcde@a0350000 {
651*724ba675SRob Herring			status = "okay";
652*724ba675SRob Herring			pinctrl-names = "default";
653*724ba675SRob Herring			pinctrl-0 = <&dpi_default_mode>;
654*724ba675SRob Herring
655*724ba675SRob Herring			port {
656*724ba675SRob Herring				display_out: endpoint {
657*724ba675SRob Herring					remote-endpoint = <&panel_in>;
658*724ba675SRob Herring				};
659*724ba675SRob Herring			};
660*724ba675SRob Herring		};
661*724ba675SRob Herring	};
662*724ba675SRob Herring};
663*724ba675SRob Herring
664*724ba675SRob Herring&pinctrl {
665*724ba675SRob Herring	/*
666*724ba675SRob Herring	 * This extends the MC0_A_2 default config to include
667*724ba675SRob Herring	 * the card detect GPIO217 line.
668*724ba675SRob Herring	 */
669*724ba675SRob Herring	sdi0 {
670*724ba675SRob Herring		mc0_a_2_default {
671*724ba675SRob Herring			default_cfg4 {
672*724ba675SRob Herring				pins = "GPIO217_AH12"; /* card detect */
673*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
674*724ba675SRob Herring			};
675*724ba675SRob Herring		};
676*724ba675SRob Herring	};
677*724ba675SRob Herring	sdi2 {
678*724ba675SRob Herring		/*
679*724ba675SRob Herring		 * This will make the resistor mounted in R0.0 pull up
680*724ba675SRob Herring		 * the reset line and take the eMMC out of reset. On
681*724ba675SRob Herring		 * R0.4 variants, GPIO130 should be set in GPIO mode and
682*724ba675SRob Herring		 * pulled down. (Not connected.)
683*724ba675SRob Herring		 */
684*724ba675SRob Herring		mc2_a_1_default {
685*724ba675SRob Herring			default_cfg2 {
686*724ba675SRob Herring				pins = "GPIO130_C8"; /* FBCLK */
687*724ba675SRob Herring				ste,config = <&in_nopull>;
688*724ba675SRob Herring			};
689*724ba675SRob Herring		};
690*724ba675SRob Herring	};
691*724ba675SRob Herring	/* GPIO that enables the 2.9V SD card level translator */
692*724ba675SRob Herring	sd-level-translator {
693*724ba675SRob Herring		sd_level_translator_default: sd_level_translator_default {
694*724ba675SRob Herring			/* level shifter on GPIO87 */
695*724ba675SRob Herring			codina_cfg1 {
696*724ba675SRob Herring				pins = "GPIO87_B3";
697*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
698*724ba675SRob Herring			};
699*724ba675SRob Herring		};
700*724ba675SRob Herring	};
701*724ba675SRob Herring	/* GPIO that enables the LDO regulator for the eMMC */
702*724ba675SRob Herring	emmc-ldo {
703*724ba675SRob Herring		emmc_ldo_en_default_mode: emmc_ldo_default {
704*724ba675SRob Herring			/* LDO enable on GPIO223 */
705*724ba675SRob Herring			codina_cfg1 {
706*724ba675SRob Herring				pins = "GPIO223_AH9";
707*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
708*724ba675SRob Herring			};
709*724ba675SRob Herring		};
710*724ba675SRob Herring	};
711*724ba675SRob Herring	/* GPIOs for panel control */
712*724ba675SRob Herring	panel {
713*724ba675SRob Herring		panel_default_mode: panel_default {
714*724ba675SRob Herring			codina_cfg1 {
715*724ba675SRob Herring				/* Reset line */
716*724ba675SRob Herring				pins = "GPIO139_C9";
717*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
718*724ba675SRob Herring			};
719*724ba675SRob Herring			codina_cfg2 {
720*724ba675SRob Herring				/* ESD IRQ line "LCD detect" */
721*724ba675SRob Herring				pins = "GPIO93_B7";
722*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
723*724ba675SRob Herring			};
724*724ba675SRob Herring		};
725*724ba675SRob Herring	};
726*724ba675SRob Herring	/* GPIO that enables the LDO regulator for the touchscreen */
727*724ba675SRob Herring	tsp-ldo {
728*724ba675SRob Herring		tsp_ldo_en_default_mode: tsp_ldo_default {
729*724ba675SRob Herring			/* LDO enable on GPIO94 */
730*724ba675SRob Herring			gavini_cfg1 {
731*724ba675SRob Herring				pins = "GPIO94_D7";
732*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
733*724ba675SRob Herring			};
734*724ba675SRob Herring		};
735*724ba675SRob Herring	};
736*724ba675SRob Herring	/* GPIO that enables the LDO regulator for the LCD display */
737*724ba675SRob Herring	lcd-ldo {
738*724ba675SRob Herring		lcd_pwr_en_default_mode: lcd_pwr_en_default {
739*724ba675SRob Herring			/* LCD_PWR_EN on GPIO219 */
740*724ba675SRob Herring			codina_cfg1 {
741*724ba675SRob Herring				pins = "GPIO219_AG10";
742*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
743*724ba675SRob Herring			};
744*724ba675SRob Herring		};
745*724ba675SRob Herring	};
746*724ba675SRob Herring	/* GPIO that enables the LDO regulator for the key LED */
747*724ba675SRob Herring	key-led {
748*724ba675SRob Herring		gpio_leds_default_mode: en_led_ldo_default {
749*724ba675SRob Herring			/* EN_LED_LDO on GPIO194 */
750*724ba675SRob Herring			codina_cfg1 {
751*724ba675SRob Herring				pins = "GPIO194_AF27";
752*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
753*724ba675SRob Herring			};
754*724ba675SRob Herring		};
755*724ba675SRob Herring	};
756*724ba675SRob Herring	/* GPIO that enables the WLAN internal LDO regulators */
757*724ba675SRob Herring	wlan-ldo {
758*724ba675SRob Herring		wlan_ldo_en_default: wlan_ldo_default {
759*724ba675SRob Herring			/* GPIO215 named WLAN_RST_N */
760*724ba675SRob Herring			codina_cfg1 {
761*724ba675SRob Herring				pins = "GPIO215_AH13";
762*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
763*724ba675SRob Herring			};
764*724ba675SRob Herring		};
765*724ba675SRob Herring	};
766*724ba675SRob Herring	/* Backlight GPIO */
767*724ba675SRob Herring	backlight {
768*724ba675SRob Herring		ktd253_backlight_default_mode: backlight_default {
769*724ba675SRob Herring			skomer_cfg1 {
770*724ba675SRob Herring				pins = "GPIO68_E1"; /* LCD_BL_CTRL */
771*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
772*724ba675SRob Herring			};
773*724ba675SRob Herring		};
774*724ba675SRob Herring	};
775*724ba675SRob Herring	/* Flash and torch */
776*724ba675SRob Herring	flash {
777*724ba675SRob Herring		gpio_flash_default_mode: flash_default {
778*724ba675SRob Herring			codina_cfg1 {
779*724ba675SRob Herring				pins = "GPIO140_B11", "GPIO141_C12";
780*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
781*724ba675SRob Herring			};
782*724ba675SRob Herring		};
783*724ba675SRob Herring	};
784*724ba675SRob Herring	/* GPIO keys */
785*724ba675SRob Herring	gpio-keys {
786*724ba675SRob Herring		gpio_keys_default_mode: gpio_keys_default {
787*724ba675SRob Herring			skomer_cfg1 {
788*724ba675SRob Herring				pins = "GPIO67_G2", /* VOL UP */
789*724ba675SRob Herring				       "GPIO91_B6", /* HOME */
790*724ba675SRob Herring				       "GPIO92_D6"; /* VOL DOWN */
791*724ba675SRob Herring				ste,config = <&gpio_in_pu>;
792*724ba675SRob Herring			};
793*724ba675SRob Herring		};
794*724ba675SRob Herring	};
795*724ba675SRob Herring	/* Interrupt line for the Zinitix BT404 touchscreen */
796*724ba675SRob Herring	tsp {
797*724ba675SRob Herring		tsp_default: tsp_default {
798*724ba675SRob Herring			codina_cfg1 {
799*724ba675SRob Herring				pins = "GPIO218_AH11";	/* TSP_INT_1V8 */
800*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
801*724ba675SRob Herring			};
802*724ba675SRob Herring		};
803*724ba675SRob Herring	};
804*724ba675SRob Herring	/* Interrupt line for light/proximity sensor TMS2672 */
805*724ba675SRob Herring	tms2672 {
806*724ba675SRob Herring		tms2672_codina_default: tms2672_codina {
807*724ba675SRob Herring			codina_cfg1 {
808*724ba675SRob Herring				pins = "GPIO146_D13";
809*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
810*724ba675SRob Herring			};
811*724ba675SRob Herring		};
812*724ba675SRob Herring	};
813*724ba675SRob Herring	/* GPIO-based I2C bus for subpmu */
814*724ba675SRob Herring	i2c-gpio-0 {
815*724ba675SRob Herring		i2c_gpio_0_default: i2c_gpio_0 {
816*724ba675SRob Herring			codina_cfg1 {
817*724ba675SRob Herring				pins = "GPIO143_D12", "GPIO144_B13";
818*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
819*724ba675SRob Herring			};
820*724ba675SRob Herring		};
821*724ba675SRob Herring	};
822*724ba675SRob Herring	/* GPIO-based I2C bus for the NFC */
823*724ba675SRob Herring	i2c-gpio-1 {
824*724ba675SRob Herring		i2c_gpio_1_default: i2c_gpio_1 {
825*724ba675SRob Herring			codina_cfg1 {
826*724ba675SRob Herring				pins = "GPIO151_D17", "GPIO152_D16";
827*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
828*724ba675SRob Herring			};
829*724ba675SRob Herring		};
830*724ba675SRob Herring	};
831*724ba675SRob Herring	/* GPIO-based SPI bus for the display */
832*724ba675SRob Herring	spi-gpio-0 {
833*724ba675SRob Herring		spi_gpio_0_default: spi_gpio_0_d {
834*724ba675SRob Herring			codina_cfg1 {
835*724ba675SRob Herring				pins = "GPIO220_AH10", "GPIO201_AF24", "GPIO224_AG9";
836*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
837*724ba675SRob Herring			};
838*724ba675SRob Herring			codina_cfg2 {
839*724ba675SRob Herring				pins = "GPIO225_AG8";
840*724ba675SRob Herring				/* Needs pull down, no pull down resistor on board */
841*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
842*724ba675SRob Herring			};
843*724ba675SRob Herring		};
844*724ba675SRob Herring		spi_gpio_0_sleep: spi_gpio_0_s {
845*724ba675SRob Herring			codina_cfg1 {
846*724ba675SRob Herring				pins = "GPIO220_AH10", "GPIO201_AF24",
847*724ba675SRob Herring				       "GPIO224_AG9", "GPIO225_AG8";
848*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
849*724ba675SRob Herring			};
850*724ba675SRob Herring		};
851*724ba675SRob Herring	};
852*724ba675SRob Herring	wlan {
853*724ba675SRob Herring		wlan_default_mode: wlan_default {
854*724ba675SRob Herring			/* GPIO216 for WL_HOST_WAKE */
855*724ba675SRob Herring			codina_cfg2 {
856*724ba675SRob Herring				pins = "GPIO216_AG12";
857*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
858*724ba675SRob Herring			};
859*724ba675SRob Herring		};
860*724ba675SRob Herring	};
861*724ba675SRob Herring	bluetooth {
862*724ba675SRob Herring		bluetooth_default_mode: bluetooth_default {
863*724ba675SRob Herring			/* GPIO199 BT_WAKE and GPIO222 BT_VREG_ON */
864*724ba675SRob Herring			codina_cfg1 {
865*724ba675SRob Herring				pins = "GPIO199_AH23", "GPIO222_AJ9";
866*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
867*724ba675SRob Herring			};
868*724ba675SRob Herring			/* GPIO97 BT_HOST_WAKE */
869*724ba675SRob Herring			codina_cfg2 {
870*724ba675SRob Herring				pins = "GPIO97_D9";
871*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
872*724ba675SRob Herring			};
873*724ba675SRob Herring			/* GPIO209 BT_RST_N */
874*724ba675SRob Herring			codina_cfg3 {
875*724ba675SRob Herring				pins = "GPIO209_AG15";
876*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
877*724ba675SRob Herring			};
878*724ba675SRob Herring		};
879*724ba675SRob Herring	};
880*724ba675SRob Herring	/* Interrupt line for TI TSU6111 Micro USB switch */
881*724ba675SRob Herring	tsu6111 {
882*724ba675SRob Herring		tsu6111_codina_default: tsu6111_codina {
883*724ba675SRob Herring			codina_cfg1 {
884*724ba675SRob Herring				/* GPIO95 used for IRQ */
885*724ba675SRob Herring				pins = "GPIO95_E8";
886*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
887*724ba675SRob Herring			};
888*724ba675SRob Herring		};
889*724ba675SRob Herring	};
890*724ba675SRob Herring	nfc {
891*724ba675SRob Herring		pn544_codina_default: pn544_codina {
892*724ba675SRob Herring			/* Interrupt line */
893*724ba675SRob Herring			codina_cfg1 {
894*724ba675SRob Herring				pins = "GPIO32_V2";
895*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
896*724ba675SRob Herring			};
897*724ba675SRob Herring			/* Enable and firmware GPIOs */
898*724ba675SRob Herring			codina_cfg2 {
899*724ba675SRob Herring				pins = "GPIO31_V3", "GPIO88_C4";
900*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
901*724ba675SRob Herring			};
902*724ba675SRob Herring		};
903*724ba675SRob Herring	};
904*724ba675SRob Herring	bcm4751 {
905*724ba675SRob Herring		bcm4751_codina_default: bcm4751_codina {
906*724ba675SRob Herring			/* Reset line, start out asserted */
907*724ba675SRob Herring			codina_cfg1 {
908*724ba675SRob Herring				pins = "GPIO21_AB3";
909*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
910*724ba675SRob Herring			};
911*724ba675SRob Herring			/* GPS_ON_OFF, start out deasserted (off) */
912*724ba675SRob Herring			codina_cfg2 {
913*724ba675SRob Herring				pins = "GPIO86_C6";
914*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
915*724ba675SRob Herring			};
916*724ba675SRob Herring		};
917*724ba675SRob Herring	};
918*724ba675SRob Herring	vibrator {
919*724ba675SRob Herring		vibrator_default: vibrator_default {
920*724ba675SRob Herring			codina_cfg1 {
921*724ba675SRob Herring				pins = "GPIO195_AG28";	/* MOT_EN */
922*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
923*724ba675SRob Herring			};
924*724ba675SRob Herring		};
925*724ba675SRob Herring	};
926*724ba675SRob Herring	mcde {
927*724ba675SRob Herring		dpi_default_mode: dpi_default {
928*724ba675SRob Herring			default_mux1 {
929*724ba675SRob Herring				/* Mux in all the data lines */
930*724ba675SRob Herring				function = "lcd";
931*724ba675SRob Herring				groups =
932*724ba675SRob Herring					/* Data lines D0-D7 GPIO70..GPIO77 */
933*724ba675SRob Herring					"lcd_d0_d7_a_1",
934*724ba675SRob Herring					/* Data lines D8-D11 GPIO78..GPIO81 */
935*724ba675SRob Herring					"lcd_d8_d11_a_1",
936*724ba675SRob Herring					/* Data lines D12-D15 GPIO82..GPIO85 */
937*724ba675SRob Herring					"lcd_d12_d15_a_1",
938*724ba675SRob Herring					/* Data lines D16-D23 GPIO161..GPIO168 */
939*724ba675SRob Herring					"lcd_d16_d23_b_1";
940*724ba675SRob Herring			};
941*724ba675SRob Herring			default_mux2 {
942*724ba675SRob Herring				function = "lcda";
943*724ba675SRob Herring				/* Clock line on GPIO150, DE, VSO, HSO on GPIO169..GPIO171 */
944*724ba675SRob Herring				groups = "lcdaclk_b_1", "lcda_b_1";
945*724ba675SRob Herring			};
946*724ba675SRob Herring			/* Input, no pull-up is the default state for pins used for an alt function */
947*724ba675SRob Herring			default_cfg1 {
948*724ba675SRob Herring				pins = "GPIO150_C14", "GPIO169_D22", "GPIO170_C23", "GPIO171_D23";
949*724ba675SRob Herring				ste,config = <&in_nopull>;
950*724ba675SRob Herring			};
951*724ba675SRob Herring		};
952*724ba675SRob Herring	};
953*724ba675SRob Herring};
954