[v10,4/4] ARM: dts: imx7d-remarkable2: Enable the cyttsp5
Commit Message
Add support for the cyttsp5 touchscreen controller for the reMarkable 2.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
---
arch/arm/boot/dts/imx7d-remarkable2.dts | 100 ++++++++++++++++++++++++
1 file changed, 100 insertions(+)
Comments
On Wed, Oct 26, 2022 at 09:49:08PM +1000, Alistair Francis wrote:
> Add support for the cyttsp5 touchscreen controller for the reMarkable 2.
>
> Signed-off-by: Alistair Francis <alistair@alistair23.me>
> ---
> arch/arm/boot/dts/imx7d-remarkable2.dts | 100 ++++++++++++++++++++++++
> 1 file changed, 100 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx7d-remarkable2.dts b/arch/arm/boot/dts/imx7d-remarkable2.dts
> index a2a91bfdd98e..fea480af8e48 100644
> --- a/arch/arm/boot/dts/imx7d-remarkable2.dts
> +++ b/arch/arm/boot/dts/imx7d-remarkable2.dts
> @@ -8,6 +8,7 @@
> /dts-v1/;
>
> #include "imx7d.dtsi"
> +#include <dt-bindings/input/linux-event-codes.h>
>
> / {
> model = "reMarkable 2.0";
> @@ -47,6 +48,18 @@ reg_digitizer: regulator-digitizer {
> 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", "sleep";
> + pinctrl-0 = <&pinctrl_touch_reg>;
> + pinctrl-1 = <&pinctrl_touch_reg>;
> + gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> wifi_pwrseq: wifi_pwrseq {
> compatible = "mmc-pwrseq-simple";
> pinctrl-names = "default";
> @@ -84,6 +97,70 @@ wacom_digitizer: digitizer@9 {
> };
> };
>
> +&i2c3 {
> + clock-frequency = <100000>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c3>;
> + status = "okay";
> +
> + tsc@24 {
`touchscreen` for node name?
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
Unnecessary newline.
> + compatible = "cypress,tt21000";
We idiomatically begin property list with compatible.
> + reg = <0x24>;
> +
Unnecessary newline.
Shawn
> + 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 = <®_touch>;
> + touchscreen-size-x = <880>;
> + touchscreen-size-y = <1280>;
> +
> + 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>;
> + };
> + };
> +};
> +
> &snvs_pwrkey {
> status = "okay";
> };
> @@ -177,6 +254,15 @@ MX7D_PAD_SAI1_TX_BCLK__GPIO6_IO13 0x14
> >;
> };
>
> + 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
> @@ -184,6 +270,20 @@ MX7D_PAD_I2C1_SCL__I2C1_SCL 0x4000007f
> >;
> };
>
> + pinctrl_i2c3: i2c3grp {
> + fsl,pins = <
> + MX7D_PAD_I2C3_SDA__I2C3_SDA 0x4000007f
> + MX7D_PAD_I2C3_SCL__I2C3_SCL 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
> --
> 2.37.3
>
@@ -8,6 +8,7 @@
/dts-v1/;
#include "imx7d.dtsi"
+#include <dt-bindings/input/linux-event-codes.h>
/ {
model = "reMarkable 2.0";
@@ -47,6 +48,18 @@ reg_digitizer: regulator-digitizer {
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", "sleep";
+ pinctrl-0 = <&pinctrl_touch_reg>;
+ pinctrl-1 = <&pinctrl_touch_reg>;
+ gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
wifi_pwrseq: wifi_pwrseq {
compatible = "mmc-pwrseq-simple";
pinctrl-names = "default";
@@ -84,6 +97,70 @@ wacom_digitizer: digitizer@9 {
};
};
+&i2c3 {
+ clock-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c3>;
+ status = "okay";
+
+ tsc@24 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ 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 = <®_touch>;
+ touchscreen-size-x = <880>;
+ touchscreen-size-y = <1280>;
+
+ 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>;
+ };
+ };
+};
+
&snvs_pwrkey {
status = "okay";
};
@@ -177,6 +254,15 @@ MX7D_PAD_SAI1_TX_BCLK__GPIO6_IO13 0x14
>;
};
+ 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
@@ -184,6 +270,20 @@ MX7D_PAD_I2C1_SCL__I2C1_SCL 0x4000007f
>;
};
+ pinctrl_i2c3: i2c3grp {
+ fsl,pins = <
+ MX7D_PAD_I2C3_SDA__I2C3_SDA 0x4000007f
+ MX7D_PAD_I2C3_SCL__I2C3_SCL 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