| * Broadcom's IPROC Touchscreen Controller | |
| Required properties: | |
| - compatible: must be "brcm,iproc-touchscreen" | |
| - ts_syscon: handler of syscon node defining physical base | |
| address of the controller and length of memory mapped region. | |
| If this property is selected please make sure MFD_SYSCON config | |
| is enabled in the defconfig file. | |
| - clocks: The clock provided by the SOC to driver the tsc | |
| - clock-names: name for the clock | |
| - interrupts: The touchscreen controller's interrupt | |
| - address-cells: Specify the number of u32 entries needed in child nodes. | |
| Should set to 1. | |
| - size-cells: Specify number of u32 entries needed to specify child nodes size | |
| in reg property. Should set to 1. | |
| 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: An example of touchscreen node | |
| ts_adc_syscon: ts_adc_syscon@180a6000 { | |
| compatible = "brcm,iproc-ts-adc-syscon","syscon"; | |
| reg = <0x180a6000 0xc30>; | |
| }; | |
| touchscreen: touchscreen@180A6000 { | |
| compatible = "brcm,iproc-touchscreen"; | |
| #address-cells = <1>; | |
| #size-cells = <1>; | |
| ts_syscon = <&ts_adc_syscon>; | |
| 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; | |
| }; |