|  | * 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; | 
|  | }; |