Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Marc Singer and committed by
Russell King
51cb21a9 d4adcffb

+120
+61
Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
··· 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.
+59
Documentation/arm/Sharp-LH/LCDPanels
··· 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.