mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-25 07:13:27 +07:00
d5ae685f15
Add initial version of the Broadcom touchscreen driver. Reviewed-by: Ray Jui <rjui@broadcom.com> Reviewed-by: Scott Branden <sbranden@broadcom.com> Tested-by: Scott Branden <sbranden@broadcom.com> Signed-off-by: Jonathan Richardson <jonathar@broadcom.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
77 lines
2.8 KiB
Plaintext
77 lines
2.8 KiB
Plaintext
* Broadcom's IPROC Touchscreen Controller
|
|
|
|
Required properties:
|
|
- compatible: must be "brcm,iproc-touchscreen"
|
|
- reg: physical base address of the controller and length of memory mapped
|
|
region.
|
|
- clocks: The clock provided by the SOC to driver the tsc
|
|
- clock-name: name for the clock
|
|
- interrupts: The touchscreen controller's interrupt
|
|
|
|
Optional properties:
|
|
- scanning_period: Time between scans. Each step is 1024 us. Valid 1-256.
|
|
- debounce_timeout: Each step is 512 us. Valid 0-255
|
|
- settling_timeout: The settling duration (in ms) is the amount of time
|
|
the tsc waits to allow the voltage to settle after
|
|
turning on the drivers in detection mode.
|
|
Valid values: 0-11
|
|
0 = 0.008 ms
|
|
1 = 0.01 ms
|
|
2 = 0.02 ms
|
|
3 = 0.04 ms
|
|
4 = 0.08 ms
|
|
5 = 0.16 ms
|
|
6 = 0.32 ms
|
|
7 = 0.64 ms
|
|
8 = 1.28 ms
|
|
9 = 2.56 ms
|
|
10 = 5.12 ms
|
|
11 = 10.24 ms
|
|
- touch_timeout: The continuous number of scan periods in which touch is
|
|
not detected before the controller returns to idle state.
|
|
Valid values 0-255.
|
|
- average_data: Number of data samples which are averaged before a final
|
|
data point is placed into the FIFO
|
|
Valid values 0-7
|
|
0 = 1 sample
|
|
1 = 2 samples
|
|
2 = 4 samples
|
|
3 = 8 samples
|
|
4 = 16 samples
|
|
5 = 32 samples
|
|
6 = 64 samples
|
|
7 = 128 samples
|
|
- fifo_threshold: Interrupt is generated whenever the number of fifo
|
|
entries exceeds this value
|
|
Valid values 0-31
|
|
- touchscreen-size-x: horizontal resolution of touchscreen (in pixels)
|
|
- touchscreen-size-y: vertical resolution of touchscreen (in pixels)
|
|
- touchscreen-fuzz-x: horizontal noise value of the absolute input
|
|
device (in pixels)
|
|
- touchscreen-fuzz-y: vertical noise value of the absolute input
|
|
device (in pixels)
|
|
- touchscreen-inverted-x: X axis is inverted (boolean)
|
|
- touchscreen-inverted-y: Y axis is inverted (boolean)
|
|
|
|
Example:
|
|
|
|
touchscreen: tsc@0x180A6000 {
|
|
compatible = "brcm,iproc-touchscreen";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
reg = <0x180A6000 0x40>;
|
|
clocks = <&adc_clk>;
|
|
clock-names = "tsc_clk";
|
|
interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
scanning_period = <5>;
|
|
debounce_timeout = <40>;
|
|
settling_timeout = <7>;
|
|
touch_timeout = <10>;
|
|
average_data = <5>;
|
|
fifo_threshold = <1>;
|
|
/* Touchscreen is rotated 180 degrees. */
|
|
touchscreen-inverted-x;
|
|
touchscreen-inverted-y;
|
|
};
|