ARM: dts: imx6dl: plym2m, prtvt7, victgo: make use of new resistive-adc-touch driver
authorOleksij Rempel <o.rempel@pengutronix.de>
Fri, 11 Feb 2022 13:30:34 +0000 (14:30 +0100)
committerShawn Guo <shawnguo@kernel.org>
Sun, 13 Feb 2022 05:20:04 +0000 (13:20 +0800)
The tsc2046 is an ADC used as touchscreen controller. To share as mach
code as possible, we should use it as actual ADC + virtual touchscreen
controller.
With this patch we make use of the new kernel IIO and HID infrastructure.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/imx6dl-plym2m.dts
arch/arm/boot/dts/imx6dl-prtvt7.dts
arch/arm/boot/dts/imx6dl-victgo.dts

index 60fe5f1..73c7622 100644 (file)
                regulator-min-microvolt = <12000000>;
                regulator-max-microvolt = <12000000>;
        };
+
+       touchscreen {
+               compatible = "resistive-adc-touch";
+               io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>,
+                              <&adc_ts 5>;
+               io-channel-names = "y", "z1", "z2", "x";
+               touchscreen-min-pressure = <64687>;
+               touchscreen-inverted-x;
+               touchscreen-inverted-y;
+               touchscreen-x-plate-ohms = <300>;
+               touchscreen-y-plate-ohms = <800>;
+       };
 };
 
 &can1 {
        pinctrl-0 = <&pinctrl_ecspi2>;
        status = "okay";
 
-       touchscreen@0 {
-               compatible = "ti,tsc2046";
+       adc_ts: adc@0 {
+               compatible = "ti,tsc2046e-adc";
                reg = <0>;
                pinctrl-0 = <&pinctrl_tsc2046>;
                pinctrl-names ="default";
-               spi-max-frequency = <100000>;
-               interrupts-extended = <&gpio3 20 IRQ_TYPE_EDGE_FALLING>;
-               pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
+               spi-max-frequency = <1000000>;
+               interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>;
+               #io-channel-cells = <1>;
 
-               touchscreen-inverted-x;
-               touchscreen-inverted-y;
-               touchscreen-max-pressure = <4095>;
-
-               ti,vref-delay-usecs = /bits/ 16 <100>;
-               ti,x-plate-ohms = /bits/ 16 <800>;
-               ti,y-plate-ohms = /bits/ 16 <300>;
-               ti,debounce-max = /bits/ 16 <3>;
-               ti,debounce-tol = /bits/ 16 <70>;
-               ti,debounce-rep = /bits/ 16 <3>;
-               wakeup-source;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@1 {
+                       reg = <1>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@3 {
+                       reg = <3>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@4 {
+                       reg = <4>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@5 {
+                       reg = <5>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
        };
 };
 
index baaa6ff..59e0674 100644 (file)
                        frame-master;
                };
        };
+
+       touchscreen {
+               compatible = "resistive-adc-touch";
+               io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>,
+                              <&adc_ts 5>;
+               io-channel-names = "y", "z1", "z2", "x";
+               touchscreen-min-pressure = <64687>;
+               touchscreen-inverted-x;
+               touchscreen-inverted-y;
+               touchscreen-x-plate-ohms = <300>;
+               touchscreen-y-plate-ohms = <800>;
+       };
 };
 
 &audmux {
        pinctrl-0 = <&pinctrl_ecspi2>;
        status = "okay";
 
-       touchscreen@0 {
-               compatible = "ti,tsc2046";
+       adc_ts: adc@0 {
+               compatible = "ti,tsc2046e-adc";
                reg = <0>;
                pinctrl-0 = <&pinctrl_tsc>;
                pinctrl-names ="default";
-               spi-max-frequency = <100000>;
-               interrupts-extended = <&gpio3 20 IRQ_TYPE_EDGE_FALLING>;
-               pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
-               touchscreen-max-pressure = <4095>;
-               ti,vref-delay-usecs = /bits/ 16 <100>;
-               ti,x-plate-ohms = /bits/ 16 <800>;
-               ti,y-plate-ohms = /bits/ 16 <300>;
-               ti,debounce-max = /bits/ 16 <3>;
-               ti,debounce-tol = /bits/ 16 <70>;
-               ti,debounce-rep = /bits/ 16 <3>;
-               wakeup-source;
+               spi-max-frequency = <1000000>;
+               interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>;
+               #io-channel-cells = <1>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@1 {
+                       reg = <1>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@3 {
+                       reg = <3>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@4 {
+                       reg = <4>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@5 {
+                       reg = <5>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
        };
 };
 
index d37ba4e..52de091 100644 (file)
                        frame-master;
                };
        };
+
+       touchscreen {
+               compatible = "resistive-adc-touch";
+               io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>,
+                              <&adc_ts 5>;
+               io-channel-names = "y", "z1", "z2", "x";
+               touchscreen-min-pressure = <64687>;
+               touchscreen-inverted-x;
+               touchscreen-inverted-y;
+               touchscreen-x-plate-ohms = <300>;
+               touchscreen-y-plate-ohms = <800>;
+       };
 };
 
 &audmux {
        pinctrl-0 = <&pinctrl_ecspi2>;
        status = "okay";
 
-       touchscreen@0 {
-               compatible = "ti,tsc2046";
+       adc_ts: adc@0 {
+               compatible = "ti,tsc2046e-adc";
                reg = <0>;
-               pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_touchscreen>;
-               spi-max-frequency = <200000>;
-               interrupts-extended = <&gpio5 8 IRQ_TYPE_EDGE_FALLING>;
-               pendown-gpio = <&gpio5 8 GPIO_ACTIVE_LOW>;
-               touchscreen-size-x = <800>;
-               touchscreen-size-y = <480>;
-               touchscreen-inverted-y;
-               touchscreen-max-pressure = <4095>;
-               ti,vref-delay-usecs = /bits/ 16 <100>;
-               ti,x-plate-ohms = /bits/ 16 <800>;
-               ti,y-plate-ohms = /bits/ 16 <300>;
-               wakeup-source;
+               pinctrl-names ="default";
+               spi-max-frequency = <1000000>;
+               interrupts-extended = <&gpio5 8 IRQ_TYPE_LEVEL_LOW>;
+               #io-channel-cells = <1>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@1 {
+                       reg = <1>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@3 {
+                       reg = <3>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@4 {
+                       reg = <4>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
+
+               channel@5 {
+                       reg = <5>;
+                       settling-time-us = <700>;
+                       oversampling-ratio = <5>;
+               };
        };
 };