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