Commit | Line | Data |
---|---|---|
d5ae685f JR |
1 | * Broadcom's IPROC Touchscreen Controller |
2 | ||
3 | Required properties: | |
4 | - compatible: must be "brcm,iproc-touchscreen" | |
74813ceb RP |
5 | - ts_syscon: handler of syscon node defining physical base |
6 | address of the controller and length of memory mapped region. | |
7 | If this property is selected please make sure MFD_SYSCON config | |
8 | is enabled in the defconfig file. | |
d5ae685f | 9 | - clocks: The clock provided by the SOC to driver the tsc |
2d077d9f | 10 | - clock-names: name for the clock |
d5ae685f | 11 | - interrupts: The touchscreen controller's interrupt |
74813ceb RP |
12 | - address-cells: Specify the number of u32 entries needed in child nodes. |
13 | Should set to 1. | |
14 | - size-cells: Specify number of u32 entries needed to specify child nodes size | |
15 | in reg property. Should set to 1. | |
d5ae685f JR |
16 | |
17 | Optional properties: | |
18 | - scanning_period: Time between scans. Each step is 1024 us. Valid 1-256. | |
19 | - debounce_timeout: Each step is 512 us. Valid 0-255 | |
20 | - settling_timeout: The settling duration (in ms) is the amount of time | |
21 | the tsc waits to allow the voltage to settle after | |
22 | turning on the drivers in detection mode. | |
23 | Valid values: 0-11 | |
24 | 0 = 0.008 ms | |
25 | 1 = 0.01 ms | |
26 | 2 = 0.02 ms | |
27 | 3 = 0.04 ms | |
28 | 4 = 0.08 ms | |
29 | 5 = 0.16 ms | |
30 | 6 = 0.32 ms | |
31 | 7 = 0.64 ms | |
32 | 8 = 1.28 ms | |
33 | 9 = 2.56 ms | |
34 | 10 = 5.12 ms | |
35 | 11 = 10.24 ms | |
36 | - touch_timeout: The continuous number of scan periods in which touch is | |
37 | not detected before the controller returns to idle state. | |
38 | Valid values 0-255. | |
39 | - average_data: Number of data samples which are averaged before a final | |
40 | data point is placed into the FIFO | |
41 | Valid values 0-7 | |
42 | 0 = 1 sample | |
43 | 1 = 2 samples | |
44 | 2 = 4 samples | |
45 | 3 = 8 samples | |
46 | 4 = 16 samples | |
47 | 5 = 32 samples | |
48 | 6 = 64 samples | |
49 | 7 = 128 samples | |
50 | - fifo_threshold: Interrupt is generated whenever the number of fifo | |
51 | entries exceeds this value | |
52 | Valid values 0-31 | |
53 | - touchscreen-size-x: horizontal resolution of touchscreen (in pixels) | |
54 | - touchscreen-size-y: vertical resolution of touchscreen (in pixels) | |
55 | - touchscreen-fuzz-x: horizontal noise value of the absolute input | |
56 | device (in pixels) | |
57 | - touchscreen-fuzz-y: vertical noise value of the absolute input | |
58 | device (in pixels) | |
59 | - touchscreen-inverted-x: X axis is inverted (boolean) | |
60 | - touchscreen-inverted-y: Y axis is inverted (boolean) | |
61 | ||
74813ceb | 62 | Example: An example of touchscreen node |
d5ae685f | 63 | |
74813ceb RP |
64 | ts_adc_syscon: ts_adc_syscon@180a6000 { |
65 | compatible = "brcm,iproc-ts-adc-syscon","syscon"; | |
66 | reg = <0x180a6000 0xc30>; | |
67 | }; | |
68 | ||
69 | touchscreen: touchscreen@180A6000 { | |
d5ae685f JR |
70 | compatible = "brcm,iproc-touchscreen"; |
71 | #address-cells = <1>; | |
72 | #size-cells = <1>; | |
74813ceb | 73 | ts_syscon = <&ts_adc_syscon>; |
d5ae685f JR |
74 | clocks = <&adc_clk>; |
75 | clock-names = "tsc_clk"; | |
76 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; | |
77 | ||
78 | scanning_period = <5>; | |
79 | debounce_timeout = <40>; | |
80 | settling_timeout = <7>; | |
81 | touch_timeout = <10>; | |
82 | average_data = <5>; | |
83 | fifo_threshold = <1>; | |
84 | /* Touchscreen is rotated 180 degrees. */ | |
85 | touchscreen-inverted-x; | |
86 | touchscreen-inverted-y; | |
87 | }; |