Kernel-4.18.0-80.el8_ads7846

Device tree bindings for TI’s ADS7843, ADS7845, ADS7846, ADS7873, TSC2046
SPI driven touch screen controllers.

The node for this driver must be a child node of a SPI controller, hence
all mandatory properties described in

Documentation/devicetree/bindings/spi/spi-bus.txt

must be specified.

Additional required properties:

compatible        Must be one of the following, depending on the
            model:
                "ti,tsc2046"
                "ti,ads7843"
                "ti,ads7845"
                "ti,ads7846"
                "ti,ads7873"

interrupt-parent
interrupts        An interrupt node describing the IRQ line the chip's
            !PENIRQ pin is connected to.
vcc-supply        A regulator node for the supply voltage.

Optional properties:

ti,vref-delay-usecs        vref supply delay in usecs, 0 for
                external vref (u16).
ti,vref-mv            The VREF voltage, in millivolts (u16).
                Set to 0 to use internal references
                (ADS7846).
ti,keep-vref-on            set to keep vref on for differential
                measurements as well
ti,swap-xy            swap x and y axis
ti,settle-delay-usec        Settling time of the analog signals;
                a function of Vcc and the capacitance
                on the X/Y drivers.  If set to non-zero,
                two samples are taken with settle_delay
                us apart, and the second one is used.
                ~150 uSec with 0.01uF caps (u16).
ti,penirq-recheck-delay-usecs    If set to non-zero, after samples are
                taken this delay is applied and penirq
                is rechecked, to help avoid false
                events.  This value is affected by the
                material used to build the touch layer
                (u16).
ti,x-plate-ohms            Resistance of the X-plate,
                in Ohms (u16).
ti,y-plate-ohms            Resistance of the Y-plate,
                in Ohms (u16).
ti,x-min            Minimum value on the X axis (u16).
ti,y-min            Minimum value on the Y axis (u16).
ti,x-max            Maximum value on the X axis (u16).
ti,y-max            Minimum value on the Y axis (u16).
ti,pressure-min            Minimum reported pressure value
                (threshold) - u16.
ti,pressure-max            Maximum reported pressure value (u16).
ti,debounce-max            Max number of additional readings per
                sample (u16).
ti,debounce-tol            Tolerance used for filtering (u16).
ti,debounce-rep            Additional consecutive good readings
                required after the first two (u16).
ti,pendown-gpio-debounce    Platform specific debounce time for the
                pendown-gpio (u32).
pendown-gpio            GPIO handle describing the pin the !PENIRQ
                line is connected to.
wakeup-source            use any event on touchscreen as wakeup event.
                (Legacy property support: "linux,wakeup")

Example for a TSC2046 chip connected to an McSPI controller of an OMAP SoC::

spi_controller {
    tsc2046@0 {
        reg = <0>;    /* CS0 */
        compatible = "ti,tsc2046";
        interrupt-parent = <&gpio1>;
        interrupts = <8 0>;    /* BOOT6 / GPIO 8 */
        spi-max-frequency = <1000000>;
        pendown-gpio = <&gpio1 8 0>;
        vcc-supply = <&reg_vcc3>;

        ti,x-min = /bits/ 16 <0>;
        ti,x-max = /bits/ 16 <8000>;
        ti,y-min = /bits/ 16 <0>;
        ti,y-max = /bits/ 16 <4800>;
        ti,x-plate-ohms = /bits/ 16 <40>;
        ti,pressure-max = /bits/ 16 <255>;

        wakeup-source;
    };
};