ARM: dts: sun8i: reference-design-tablet: Add gsl1680 touchscreen node
authorHans de Goede <hdegoede@redhat.com>
Mon, 8 Aug 2016 19:43:13 +0000 (21:43 +0200)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 22 Aug 2016 18:34:54 +0000 (20:34 +0200)
Almost all sun8i tablets use a gsl1680 touchscreen controller, so add
a node describing it to reference-design-tablet.dtsi.

Almost all, but not all, so mark it as disabled by default (dts files
will also need to supply a firmware-name and resolution info).

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi

index 9d9036140511da214084348f50886f175e962e79..f29897c40ae863c3cd5a180a5d7c65b2423ef0d5 100644 (file)
        };
 };
 
+&i2c0 {
+       /*
+        * The gsl1680 is rated at 400KHz and it will not work reliable at
+        * 100KHz, this has been confirmed on multiple different q8 tablets.
+        * The gsl1680 is the only device on this bus.
+        */
+       clock-frequency = <400000>;
+
+       gsl1680: touchscreen@40 {
+               compatible = "silead,gsl1680";
+               reg = <0x40>;
+               interrupt-parent = <&pio>;
+               interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* PB5 */
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_power_pin>;
+               power-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
+               /* Most tablets use this touchscreen, but not all */
+               status = "disabled";
+       };
+};
+
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
                allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
        };
 
+       ts_power_pin: ts_power_pin@0 {
+               allwinner,pins = "PH1";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
        usb0_id_detect_pin: usb0_id_detect_pin@0 {
                allwinner,pins = "PH8";
                allwinner,function = "gpio_in";