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