88 lines · plain
1* Broadcom's IPROC Touchscreen Controller2 3Required properties:4- compatible: must be "brcm,iproc-touchscreen"5- ts_syscon: handler of syscon node defining physical base6 address of the controller and length of memory mapped region.7 If this property is selected please make sure MFD_SYSCON config8 is enabled in the defconfig file.9- clocks: The clock provided by the SOC to driver the tsc10- clock-names: name for the clock11- interrupts: The touchscreen controller's interrupt12- 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 size15 in reg property. Should set to 1.16 17Optional 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-25520- settling_timeout: The settling duration (in ms) is the amount of time21 the tsc waits to allow the voltage to settle after22 turning on the drivers in detection mode.23 Valid values: 0-1124 0 = 0.008 ms25 1 = 0.01 ms26 2 = 0.02 ms27 3 = 0.04 ms28 4 = 0.08 ms29 5 = 0.16 ms30 6 = 0.32 ms31 7 = 0.64 ms32 8 = 1.28 ms33 9 = 2.56 ms34 10 = 5.12 ms35 11 = 10.24 ms36- touch_timeout: The continuous number of scan periods in which touch is37 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 final40 data point is placed into the FIFO41 Valid values 0-742 0 = 1 sample43 1 = 2 samples44 2 = 4 samples45 3 = 8 samples46 4 = 16 samples47 5 = 32 samples48 6 = 64 samples49 7 = 128 samples50- fifo_threshold: Interrupt is generated whenever the number of fifo51 entries exceeds this value52 Valid values 0-3153- 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 input56 device (in pixels)57- touchscreen-fuzz-y: vertical noise value of the absolute input58 device (in pixels)59- touchscreen-inverted-x: X axis is inverted (boolean)60- touchscreen-inverted-y: Y axis is inverted (boolean)61 62Example: An example of touchscreen node63 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 {70 compatible = "brcm,iproc-touchscreen";71 #address-cells = <1>;72 #size-cells = <1>;73 ts_syscon = <&ts_adc_syscon>;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 };88