92 lines
3.5 KiB
Plaintext
92 lines
3.5 KiB
Plaintext
|
* TI - TSC ADC (Touschscreen and analog digital converter)
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
Required properties:
|
||
|
- mfd
|
||
|
compatible: Should be
|
||
|
"ti,am3359-tscadc" for AM335x/AM437x SoCs
|
||
|
"ti,am654-tscadc", "ti,am3359-tscadc" for AM654 SoCs
|
||
|
- child "tsc"
|
||
|
compatible: Should be "ti,am3359-tsc".
|
||
|
ti,wires: Wires refer to application modes i.e. 4/5/8 wire touchscreen
|
||
|
support on the platform.
|
||
|
ti,x-plate-resistance: X plate resistance
|
||
|
ti,coordinate-readouts: The sequencer supports a total of 16
|
||
|
programmable steps each step is used to
|
||
|
read a single coordinate. A single
|
||
|
readout is enough but multiple reads can
|
||
|
increase the quality.
|
||
|
A value of 5 means, 5 reads for X, 5 for
|
||
|
Y and 2 for Z (always). This utilises 12
|
||
|
of the 16 software steps available. The
|
||
|
remaining 4 can be used by the ADC.
|
||
|
ti,wire-config: Different boards could have a different order for
|
||
|
connecting wires on touchscreen. We need to provide an
|
||
|
8 bit number where in the 1st four bits represent the
|
||
|
analog lines and the next 4 bits represent positive/
|
||
|
negative terminal on that input line. Notations to
|
||
|
represent the input lines and terminals resoectively
|
||
|
is as follows:
|
||
|
AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
|
||
|
XP = 0, XN = 1, YP = 2, YN = 3.
|
||
|
- child "adc"
|
||
|
compatible: Should be
|
||
|
"ti,am3359-adc" for AM335x/AM437x SoCs
|
||
|
"ti,am654-adc", "ti,am3359-adc" for AM654 SoCs
|
||
|
ti,adc-channels: List of analog inputs available for ADC.
|
||
|
AIN0 = 0, AIN1 = 1 and so on till AIN7 = 7.
|
||
|
|
||
|
Optional properties:
|
||
|
- child "tsc"
|
||
|
ti,charge-delay: Length of touch screen charge delay step in terms of
|
||
|
ADC clock cycles. Charge delay value should be large
|
||
|
in order to avoid false pen-up events. This value
|
||
|
effects the overall sampling speed, hence need to be
|
||
|
kept as low as possible, while avoiding false pen-up
|
||
|
event. Start from a lower value, say 0x400, and
|
||
|
increase value until false pen-up events are avoided.
|
||
|
The pen-up detection happens immediately after the
|
||
|
charge step, so this does in fact function as a
|
||
|
hardware knob for adjusting the amount of "settling
|
||
|
time".
|
||
|
|
||
|
- child "adc"
|
||
|
ti,chan-step-opendelay: List of open delays for each channel of
|
||
|
ADC in the order of ti,adc-channels. The
|
||
|
value corresponds to the number of ADC
|
||
|
clock cycles to wait after applying the
|
||
|
step configuration registers and before
|
||
|
sending the start of ADC conversion.
|
||
|
Maximum value is 0x3FFFF.
|
||
|
ti,chan-step-sampledelay: List of sample delays for each channel
|
||
|
of ADC in the order of ti,adc-channels.
|
||
|
The value corresponds to the number of
|
||
|
ADC clock cycles to sample (to hold
|
||
|
start of conversion high).
|
||
|
Maximum value is 0xFF.
|
||
|
ti,chan-step-avg: Number of averages to be performed for each
|
||
|
channel of ADC. If average is 16 then input
|
||
|
is sampled 16 times and averaged to get more
|
||
|
accurate value. This increases the time taken
|
||
|
by ADC to generate a sample. Valid range is 0
|
||
|
average to 16 averages. Maximum value is 16.
|
||
|
|
||
|
Example:
|
||
|
tscadc: tscadc@44e0d000 {
|
||
|
compatible = "ti,am3359-tscadc";
|
||
|
tsc {
|
||
|
ti,wires = <4>;
|
||
|
ti,x-plate-resistance = <200>;
|
||
|
ti,coordiante-readouts = <5>;
|
||
|
ti,wire-config = <0x00 0x11 0x22 0x33>;
|
||
|
ti,charge-delay = <0x400>;
|
||
|
};
|
||
|
|
||
|
adc {
|
||
|
ti,adc-channels = <4 5 6 7>;
|
||
|
ti,chan-step-opendelay = <0x098 0x3ffff 0x098 0x0>;
|
||
|
ti,chan-step-sampledelay = <0xff 0x0 0xf 0x0>;
|
||
|
ti,chan-step-avg = <16 2 4 8>;
|
||
|
};
|
||
|
}
|