diff options
author | Jakub Schmidtke <sjakub@gmail.com> | 2008-11-05 07:46:58 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-01-06 21:52:28 (GMT) |
commit | fb53440b187f0cfc1f116e580e9c7e9931191f9c (patch) | |
tree | 9498472816f700da34970982a7c7c90661e06bd9 /drivers/staging/asus_oled/README | |
parent | a8275fcaa7ca1f720f0c1b1c4c373964ffc9f72d (diff) | |
download | linux-fsl-qoriq-fb53440b187f0cfc1f116e580e9c7e9931191f9c.tar.xz |
Staging: add asus_oled driver
Driver for the OLED tiny display on some Asus laptops.
From: Jakub Schmidtke <sjakub@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/asus_oled/README')
-rw-r--r-- | drivers/staging/asus_oled/README | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/drivers/staging/asus_oled/README b/drivers/staging/asus_oled/README new file mode 100644 index 0000000..96b9717 --- /dev/null +++ b/drivers/staging/asus_oled/README @@ -0,0 +1,156 @@ + + Driver for Asus OLED display present in some Asus laptops. + + The code of this driver is based on 'asusoled' program taken from + https://launchpad.net/asusoled/. I just wanted to have a simple + kernel driver for controlling this device, but I didn't know how + to do that. Now I know ;) Also, that program can not be used + with usbhid loaded, which means no USB mouse/keyboard while + controlling OLED display :( + + It has been tested on Asus G1 and didn't cause any problems, + but I don't guarantee that it won't do anything wrong :) + + It can (and probably does) have errors. It is usable + in my case, and I hope others will find it useful too! + +******* + +Building the module + + To build the module you need kernel 2.6 include files and some C compiler. + + Just run: + make + make install (as a root) + + It will build (hopefully) the module and install it in + /lib/modules/'uname -r'/extra/asus_oled.ko. + + To load it just use: + modprobe asus_oled + + You can check if it has detected your OLED display by looking into dmesg output. + There should be something like this: + asus-oled 2-7:1.0: Attached Asus OLED device + + If it doesn't find your display, you can try removing usbhid module. + If you add asus_oled into the list of modules loaded during system boot + before usbhid, it will work even when usbhid is present. + + If it still doesn't detect your hardware, check lsusb output. + There should be similar line: + Bus 002 Device 005: ID 0b05:1726 ASUSTek Computer, Inc. + + If you don't see any lines with '0b05:1726' it means that you have different + type of hardware that is not detected (it may or may not work, but the driver + knows only '0b05:1726' device). + +******* + +Configuration + + There is only one option: start_off. + You can use it by: 'modprobe asus_oled start_off=1', or by adding this + line to /etc/modprobe.conf: + options asus_oled start_off=1 + + With this option provided, asus_oled driver will switch off the display + when it is detected and attached. It is nice feature to just switch off the 'ASUS' + logo. If you don't use the display, it is probably the good idea to switch it off, + to protect OLEDs from "wearing off". + +******* + +Usage + + This module can be controlled with two special files: + /sys/class/asus_oled/oled_N/enabled + /sys/class/asus_oled/oled_N/picture + + (N is the device number, the first, and probably the only, has number 1, + so it is /sys/class/asus_oled/oled_1/enabled + and /sys/class/asus_oled/oled_1/picture) + + 'enabled' files is for reading and writing, 'picture' is writeable only. + + You can write 0 or 1 to 'enabled' file, which will switch + on and off the display. Reading from this file will tell you the last + status set, either 0 or 1. By default it is 1, so if the device was set to 'off', + and the computer was rebooted without power-off, this file will contain wrong + value - because the device is off, but hasn't been disabled this time and is + assumed to be on... + + To 'picture' file you write pictures to be displayed by the OLED device. + The format of the file: + <M:WxH> + 00001110010111000 + 00010101010101010 + .... + + First line is a configuration parameter. Meaning of fields in <M:WxH>: + M - picture mode. It can be either 's' for static pictures, + 'r' for rolling pictures, and 'f' for flashing pictures. + W - width of the picture. May be between 1 and 1792 + H - height of the picture. May be between 1 and 32 + + For example <s:128x32> means static picture, 128 pixels long and 32 pixels high. + + The physical size of the display is 128x32 pixels. Static and flashing pictures + can't be larger than that (actually they can, but only part of them will be displayed ;) ) + + If the picture is smaller than 128x32 it will be centered. Rolling pictures wider than + 128 pixels will be centered too, unless their width = n*128. Vertically they will be + centered just like static pictures, if their height is smaller than 32. + + Flashing pictures will be centered horizontally if their width < 128, but they were + centered vertically in a different way. If their height < 16, they will be centered + in the upper half of the display (rows 0-15). This is because only the first half + of flashing pictures is used for flashing. When the picture with heigh = 32 is + displayed in flashing mode, its upper 16 rows will be flashing in the upper half + of the display, and the lower half will be empty. After few seconds upper part will + stop flashing (but that part of the picture will remain there), and the lower + half of the display will start displayin the lower half of the picture + in rolling mode, unless it is empty, or the picture was small enough to fit in + upper part. It is not mine idea, this is just the way Asus' display work ;) + So if you need just flashing, use at most 128x16 picture. If you need flashing and + rolling, use whole size of the display. + + Lines following the first, configuration, line are picture data. Each '1' means + that the pixel is lit, and '0' means that it is not. You can also use '#' as ON, + and ' ' (space) as OFF. Empty lines and all other characters are ignored. + + It is possible to write everything in one line <M:WxH>01010101010101010..., + and W*H characters will be used. If there is not enough characters, nothing will be + displayed. However, the 'line mode' is easier to read (and write), and it also + lets to omit parts of data. Whenever End-Of-Line character is found, but + the line is not W characters long, it is assumed that all missing characters + are equal to the last character in the line. + + Following line represents '0', '1' and a lots of '0's, dependng on the width of the picture + provided in configuration data: + 010 + + So if you need empty line, it is sufficient to write line with only one '0' in it. + The same works with '1' (or ' ' and '#'). + + If there are too many data in the file, they will be ignored. If you are not sure + how many characters you are missing, you can add few lines with one zero in each of them. + + There are some example pictures in .txt format, that can be used as follows: + cat foo.txt > /sys/class/asus_oled/oled_1/picture + + If the display is switched off you also need to run: + echo 1 > /sys/class/asus_oled/oled_1/enabled + To switch it off, just use: + echo 0 > /sys/class/asus_oled/oled_1/enabled + + +******* + + For any additional info please have a look at http://lapsus.berlios.de/asus_oled.html + + + + Jakub Schmidtke (sjakub@gmail.com) + |