Lines Matching +full:i2c +full:- +full:gpio

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Devicetree for the Samsung Galaxy S Advance GT-I9070 also known as Janice.
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>
16 model = "Samsung Galaxy S Advance (GT-I9070)";
17 compatible = "samsung,janice", "st-ericsson,u8500";
20 stdout-path = &serial2;
27 thermal-zones {
28 battery-thermal {
30 polling-delay = <0>;
31 polling-delay-passive = <0>;
32 thermal-sensors = <&bat_therm>;
35 battery-crit-hi {
45 compatible = "samsung,1404-001221";
46 io-channels = <&gpadc 0x02>; /* BatTemp */
47 pullup-uv = <1800000>;
48 pullup-ohm = <230000>;
49 pulldown-ohm = <0>;
50 #thermal-sensor-cells = <0>;
54 ldo_3v3_reg: regulator-gpio-ldo-3v3 {
55 compatible = "regulator-fixed";
57 regulator-name = "VMEM_3V3";
58 regulator-min-microvolt = <3300000>;
59 regulator-max-microvolt = <3300000>;
60 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>;
61 startup-delay-us = <5000>; // FIXME
62 enable-active-high;
63 pinctrl-names = "default";
64 pinctrl-0 = <&emmc_ldo_en_default_mode>;
69 * One GPIO line controls two voltages of 3.3V and 1.8V
72 ldo_tsp_3v3_reg: regulator-gpio-tsp-ldo-3v3 {
73 compatible = "regulator-fixed";
75 regulator-name = "LDO_TSP_A3V3";
76 regulator-min-microvolt = <3300000>;
77 regulator-max-microvolt = <3300000>;
79 gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
80 /* 70 ms power-on delay */
81 startup-delay-us = <70000>;
82 enable-active-high;
83 pinctrl-names = "default";
84 pinctrl-0 = <&tsp_ldo_en_default_mode>;
86 ldo_tsp_1v8_reg: regulator-gpio-tsp-ldo-1v8 {
87 compatible = "regulator-fixed";
89 regulator-name = "VREG_TSP_1V8";
90 regulator-min-microvolt = <1800000>;
91 regulator-max-microvolt = <1800000>;
93 gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
94 /* 70 ms power-on delay */
95 startup-delay-us = <70000>;
96 enable-active-high;
97 pinctrl-names = "default";
98 pinctrl-0 = <&tsp_ldo_en_default_mode>;
103 * Two GPIO lines controls two voltages of 3.3V and 1.8V
107 ldo_kled_3v3_reg: regulator-gpio-vreg-kled-3v3 {
108 compatible = "regulator-fixed";
110 regulator-name = "VREG_KLED_3V3";
111 regulator-min-microvolt = <3300000>;
112 regulator-max-microvolt = <3300000>;
114 gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>;
115 /* 70 ms power-on delay */
116 startup-delay-us = <70000>;
117 enable-active-high;
118 pinctrl-names = "default";
119 pinctrl-0 = <&en_led_ldo_default_mode>;
121 ldo_touchkey_1v8_reg: regulator-gpio-vreg-touchkey-1v8 {
122 compatible = "regulator-fixed";
124 regulator-name = "VREG_TOUCHKEY_1V8";
125 regulator-min-microvolt = <1800000>;
126 regulator-max-microvolt = <1800000>;
128 gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
129 /* 70 ms power-on delay */
130 startup-delay-us = <70000>;
131 enable-active-high;
132 pinctrl-names = "default";
133 pinctrl-0 = <&tsp_ldo_on2_default_mode>;
138 * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
141 lcd_3v0_reg: regulator-gpio-lcd-3v0 {
142 compatible = "regulator-fixed";
144 regulator-name = "VREG_LCD_3V0";
145 regulator-min-microvolt = <3000000>;
146 regulator-max-microvolt = <3000000>;
148 gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
149 enable-active-high;
150 pinctrl-names = "default";
151 pinctrl-0 = <&lcd_pwr_en_default_mode>;
153 lcd_1v8_reg: regulator-gpio-lcd-1v8 {
154 compatible = "regulator-fixed";
156 regulator-name = "VREG_LCD_1V8";
157 regulator-min-microvolt = <1800000>;
158 regulator-max-microvolt = <1800000>;
160 gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
161 enable-active-high;
162 pinctrl-names = "default";
163 pinctrl-0 = <&lcd_pwr_en_default_mode>;
167 * This regulator is a GPIO line that drives the Broadcom WLAN
176 wl_reg: regulator-gpio-wlan {
177 compatible = "regulator-fixed";
178 regulator-name = "WL_REG_ON";
179 regulator-min-microvolt = <3000000>;
180 regulator-max-microvolt = <3000000>;
181 startup-delay-us = <100000>;
183 gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
184 enable-active-high;
185 pinctrl-names = "default";
186 pinctrl-0 = <&wlan_ldo_en_default>;
190 gpio-keys {
191 compatible = "gpio-keys";
192 pinctrl-names = "default";
193 pinctrl-0 = <&gpio_keys_default_mode>;
195 button-home {
201 button-volup {
207 button-voldown {
209 label = "VOL-";
218 /* GPIO 140 */
219 enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
220 /* GPIO 141 */
221 ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
227 richtek,rfs-ohms = <16000>;
228 richtek,rts-ohms = <100000>;
229 pinctrl-names = "default";
230 pinctrl-0 = <&gpio_flash_default_mode>;
235 flash-max-timeout-us = <250000>;
236 flash-max-microamp = <343750>;
237 led-max-microamp = <55000>;
241 /* Bit-banged I2C on GPIO143 and GPIO144 also called "SUBPMU I2C" */
242 i2c-gpio-0 {
243 compatible = "i2c-gpio";
244 sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
245 scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
246 pinctrl-names = "default";
247 pinctrl-0 = <&i2c_gpio_0_default>;
248 #address-cells = <1>;
249 #size-cells = <0>;
256 vdd-supply = <&ab8500_ldo_aux1_reg>;
258 iovdd-supply = <&ab8500_ldo_aux2_reg>;
260 reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
261 pinctrl-names = "default";
262 pinctrl-0 = <&yas529_default>;
272 * this panel interface. We have to use GPIO bit-banging instead.
275 compatible = "spi-gpio";
277 sck-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
279 mosi-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
281 cs-gpios = <&gpio6 31 GPIO_ACTIVE_LOW>;
282 num-chipselects = <1>;
284 pinctrl-names = "default";
285 pinctrl-0 = <&spi_gpio_0_default>;
286 #address-cells = <1>;
287 #size-cells = <0>;
292 vdd3-supply = <&lcd_3v0_reg>;
293 vci-supply = <&lcd_1v8_reg>;
295 reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
296 pinctrl-names = "default";
297 pinctrl-0 = <&panel_default_mode>;
298 spi-3wire;
300 spi-cpha;
301 spi-cpol;
305 remote-endpoint = <&display_out>;
318 gp2a_shunt: current-sense-shunt {
319 compatible = "current-sense-shunt";
320 io-channels = <&gpadc 0x07>;
321 shunt-resistor-micro-ohms = <15000000>; /* 15 ohms c:a */
322 #io-channel-cells = <0>;
323 io-channel-ranges;
326 /* Bit-banged I2C on GPIO196 and GPIO197 also called "TOUCHKEY_I2C" */
327 i2c-gpio-1 {
328 compatible = "i2c-gpio";
329 sda-gpios = <&gpio6 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
330 scl-gpios = <&gpio6 4 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
331 clock-frequency = <400000>;
332 pinctrl-names = "default";
333 pinctrl-0 = <&i2c_gpio_1_default>;
334 #address-cells = <1>;
335 #size-cells = <0>;
338 compatible = "coreriver,tc360-touchkey";
340 vdd-supply = <&ldo_kled_3v3_reg>;
341 vcc-supply = <&ldo_touchkey_1v8_reg>;
342 vddio-supply = <&ldo_touchkey_1v8_reg>;
344 /* Interrupt on GPIO 198 */
345 interrupt-parent = <&gpio6>;
348 pinctrl-names = "default";
349 pinctrl-0 = <&touchkey_default_mode>;
354 /* Bit-banged I2C on GPIO201 and GPIO202 also called "MOT_I2C" */
355 i2c-gpio-2 {
356 compatible = "i2c-gpio";
357 sda-gpios = <&gpio6 10 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
358 scl-gpios = <&gpio6 9 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
359 pinctrl-names = "default";
360 pinctrl-0 = <&i2c_gpio_2_default>;
361 #address-cells = <1>;
362 #size-cells = <0>;
363 /* TODO: add the Immersion ISA1200 I2C device here */
366 /* Bit-banged I2C on GPIO151 and GPIO152 also called "NFC_I2C" */
367 i2c-gpio-3 {
368 compatible = "i2c-gpio";
369 sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
370 scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
371 pinctrl-names = "default";
372 pinctrl-0 = <&i2c_gpio_3_default>;
373 #address-cells = <1>;
374 #size-cells = <0>;
376 /* This is only mounted on the GT-I9070P */
379 compatible = "nxp,pn544-i2c";
380 /* IF0, IF1 high, gives I2C address 0x2B */
382 clock-frequency = <400000>;
384 interrupt-parent = <&gpio1>;
386 /* GPIO 31 */
387 firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
389 enable-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
390 pinctrl-names = "default";
391 pinctrl-0 = <&pn544_janice_default>;
398 arm,primecell-periphid = <0x10480180>;
399 max-frequency = <50000000>;
400 bus-width = <4>;
401 cap-sd-highspeed;
402 cap-mmc-highspeed;
403 st,sig-dir-cmd;
404 st,sig-dir-dat0;
405 st,sig-dir-dat2;
406 st,sig-pin-fbclk;
407 full-pwr-cycle;
409 vmmc-supply = <&ab8500_ldo_aux3_reg>;
411 vqmmc-supply = <&ab8500_ldo_aux3_reg>;
412 pinctrl-names = "default", "sleep";
413 pinctrl-0 = <&mc0_a_2_default>;
414 pinctrl-1 = <&mc0_a_2_sleep>;
415 cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
421 arm,primecell-periphid = <0x10480180>;
422 max-frequency = <50000000>;
423 bus-width = <4>;
424 non-removable;
425 cap-sd-highspeed;
426 pinctrl-names = "default", "sleep";
427 pinctrl-0 = <&mc1_a_2_default>;
428 pinctrl-1 = <&mc1_a_2_sleep>;
430 * GPIO-controlled voltage enablement: this drives
434 vmmc-supply = <&wl_reg>;
436 #address-cells = <1>;
437 #size-cells = <0>;
441 compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
444 interrupt-parent = <&gpio6>;
446 interrupt-names = "host-wake";
447 pinctrl-names = "default";
448 pinctrl-0 = <&wlan_default_mode>;
454 arm,primecell-periphid = <0x10480180>;
455 max-frequency = <50000000>;
456 bus-width = <8>;
457 non-removable;
458 cap-mmc-highspeed;
459 mmc-ddr-1_8v;
460 no-sdio;
461 no-sd;
462 vmmc-supply = <&ldo_3v3_reg>;
463 pinctrl-names = "default", "sleep";
464 pinctrl-0 = <&mc2_a_1_default>;
465 pinctrl-1 = <&mc2_a_1_sleep>;
471 pinctrl-names = "default", "sleep";
472 pinctrl-0 = <&u0_a_1_default>;
473 pinctrl-1 = <&u0_a_1_sleep>;
478 compatible = "brcm,bcm4330-bt";
480 shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
482 device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
485 host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
487 reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>;
488 pinctrl-names = "default";
489 pinctrl-0 = <&bluetooth_default_mode>;
496 pinctrl-names = "default", "sleep";
497 /* CTS/RTS is not used, CTS is repurposed as GPIO */
498 pinctrl-0 = <&u1rxtx_a_1_default>;
499 pinctrl-1 = <&u1rxtx_a_1_sleep>;
505 * Janice has a SiRFstarIV-based GSD4t
506 * Golden has a SiRFstarV 5t-based CSRG05TA03-ICJE-R.
510 reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
512 sirf,onoff-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
514 vcc-supply = <&db8500_vsmps2_reg>;
515 pinctrl-names = "default";
516 pinctrl-0 = <&gsd4t_janice_default>;
518 current-speed = <460800>;
525 pinctrl-names = "default", "sleep";
526 pinctrl-0 = <&u2rxtx_c_1_default>;
527 pinctrl-1 = <&u2rxtx_c_1_sleep>;
533 pinctrl-names = "default", "sleep";
534 pinctrl-0 = <&usb_a_1_default>;
535 pinctrl-1 = <&usb_a_1_sleep>;
539 line-impedance-micro-ohms = <15000>;
545 regulator-name = "V-SENSORS-VDD";
546 regulator-min-microvolt = <3000000>;
547 regulator-max-microvolt = <3000000>;
552 regulator-name = "V-SENSORS-VIO";
553 regulator-min-microvolt = <1800000>;
554 regulator-max-microvolt = <1800000>;
559 regulator-name = "V-MMC-SD";
560 regulator-min-microvolt = <1200000>;
561 regulator-max-microvolt = <2910000>;
568 i2c@80004000 {
570 pinctrl-names = "default", "sleep";
571 pinctrl-0 = <&i2c0_a_1_default>;
572 pinctrl-1 = <&i2c0_a_1_sleep>;
577 clock-frequency = <400000>;
580 interrupt-parent = <&gpio4>;
582 vdd-supply = <&ab8500_ldo_aux1_reg>;
583 vio-supply = <&ab8500_ldo_aux2_reg>;
585 io-channels = <&gp2a_shunt>;
586 io-channel-names = "alsout";
587 pinctrl-names = "default";
588 pinctrl-0 = <&gp2ap002_janice_default>;
589 /* B1 mode (arch/arm/mach-ux500/include/mach/gp2a.h) */
590 sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
591 sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>;
595 /* I2C1 on GPIO16 and GPIO17 also called "MUS I2C" */
596 i2c@80122000 {
598 pinctrl-names = "default","sleep";
599 pinctrl-0 = <&i2c1_b_2_default>;
600 pinctrl-1 = <&i2c1_b_2_sleep>;
603 usb-switch@25 {
607 interrupt-parent = <&gpio2>;
609 pinctrl-names = "default";
610 pinctrl-0 = <&tsu6111_janice_default>;
614 /* I2C2 on GPIO10 and GPIO11 also called "SENSORS I2C" */
615 i2c@80128000 {
617 pinctrl-names = "default", "sleep";
618 pinctrl-0 = <&i2c2_b_2_default>;
619 pinctrl-1 = <&i2c2_b_2_sleep>;
625 interrupt-parent = <&gpio7>;
628 mount-matrix = "1", "0", "0",
631 vlogic-supply = <&ab8500_ldo_aux2_reg>; // 1.8V
632 vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
633 pinctrl-names = "default";
634 pinctrl-0 = <&mpu3050_janice_default>;
637 * The MPU-3050 acts as a hub for the
640 i2c-gate {
641 #address-cells = <1>;
642 #size-cells = <0>;
648 mount-matrix = "0", "-1", "0",
651 vddio-supply = <&ab8500_ldo_aux2_reg>; // 1.8V
652 vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
659 i2c@80110000 {
662 pinctrl-names = "default", "sleep";
663 pinctrl-0 = <&i2c3_c_2_default>;
664 pinctrl-1 = <&i2c3_c_2_sleep>;
671 interrupt-parent = <&gpio6>;
673 /* VDDA is "analog supply", 2.57-3.47 V */
674 vdda-supply = <&ldo_tsp_3v3_reg>;
675 /* VDD is "digital supply" 1.71-3.47V */
676 vdd-supply = <&ldo_tsp_1v8_reg>;
677 pinctrl-names = "default";
678 pinctrl-0 = <&tsp_default>;
684 pinctrl-names = "default";
685 pinctrl-0 = <&dpi_default_mode>;
689 remote-endpoint = <&panel_in>;
715 /* Data lines D0-D7 GPIO70..GPIO77 */
717 /* Data lines D8-D11 GPIO78..GPIO81 */
719 /* Data lines D12-D15 GPIO82..GPIO85 */
721 /* Data lines D16-D23 GPIO161..GPIO168 */
729 /* Input, no pull-up is the default state for pins used for an alt function */
736 /* GPIO for panel reset control */
746 /* GPIO that enables the LDO regulator for the eMMC */
747 emmc-ldo {
756 /* GPIO that enables the LDO regulator for the touchscreen */
757 tsp-ldo {
766 /* GPIO that enables the LDO regulator for the key LED */
767 key-led {
776 /* GPIO that enables the LDO regulator for the touchkeys */
777 touchkey-ldo {
800 /* GPIO that enabled the LDO regulator for the LCD display */
801 lcd-ldo {
810 /* GPIO that enables the WLAN internal LDO regulators */
811 wlan-ldo {
829 /* GPIO keys */
830 gpio-keys {
877 /* GPIO-based I2C bus for magnetometer and NCP6914 */
878 i2c-gpio-0 {
886 /* GPIO-based I2C bus for the Cypress touchkeys */
887 i2c-gpio-1 {
895 /* GPIO-based I2C bus for the Immersion ISA1200 */
896 i2c-gpio-2 {
904 /* GPIO-based I2C bus for the NFC */
905 i2c-gpio-3 {
913 /* GPIO-based SPI bus for the display */
914 spi-gpio-0 {