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