Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame^] | 1 | # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| 2 | %YAML 1.2 |
| 3 | --- |
| 4 | $id: http://devicetree.org/schemas/input/touchscreen/ti,am3359-tsc.yaml# |
| 5 | $schema: http://devicetree.org/meta-schemas/core.yaml# |
| 6 | |
| 7 | title: TI AM3359 Touchscreen controller |
| 8 | |
| 9 | maintainers: |
| 10 | - Miquel Raynal <miquel.raynal@bootlin.com> |
| 11 | |
| 12 | properties: |
| 13 | compatible: |
| 14 | const: ti,am3359-tsc |
| 15 | |
| 16 | ti,wires: |
| 17 | description: Wires refer to application modes i.e. 4/5/8 wire touchscreen |
| 18 | support on the platform. |
| 19 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 20 | enum: [4, 5, 8] |
| 21 | |
| 22 | ti,x-plate-resistance: |
| 23 | description: X plate resistance |
| 24 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 25 | |
| 26 | ti,coordinate-readouts: |
| 27 | description: The sequencer supports a total of 16 programmable steps. Each |
| 28 | step is used to read a single coordinate. A single readout is enough but |
| 29 | multiple reads can increase the quality. A value of 5 means, 5 reads for |
| 30 | X, 5 for Y and 2 for Z (always). This utilises 12 of the 16 software steps |
| 31 | available. The remaining 4 can be used by the ADC. |
| 32 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 33 | minimum: 1 |
| 34 | maximum: 6 |
| 35 | |
| 36 | ti,wire-config: |
| 37 | description: Different boards could have a different order for connecting |
| 38 | wires on touchscreen. We need to provide an 8-bit number where the |
| 39 | first four bits represent the analog lines and the next 4 bits represent |
| 40 | positive/negative terminal on that input line. Notations to represent the |
| 41 | input lines and terminals respectively are as follows, AIN0 = 0, AIN1 = 1 |
| 42 | and so on until AIN7 = 7. XP = 0, XN = 1, YP = 2, YN = 3. |
| 43 | $ref: /schemas/types.yaml#/definitions/uint32-array |
| 44 | minItems: 4 |
| 45 | maxItems: 8 |
| 46 | |
| 47 | ti,charge-delay: |
| 48 | description: Length of touch screen charge delay step in terms of ADC clock |
| 49 | cycles. Charge delay value should be large in order to avoid false pen-up |
| 50 | events. This value effects the overall sampling speed, hence need to be |
| 51 | kept as low as possible, while avoiding false pen-up event. Start from a |
| 52 | lower value, say 0x400, and increase value until false pen-up events are |
| 53 | avoided. The pen-up detection happens immediately after the charge step, |
| 54 | so this does in fact function as a hardware knob for adjusting the amount |
| 55 | of "settling time". |
| 56 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 57 | |
| 58 | required: |
| 59 | - compatible |
| 60 | - ti,wires |
| 61 | - ti,x-plate-resistance |
| 62 | - ti,coordinate-readouts |
| 63 | - ti,wire-config |
| 64 | |
| 65 | additionalProperties: false |
| 66 | |
| 67 | examples: |
| 68 | - | |
| 69 | tsc { |
| 70 | compatible = "ti,am3359-tsc"; |
| 71 | ti,wires = <4>; |
| 72 | ti,x-plate-resistance = <200>; |
| 73 | ti,coordinate-readouts = <5>; |
| 74 | ti,wire-config = <0x00 0x11 0x22 0x33>; |
| 75 | ti,charge-delay = <0x400>; |
| 76 | }; |