Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[platform/kernel/linux-starfive.git] / Documentation / usb / misc_usbsevseg.rst
1 =============================
2 USB 7-Segment Numeric Display
3 =============================
4
5 Manufactured by Delcom Engineering
6
7 Device Information
8 ------------------
9 USB VENDOR_ID   0x0fc5
10 USB PRODUCT_ID  0x1227
11 Both the 6 character and 8 character displays have PRODUCT_ID,
12 and according to Delcom Engineering no queryable information
13 can be obtained from the device to tell them apart.
14
15 Device Modes
16 ------------
17 By default, the driver assumes the display is only 6 characters
18 The mode for 6 characters is:
19
20         MSB 0x06; LSB 0x3f
21
22 For the 8 character display:
23
24         MSB 0x08; LSB 0xff
25
26 The device can accept "text" either in raw, hex, or ascii textmode.
27 raw controls each segment manually,
28 hex expects a value between 0-15 per character,
29 ascii expects a value between '0'-'9' and 'A'-'F'.
30 The default is ascii.
31
32 Device Operation
33 ----------------
34 1.      Turn on the device:
35         echo 1 > /sys/bus/usb/.../powered
36 2.      Set the device's mode:
37         echo $mode_msb > /sys/bus/usb/.../mode_msb
38         echo $mode_lsb > /sys/bus/usb/.../mode_lsb
39 3.      Set the textmode:
40         echo $textmode > /sys/bus/usb/.../textmode
41 4.      set the text (for example):
42         echo "123ABC" > /sys/bus/usb/.../text (ascii)
43         echo "A1B2" > /sys/bus/usb/.../text (ascii)
44         echo -ne "\x01\x02\x03" > /sys/bus/usb/.../text (hex)
45 5.      Set the decimal places.
46         The device has either 6 or 8 decimal points.
47         to set the nth decimal place calculate 10 ** n
48         and echo it in to /sys/bus/usb/.../decimals
49         To set multiple decimals points sum up each power.
50         For example, to set the 0th and 3rd decimal place
51         echo 1001 > /sys/bus/usb/.../decimals