How to control the DSS outputs (LCD, TV-Out, DVI) and touch screen
LCD and touch screen
can be selected by adding "omapdss.def_disp=lcd" to the boot args. This is done by "setenv defaultdisplay lcd" in our boot.scr.
To disable/enable (power down/up) the LCD (state=0: off, state=1: on)
echo "$state" >/sys/devices/omapdss/display2/enabled
For more information about switching the DSS2 system, see the examples below. And please refer to http://processors.wiki.ti.com/index.php/DSS2_SYSFS_Examples
is mapped to
/dev/input/touchscreen (on debian lenny) /dev/input/event1 (on debian squeeze)
pen down status can be read asynchronously through
The raw ADC values, plate resistance, the temperature sensors and the AUX input (optional ambient light sensor) can be read through
The order of the values is
x, y, pressure, pendown(0/1), z1, z2, temp0, temp1, aux, resistance
The temp and aux values are updated every 100ms and the other values only on pen-down every 1ms.
Pressure values are an estimate and are lower for touches with small area (fingernail, stylus) and higher for bigger touch area (finger tip or multitouch). Typical range:
- 300 for stylus
- 700 for finger tip
- 2000-15000 for two fingers
Resistance is an estimate with a reference value of 600 Ohms.
Note: the x and y values are the raw values before any calibration (which is usually done through libts or similar means).
Video out (can't be used in parallel to headset microphone input)
can be selected by adding "omapdss.def_disp=venc" to the boot args
To disable/enable (power down/up) the LCD (state=0: off, state=1: on) in the DSS system:
echo "$state" >/sys/devices/omapdss/display1/enabled
The video out amplifier is automatically controlled by enabling display1, but it can be controlled independently through (state=0: off, state=1: on)
echo $state >/sys/devices/virtual/gpio/gpio23/value
- while gpio23 is "1", you can't use the headset microphone
- there is no automatic detection of a video display connection
- the 75 Ohm output is short circuit protected
DVI (on Beagleboard only!)
can be selected by adding "omapdss.def_disp=dvi" to the boot args
power (state=0: off, state=1: on)
echo $state >/sys/devices/virtual/gpio/gpio170/value
This is only available if the kernel is configured for the BeagleBoard.
Switch LCD to TV-out
Note: you must follow a specific order or it does fail (with timeouts). The order is to first disable the overlay (graphics source), then disconnect the display from the manager and finally disable the display before changing the framebuffer and timings. For enabling a different display, the reverse order is required. Firstly, enable the new display, then connect the manager and finally enable the overlay.
echo 0 > /sys/devices/platform/omapdss/overlay0/enabled echo "" > /sys/devices/platform/omapdss/overlay0/manager echo 0 > /sys/devices/platform/omapdss/display2/enabled echo "pal" > /sys/devices/platform/omapdss/display1/timings fbset -fb /dev/fb0 -xres 720 -yres 574 -vxres 720 -vyres 574 echo 1 > /sys/devices/platform/omapdss/display1/enabled echo "tv" > /sys/devices/platform/omapdss/overlay0/manager echo 1 > /sys/devices/platform/omapdss/overlay0/enabled
echo "ntsc" > /sys/devices/platform/omapdss/display1/timings fbset -fb /dev/fb0 -xres 720 -yres 482 -vxres 720 -vyres 482
If you don't want to change the framebuffer dimensions (which cuts off some parts of the video), use
fbset -fb /dev/fb0 -xres 720 -yres 574 -vxres 480 -vyres 640
Switch TV-Out to LCD
echo 0 > /sys/devices/platform/omapdss/overlay0/enabled echo "" > /sys/devices/platform/omapdss/overlay0/manager echo 0 > /sys/devices/platform/omapdss/display1/enabled fbset -fb /dev/fb0 -xres 480 -yres 640 -vxres 480 -vyres 640 echo 1 > /sys/devices/platform/omapdss/display2/enabled echo "lcd" > /sys/devices/platform/omapdss/overlay0/manager echo 1 > /sys/devices/platform/omapdss/overlay0/enabled