ARM: dts: imx7d-remarkable2: Enable the cyttsp5
authorAlistair Francis <alistair@alistair23.me>
Mon, 27 Feb 2023 04:50:21 +0000 (14:50 +1000)
committerShawn Guo <shawnguo@kernel.org>
Tue, 14 Mar 2023 03:00:23 +0000 (11:00 +0800)
Add support for the cyttsp5 touchscreen controller for the reMarkable 2.

Signed-off-by: Alistair Francis <alistair@alistair23.me>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/imx7d-remarkable2.dts

index 8b2f11e..288fc86 100644 (file)
@@ -8,6 +8,7 @@
 /dts-v1/;
 
 #include "imx7d.dtsi"
+#include <dt-bindings/input/linux-event-codes.h>
 
 / {
        model = "reMarkable 2.0";
                startup-delay-us = <100000>; /* 100 ms */
        };
 
+       reg_touch: regulator-touch {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_TOUCH";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_touch_reg>;
+               gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                pinctrl-names = "default";
        };
 };
 
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+
+       touchscreen@24 {
+               compatible = "cypress,tt21000";
+               reg = <0x24>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_touch>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&reg_touch>;
+               touchscreen-size-x = <880>;
+               touchscreen-size-y = <1280>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               button@0 {
+                       reg = <0>;
+                       linux,keycodes = <KEY_HOMEPAGE>;
+               };
+
+               button@1 {
+                       reg = <1>;
+                       linux,keycodes = <KEY_MENU>;
+               };
+
+               button@2 {
+                       reg = <2>;
+                       linux,keycodes = <KEY_BACK>;
+               };
+
+               button@3 {
+                       reg = <3>;
+                       linux,keycodes = <KEY_SEARCH>;
+               };
+
+               button@4 {
+                       reg = <4>;
+                       linux,keycodes = <KEY_VOLUMEDOWN>;
+               };
+
+               button@5 {
+                       reg = <5>;
+                       linux,keycodes = <KEY_VOLUMEUP>;
+               };
+
+               button@6 {
+                       reg = <6>;
+                       linux,keycodes = <KEY_CAMERA>;
+               };
+
+               button@7 {
+                       reg = <7>;
+                       linux,keycodes = <KEY_POWER>;
+               };
+       };
+};
+
 &i2c4 {
        clock-frequency = <100000>;
        pinctrl-names = "default", "sleep";
                >;
        };
 
+       pinctrl_touch: touchgrp {
+               fsl,pins = <
+                       /* CYTTSP interrupt */
+                       MX7D_PAD_GPIO1_IO14__GPIO1_IO14         0x54
+                       /* CYTTSP reset */
+                       MX7D_PAD_GPIO1_IO13__GPIO1_IO13         0x04
+               >;
+       };
+
        pinctrl_i2c1: i2c1grp {
                fsl,pins = <
                        MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
                >;
        };
 
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C3_SDA__I2C3_SDA             0x4000007f
+                       MX7D_PAD_I2C3_SCL__I2C3_SCL             0x4000007f
+               >;
+       };
+
        pinctrl_i2c4: i2c4grp {
                fsl,pins = <
                        MX7D_PAD_I2C4_SDA__I2C4_SDA             0x4000007f
                >;
        };
 
+       pinctrl_touch_reg: touchreggrp {
+               fsl,pins = <
+                       /* TOUCH_PWR_EN */
+                       MX7D_PAD_GPIO1_IO11__GPIO1_IO11         0x14
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79