diff options
author | Henk <Henk.Vergonet@gmail.com> | 2005-08-16 10:17:43 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-09-08 19:40:57 -0400 |
commit | aca951a22a1d93ebe31b54052b3eb9a8196df2fc (patch) | |
tree | a4a7a15fa4055ed88ab2273390800038d4e37bd4 /Documentation | |
parent | d6450e19329c85ac4888c185429094236a650928 (diff) |
[PATCH] input-driver-yealink-P1K-usb-phone
This patch aggregates all modifications in the -mm tree and adds
complete ringtone support.
The following features are supported:
- keyboard full support
- LCD full support
- LED full support
- dialtone full support
- ringtone full support
- audio playback via generic usb audio diver
- audio record via generic usb audio diver
For driver documentation see: Documentation/input/yealink.txt
For vendor documentation see: http://yealink.com
Signed-off-by: Henk <Henk.Vergonet@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/input/yealink.txt | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/Documentation/input/yealink.txt b/Documentation/input/yealink.txt new file mode 100644 index 000000000000..5665c32e2a94 --- /dev/null +++ b/Documentation/input/yealink.txt | |||
@@ -0,0 +1,187 @@ | |||
1 | yealink - Linux driver for usb-p1k phones | ||
2 | |||
3 | 0. Status | ||
4 | ~~~~~~~~~ | ||
5 | |||
6 | The p1k is a relatively cheap usb 1.1 phone with: | ||
7 | - keyboard full support | ||
8 | - LCD full support | ||
9 | - LED full support | ||
10 | - dialtone full support | ||
11 | - ringtone full support | ||
12 | - audio playback via generic usb audio diver | ||
13 | - audio record via generic usb audio diver | ||
14 | |||
15 | |||
16 | 1. Compilation (stand alone version) | ||
17 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
18 | |||
19 | Currently only kernel 2.6.x.y versions are supported. | ||
20 | In order to build the yealink.ko module do: | ||
21 | |||
22 | make | ||
23 | |||
24 | If you encounter problems please check if in the MAKE_OPTS variable in | ||
25 | the Makefile is pointing to the location where your kernel sources | ||
26 | are located, default /usr/src/linux. | ||
27 | |||
28 | |||
29 | |||
30 | 2. keyboard features | ||
31 | ~~~~~~~~~~~~~~~~~~~~ | ||
32 | The current mapping in the kernel is provided by the map_p1k_to_key | ||
33 | function: | ||
34 | |||
35 | Physical USB-P1K button layout input events | ||
36 | |||
37 | |||
38 | up up | ||
39 | IN OUT left, right | ||
40 | down down | ||
41 | |||
42 | pickup C hangup enter, backspace, escape | ||
43 | 1 2 3 1, 2, 3 | ||
44 | 4 5 6 4, 5, 6, | ||
45 | 7 8 9 7, 8, 9, | ||
46 | * 0 # *, 0, #, | ||
47 | |||
48 | The "up" and "down" keys, are symbolised by arrows on the button. | ||
49 | The "pickup" and "hangup" keys are symbolised by a green and red phone | ||
50 | on the button. | ||
51 | |||
52 | |||
53 | 3. LCD features | ||
54 | ~~~~~~~~~~~~~~~ | ||
55 | The LCD is divided and organised as a 3 line display: | ||
56 | |||
57 | |[] [][] [][] [][] in |[][] | ||
58 | |[] M [][] D [][] : [][] out |[][] | ||
59 | store | ||
60 | |||
61 | NEW REP SU MO TU WE TH FR SA | ||
62 | |||
63 | [] [] [] [] [] [] [] [] [] [] [] [] | ||
64 | [] [] [] [] [] [] [] [] [] [] [] [] | ||
65 | |||
66 | |||
67 | Line 1 Format (see below) : 18.e8.M8.88...188 | ||
68 | Icon names : M D : IN OUT STORE | ||
69 | Line 2 Format : ......... | ||
70 | Icon name : NEW REP SU MO TU WE TH FR SA | ||
71 | Line 3 Format : 888888888888 | ||
72 | |||
73 | |||
74 | Format description: | ||
75 | From a user space perspective the world is seperated in "digits" and "icons". | ||
76 | A digit can have a character set, an icon can only be ON or OFF. | ||
77 | |||
78 | Format specifier | ||
79 | '8' : Generic 7 segment digit with individual addressable segments | ||
80 | |||
81 | Reduced capabillity 7 segm digit, when segments are hard wired together. | ||
82 | '1' : 2 segments digit only able to produce a 1. | ||
83 | 'e' : Most significant day of the month digit, | ||
84 | able to produce at least 1 2 3. | ||
85 | 'M' : Most significant minute digit, | ||
86 | able to produce at least 0 1 2 3 4 5. | ||
87 | |||
88 | Icons or pictograms: | ||
89 | '.' : For example like AM, PM, SU, a 'dot' .. or other single segment | ||
90 | elements. | ||
91 | |||
92 | |||
93 | 4. Driver usage | ||
94 | ~~~~~~~~~~~~~~~ | ||
95 | For userland the following interfaces are available using the sysfs interface: | ||
96 | /sys/.../ | ||
97 | line1 Read/Write, lcd line1 | ||
98 | line2 Read/Write, lcd line2 | ||
99 | line3 Read/Write, lcd line3 | ||
100 | |||
101 | get_icons Read, returns a set of available icons. | ||
102 | hide_icon Write, hide the element by writing the icon name. | ||
103 | show_icon Write, display the element by writing the icon name. | ||
104 | |||
105 | map_seg7 Read/Write, the 7 segments char set, common for all | ||
106 | yealink phones. (see map_to_7segment.h) | ||
107 | |||
108 | ringtone Write, upload binary representation of a ringtone, | ||
109 | see yealink.c. status EXPERIMENTAL due to potential | ||
110 | races between async. and sync usb calls. | ||
111 | |||
112 | |||
113 | 4.1 lineX | ||
114 | ~~~~~~~~~ | ||
115 | Reading /sys/../lineX will return the format string with its current value: | ||
116 | |||
117 | Example: | ||
118 | cat ./line3 | ||
119 | 888888888888 | ||
120 | Linux Rocks! | ||
121 | |||
122 | Writing to /sys/../lineX will set the coresponding LCD line. | ||
123 | - Excess characters are ignored. | ||
124 | - If less characters are written than allowed, the remaining digits are | ||
125 | unchanged. | ||
126 | - The tab '\t'and '\n' char does not overwrite the original content. | ||
127 | - Writing a space to an icon will always hide its content. | ||
128 | |||
129 | Example: | ||
130 | date +"%m.%e.%k:%M" | sed 's/^0/ /' > ./line1 | ||
131 | |||
132 | Will update the LCD with the current date & time. | ||
133 | |||
134 | |||
135 | 4.2 get_icons | ||
136 | ~~~~~~~~~~~~~ | ||
137 | Reading will return all available icon names and its current settings: | ||
138 | |||
139 | cat ./get_icons | ||
140 | on M | ||
141 | on D | ||
142 | on : | ||
143 | IN | ||
144 | OUT | ||
145 | STORE | ||
146 | NEW | ||
147 | REP | ||
148 | SU | ||
149 | MO | ||
150 | TU | ||
151 | WE | ||
152 | TH | ||
153 | FR | ||
154 | SA | ||
155 | LED | ||
156 | DIALTONE | ||
157 | RINGTONE | ||
158 | |||
159 | |||
160 | 4.3 show/hide icons | ||
161 | ~~~~~~~~~~~~~~~~~~~ | ||
162 | Writing to these files will update the state of the icon. | ||
163 | Only one icon at a time can be updated. | ||
164 | |||
165 | If an icon is also on a ./lineX the corresponding value is | ||
166 | updated with the first letter of the icon. | ||
167 | |||
168 | Example - light up the store icon: | ||
169 | echo -n "STORE" > ./show_icon | ||
170 | |||
171 | cat ./line1 | ||
172 | 18.e8.M8.88...188 | ||
173 | S | ||
174 | |||
175 | Example - sound the ringtone for 10 seconds: | ||
176 | echo -n RINGTONE > /sys/..../show_icon | ||
177 | sleep 10 | ||
178 | echo -n RINGTONE > /sys/..../hide_icon | ||
179 | |||
180 | |||
181 | 5. Credits & Acknowledgments | ||
182 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
183 | - Olivier Vandorpe, for starting the usbb2k-api project doing much of | ||
184 | the reverse engineering. | ||
185 | - Martin Diehl, for pointing out how to handle USB memory allocation. | ||
186 | - Dmitry Torokhov, for the numerous code reviews and suggestions. | ||
187 | |||