xref: /linux/arch/arm/boot/dts/st/ste-ux500-samsung-golden.dts (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/dts-v1/;
3*724ba675SRob Herring
4*724ba675SRob Herring#include "ste-db8500.dtsi"
5*724ba675SRob Herring#include "ste-ab8505.dtsi"
6*724ba675SRob Herring#include "ste-dbx5x0-pinctrl.dtsi"
7*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
8*724ba675SRob Herring#include <dt-bindings/leds/common.h>
9*724ba675SRob Herring#include <dt-bindings/input/input.h>
10*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
11*724ba675SRob Herring
12*724ba675SRob Herring/*
13*724ba675SRob Herring * Note: This device tree cannot be booted directly with the Samsung bootloader.
14*724ba675SRob Herring * You need an intermediate, device-tree compatible bootloader
15*724ba675SRob Herring * that locks the L2 cache. Otherwise the kernel will crash after decompression.
16*724ba675SRob Herring *
17*724ba675SRob Herring * There is a port of (mainline) U-Boot, see
18*724ba675SRob Herring * https://wiki.postmarketos.org/wiki/ST-Ericsson_NovaThor_U8500#U-Boot
19*724ba675SRob Herring */
20*724ba675SRob Herring/ {
21*724ba675SRob Herring	model = "Samsung Galaxy S III mini (GT-I8190)";
22*724ba675SRob Herring	compatible = "samsung,golden", "st-ericsson,u8500";
23*724ba675SRob Herring
24*724ba675SRob Herring	chosen {
25*724ba675SRob Herring		stdout-path = &serial2;
26*724ba675SRob Herring	};
27*724ba675SRob Herring
28*724ba675SRob Herring	battery: battery {
29*724ba675SRob Herring		compatible = "samsung,eb-l1m7flu";
30*724ba675SRob Herring	};
31*724ba675SRob Herring
32*724ba675SRob Herring	thermal-zones {
33*724ba675SRob Herring		battery-thermal {
34*724ba675SRob Herring			/* This zone will be polled by the battery temperature code */
35*724ba675SRob Herring			polling-delay = <0>;
36*724ba675SRob Herring			polling-delay-passive = <0>;
37*724ba675SRob Herring			thermal-sensors = <&bat_therm>;
38*724ba675SRob Herring
39*724ba675SRob Herring			trips {
40*724ba675SRob Herring				battery-crit-hi {
41*724ba675SRob Herring					temperature = <70000>;
42*724ba675SRob Herring					hysteresis = <2000>;
43*724ba675SRob Herring					type = "critical";
44*724ba675SRob Herring				};
45*724ba675SRob Herring			};
46*724ba675SRob Herring		};
47*724ba675SRob Herring	};
48*724ba675SRob Herring
49*724ba675SRob Herring	bat_therm: thermistor {
50*724ba675SRob Herring		compatible = "samsung,1404-001221";
51*724ba675SRob Herring		io-channels = <&gpadc 0x02>; /* BatTemp */
52*724ba675SRob Herring		pullup-uv = <1800000>;
53*724ba675SRob Herring		pullup-ohm = <230000>;
54*724ba675SRob Herring		pulldown-ohm = <0>;
55*724ba675SRob Herring		#thermal-sensor-cells = <0>;
56*724ba675SRob Herring	};
57*724ba675SRob Herring
58*724ba675SRob Herring	i2c-gpio-0 {
59*724ba675SRob Herring		compatible = "i2c-gpio";
60*724ba675SRob Herring		sda-gpios = <&gpio2 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
61*724ba675SRob Herring		scl-gpios = <&gpio2 13 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
62*724ba675SRob Herring
63*724ba675SRob Herring		pinctrl-names = "default";
64*724ba675SRob Herring		pinctrl-0 = <&i2c_gpio_0_default>;
65*724ba675SRob Herring
66*724ba675SRob Herring		#address-cells = <1>;
67*724ba675SRob Herring		#size-cells = <0>;
68*724ba675SRob Herring
69*724ba675SRob Herring		touchkey@20 {
70*724ba675SRob Herring			compatible = "coreriver,tc360-touchkey";
71*724ba675SRob Herring			reg = <0x20>;
72*724ba675SRob Herring			vdd-supply = <&ab8500_ldo_aux4_reg>;
73*724ba675SRob Herring			vcc-supply = <&ab8500_ldo_aux6_reg>;
74*724ba675SRob Herring
75*724ba675SRob Herring			interrupt-parent = <&gpio2>;
76*724ba675SRob Herring			interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
77*724ba675SRob Herring
78*724ba675SRob Herring			pinctrl-names = "default";
79*724ba675SRob Herring			pinctrl-0 = <&touchkey_default>;
80*724ba675SRob Herring			linux,keycodes = <KEY_MENU KEY_BACK>;
81*724ba675SRob Herring		};
82*724ba675SRob Herring	};
83*724ba675SRob Herring
84*724ba675SRob Herring	i2c-gpio-1 {
85*724ba675SRob Herring		compatible = "i2c-gpio";
86*724ba675SRob Herring		sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
87*724ba675SRob Herring		scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
88*724ba675SRob Herring
89*724ba675SRob Herring		pinctrl-names = "default";
90*724ba675SRob Herring		pinctrl-0 = <&i2c_gpio_1_default>;
91*724ba675SRob Herring
92*724ba675SRob Herring		#address-cells = <1>;
93*724ba675SRob Herring		#size-cells = <0>;
94*724ba675SRob Herring
95*724ba675SRob Herring		magnetometer@c {
96*724ba675SRob Herring			compatible = "alps,hscdtd008a";
97*724ba675SRob Herring			reg = <0x0c>;
98*724ba675SRob Herring
99*724ba675SRob Herring			avdd-supply = <&ab8500_ldo_aux1_reg>;
100*724ba675SRob Herring			dvdd-supply = <&ab8500_ldo_aux8_reg>;
101*724ba675SRob Herring		};
102*724ba675SRob Herring	};
103*724ba675SRob Herring
104*724ba675SRob Herring	soc {
105*724ba675SRob Herring		/* External Micro SD card slot */
106*724ba675SRob Herring		mmc@80126000 {
107*724ba675SRob Herring			status = "okay";
108*724ba675SRob Herring
109*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
110*724ba675SRob Herring			max-frequency = <100000000>;
111*724ba675SRob Herring			bus-width = <4>;
112*724ba675SRob Herring
113*724ba675SRob Herring			non-removable;
114*724ba675SRob Herring			/*
115*724ba675SRob Herring			 * Unfortunately, there is no way to enable the UHS
116*724ba675SRob Herring			 * modes due to a limitation of the SD level translator:
117*724ba675SRob Herring			 * It will either translate to 2.9V or disconnect the
118*724ba675SRob Herring			 * DATA lines, so switching to 1.8V signal voltage fails.
119*724ba675SRob Herring			 */
120*724ba675SRob Herring			cap-sd-highspeed;
121*724ba675SRob Herring			cap-mmc-highspeed;
122*724ba675SRob Herring			st,sig-pin-fbclk;
123*724ba675SRob Herring			full-pwr-cycle;
124*724ba675SRob Herring
125*724ba675SRob Herring			vmmc-supply = <&ab8500_ldo_aux3_reg>;
126*724ba675SRob Herring			vqmmc-supply = <&sd_level_translator>;
127*724ba675SRob Herring
128*724ba675SRob Herring			pinctrl-names = "default", "sleep";
129*724ba675SRob Herring			pinctrl-0 = <&mc0_a_2_default>;
130*724ba675SRob Herring			pinctrl-1 = <&mc0_a_2_sleep>;
131*724ba675SRob Herring		};
132*724ba675SRob Herring
133*724ba675SRob Herring		/* WLAN SDIO */
134*724ba675SRob Herring		mmc@80118000 {
135*724ba675SRob Herring			status = "okay";
136*724ba675SRob Herring
137*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
138*724ba675SRob Herring			max-frequency = <50000000>;
139*724ba675SRob Herring			bus-width = <4>;
140*724ba675SRob Herring
141*724ba675SRob Herring			non-removable;
142*724ba675SRob Herring			cap-sd-highspeed;
143*724ba675SRob Herring
144*724ba675SRob Herring			vmmc-supply = <&wl_reg_on>;
145*724ba675SRob Herring
146*724ba675SRob Herring			pinctrl-names = "default", "sleep";
147*724ba675SRob Herring			pinctrl-0 = <&mc1_a_2_default>;
148*724ba675SRob Herring			pinctrl-1 = <&mc1_a_2_sleep>;
149*724ba675SRob Herring
150*724ba675SRob Herring			#address-cells = <1>;
151*724ba675SRob Herring			#size-cells = <0>;
152*724ba675SRob Herring
153*724ba675SRob Herring			wifi@1 {
154*724ba675SRob Herring				compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
155*724ba675SRob Herring				reg = <1>;
156*724ba675SRob Herring
157*724ba675SRob Herring				/* GPIO216 (WLAN_HOST_WAKE) */
158*724ba675SRob Herring				interrupt-parent = <&gpio6>;
159*724ba675SRob Herring				interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
160*724ba675SRob Herring				interrupt-names = "host-wake";
161*724ba675SRob Herring
162*724ba675SRob Herring				pinctrl-names = "default";
163*724ba675SRob Herring				pinctrl-0 = <&wlan_default>;
164*724ba675SRob Herring			};
165*724ba675SRob Herring		};
166*724ba675SRob Herring
167*724ba675SRob Herring		/* eMMC */
168*724ba675SRob Herring		mmc@80005000 {
169*724ba675SRob Herring			status = "okay";
170*724ba675SRob Herring
171*724ba675SRob Herring			arm,primecell-periphid = <0x10480180>;
172*724ba675SRob Herring			max-frequency = <100000000>;
173*724ba675SRob Herring			bus-width = <8>;
174*724ba675SRob Herring
175*724ba675SRob Herring			non-removable;
176*724ba675SRob Herring			cap-mmc-highspeed;
177*724ba675SRob Herring			mmc-ddr-1_8v;
178*724ba675SRob Herring			no-sdio;
179*724ba675SRob Herring			no-sd;
180*724ba675SRob Herring
181*724ba675SRob Herring			vmmc-supply = <&vmem_3v3>;
182*724ba675SRob Herring
183*724ba675SRob Herring			pinctrl-names = "default", "sleep";
184*724ba675SRob Herring			pinctrl-0 = <&mc2_a_1_default>;
185*724ba675SRob Herring			pinctrl-1 = <&mc2_a_1_sleep>;
186*724ba675SRob Herring		};
187*724ba675SRob Herring
188*724ba675SRob Herring		/* BT UART */
189*724ba675SRob Herring		serial@80120000 {
190*724ba675SRob Herring			status = "okay";
191*724ba675SRob Herring
192*724ba675SRob Herring			pinctrl-names = "default", "sleep";
193*724ba675SRob Herring			pinctrl-0 = <&u0_a_1_default>;
194*724ba675SRob Herring			pinctrl-1 = <&u0_a_1_sleep>;
195*724ba675SRob Herring
196*724ba675SRob Herring			bluetooth {
197*724ba675SRob Herring				/* BCM4334B0 actually */
198*724ba675SRob Herring				compatible = "brcm,bcm4330-bt";
199*724ba675SRob Herring				/* GPIO222 (BT_VREG_ON) */
200*724ba675SRob Herring				shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
201*724ba675SRob Herring				/* GPIO199 (BT_WAKE) */
202*724ba675SRob Herring				device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
203*724ba675SRob Herring				/* GPIO97 (BT_HOST_WAKE) */
204*724ba675SRob Herring				host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
205*724ba675SRob Herring
206*724ba675SRob Herring				pinctrl-names = "default";
207*724ba675SRob Herring				pinctrl-0 = <&bluetooth_default>;
208*724ba675SRob Herring			};
209*724ba675SRob Herring		};
210*724ba675SRob Herring
211*724ba675SRob Herring		/* GPF UART */
212*724ba675SRob Herring		serial@80121000 {
213*724ba675SRob Herring			status = "okay";
214*724ba675SRob Herring
215*724ba675SRob Herring			pinctrl-names = "default", "sleep";
216*724ba675SRob Herring			pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>;
217*724ba675SRob Herring			pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>;
218*724ba675SRob Herring		};
219*724ba675SRob Herring
220*724ba675SRob Herring		/* Debugging console UART */
221*724ba675SRob Herring		serial@80007000 {
222*724ba675SRob Herring			status = "okay";
223*724ba675SRob Herring
224*724ba675SRob Herring			pinctrl-names = "default", "sleep";
225*724ba675SRob Herring			pinctrl-0 = <&u2rxtx_c_1_default>;
226*724ba675SRob Herring			pinctrl-1 = <&u2rxtx_c_1_sleep>;
227*724ba675SRob Herring		};
228*724ba675SRob Herring
229*724ba675SRob Herring		i2c@80004000 {
230*724ba675SRob Herring			status = "okay";
231*724ba675SRob Herring
232*724ba675SRob Herring			pinctrl-names = "default", "sleep";
233*724ba675SRob Herring			pinctrl-0 = <&i2c0_a_1_default>;
234*724ba675SRob Herring			pinctrl-1 = <&i2c0_a_1_sleep>;
235*724ba675SRob Herring
236*724ba675SRob Herring			proximity@44 {
237*724ba675SRob Herring				compatible = "sharp,gp2ap002s00f";
238*724ba675SRob Herring				reg = <0x44>;
239*724ba675SRob Herring
240*724ba675SRob Herring				/* GPIO146 (PS_INT) */
241*724ba675SRob Herring				interrupt-parent = <&gpio4>;
242*724ba675SRob Herring				interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
243*724ba675SRob Herring
244*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
245*724ba675SRob Herring				vio-supply = <&ab8500_ldo_aux8_reg>;
246*724ba675SRob Herring
247*724ba675SRob Herring				pinctrl-names = "default";
248*724ba675SRob Herring				pinctrl-0 = <&proximity_default>;
249*724ba675SRob Herring
250*724ba675SRob Herring				sharp,proximity-far-hysteresis = <0x40>;
251*724ba675SRob Herring				sharp,proximity-close-hysteresis = <0x0f>;
252*724ba675SRob Herring			};
253*724ba675SRob Herring		};
254*724ba675SRob Herring
255*724ba675SRob Herring		i2c@80128000 {
256*724ba675SRob Herring			status = "okay";
257*724ba675SRob Herring
258*724ba675SRob Herring			pinctrl-names = "default", "sleep";
259*724ba675SRob Herring			pinctrl-0 = <&i2c2_b_2_default>;
260*724ba675SRob Herring			pinctrl-1 = <&i2c2_b_2_sleep>;
261*724ba675SRob Herring
262*724ba675SRob Herring			imu@68 {
263*724ba675SRob Herring				compatible = "invensense,mpu6050";
264*724ba675SRob Herring				reg = <0x68>;
265*724ba675SRob Herring
266*724ba675SRob Herring				/* GPIO206 (ACC_INT) */
267*724ba675SRob Herring				interrupt-parent = <&gpio6>;
268*724ba675SRob Herring				interrupts = <14 IRQ_TYPE_EDGE_RISING>;
269*724ba675SRob Herring
270*724ba675SRob Herring				mount-matrix = "0", "1", "0",
271*724ba675SRob Herring					      "-1", "0", "0",
272*724ba675SRob Herring					       "0", "0", "1";
273*724ba675SRob Herring
274*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
275*724ba675SRob Herring				vddio-supply = <&ab8500_ldo_aux8_reg>;
276*724ba675SRob Herring
277*724ba675SRob Herring				pinctrl-names = "default";
278*724ba675SRob Herring				pinctrl-0 = <&imu_default>;
279*724ba675SRob Herring			};
280*724ba675SRob Herring		};
281*724ba675SRob Herring
282*724ba675SRob Herring		i2c@80110000 {
283*724ba675SRob Herring			status = "okay";
284*724ba675SRob Herring
285*724ba675SRob Herring			pinctrl-names = "default", "sleep";
286*724ba675SRob Herring			pinctrl-0 = <&i2c3_c_2_default>;
287*724ba675SRob Herring			pinctrl-1 = <&i2c3_c_2_sleep>;
288*724ba675SRob Herring
289*724ba675SRob Herring			touchscreen@4a {
290*724ba675SRob Herring				compatible = "atmel,maxtouch";
291*724ba675SRob Herring				reg = <0x4a>;
292*724ba675SRob Herring
293*724ba675SRob Herring				/* GPIO218 (TSP_INT_1V8) */
294*724ba675SRob Herring				interrupt-parent = <&gpio6>;
295*724ba675SRob Herring				interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
296*724ba675SRob Herring
297*724ba675SRob Herring				/* VDDA is "analog supply", 2.57-3.47 V */
298*724ba675SRob Herring				vdda-supply = <&ab8500_ldo_aux2_reg>;
299*724ba675SRob Herring				/* VDD is "digital supply" 1.71-3.47V */
300*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux5_reg>;
301*724ba675SRob Herring
302*724ba675SRob Herring				pinctrl-names = "default";
303*724ba675SRob Herring				pinctrl-0 = <&tsp_default>;
304*724ba675SRob Herring			};
305*724ba675SRob Herring		};
306*724ba675SRob Herring
307*724ba675SRob Herring		prcmu@80157000 {
308*724ba675SRob Herring			ab8505 {
309*724ba675SRob Herring				phy {
310*724ba675SRob Herring					pinctrl-names = "default", "sleep";
311*724ba675SRob Herring					pinctrl-0 = <&usb_a_1_default>;
312*724ba675SRob Herring					pinctrl-1 = <&usb_a_1_sleep>;
313*724ba675SRob Herring				};
314*724ba675SRob Herring
315*724ba675SRob Herring				ab8500_fg {
316*724ba675SRob Herring					line-impedance-micro-ohms = <36000>;
317*724ba675SRob Herring				};
318*724ba675SRob Herring
319*724ba675SRob Herring				regulator {
320*724ba675SRob Herring					ab8500_ldo_aux1 {
321*724ba675SRob Herring						regulator-name = "sensor_3v";
322*724ba675SRob Herring						regulator-min-microvolt = <3000000>;
323*724ba675SRob Herring						regulator-max-microvolt = <3000000>;
324*724ba675SRob Herring					};
325*724ba675SRob Herring
326*724ba675SRob Herring					ab8500_ldo_aux2 {
327*724ba675SRob Herring						regulator-name = "vreg_tsp_a3v3";
328*724ba675SRob Herring						regulator-min-microvolt = <3300000>;
329*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
330*724ba675SRob Herring					};
331*724ba675SRob Herring
332*724ba675SRob Herring					ab8500_ldo_aux3 {
333*724ba675SRob Herring						regulator-name = "vdd_tf_2v91";
334*724ba675SRob Herring					};
335*724ba675SRob Herring
336*724ba675SRob Herring					ab8500_ldo_aux4 {
337*724ba675SRob Herring						regulator-name = "key_led_3.3v";
338*724ba675SRob Herring						regulator-min-microvolt = <3300000>;
339*724ba675SRob Herring						regulator-max-microvolt = <3300000>;
340*724ba675SRob Herring					};
341*724ba675SRob Herring
342*724ba675SRob Herring					ab8500_ldo_aux5 {
343*724ba675SRob Herring						regulator-name = "vreg_tsp_1v8";
344*724ba675SRob Herring						regulator-min-microvolt = <1800000>;
345*724ba675SRob Herring						regulator-max-microvolt = <1800000>;
346*724ba675SRob Herring					};
347*724ba675SRob Herring
348*724ba675SRob Herring					ab8500_ldo_aux6 {
349*724ba675SRob Herring						regulator-name = "touch_key_2.2v";
350*724ba675SRob Herring						regulator-min-microvolt = <2200000>;
351*724ba675SRob Herring						regulator-max-microvolt = <2200000>;
352*724ba675SRob Herring					};
353*724ba675SRob Herring
354*724ba675SRob Herring					ab8500_ldo_aux8 {
355*724ba675SRob Herring						regulator-name = "sensor_1v8";
356*724ba675SRob Herring					};
357*724ba675SRob Herring				};
358*724ba675SRob Herring			};
359*724ba675SRob Herring		};
360*724ba675SRob Herring
361*724ba675SRob Herring		mcde@a0350000 {
362*724ba675SRob Herring			status = "okay";
363*724ba675SRob Herring			pinctrl-names = "default";
364*724ba675SRob Herring			pinctrl-0 = <&dsi_default_mode>;
365*724ba675SRob Herring
366*724ba675SRob Herring			dsi@a0351000 {
367*724ba675SRob Herring				panel@0 {
368*724ba675SRob Herring					compatible = "samsung,s6e63m0";
369*724ba675SRob Herring					reg = <0>;
370*724ba675SRob Herring					max-brightness = <15>;
371*724ba675SRob Herring					vdd3-supply = <&panel_reg_3v0>;
372*724ba675SRob Herring					vci-supply = <&panel_reg_1v8>;
373*724ba675SRob Herring					reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
374*724ba675SRob Herring					/* ESD (electrostatic discharge) detection interrupt */
375*724ba675SRob Herring					interrupt-parent = <&gpio2>;
376*724ba675SRob Herring					interrupts = <18 IRQ_TYPE_EDGE_RISING>;
377*724ba675SRob Herring					interrupt-names = "esd";
378*724ba675SRob Herring					pinctrl-names = "default";
379*724ba675SRob Herring					pinctrl-0 = <&display_default_mode>;
380*724ba675SRob Herring				};
381*724ba675SRob Herring			};
382*724ba675SRob Herring		};
383*724ba675SRob Herring	};
384*724ba675SRob Herring
385*724ba675SRob Herring	gpio-keys {
386*724ba675SRob Herring		compatible = "gpio-keys";
387*724ba675SRob Herring
388*724ba675SRob Herring		pinctrl-names = "default";
389*724ba675SRob Herring		pinctrl-0 = <&gpio_keys_default>;
390*724ba675SRob Herring
391*724ba675SRob Herring		label = "GPIO Buttons";
392*724ba675SRob Herring
393*724ba675SRob Herring		volume-up {
394*724ba675SRob Herring			label = "Volume Up";
395*724ba675SRob Herring			/* GPIO67 (VOL_UP) */
396*724ba675SRob Herring			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
397*724ba675SRob Herring			linux,code = <KEY_VOLUMEUP>;
398*724ba675SRob Herring		};
399*724ba675SRob Herring
400*724ba675SRob Herring		volume-down {
401*724ba675SRob Herring			label = "Volume Down";
402*724ba675SRob Herring			/* GPIO92 (VOL_DOWN) */
403*724ba675SRob Herring			gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
404*724ba675SRob Herring			linux,code = <KEY_VOLUMEDOWN>;
405*724ba675SRob Herring		};
406*724ba675SRob Herring
407*724ba675SRob Herring		home {
408*724ba675SRob Herring			label = "Home";
409*724ba675SRob Herring			/* GPIO91 (HOME_KEY) */
410*724ba675SRob Herring			gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
411*724ba675SRob Herring			linux,code = <KEY_HOMEPAGE>;
412*724ba675SRob Herring		};
413*724ba675SRob Herring	};
414*724ba675SRob Herring
415*724ba675SRob Herring	/* Richtek RT8515GQW Flash LED Driver IC */
416*724ba675SRob Herring	flash {
417*724ba675SRob Herring		compatible = "richtek,rt8515";
418*724ba675SRob Herring		/* GPIO 140 */
419*724ba675SRob Herring		enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
420*724ba675SRob Herring		/* GPIO 141 */
421*724ba675SRob Herring		ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
422*724ba675SRob Herring		/*
423*724ba675SRob Herring		 * RFS is 16 kOhm and RTS is 100 kOhm giving
424*724ba675SRob Herring		 * the flash max current 343mA and torch max
425*724ba675SRob Herring		 * current 55 mA.
426*724ba675SRob Herring		 */
427*724ba675SRob Herring		richtek,rfs-ohms = <16000>;
428*724ba675SRob Herring		richtek,rts-ohms = <100000>;
429*724ba675SRob Herring		pinctrl-names = "default";
430*724ba675SRob Herring		pinctrl-0 = <&gpio_flash_default_mode>;
431*724ba675SRob Herring
432*724ba675SRob Herring		led {
433*724ba675SRob Herring			function = LED_FUNCTION_FLASH;
434*724ba675SRob Herring			color = <LED_COLOR_ID_WHITE>;
435*724ba675SRob Herring			flash-max-timeout-us = <250000>;
436*724ba675SRob Herring			flash-max-microamp = <343750>;
437*724ba675SRob Herring			led-max-microamp = <55000>;
438*724ba675SRob Herring		};
439*724ba675SRob Herring	};
440*724ba675SRob Herring
441*724ba675SRob Herring	vibrator {
442*724ba675SRob Herring		compatible = "gpio-vibrator";
443*724ba675SRob Herring		/* GPIO195 (MOT_EN) */
444*724ba675SRob Herring		enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
445*724ba675SRob Herring
446*724ba675SRob Herring		pinctrl-names = "default";
447*724ba675SRob Herring		pinctrl-0 = <&vibrator_default>;
448*724ba675SRob Herring	};
449*724ba675SRob Herring
450*724ba675SRob Herring	/* External LDO for eMMC */
451*724ba675SRob Herring	vmem_3v3: regulator-vmem {
452*724ba675SRob Herring		compatible = "regulator-fixed";
453*724ba675SRob Herring
454*724ba675SRob Herring		regulator-name = "vmem_3v3";
455*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
456*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
457*724ba675SRob Herring		regulator-boot-on;
458*724ba675SRob Herring
459*724ba675SRob Herring		startup-delay-us = <200>;
460*724ba675SRob Herring
461*724ba675SRob Herring		/* GPIO223 (MEM_LDO_EN) */
462*724ba675SRob Herring		gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>;
463*724ba675SRob Herring		enable-active-high;
464*724ba675SRob Herring
465*724ba675SRob Herring		pinctrl-names = "default";
466*724ba675SRob Herring		pinctrl-0 = <&mem_ldo_default>;
467*724ba675SRob Herring	};
468*724ba675SRob Herring
469*724ba675SRob Herring	/* TI TXS0206-29 level translator for 2.9 V */
470*724ba675SRob Herring	sd_level_translator: regulator-sd-level-translator {
471*724ba675SRob Herring		compatible = "regulator-fixed";
472*724ba675SRob Herring
473*724ba675SRob Herring		regulator-name = "sd-level-translator";
474*724ba675SRob Herring		regulator-min-microvolt = <2900000>;
475*724ba675SRob Herring		regulator-max-microvolt = <2900000>;
476*724ba675SRob Herring
477*724ba675SRob Herring		startup-delay-us = <200>;
478*724ba675SRob Herring
479*724ba675SRob Herring		/* GPIO87 (TXS0206-29_EN) */
480*724ba675SRob Herring		gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
481*724ba675SRob Herring		enable-active-high;
482*724ba675SRob Herring
483*724ba675SRob Herring		pinctrl-names = "default";
484*724ba675SRob Herring		pinctrl-0 = <&sd_level_translator_default>;
485*724ba675SRob Herring	};
486*724ba675SRob Herring
487*724ba675SRob Herring	/*
488*724ba675SRob Herring	 * WL_REG_ON takes WLAN out of reset and enables the internal regulators.
489*724ba675SRob Herring	 * The voltage specified here is only used to determine the OCR mask,
490*724ba675SRob Herring	 * the BCM chip is actually connected directly to VBAT.
491*724ba675SRob Herring	 */
492*724ba675SRob Herring	wl_reg_on: regulator-wl-reg-on {
493*724ba675SRob Herring		compatible = "regulator-fixed";
494*724ba675SRob Herring
495*724ba675SRob Herring		regulator-name = "wl-reg-on";
496*724ba675SRob Herring		regulator-min-microvolt = <3000000>;
497*724ba675SRob Herring		regulator-max-microvolt = <3000000>;
498*724ba675SRob Herring
499*724ba675SRob Herring		startup-delay-us = <100000>;
500*724ba675SRob Herring
501*724ba675SRob Herring		/* GPIO215 (WLAN_EN) */
502*724ba675SRob Herring		gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
503*724ba675SRob Herring		enable-active-high;
504*724ba675SRob Herring
505*724ba675SRob Herring		pinctrl-names = "default";
506*724ba675SRob Herring		pinctrl-0 = <&wlan_en_default>;
507*724ba675SRob Herring	};
508*724ba675SRob Herring
509*724ba675SRob Herring	/* MIC5366 GPIO-controlled regulator */
510*724ba675SRob Herring	panel_reg_1v8: regulator-panel-1v8 {
511*724ba675SRob Herring		compatible = "regulator-fixed";
512*724ba675SRob Herring
513*724ba675SRob Herring		regulator-name = "panel-fixed-supply";
514*724ba675SRob Herring		regulator-min-microvolt = <1800000>;
515*724ba675SRob Herring		regulator-max-microvolt = <1800000>;
516*724ba675SRob Herring		/* GPIO219 */
517*724ba675SRob Herring		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
518*724ba675SRob Herring
519*724ba675SRob Herring		startup-delay-us = <200>;
520*724ba675SRob Herring		enable-active-high;
521*724ba675SRob Herring
522*724ba675SRob Herring		pinctrl-names = "default";
523*724ba675SRob Herring		pinctrl-0 = <&panel_reg_default_mode>;
524*724ba675SRob Herring	};
525*724ba675SRob Herring
526*724ba675SRob Herring	/* MIC5366 GPIO-controlled regulator */
527*724ba675SRob Herring	panel_reg_3v0: regulator-panel-3v0 {
528*724ba675SRob Herring		compatible = "regulator-fixed";
529*724ba675SRob Herring
530*724ba675SRob Herring		regulator-name = "panel-fixed-supply";
531*724ba675SRob Herring		regulator-min-microvolt = <3000000>;
532*724ba675SRob Herring		regulator-max-microvolt = <3000000>;
533*724ba675SRob Herring		/* GPIO219 */
534*724ba675SRob Herring		gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
535*724ba675SRob Herring
536*724ba675SRob Herring		startup-delay-us = <200>;
537*724ba675SRob Herring		enable-active-high;
538*724ba675SRob Herring
539*724ba675SRob Herring		pinctrl-names = "default";
540*724ba675SRob Herring		pinctrl-0 = <&panel_reg_default_mode>;
541*724ba675SRob Herring	};
542*724ba675SRob Herring};
543*724ba675SRob Herring
544*724ba675SRob Herring&pinctrl {
545*724ba675SRob Herring	gpio-keys {
546*724ba675SRob Herring		gpio_keys_default: gpio_keys_default {
547*724ba675SRob Herring			golden_cfg1 {
548*724ba675SRob Herring				pins = "GPIO67",	/* VOL_UP */
549*724ba675SRob Herring				       "GPIO91",	/* HOME_KEY */
550*724ba675SRob Herring				       "GPIO92";	/* VOL_DOWN */
551*724ba675SRob Herring				ste,config = <&gpio_in_pu>;
552*724ba675SRob Herring			};
553*724ba675SRob Herring		};
554*724ba675SRob Herring	};
555*724ba675SRob Herring
556*724ba675SRob Herring	i2c-gpio-0 {
557*724ba675SRob Herring		i2c_gpio_0_default: i2c_gpio_0 {
558*724ba675SRob Herring			golden_cfg1 {
559*724ba675SRob Herring				pins = "GPIO77",	/* TOUCHKEY_SCL */
560*724ba675SRob Herring				       "GPIO78";	/* TOUCHKEY_SDA */
561*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
562*724ba675SRob Herring			};
563*724ba675SRob Herring		};
564*724ba675SRob Herring	};
565*724ba675SRob Herring
566*724ba675SRob Herring	flash {
567*724ba675SRob Herring		gpio_flash_default_mode: flash_default {
568*724ba675SRob Herring			golden_cfg1 {
569*724ba675SRob Herring				pins = "GPIO140_B11", "GPIO141_C12";
570*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
571*724ba675SRob Herring			};
572*724ba675SRob Herring		};
573*724ba675SRob Herring	};
574*724ba675SRob Herring
575*724ba675SRob Herring	i2c-gpio-1 {
576*724ba675SRob Herring		i2c_gpio_1_default: i2c_gpio_1 {
577*724ba675SRob Herring			golden_cfg1 {
578*724ba675SRob Herring				pins = "GPIO151",	/* COMP_SCL */
579*724ba675SRob Herring				       "GPIO152";	/* COMP_SDA */
580*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
581*724ba675SRob Herring			};
582*724ba675SRob Herring		};
583*724ba675SRob Herring	};
584*724ba675SRob Herring
585*724ba675SRob Herring	touchkey {
586*724ba675SRob Herring		touchkey_default: touchkey_default {
587*724ba675SRob Herring			golden_cfg1 {
588*724ba675SRob Herring				pins = "GPIO79";	/* TOUCHKEY_INT */
589*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
590*724ba675SRob Herring			};
591*724ba675SRob Herring		};
592*724ba675SRob Herring	};
593*724ba675SRob Herring
594*724ba675SRob Herring	sdi0 {
595*724ba675SRob Herring		sd_level_translator_default: sd_level_translator_default {
596*724ba675SRob Herring			golden_cfg1 {
597*724ba675SRob Herring				pins = "GPIO87_B3";	/* TXS0206-29_EN */
598*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
599*724ba675SRob Herring			};
600*724ba675SRob Herring		};
601*724ba675SRob Herring	};
602*724ba675SRob Herring
603*724ba675SRob Herring	sdi2 {
604*724ba675SRob Herring		mem_ldo_default: mem_ldo_default {
605*724ba675SRob Herring			golden_cfg1 {
606*724ba675SRob Herring				pins = "GPIO223_AH9";	/* MEM_LDO_EN */
607*724ba675SRob Herring				ste,config = <&gpio_out_hi>;
608*724ba675SRob Herring			};
609*724ba675SRob Herring		};
610*724ba675SRob Herring	};
611*724ba675SRob Herring
612*724ba675SRob Herring	mcde {
613*724ba675SRob Herring		dsi_default_mode: dsi_default {
614*724ba675SRob Herring			default_mux1 {
615*724ba675SRob Herring				/* Mux in VSI0 used for DSI TE */
616*724ba675SRob Herring				function = "lcd";
617*724ba675SRob Herring				groups =
618*724ba675SRob Herring				"lcdvsi0_a_1"; /* VSI0 for LCD */
619*724ba675SRob Herring			};
620*724ba675SRob Herring			default_cfg1 {
621*724ba675SRob Herring				pins =
622*724ba675SRob Herring				"GPIO68_E1"; /* VSI0 */
623*724ba675SRob Herring				ste,config = <&in_nopull>;
624*724ba675SRob Herring			};
625*724ba675SRob Herring		};
626*724ba675SRob Herring	};
627*724ba675SRob Herring
628*724ba675SRob Herring	display {
629*724ba675SRob Herring		display_default_mode: display_default {
630*724ba675SRob Herring			golden_cfg1 {
631*724ba675SRob Herring				pins = "GPIO139_C9"; /* MIPI_DSI0_RESET_N */
632*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
633*724ba675SRob Herring			};
634*724ba675SRob Herring			golden_cfg2 {
635*724ba675SRob Herring				pins = "GPIO82_C1"; /* LDI_ESD_DET */
636*724ba675SRob Herring				ste,config = <&gpio_in_pu>;
637*724ba675SRob Herring			};
638*724ba675SRob Herring		};
639*724ba675SRob Herring		panel_reg_default_mode: panel_reg_default {
640*724ba675SRob Herring			golden_cfg1 {
641*724ba675SRob Herring				pins = "GPIO219_AG10"; /* LCD_PWR_EN */
642*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
643*724ba675SRob Herring			};
644*724ba675SRob Herring		};
645*724ba675SRob Herring	};
646*724ba675SRob Herring
647*724ba675SRob Herring	proximity {
648*724ba675SRob Herring		proximity_default: proximity_default {
649*724ba675SRob Herring			golden_cfg1 {
650*724ba675SRob Herring				pins = "GPIO146_D13";	/* PS_INT */
651*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
652*724ba675SRob Herring			};
653*724ba675SRob Herring		};
654*724ba675SRob Herring	};
655*724ba675SRob Herring
656*724ba675SRob Herring	imu {
657*724ba675SRob Herring		imu_default: imu_default {
658*724ba675SRob Herring			golden_cfg1 {
659*724ba675SRob Herring				pins = "GPIO206_AG24";	/* ACC_INT */
660*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
661*724ba675SRob Herring			};
662*724ba675SRob Herring		};
663*724ba675SRob Herring	};
664*724ba675SRob Herring
665*724ba675SRob Herring	tsp {
666*724ba675SRob Herring		tsp_default: tsp_default {
667*724ba675SRob Herring			golden_cfg1 {
668*724ba675SRob Herring				pins = "GPIO218_AH11";	/* TSP_INT_1V8 */
669*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
670*724ba675SRob Herring			};
671*724ba675SRob Herring		};
672*724ba675SRob Herring	};
673*724ba675SRob Herring
674*724ba675SRob Herring	wlan {
675*724ba675SRob Herring		wlan_default: wlan_default {
676*724ba675SRob Herring			golden_cfg1 {
677*724ba675SRob Herring				pins = "GPIO216_AG12";	/* WLAN_HOST_WAKE */
678*724ba675SRob Herring				ste,config = <&gpio_in_pd>;
679*724ba675SRob Herring			};
680*724ba675SRob Herring		};
681*724ba675SRob Herring
682*724ba675SRob Herring		wlan_en_default: wlan_en_default {
683*724ba675SRob Herring			golden_cfg1 {
684*724ba675SRob Herring				pins = "GPIO215_AH13";	/* WLAN_EN */
685*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
686*724ba675SRob Herring			};
687*724ba675SRob Herring		};
688*724ba675SRob Herring	};
689*724ba675SRob Herring
690*724ba675SRob Herring	bluetooth {
691*724ba675SRob Herring		bluetooth_default: bluetooth_default {
692*724ba675SRob Herring			golden_cfg1 {
693*724ba675SRob Herring				pins = "GPIO199_AH23",	/* BT_WAKE */
694*724ba675SRob Herring				       "GPIO222_AJ9";	/* BT_VREG_ON */
695*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
696*724ba675SRob Herring			};
697*724ba675SRob Herring			golden_cfg2 {
698*724ba675SRob Herring				pins = "GPIO97_D9";	/* BT_HOST_WAKE */
699*724ba675SRob Herring				ste,config = <&gpio_in_nopull>;
700*724ba675SRob Herring			};
701*724ba675SRob Herring		};
702*724ba675SRob Herring	};
703*724ba675SRob Herring
704*724ba675SRob Herring	vibrator {
705*724ba675SRob Herring		vibrator_default: vibrator_default {
706*724ba675SRob Herring			golden_cfg1 {
707*724ba675SRob Herring				pins = "GPIO195_AG28";	/* MOT_EN */
708*724ba675SRob Herring				ste,config = <&gpio_out_lo>;
709*724ba675SRob Herring			};
710*724ba675SRob Herring		};
711*724ba675SRob Herring	};
712*724ba675SRob Herring};
713*724ba675SRob Herring
714*724ba675SRob Herring&ab8505_gpio {
715*724ba675SRob Herring	/* Hog a few default settings */
716*724ba675SRob Herring	pinctrl-names = "default";
717*724ba675SRob Herring	pinctrl-0 = <&gpio_default>;
718*724ba675SRob Herring
719*724ba675SRob Herring	gpio {
720*724ba675SRob Herring		gpio_default: gpio_default {
721*724ba675SRob Herring			golden_mux {
722*724ba675SRob Herring				/* Change unused pins to GPIO mode */
723*724ba675SRob Herring				function = "gpio";
724*724ba675SRob Herring				groups = "gpio3_a_1",	/* default: SysClkReq4 */
725*724ba675SRob Herring					 "gpio14_a_1";	/* default: PWMOut1 */
726*724ba675SRob Herring			};
727*724ba675SRob Herring			golden_cfg1 {
728*724ba675SRob Herring				pins = "GPIO11_B17", "GPIO13_D17", "GPIO50_L4";
729*724ba675SRob Herring				bias-disable;
730*724ba675SRob Herring			};
731*724ba675SRob Herring		};
732*724ba675SRob Herring	};
733*724ba675SRob Herring};
734