mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 04:06:22 +00:00
[ARM] 3407/1: lpd7x: documetation update
Patch from Marc Singer New documentation for the touchscreen controllers and LCD panels. Signed-off-by: Marc Singer <elf@buici.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
d4adcffb65
commit
51cb21a9cd
2 changed files with 120 additions and 0 deletions
61
Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
Normal file
61
Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
README on the ADC/Touchscreen Controller
|
||||||
|
========================================
|
||||||
|
|
||||||
|
The LH79524 and LH7A404 include a built-in Analog to Digital
|
||||||
|
controller (ADC) that is used to process input from a touchscreen.
|
||||||
|
The driver only implements a four-wire touch panel protocol.
|
||||||
|
|
||||||
|
The touchscreen driver is maintenance free except for the pen-down or
|
||||||
|
touch threshold. Some resistive displays and board combinations may
|
||||||
|
require tuning of this threshold. The driver exposes some of it's
|
||||||
|
internal state in the sys filesystem. If the kernel is configured
|
||||||
|
with it, CONFIG_SYSFS, and sysfs is mounted at /sys, there will be a
|
||||||
|
directory
|
||||||
|
|
||||||
|
/sys/devices/platform/adc-lh7.0
|
||||||
|
|
||||||
|
containing these files.
|
||||||
|
|
||||||
|
-r--r--r-- 1 root root 4096 Jan 1 00:00 samples
|
||||||
|
-rw-r--r-- 1 root root 4096 Jan 1 00:00 threshold
|
||||||
|
-r--r--r-- 1 root root 4096 Jan 1 00:00 threshold_range
|
||||||
|
|
||||||
|
The threshold is the current touch threshold. It defaults to 750 on
|
||||||
|
most targets.
|
||||||
|
|
||||||
|
# cat threshold
|
||||||
|
750
|
||||||
|
|
||||||
|
The threshold_range contains the range of valid values for the
|
||||||
|
threshold. Values outside of this range will be silently ignored.
|
||||||
|
|
||||||
|
# cat threshold_range
|
||||||
|
0 1023
|
||||||
|
|
||||||
|
To change the threshold, write a value to the threshold file.
|
||||||
|
|
||||||
|
# echo 500 > threshold
|
||||||
|
# cat threshold
|
||||||
|
500
|
||||||
|
|
||||||
|
The samples file contains the most recently sampled values from the
|
||||||
|
ADC. There are 12. Below are typical of the last sampled values when
|
||||||
|
the pen has been released. The first two and last two samples are for
|
||||||
|
detecting whether or not the pen is down. The third through sixth are
|
||||||
|
X coordinate samples. The seventh through tenth are Y coordinate
|
||||||
|
samples.
|
||||||
|
|
||||||
|
# cat samples
|
||||||
|
1023 1023 0 0 0 0 530 529 530 529 1023 1023
|
||||||
|
|
||||||
|
To determine a reasonable threshold, press on the touch panel with an
|
||||||
|
appropriate stylus and read the values from samples.
|
||||||
|
|
||||||
|
# cat samples
|
||||||
|
1023 676 92 103 101 102 855 919 922 922 1023 679
|
||||||
|
|
||||||
|
The first and eleventh samples are discarded. Thus, the important
|
||||||
|
values are the second and twelfth which are used to determine if the
|
||||||
|
pen is down. When both are below the threshold, the driver registers
|
||||||
|
that the pen is down. When either is above the threshold, it
|
||||||
|
registers then pen is up.
|
59
Documentation/arm/Sharp-LH/LCDPanels
Normal file
59
Documentation/arm/Sharp-LH/LCDPanels
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
README on the LCD Panels
|
||||||
|
========================
|
||||||
|
|
||||||
|
Configuration options for several LCD panels, available from Logic PD,
|
||||||
|
are included in the kernel source. This README will help you
|
||||||
|
understand the configuration data and give you some guidance for
|
||||||
|
adding support for other panels if you wish.
|
||||||
|
|
||||||
|
|
||||||
|
lcd-panels.h
|
||||||
|
------------
|
||||||
|
|
||||||
|
There is no way, at present, to detect which panel is attached to the
|
||||||
|
system at runtime. Thus the kernel configuration is static. The file
|
||||||
|
arch/arm/mach-ld7a40x/lcd-panels.h (or similar) defines all of the
|
||||||
|
panel specific parameters.
|
||||||
|
|
||||||
|
It should be possible for this data to be shared among several device
|
||||||
|
families. The current layout may be insufficiently general, but it is
|
||||||
|
amenable to improvement.
|
||||||
|
|
||||||
|
|
||||||
|
PIXEL_CLOCK
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The panel data sheets will give a range of acceptable pixel clocks.
|
||||||
|
The fundamental LCDCLK input frequency is divided down by a PCD
|
||||||
|
constant in field '.tim2'. It may happen that it is impossible to set
|
||||||
|
the pixel clock within this range. A clock which is too slow will
|
||||||
|
tend to flicker. For the highest quality image, set the clock as high
|
||||||
|
as possible.
|
||||||
|
|
||||||
|
|
||||||
|
MARGINS
|
||||||
|
-------
|
||||||
|
|
||||||
|
These values may be difficult to glean from the panel data sheet. In
|
||||||
|
the case of the Sharp panels, the upper margin is explicitly called
|
||||||
|
out as a specific number of lines from the top of the frame. The
|
||||||
|
other values may not matter as much as the panels tend to
|
||||||
|
automatically center the image.
|
||||||
|
|
||||||
|
|
||||||
|
Sync Sense
|
||||||
|
----------
|
||||||
|
|
||||||
|
The sense of the hsync and vsync pulses may be called out in the data
|
||||||
|
sheet. On one panel, the sense of these pulses determine the height
|
||||||
|
of the visible region on the panel. Most of the Sharp panels use
|
||||||
|
negative sense sync pulses set by the TIM2_IHS and TIM2_IVS bits in
|
||||||
|
'.tim2'.
|
||||||
|
|
||||||
|
|
||||||
|
Pel Layout
|
||||||
|
----------
|
||||||
|
|
||||||
|
The Sharp color TFT panels are all configured for 16 bit direct color
|
||||||
|
modes. The amba-lcd driver sets the pel mode to 565 for 5 bits of
|
||||||
|
each red and blue and 6 bits of green.
|
Loading…
Reference in a new issue