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