1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Devicetree for the Samsung Galaxy Amp SGH-I407 also known as Kyle.
4*724ba675SRob Herring *
5*724ba675SRob Herring * The code also refers to "Kyle AT&T" reflecting that this mobile phone
6*724ba675SRob Herring * was customized for the AT&T subsidiary Aio Wireless (All In One) and
7*724ba675SRob Herring * offered by the company in 2013.
8*724ba675SRob Herring */
9*724ba675SRob Herring
10*724ba675SRob Herring/dts-v1/;
11*724ba675SRob Herring#include "ste-db8500.dtsi"
12*724ba675SRob Herring#include "ste-ab8505.dtsi"
13*724ba675SRob Herring#include "ste-dbx5x0-pinctrl.dtsi"
14*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
15*724ba675SRob Herring#include <dt-bindings/leds/common.h>
16*724ba675SRob Herring#include <dt-bindings/input/input.h>
17*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
18*724ba675SRob Herring
19*724ba675SRob Herring/ {
20*724ba675SRob Herring	model = "Samsung Galaxy Amp (SGH-I407)";
21*724ba675SRob Herring	compatible = "samsung,kyle", "st-ericsson,u8500";
22*724ba675SRob Herring
23*724ba675SRob Herring	chosen {
24*724ba675SRob Herring		stdout-path = &serial2;
25*724ba675SRob Herring	};
26*724ba675SRob Herring
27*724ba675SRob Herring	battery: battery {
28*724ba675SRob Herring		compatible = "samsung,eb425161la";
29*724ba675SRob Herring	};
30*724ba675SRob Herring
31*724ba675SRob Herring	thermal-zones {
32*724ba675SRob Herring		battery-thermal {
33*724ba675SRob Herring			/* This zone will be polled by the battery temperature code */
34*724ba675SRob Herring			polling-delay = <0>;
35*724ba675SRob Herring			polling-delay-passive = <0>;
36*724ba675SRob Herring			thermal-sensors = <&bat_therm>;
37*724ba675SRob Herring
38*724ba675SRob Herring			trips {
39*724ba675SRob Herring				battery-crit-hi {
40*724ba675SRob Herring					temperature = <70000>;
41*724ba675SRob Herring					hysteresis = <2000>;
42*724ba675SRob Herring					type = "critical";
43*724ba675SRob Herring				};
44*724ba675SRob Herring			};
45*724ba675SRob Herring		};
46*724ba675SRob Herring	};
47*724ba675SRob Herring
48*724ba675SRob Herring	bat_therm: thermistor {
49*724ba675SRob Herring		compatible = "samsung,1404-001221";
50*724ba675SRob Herring		io-channels = <&gpadc 0x02>; /* BatTemp */
51*724ba675SRob Herring		pullup-uv = <1800000>;
52*724ba675SRob Herring		pullup-ohm = <230000>;
53*724ba675SRob Herring		pulldown-ohm = <0>;
54*724ba675SRob Herring		#thermal-sensor-cells = <0>;
55*724ba675SRob Herring	};
56*724ba675SRob Herring
57*724ba675SRob Herring	/* TI TXS0206 level translator for 2.9 V */
58*724ba675SRob Herring	sd_level_translator: regulator-gpio {
59*724ba675SRob Herring		compatible = "regulator-fixed";
60*724ba675SRob Herring
61*724ba675SRob Herring		/* GPIO87 EN */
62*724ba675SRob Herring		gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
63*724ba675SRob Herring		enable-active-high;
64*724ba675SRob Herring
65*724ba675SRob Herring		regulator-name = "sd-level-translator";
66*724ba675SRob Herring		regulator-min-microvolt = <2900000>;
67*724ba675SRob Herring		regulator-max-microvolt = <2900000>;
68*724ba675SRob Herring		regulator-type = "voltage";
69*724ba675SRob Herring
70*724ba675SRob Herring		startup-delay-us = <200>;
71*724ba675SRob Herring
72*724ba675SRob Herring		pinctrl-names = "default";
73*724ba675SRob Herring		pinctrl-0 = <&sd_level_translator_default>;
74*724ba675SRob Herring	};
75*724ba675SRob Herring
76*724ba675SRob Herring	/* External LDO MIC5366-3.3YMT for eMMC */
77*724ba675SRob Herring	ldo_3v3_reg: regulator-gpio-ldo-3v3 {
78*724ba675SRob Herring		compatible = "regulator-fixed";
79*724ba675SRob Herring		regulator-name = "en-3v3-fixed-supply";
80*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
81*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
82*724ba675SRob Herring		gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>;
83*724ba675SRob Herring		startup-delay-us = <5000>;
84*724ba675SRob Herring		enable-active-high;
85*724ba675SRob Herring		pinctrl-names = "default";
86*724ba675SRob Herring		pinctrl-0 = <&emmc_ldo_en_default_mode>;
87*724ba675SRob Herring	};
88*724ba675SRob Herring
89*724ba675SRob Herring	/*
90*724ba675SRob Herring	 * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
91*724ba675SRob Herring	 * LCD_PWR_EN controls both a 3.0V and 1.8V output.
92*724ba675SRob Herring	 */
93*724ba675SRob Herring	lcd_3v0_reg: regulator-gpio-lcd-3v0 {
94*724ba675SRob Herring		compatible = "regulator-fixed";
95*724ba675SRob Herring		/* Supplied in turn by VBAT */
96*724ba675SRob Herring		regulator-name = "VREG_LCD_3V0";
97*724ba675SRob Herring		regulator-min-microvolt = <3000000>;
98*724ba675SRob Herring		regulator-max-microvolt = <3000000>;
99*724ba675SRob Herring		/* GPIO219 controls this regulator */
100*724ba675SRob Herring		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
101*724ba675SRob Herring		enable-active-high;
102*724ba675SRob Herring		pinctrl-names = "default";
103*724ba675SRob Herring		pinctrl-0 = <&lcd_pwr_en_default_mode>;
104*724ba675SRob Herring	};
105*724ba675SRob Herring	lcd_1v8_reg: regulator-gpio-lcd-1v8 {
106*724ba675SRob Herring		compatible = "regulator-fixed";
107*724ba675SRob Herring		/* Supplied in turn by VBAT */
108*724ba675SRob Herring		regulator-name = "VREG_LCD_1V8";
109*724ba675SRob Herring		regulator-min-microvolt = <1800000>;
110*724ba675SRob Herring		regulator-max-microvolt = <1800000>;
111*724ba675SRob Herring		/* GPIO219 controls this regulator too */
112*724ba675SRob Herring		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
113*724ba675SRob Herring		enable-active-high;
114*724ba675SRob Herring		pinctrl-names = "default";
115*724ba675SRob Herring		pinctrl-0 = <&lcd_pwr_en_default_mode>;
116*724ba675SRob Herring	};
117*724ba675SRob Herring
118*724ba675SRob Herring	wlan_en: regulator-gpio-wlan-en {
119*724ba675SRob Herring		compatible = "regulator-fixed";
120*724ba675SRob Herring		regulator-name = "wl-reg-on";
121*724ba675SRob Herring		regulator-min-microvolt = <3000000>;
122*724ba675SRob Herring		regulator-max-microvolt = <3000000>;
123*724ba675SRob Herring		startup-delay-us = <200000>;
124*724ba675SRob Herring		/* GPIO215 WLAN_EN */
125*724ba675SRob Herring		gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
126*724ba675SRob Herring		enable-active-high;
127*724ba675SRob Herring		pinctrl-names = "default";
128*724ba675SRob Herring		pinctrl-0 = <&wlan_en_default_mode>;
129*724ba675SRob Herring	};
130*724ba675SRob Herring
131*724ba675SRob Herring	vibrator {
132*724ba675SRob Herring		compatible = "gpio-vibrator";
133*724ba675SRob Herring		enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
134*724ba675SRob Herring		pinctrl-names = "default";
135*724ba675SRob Herring		pinctrl-0 = <&vibrator_default>;
136*724ba675SRob Herring	};
137*724ba675SRob Herring
138*724ba675SRob Herring	gpio-keys {
139*724ba675SRob Herring		compatible = "gpio-keys";
140*724ba675SRob Herring		pinctrl-names = "default";
141*724ba675SRob Herring		pinctrl-0 = <&gpio_keys_default_mode>;
142*724ba675SRob Herring
143*724ba675SRob Herring		button-home {
144*724ba675SRob Herring			linux,code = <KEY_HOME>;
145*724ba675SRob Herring			label = "HOME";
146*724ba675SRob Herring			/* GPIO91 */
147*724ba675SRob Herring			gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
148*724ba675SRob Herring		};
149*724ba675SRob Herring		button-volup {
150*724ba675SRob Herring			linux,code = <KEY_VOLUMEUP>;
151*724ba675SRob Herring			label = "VOL+";
152*724ba675SRob Herring			/* GPIO67 */
153*724ba675SRob Herring			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
154*724ba675SRob Herring		};
155*724ba675SRob Herring		button-voldown {
156*724ba675SRob Herring			linux,code = <KEY_VOLUMEDOWN>;
157*724ba675SRob Herring			label = "VOL-";
158*724ba675SRob Herring			/* GPIO92 */
159*724ba675SRob Herring			gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
160*724ba675SRob Herring		};
161*724ba675SRob Herring	};
162*724ba675SRob Herring
163*724ba675SRob Herring	ktd253: backlight {
164*724ba675SRob Herring		compatible = "kinetic,ktd253";
165*724ba675SRob Herring		/* GPIO 69 */
166*724ba675SRob Herring		enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
167*724ba675SRob Herring		/* Default to 13/32 brightness */
168*724ba675SRob Herring		default-brightness = <13>;
169*724ba675SRob Herring		pinctrl-names = "default";
170*724ba675SRob Herring		pinctrl-0 = <&gpio_backlight_default_mode>;
171*724ba675SRob Herring	};
172*724ba675SRob Herring
173*724ba675SRob Herring	/* Richtek RT8515GQW Flash LED Driver IC */
174*724ba675SRob Herring	flash {
175*724ba675SRob Herring		compatible = "richtek,rt8515";
176*724ba675SRob Herring		/* GPIO 140 */
177*724ba675SRob Herring		enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
178*724ba675SRob Herring		/* GPIO 141 */
179*724ba675SRob Herring		ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
180*724ba675SRob Herring		/*
181*724ba675SRob Herring		 * RFS is 16 kOhm and RTS is 100 kOhm giving
182*724ba675SRob Herring		 * the flash max current 343mA and torch max
183*724ba675SRob Herring		 * current 55 mA.
184*724ba675SRob Herring		 */
185*724ba675SRob Herring		richtek,rfs-ohms = <16000>;
186*724ba675SRob Herring		richtek,rts-ohms = <100000>;
187*724ba675SRob Herring		pinctrl-names = "default";
188*724ba675SRob Herring		pinctrl-0 = <&gpio_flash_default_mode>;
189*724ba675SRob Herring
190*724ba675SRob Herring		led {
191*724ba675SRob Herring			function = LED_FUNCTION_FLASH;
192*724ba675SRob Herring			color = <LED_COLOR_ID_WHITE>;
193*724ba675SRob Herring			flash-max-timeout-us = <250000>;
194*724ba675SRob Herring			flash-max-microamp = <343750>;
195*724ba675SRob Herring			led-max-microamp = <55000>;
196*724ba675SRob Herring		};
197*724ba675SRob Herring	};
198*724ba675SRob Herring
199*724ba675SRob Herring	i2c-gpio-0 {
200*724ba675SRob Herring		compatible = "i2c-gpio";
201*724ba675SRob Herring		sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
202*724ba675SRob Herring		scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
203*724ba675SRob Herring		pinctrl-names = "default";
204*724ba675SRob Herring		pinctrl-0 = <&i2c_gpio_0_default>;
205*724ba675SRob Herring		#address-cells = <1>;
206*724ba675SRob Herring		#size-cells = <0>;
207*724ba675SRob Herring		/* TODO: this should be used by the NCP6914 Camera power management unit */
208*724ba675SRob Herring	};
209*724ba675SRob Herring
210*724ba675SRob Herring	i2c-gpio-1 {
211*724ba675SRob Herring		compatible = "i2c-gpio";
212*724ba675SRob Herring		sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
213*724ba675SRob Herring		scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
214*724ba675SRob Herring		pinctrl-names = "default";
215*724ba675SRob Herring		pinctrl-0 = <&i2c_gpio_1_default>;
216*724ba675SRob Herring		#address-cells = <1>;
217*724ba675SRob Herring		#size-cells = <0>;
218*724ba675SRob Herring		magnetometer@c {
219*724ba675SRob Herring			compatible = "alps,hscdtd008a";
220*724ba675SRob Herring			reg = <0x0c>;
221*724ba675SRob Herring			avdd-supply = <&ab8500_ldo_aux1_reg>;
222*724ba675SRob Herring			dvdd-supply = <&ab8500_ldo_aux6_reg>;
223*724ba675SRob Herring		};
224*724ba675SRob Herring	};
225*724ba675SRob Herring
226*724ba675SRob Herring	soc {
227*724ba675SRob Herring		// External Micro SD slot
228*724ba675SRob Herring		mmc@80126000 {
229*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
230*724ba675SRob Herring			max-frequency = <100000000>;
231*724ba675SRob Herring			bus-width = <4>;
232*724ba675SRob Herring			cap-sd-highspeed;
233*724ba675SRob Herring			cap-mmc-highspeed;
234*724ba675SRob Herring			st,sig-pin-fbclk;
235*724ba675SRob Herring			full-pwr-cycle;
236*724ba675SRob Herring			vmmc-supply = <&ab8500_ldo_aux3_reg>;
237*724ba675SRob Herring			vqmmc-supply = <&sd_level_translator>;
238*724ba675SRob Herring			pinctrl-names = "default", "sleep";
239*724ba675SRob Herring			pinctrl-0 = <&mc0_a_1_default>;
240*724ba675SRob Herring			pinctrl-1 = <&mc0_a_1_sleep>;
241*724ba675SRob Herring			cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
242*724ba675SRob Herring			status = "okay";
243*724ba675SRob Herring		};
244*724ba675SRob Herring
245*724ba675SRob Herring		// WLAN SDIO channel
246*724ba675SRob Herring		mmc@80118000 {
247*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
248*724ba675SRob Herring			max-frequency = <50000000>;
249*724ba675SRob Herring			bus-width = <4>;
250*724ba675SRob Herring			non-removable;
251*724ba675SRob Herring			cap-sd-highspeed;
252*724ba675SRob Herring			vmmc-supply = <&wlan_en>;
253*724ba675SRob Herring			pinctrl-names = "default", "sleep";
254*724ba675SRob Herring			pinctrl-0 = <&mc1_a_2_default>;
255*724ba675SRob Herring			pinctrl-1 = <&mc1_a_2_sleep>;
256*724ba675SRob Herring			status = "okay";
257*724ba675SRob Herring			#address-cells = <1>;
258*724ba675SRob Herring			#size-cells = <0>;
259*724ba675SRob Herring
260*724ba675SRob Herring			wifi@1 {
261*724ba675SRob Herring				compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
262*724ba675SRob Herring				reg = <1>;
263*724ba675SRob Herring				/* GPIO216 WL_HOST_WAKE */
264*724ba675SRob Herring				interrupt-parent = <&gpio6>;
265*724ba675SRob Herring				interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
266*724ba675SRob Herring				interrupt-names = "host-wake";
267*724ba675SRob Herring				pinctrl-names = "default";
268*724ba675SRob Herring				pinctrl-0 = <&wlan_default_mode>;
269*724ba675SRob Herring			};
270*724ba675SRob Herring		};
271*724ba675SRob Herring
272*724ba675SRob Herring		/*
273*724ba675SRob Herring		 * eMMC seems to be mostly Samsung KLM4G1YE4C "4YMD1R"
274*724ba675SRob Herring		 */
275*724ba675SRob Herring		mmc@80005000 {
276*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
277*724ba675SRob Herring		        max-frequency = <100000000>;
278*724ba675SRob Herring			bus-width = <8>;
279*724ba675SRob Herring			non-removable;
280*724ba675SRob Herring			cap-mmc-highspeed;
281*724ba675SRob Herring			mmc-ddr-1_8v;
282*724ba675SRob Herring			no-sdio;
283*724ba675SRob Herring			no-sd;
284*724ba675SRob Herring			/* From datasheet page 26 figure 9: 300 ms set-up time for 4GB */
285*724ba675SRob Herring			post-power-on-delay-ms = <300>;
286*724ba675SRob Herring			vmmc-supply = <&ldo_3v3_reg>;
287*724ba675SRob Herring			pinctrl-names = "default", "sleep";
288*724ba675SRob Herring			pinctrl-0 = <&mc2_a_1_default>;
289*724ba675SRob Herring			pinctrl-1 = <&mc2_a_1_sleep>;
290*724ba675SRob Herring
291*724ba675SRob Herring			status = "okay";
292*724ba675SRob Herring		};
293*724ba675SRob Herring
294*724ba675SRob Herring		/* GBF (Bluetooth) UART */
295*724ba675SRob Herring		serial@80120000 {
296*724ba675SRob Herring			pinctrl-names = "default", "sleep";
297*724ba675SRob Herring			pinctrl-0 = <&u0_a_1_default>;
298*724ba675SRob Herring			pinctrl-1 = <&u0_a_1_sleep>;
299*724ba675SRob Herring			status = "okay";
300*724ba675SRob Herring
301*724ba675SRob Herring			bluetooth {
302*724ba675SRob Herring				/* BCM4334B0 actually */
303*724ba675SRob Herring				compatible = "brcm,bcm4330-bt";
304*724ba675SRob Herring				shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
305*724ba675SRob Herring				device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
306*724ba675SRob Herring				host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
307*724ba675SRob Herring				pinctrl-names = "default";
308*724ba675SRob Herring				pinctrl-0 = <&bluetooth_default_mode>;
309*724ba675SRob Herring			};
310*724ba675SRob Herring		};
311*724ba675SRob Herring
312*724ba675SRob Herring		/* GPF UART */
313*724ba675SRob Herring		serial@80121000 {
314*724ba675SRob Herring			status = "okay";
315*724ba675SRob Herring			pinctrl-names = "default", "sleep";
316*724ba675SRob Herring			pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>;
317*724ba675SRob Herring			pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>;
318*724ba675SRob Herring
319*724ba675SRob Herring			gnss {
320*724ba675SRob Herring				/* The CSRG05TA03-ICJE-R is a SirfStarV 5t chip */
321*724ba675SRob Herring				compatible = "csr,csrg05ta03-icje-r";
322*724ba675SRob Herring				/* GPS_RSTN on GPIO21 */
323*724ba675SRob Herring				reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
324*724ba675SRob Herring				/* GPS_ON_OFF on GPIO86 */
325*724ba675SRob Herring				sirf,onoff-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
326*724ba675SRob Herring				/* GPS_1V8 (VSMPS2) */
327*724ba675SRob Herring				vcc-supply = <&db8500_vsmps2_reg>;
328*724ba675SRob Herring				pinctrl-names = "default";
329*724ba675SRob Herring				pinctrl-0 = <&g05ta03_kyle_default>;
330*724ba675SRob Herring				/* According to /etc/sirfgps.conf */
331*724ba675SRob Herring				current-speed = <460800>;
332*724ba675SRob Herring			};
333*724ba675SRob Herring		};
334*724ba675SRob Herring
335*724ba675SRob Herring		/* Debugging console UART connected to AB8505 USB */
336*724ba675SRob Herring		serial@80007000 {
337*724ba675SRob Herring			status = "okay";
338*724ba675SRob Herring			pinctrl-names = "default", "sleep";
339*724ba675SRob Herring			pinctrl-0 = <&u2rxtx_c_1_default>;
340*724ba675SRob Herring			pinctrl-1 = <&u2rxtx_c_1_sleep>;
341*724ba675SRob Herring		};
342*724ba675SRob Herring
343*724ba675SRob Herring		prcmu@80157000 {
344*724ba675SRob Herring			ab8505 {
345*724ba675SRob Herring				phy {
346*724ba675SRob Herring					pinctrl-names = "default", "sleep";
347*724ba675SRob Herring					pinctrl-0 = <&usb_a_1_default>;
348*724ba675SRob Herring					pinctrl-1 = <&usb_a_1_sleep>;
349*724ba675SRob Herring				};
350*724ba675SRob Herring
351*724ba675SRob Herring				ab8500_fg {
352*724ba675SRob Herring					line-impedance-micro-ohms = <36000>;
353*724ba675SRob Herring				};
354*724ba675SRob Herring
355*724ba675SRob Herring				regulator {
356*724ba675SRob Herring					ab8500_ldo_aux1 {
357*724ba675SRob Herring						/* Used for VDD for sensors */
358*724ba675SRob Herring						regulator-name = "AUX1";
359*724ba675SRob Herring						regulator-min-microvolt = <3000000>;
360*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
361*724ba675SRob Herring					};
362*724ba675SRob Herring
363*724ba675SRob Herring					ab8500_ldo_aux2 {
364*724ba675SRob Herring						/* Supplies the MMS touchscreen only with 3.3V */
365*724ba675SRob Herring						regulator-name = "AUX2";
366*724ba675SRob Herring						regulator-min-microvolt = <3300000>;
367*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
368*724ba675SRob Herring					};
369*724ba675SRob Herring
370*724ba675SRob Herring					ab8500_ldo_aux3 {
371*724ba675SRob Herring						/* Used for voltage for external MMC/SD card */
372*724ba675SRob Herring						regulator-name = "AUX3";
373*724ba675SRob Herring						regulator-min-microvolt = <1100000>;
374*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
375*724ba675SRob Herring					};
376*724ba675SRob Herring
377*724ba675SRob Herring					ab8500_ldo_aux4 {
378*724ba675SRob Herring						regulator-name = "AUX4";
379*724ba675SRob Herring						/* Hammer to 3.3V for the touchscreen */
380*724ba675SRob Herring						regulator-min-microvolt = <3300000>;
381*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
382*724ba675SRob Herring					};
383*724ba675SRob Herring
384*724ba675SRob Herring					ab8500_ldo_aux5 {
385*724ba675SRob Herring						regulator-name = "AUX5";
386*724ba675SRob Herring						/* 1.8V for the touchscreen */
387*724ba675SRob Herring						regulator-min-microvolt = <1800000>;
388*724ba675SRob Herring						regulator-max-microvolt = <1800000>;
389*724ba675SRob Herring					};
390*724ba675SRob Herring
391*724ba675SRob Herring					ab8500_ldo_aux6 {
392*724ba675SRob Herring						regulator-name = "AUX6";
393*724ba675SRob Herring						/* Used by sensors for 1.8 V in R0.1+ */
394*724ba675SRob Herring						regulator-min-microvolt = <1800000>;
395*724ba675SRob Herring						regulator-max-microvolt = <1800000>;
396*724ba675SRob Herring					};
397*724ba675SRob Herring
398*724ba675SRob Herring					ab8500_ldo_aux8 {
399*724ba675SRob Herring						/* Unused */
400*724ba675SRob Herring						regulator-name = "AUX8";
401*724ba675SRob Herring					};
402*724ba675SRob Herring				};
403*724ba675SRob Herring			};
404*724ba675SRob Herring		};
405*724ba675SRob Herring
406*724ba675SRob Herring		/* I2C0 */
407*724ba675SRob Herring		i2c@80004000 {
408*724ba675SRob Herring			status = "okay";
409*724ba675SRob Herring
410*724ba675SRob Herring			pinctrl-names = "default", "sleep";
411*724ba675SRob Herring			pinctrl-0 = <&i2c0_a_1_default>;
412*724ba675SRob Herring			pinctrl-1 = <&i2c0_a_1_sleep>;
413*724ba675SRob Herring
414*724ba675SRob Herring			proximity@44 {
415*724ba675SRob Herring				compatible = "sharp,gp2ap002s00f";
416*724ba675SRob Herring				clock-frequency = <400000>;
417*724ba675SRob Herring				reg = <0x44>;
418*724ba675SRob Herring
419*724ba675SRob Herring				interrupt-parent = <&gpio4>;
420*724ba675SRob Herring				interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
421*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
422*724ba675SRob Herring				vio-supply = <&ab8500_ldo_aux6_reg>;
423*724ba675SRob Herring				pinctrl-names = "default";
424*724ba675SRob Herring				pinctrl-0 = <&gp2ap002_kyle_default>;
425*724ba675SRob Herring				sharp,proximity-far-hysteresis = /bits/ 8 <0x2f>;
426*724ba675SRob Herring				sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>;
427*724ba675SRob Herring			};
428*724ba675SRob Herring		};
429*724ba675SRob Herring
430*724ba675SRob Herring		/* I2C2 */
431*724ba675SRob Herring		i2c@80128000 {
432*724ba675SRob Herring			status = "okay";
433*724ba675SRob Herring
434*724ba675SRob Herring			pinctrl-names = "default", "sleep";
435*724ba675SRob Herring			pinctrl-0 = <&i2c2_b_2_default>;
436*724ba675SRob Herring			pinctrl-1 = <&i2c2_b_2_sleep>;
437*724ba675SRob Herring
438*724ba675SRob Herring			accel@18 {
439*724ba675SRob Herring				compatible = "bosch,bma254";
440*724ba675SRob Herring				clock-frequency = <400000>;
441*724ba675SRob Herring				reg = <0x18>;
442*724ba675SRob Herring
443*724ba675SRob Herring				mount-matrix = "-1", "0", "0",
444*724ba675SRob Herring					       "0", "-1", "0",
445*724ba675SRob Herring					       "0", "0", "-1";
446*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
447*724ba675SRob Herring				vddio-supply = <&ab8500_ldo_aux6_reg>;
448*724ba675SRob Herring			};
449*724ba675SRob Herring		};
450*724ba675SRob Herring
451*724ba675SRob Herring		/* I2C3 */
452*724ba675SRob Herring		i2c@80110000 {
453*724ba675SRob Herring			status = "okay";
454*724ba675SRob Herring
455*724ba675SRob Herring			pinctrl-names = "default", "sleep";
456*724ba675SRob Herring			pinctrl-0 = <&i2c3_c_2_default>;
457*724ba675SRob Herring			pinctrl-1 = <&i2c3_c_2_sleep>;
458*724ba675SRob Herring
459*724ba675SRob Herring			/* Melfas MMS134S touchscreen */
460*724ba675SRob Herring			touchscreen@48 {
461*724ba675SRob Herring				compatible = "melfas,mms134s";
462*724ba675SRob Herring				reg = <0x48>;
463*724ba675SRob Herring				/* GPIO218 for IRQ */
464*724ba675SRob Herring				interrupt-parent = <&gpio6>;
465*724ba675SRob Herring				interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
466*724ba675SRob Herring				/* AVDD is "analog supply", 2.57-3.47 V */
467*724ba675SRob Herring				avdd-supply = <&ab8500_ldo_aux2_reg>;
468*724ba675SRob Herring				/* VDD is "digital supply" 1.71-3.47V */
469*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux5_reg>;
470*724ba675SRob Herring
471*724ba675SRob Herring				touchscreen-size-x = <480>;
472*724ba675SRob Herring				touchscreen-size-y = <800>;
473*724ba675SRob Herring
474*724ba675SRob Herring				pinctrl-names = "default";
475*724ba675SRob Herring				pinctrl-0 = <&mms134s_kyle_default>;
476*724ba675SRob Herring			};
477*724ba675SRob Herring		};
478*724ba675SRob Herring
479*724ba675SRob Herring		mcde@a0350000 {
480*724ba675SRob Herring			status = "okay";
481*724ba675SRob Herring			pinctrl-names = "default";
482*724ba675SRob Herring			pinctrl-0 = <&dsi_default_mode>;
483*724ba675SRob Herring
484*724ba675SRob Herring			dsi@a0351000 {
485*724ba675SRob Herring				panel {
486*724ba675SRob Herring					/*
487*724ba675SRob Herring					 * NT35510-based Hydis HVA40WV1
488*724ba675SRob Herring					 * Apparently some Kyle models can have a NT35512 fitted
489*724ba675SRob Herring					 * here instead. In that case the boot loader needs to
490*724ba675SRob Herring					 * modify this compatible.
491*724ba675SRob Herring					 */
492*724ba675SRob Herring					compatible = "hydis,hva40wv1", "novatek,nt35510";
493*724ba675SRob Herring					reg = <0>;
494*724ba675SRob Herring					/* v_lcd_3v0 2.3-4.8V */
495*724ba675SRob Herring					vdd-supply = <&lcd_3v0_reg>;
496*724ba675SRob Herring					/* v_lcd_1v8 1.65-3.3V */
497*724ba675SRob Herring					vddi-supply = <&lcd_1v8_reg>;
498*724ba675SRob Herring					/* GPIO 139 */
499*724ba675SRob Herring					reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
500*724ba675SRob Herring					pinctrl-names = "default";
501*724ba675SRob Herring					pinctrl-0 = <&display_default_mode>;
502*724ba675SRob Herring					backlight = <&ktd253>;
503*724ba675SRob Herring				};
504*724ba675SRob Herring			};
505*724ba675SRob Herring		};
506*724ba675SRob Herring	};
507*724ba675SRob Herring};
508*724ba675SRob Herring
509*724ba675SRob Herring&pinctrl {
510*724ba675SRob Herring	/*
511*724ba675SRob Herring	 * This extends the MC0_A_1 default config to include
512*724ba675SRob Herring	 * the card detect GPIO217 line.
513*724ba675SRob Herring	 */
514*724ba675SRob Herring	sdi0 {
515*724ba675SRob Herring		mc0_a_1_default {
516*724ba675SRob Herring			default_cfg1 {
517*724ba675SRob Herring				/* GPIO18, 19 & 20 unused so pull down */
518*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
519*724ba675SRob Herring			};
520*724ba675SRob Herring			default_cfg4 {
521*724ba675SRob Herring				pins = "GPIO217_AH12"; /* card detect */
522*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
523*724ba675SRob Herring			};
524*724ba675SRob Herring		};
525*724ba675SRob Herring	};
526*724ba675SRob Herring
527*724ba675SRob Herring	mcde {
528*724ba675SRob Herring		dsi_default_mode: dsi_default {
529*724ba675SRob Herring			default_mux1 {
530*724ba675SRob Herring				/* Mux in VSI0 used for DSI TE */
531*724ba675SRob Herring				function = "lcd";
532*724ba675SRob Herring				groups = "lcdvsi0_a_1"; /* VSI0 for LCD */
533*724ba675SRob Herring			};
534*724ba675SRob Herring			default_cfg1 {
535*724ba675SRob Herring				pins = "GPIO68_E1"; /* VSI0 */
536*724ba675SRob Herring				ste,config = <&in_nopull>;
537*724ba675SRob Herring			};
538*724ba675SRob Herring		};
539*724ba675SRob Herring	};
540*724ba675SRob Herring
541*724ba675SRob Herring	/* Two GPIO lines used by the display */
542*724ba675SRob Herring	display {
543*724ba675SRob Herring		display_default_mode: display_default {
544*724ba675SRob Herring			kyle_cfg1 {
545*724ba675SRob Herring				/*
546*724ba675SRob Herring				 * OLED DETECT or check_pba, this appears to be high
547*724ba675SRob Herring				 * on "PBA" which I guess is "prototype board A".
548*724ba675SRob Herring				 */
549*724ba675SRob Herring				pins = "GPIO93_B7";
550*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
551*724ba675SRob Herring			};
552*724ba675SRob Herring			kyle_cfg2 {
553*724ba675SRob Herring				pins = "GPIO139_C9";
554*724ba675SRob Herring				/*
555*724ba675SRob Herring				 * MIPI_DSI0_RESET_N resets the display, leave high
556*724ba675SRob Herring				 * (de-asserted) so we only assert reset explicitly
557*724ba675SRob Herring				 * from the display driver.
558*724ba675SRob Herring				 */
559*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
560*724ba675SRob Herring			};
561*724ba675SRob Herring		};
562*724ba675SRob Herring	};
563*724ba675SRob Herring
564*724ba675SRob Herring	/* GPIO that enables the LDO regulator for the LCD display */
565*724ba675SRob Herring	lcd-ldo {
566*724ba675SRob Herring		lcd_pwr_en_default_mode: lcd_pwr_en_default {
567*724ba675SRob Herring			/* LCD_PWR_EN on GPIO219 */
568*724ba675SRob Herring			kyle_cfg1 {
569*724ba675SRob Herring				pins = "GPIO219_AG10";
570*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
571*724ba675SRob Herring			};
572*724ba675SRob Herring		};
573*724ba675SRob Herring	};
574*724ba675SRob Herring
575*724ba675SRob Herring	backlight {
576*724ba675SRob Herring		gpio_backlight_default_mode: backlight_default {
577*724ba675SRob Herring			kyle_cfg1 {
578*724ba675SRob Herring				pins = "GPIO69_E2"; /* LCD_BL_CTRL */
579*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
580*724ba675SRob Herring			};
581*724ba675SRob Herring		};
582*724ba675SRob Herring	};
583*724ba675SRob Herring	flash {
584*724ba675SRob Herring		gpio_flash_default_mode: flash_default {
585*724ba675SRob Herring			kyle_cfg1 {
586*724ba675SRob Herring				pins = "GPIO140_B11", "GPIO141_C12";
587*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
588*724ba675SRob Herring			};
589*724ba675SRob Herring		};
590*724ba675SRob Herring	};
591*724ba675SRob Herring	/* GPIO that enables the 2.9V SD card level translator */
592*724ba675SRob Herring	sd-level-translator {
593*724ba675SRob Herring		sd_level_translator_default: sd_level_translator_default {
594*724ba675SRob Herring			/* level shifter on GPIO87 */
595*724ba675SRob Herring			kyle_cfg1 {
596*724ba675SRob Herring				pins = "GPIO87_B3";
597*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
598*724ba675SRob Herring			};
599*724ba675SRob Herring		};
600*724ba675SRob Herring	};
601*724ba675SRob Herring	/* GPIO that enables the LDO regulator for the eMMC */
602*724ba675SRob Herring	emmc-ldo {
603*724ba675SRob Herring		emmc_ldo_en_default_mode: emmc_ldo_default {
604*724ba675SRob Herring			/* LDO enable on GPIO223 */
605*724ba675SRob Herring			kyle_cfg1 {
606*724ba675SRob Herring				pins = "GPIO223_AH9";
607*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
608*724ba675SRob Herring			};
609*724ba675SRob Herring		};
610*724ba675SRob Herring	};
611*724ba675SRob Herring	/* GPIO keys */
612*724ba675SRob Herring	gpio-keys {
613*724ba675SRob Herring		gpio_keys_default_mode: gpio_keys_default {
614*724ba675SRob Herring			kyle_cfg1 {
615*724ba675SRob Herring				pins = "GPIO67_G2", /* VOL UP */
616*724ba675SRob Herring				       "GPIO91_B6", /* HOME */
617*724ba675SRob Herring				       "GPIO92_D6"; /* VOL DOWN */
618*724ba675SRob Herring					ste,config = <&gpio_in_pu>;
619*724ba675SRob Herring			};
620*724ba675SRob Herring		};
621*724ba675SRob Herring	};
622*724ba675SRob Herring	/* Interrupt line for light/proximity sensor GP2AP002 */
623*724ba675SRob Herring	gp2ap002 {
624*724ba675SRob Herring		gp2ap002_kyle_default: gp2ap002_kyle {
625*724ba675SRob Herring			kyle_cfg1 {
626*724ba675SRob Herring				pins = "GPIO146_D13";
627*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
628*724ba675SRob Herring			};
629*724ba675SRob Herring		};
630*724ba675SRob Herring	};
631*724ba675SRob Herring	/* GPIO-based I2C bus for NCP6914 */
632*724ba675SRob Herring	i2c-gpio-0 {
633*724ba675SRob Herring		i2c_gpio_0_default: i2c_gpio_0 {
634*724ba675SRob Herring			kyle_cfg1 {
635*724ba675SRob Herring				pins = "GPIO143_D12", "GPIO144_B13";
636*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
637*724ba675SRob Herring			};
638*724ba675SRob Herring		};
639*724ba675SRob Herring	};
640*724ba675SRob Herring	/* GPIO-based I2C bus for ALPS HSCD compass */
641*724ba675SRob Herring	i2c-gpio-1 {
642*724ba675SRob Herring		i2c_gpio_1_default: i2c_gpio_1 {
643*724ba675SRob Herring			kyle_cfg1 {
644*724ba675SRob Herring				pins = "GPIO151_B17", "GPIO152_D16";
645*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
646*724ba675SRob Herring			};
647*724ba675SRob Herring		};
648*724ba675SRob Herring	};
649*724ba675SRob Herring	wlan {
650*724ba675SRob Herring		wlan_default_mode: wlan_default {
651*724ba675SRob Herring			kyle_cfg1 {
652*724ba675SRob Herring				pins = "GPIO216_AG12";
653*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
654*724ba675SRob Herring			};
655*724ba675SRob Herring		};
656*724ba675SRob Herring		wlan_en_default_mode: wlan_en_default {
657*724ba675SRob Herring			kyle_cfg2 {
658*724ba675SRob Herring				pins = "GPIO215_AH13";
659*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
660*724ba675SRob Herring			};
661*724ba675SRob Herring		};
662*724ba675SRob Herring	};
663*724ba675SRob Herring	bluetooth {
664*724ba675SRob Herring		bluetooth_default_mode: bluetooth_default {
665*724ba675SRob Herring			kyle_cfg1 {
666*724ba675SRob Herring				pins = "GPIO199_AH23", "GPIO222_AJ9";
667*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
668*724ba675SRob Herring			};
669*724ba675SRob Herring			kyle_cfg2 {
670*724ba675SRob Herring				pins = "GPIO97_D9";
671*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
672*724ba675SRob Herring			};
673*724ba675SRob Herring		};
674*724ba675SRob Herring	};
675*724ba675SRob Herring	vibrator {
676*724ba675SRob Herring		vibrator_default: vibrator_default {
677*724ba675SRob Herring			kyle_cfg1 {
678*724ba675SRob Herring				pins = "GPIO195_AG28";	/* MOT_EN */
679*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
680*724ba675SRob Herring			};
681*724ba675SRob Herring		};
682*724ba675SRob Herring	};
683*724ba675SRob Herring	/* Interrupt line for the Melfas MMS134S touchscreen */
684*724ba675SRob Herring	touchscreen {
685*724ba675SRob Herring		mms134s_kyle_default: mms134s_kyle {
686*724ba675SRob Herring			kyle_cfg1 {
687*724ba675SRob Herring				pins = "GPIO218_AH11";
688*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
689*724ba675SRob Herring			};
690*724ba675SRob Herring		};
691*724ba675SRob Herring	};
692*724ba675SRob Herring	g05ta03 {
693*724ba675SRob Herring		g05ta03_kyle_default: g05ta03 {
694*724ba675SRob Herring			/* Reset line, start out de-asserted */
695*724ba675SRob Herring			kyle_cfg1 {
696*724ba675SRob Herring				pins = "GPIO21_AB3";
697*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
698*724ba675SRob Herring			};
699*724ba675SRob Herring			/* GPS_ON_OFF, start out deasserted (off) */
700*724ba675SRob Herring			kyle_cfg2 {
701*724ba675SRob Herring				pins = "GPIO86_C6";
702*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
703*724ba675SRob Herring			};
704*724ba675SRob Herring		};
705*724ba675SRob Herring	};
706*724ba675SRob Herring};
707*724ba675SRob Herring
708*724ba675SRob Herring&ab8505_gpio {
709*724ba675SRob Herring	/* Hog a few default settings */
710*724ba675SRob Herring	pinctrl-names = "default";
711*724ba675SRob Herring	pinctrl-0 = <&gpio_default>;
712*724ba675SRob Herring
713*724ba675SRob Herring	gpio {
714*724ba675SRob Herring		gpio_default: gpio_default {
715*724ba675SRob Herring			kyle_mux {
716*724ba675SRob Herring				/* Change unused pins to GPIO mode */
717*724ba675SRob Herring				function = "gpio";
718*724ba675SRob Herring				groups = "gpio3_a_1",	/* default: SysClkReq4 */
719*724ba675SRob Herring					 "gpio14_a_1";	/* default: PWMOut1 */
720*724ba675SRob Herring			};
721*724ba675SRob Herring			kyle_cfg1 {
722*724ba675SRob Herring				pins = "GPIO11_B17", "GPIO13_D17", "GPIO50_L4";
723*724ba675SRob Herring				bias-disable;
724*724ba675SRob Herring			};
725*724ba675SRob Herring		};
726*724ba675SRob Herring	};
727*724ba675SRob Herring};
728