diff options
| author | Marc Singer <elf@buici.com> | 2006-05-16 06:41:43 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-06-18 11:16:51 -0400 |
| commit | 51cb21a9cd2e3bba8a69948794eb9480facdef45 (patch) | |
| tree | fde0724d77635c2f4c681b9f35b07e17314b6cf5 /Documentation/arm | |
| parent | d4adcffb6574d3414f2e39d6ca1be5eccf97ac52 (diff) | |
[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>
Diffstat (limited to 'Documentation/arm')
| -rw-r--r-- | Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen | 61 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/LCDPanels | 59 |
2 files changed, 120 insertions, 0 deletions
diff --git a/Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen b/Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen new file mode 100644 index 0000000000..1e6a23fdf2 --- /dev/null +++ b/Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | README on the ADC/Touchscreen Controller | ||
| 2 | ======================================== | ||
| 3 | |||
| 4 | The LH79524 and LH7A404 include a built-in Analog to Digital | ||
| 5 | controller (ADC) that is used to process input from a touchscreen. | ||
| 6 | The driver only implements a four-wire touch panel protocol. | ||
| 7 | |||
| 8 | The touchscreen driver is maintenance free except for the pen-down or | ||
| 9 | touch threshold. Some resistive displays and board combinations may | ||
| 10 | require tuning of this threshold. The driver exposes some of it's | ||
| 11 | internal state in the sys filesystem. If the kernel is configured | ||
| 12 | with it, CONFIG_SYSFS, and sysfs is mounted at /sys, there will be a | ||
| 13 | directory | ||
| 14 | |||
| 15 | /sys/devices/platform/adc-lh7.0 | ||
| 16 | |||
| 17 | containing these files. | ||
| 18 | |||
| 19 | -r--r--r-- 1 root root 4096 Jan 1 00:00 samples | ||
| 20 | -rw-r--r-- 1 root root 4096 Jan 1 00:00 threshold | ||
| 21 | -r--r--r-- 1 root root 4096 Jan 1 00:00 threshold_range | ||
| 22 | |||
| 23 | The threshold is the current touch threshold. It defaults to 750 on | ||
| 24 | most targets. | ||
| 25 | |||
| 26 | # cat threshold | ||
| 27 | 750 | ||
| 28 | |||
| 29 | The threshold_range contains the range of valid values for the | ||
| 30 | threshold. Values outside of this range will be silently ignored. | ||
| 31 | |||
| 32 | # cat threshold_range | ||
| 33 | 0 1023 | ||
| 34 | |||
| 35 | To change the threshold, write a value to the threshold file. | ||
| 36 | |||
| 37 | # echo 500 > threshold | ||
| 38 | # cat threshold | ||
| 39 | 500 | ||
| 40 | |||
| 41 | The samples file contains the most recently sampled values from the | ||
| 42 | ADC. There are 12. Below are typical of the last sampled values when | ||
| 43 | the pen has been released. The first two and last two samples are for | ||
| 44 | detecting whether or not the pen is down. The third through sixth are | ||
| 45 | X coordinate samples. The seventh through tenth are Y coordinate | ||
| 46 | samples. | ||
| 47 | |||
| 48 | # cat samples | ||
| 49 | 1023 1023 0 0 0 0 530 529 530 529 1023 1023 | ||
| 50 | |||
| 51 | To determine a reasonable threshold, press on the touch panel with an | ||
| 52 | appropriate stylus and read the values from samples. | ||
| 53 | |||
| 54 | # cat samples | ||
| 55 | 1023 676 92 103 101 102 855 919 922 922 1023 679 | ||
| 56 | |||
| 57 | The first and eleventh samples are discarded. Thus, the important | ||
| 58 | values are the second and twelfth which are used to determine if the | ||
| 59 | pen is down. When both are below the threshold, the driver registers | ||
| 60 | that the pen is down. When either is above the threshold, it | ||
| 61 | registers then pen is up. | ||
diff --git a/Documentation/arm/Sharp-LH/LCDPanels b/Documentation/arm/Sharp-LH/LCDPanels new file mode 100644 index 0000000000..fb1b21c2f2 --- /dev/null +++ b/Documentation/arm/Sharp-LH/LCDPanels | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | README on the LCD Panels | ||
| 2 | ======================== | ||
| 3 | |||
| 4 | Configuration options for several LCD panels, available from Logic PD, | ||
| 5 | are included in the kernel source. This README will help you | ||
| 6 | understand the configuration data and give you some guidance for | ||
| 7 | adding support for other panels if you wish. | ||
| 8 | |||
| 9 | |||
| 10 | lcd-panels.h | ||
| 11 | ------------ | ||
| 12 | |||
| 13 | There is no way, at present, to detect which panel is attached to the | ||
| 14 | system at runtime. Thus the kernel configuration is static. The file | ||
| 15 | arch/arm/mach-ld7a40x/lcd-panels.h (or similar) defines all of the | ||
| 16 | panel specific parameters. | ||
| 17 | |||
| 18 | It should be possible for this data to be shared among several device | ||
| 19 | families. The current layout may be insufficiently general, but it is | ||
| 20 | amenable to improvement. | ||
| 21 | |||
| 22 | |||
| 23 | PIXEL_CLOCK | ||
| 24 | ----------- | ||
| 25 | |||
| 26 | The panel data sheets will give a range of acceptable pixel clocks. | ||
| 27 | The fundamental LCDCLK input frequency is divided down by a PCD | ||
| 28 | constant in field '.tim2'. It may happen that it is impossible to set | ||
| 29 | the pixel clock within this range. A clock which is too slow will | ||
| 30 | tend to flicker. For the highest quality image, set the clock as high | ||
| 31 | as possible. | ||
| 32 | |||
| 33 | |||
| 34 | MARGINS | ||
| 35 | ------- | ||
| 36 | |||
| 37 | These values may be difficult to glean from the panel data sheet. In | ||
| 38 | the case of the Sharp panels, the upper margin is explicitly called | ||
| 39 | out as a specific number of lines from the top of the frame. The | ||
| 40 | other values may not matter as much as the panels tend to | ||
| 41 | automatically center the image. | ||
| 42 | |||
| 43 | |||
| 44 | Sync Sense | ||
| 45 | ---------- | ||
| 46 | |||
| 47 | The sense of the hsync and vsync pulses may be called out in the data | ||
| 48 | sheet. On one panel, the sense of these pulses determine the height | ||
| 49 | of the visible region on the panel. Most of the Sharp panels use | ||
| 50 | negative sense sync pulses set by the TIM2_IHS and TIM2_IVS bits in | ||
| 51 | '.tim2'. | ||
| 52 | |||
| 53 | |||
| 54 | Pel Layout | ||
| 55 | ---------- | ||
| 56 | |||
| 57 | The Sharp color TFT panels are all configured for 16 bit direct color | ||
| 58 | modes. The amba-lcd driver sets the pel mode to 565 for 5 bits of | ||
| 59 | each red and blue and 6 bits of green. | ||
