Documentation / devicetree / bindings / input / touchscreen / ad7879.txt


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
* Analog Devices AD7879(-1)/AD7889(-1) touchscreen interface (SPI/I2C)

Required properties:
- compatible			: for SPI slave, use "adi,ad7879"
				  for I2C slave, use "adi,ad7879-1"
- reg				: SPI chipselect/I2C slave address
				  See spi-bus.txt for more SPI slave properties
- interrupts			: touch controller interrupt
- touchscreen-max-pressure	: maximum reported pressure
- adi,resistance-plate-x	: total resistance of X-plate (for pressure
				  calculation)
Optional properties:
- touchscreen-swapped-x-y	: X and Y axis are swapped (boolean)
- adi,first-conversion-delay	: 0-12: In 128us steps (starting with 128us)
				  13  : 2.560ms
				  14  : 3.584ms
				  15  : 4.096ms
				  This property has to be a '/bits/ 8' value
- adi,acquisition-time		: 0: 2us
				  1: 4us
				  2: 8us
				  3: 16us
				  This property has to be a '/bits/ 8' value
- adi,median-filter-size	: 0: disabled
				  1: 4 measurements
				  2: 8 measurements
				  3: 16 measurements
				  This property has to be a '/bits/ 8' value
- adi,averaging			: 0: 2 middle values (1 if median disabled)
				  1: 4 middle values
				  2: 8 middle values
				  3: 16 values
				  This property has to be a '/bits/ 8' value
- adi,conversion-interval:	: 0    : convert one time only
				  1-255: 515us + val * 35us (up to 9.440ms)
				  This property has to be a '/bits/ 8' value
- gpio-controller		: Switch AUX/VBAT/GPIO pin to GPIO mode

Example:

	touchscreen0@2c {
		compatible = "adi,ad7879-1";
		reg = <0x2c>;
		interrupt-parent = <&gpio1>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
		touchscreen-max-pressure = <4096>;
		adi,resistance-plate-x = <120>;
		adi,first-conversion-delay = /bits/ 8 <3>;
		adi,acquisition-time = /bits/ 8 <1>;
		adi,median-filter-size = /bits/ 8 <2>;
		adi,averaging = /bits/ 8 <1>;
		adi,conversion-interval = /bits/ 8 <255>;
	};

	touchscreen1@1 {
		compatible = "adi,ad7879";
		spi-max-frequency = <5000000>;
		reg = <1>;
		spi-cpol;
		spi-cpha;
		gpio-controller;
		interrupt-parent = <&gpio1>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
		touchscreen-max-pressure = <4096>;
		adi,resistance-plate-x = <120>;
		adi,first-conversion-delay = /bits/ 8 <3>;
		adi,acquisition-time = /bits/ 8 <1>;
		adi,median-filter-size = /bits/ 8 <2>;
		adi,averaging = /bits/ 8 <1>;
		adi,conversion-interval = /bits/ 8 <255>;
	};