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