arch/arm64: Support FEAT_CCIDX
[coreboot2.git] / util / superiotool / ite.c
blobc2d15839d5edcd3ea7285b0f1108bdbdd14da502
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 #include "superiotool.h"
5 #define CHIP_ID_BYTE1_REG 0x20
6 #define CHIP_ID_BYTE2_REG 0x21
7 #define CHIP_VERSION_REG 0x22
8 #define ISA_PNP_ADDR 0x279
10 static const struct superio_registers reg_table[] = {
11 {0x5570, "IT5570E", {
12 {NOLDN, NULL,
13 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2d,EOT},
14 {0x55,0x70,NANA,0x01,RSVD,0x00,0x00,RSVD,RSVD,RSVD,RSVD,RSVD,0x00,EOT}},
15 {0x01, "Serial Port 1 (UART1)",
16 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
17 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,0x00,EOT}},
18 {0x02, "Serial Port 2 (UART2)",
19 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
20 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,0x00,EOT}},
21 {0x04, "System Wake-Up Control (SWUC)",
22 {0x30,0x60,0x61,0x70,0x71,EOT},
23 {0x00,0x00,0x00,0x00,0x01,EOT}},
24 {0x05, "KBC Mouse",
25 {0x30,0x70,0x71,EOT},
26 {0x00,0x0c,0x01,EOT}},
27 {0x06, "KBC Keyboard",
28 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
29 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
30 {0x0a, "Consumer IR",
31 {0x30,0x60,0x61,0x70,0x71,EOT},
32 {0x00,0x03,0x10,0x00,0x02,EOT}},
33 {0x0f, "Shared Memory/Flash Interface (SMFI)",
34 {0x30,0x60,0x61,0x70,0x71,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,
35 0xf9,0xfa,0xfb,0xfc,EOT},
36 {0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
37 0x00,0x00,0x00,0x01,EOT}},
38 {0x10, "RTC-like Timer (RTC)",
39 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0xf0,
40 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
41 {0x00,0x00,0x70,0x02,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x01,0x00,
42 0x49,0x4a,0x00,0x00,0x00,EOT}},
43 {0x11, "Power Management Interface Channel 1 (PMC1)",
44 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
45 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
46 {0x12, "Power Management Interface Channel 2 (PMC2)",
47 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
48 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
49 {0x13, "Serial Peripheral Interface (SSPI)",
50 {0x30,0x60,0x61,0x70,0x71,EOT},
51 {0x00,0x03,0x00,0x00,0x02,EOT}},
52 {0x14, "Platform Environment Control Interface (PECI)",
53 {0x30,0x60,0x61,EOT},
54 {0x00,0x00,0x00,EOT}},
55 {0x17, "Power Management Interface Channel 3 (PMC3)",
56 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
57 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
58 {0x18, "Power Management Interface Channel 4 (PMC4)",
59 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
60 {0x00,0x00,0x74,0x00,0x78,0x01,0x01,EOT}},
61 {0x19, "Power Management Interface Channel 5 (PMC5)",
62 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
63 {0x00,0x00,0x7a,0x00,0x7c,0x01,0x01,EOT}},
64 {EOT}}},
65 {0x8228, "IT8228E", {
66 {EOT}}},
67 {0x8500, "IT8500B/E", {
68 {NOLDN, NULL,
69 {0x20,0x21,0x22,0x23,0x25,0x2d,0x2e,0x2f,0x30,EOT},
70 {0x85,0x00,0x01,0x01,0x00,0x00,NANA,NANA,0x00,EOT}},
71 {0x04, "System Wake-Up Control (SWUC)",
72 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
73 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
74 {0x05, "KBC/Mouse Interface",
75 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
76 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
77 {0x06, "KBC/Keyboard Interface",
78 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
79 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
80 {0x0f, "Shared Memory/Flash Interface (SMFI)",
81 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
82 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
83 {0x10, "BRAM",
84 {0x30,0x62,0x63,0x70,0x71,0xf3,0xf4,0xf5,EOT},
85 {0x00,0x00,0x72,0x08,0x01,NANA,NANA,NANA,EOT}},
86 {0x11, "Power Management I/F Channel 1 (PMC1)",
87 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
88 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
89 {0x12, "Power Management I/F Channel 2 (PMC2)",
90 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
91 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
92 {EOT}}},
93 {0x8502, "IT8502E/TE/G", {
94 {NOLDN, NULL,
95 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
96 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
97 {0x85,0x02,0x71,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
98 NANA,NANA,NANA,0x00,NANA,EOT}},
99 {0x1, "UART1",
100 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
101 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,0x00,EOT}},
102 {0x4, "System Wake-Up",
103 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
104 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,EOT}},
105 {0x5, "Mouse",
106 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
107 {0x01,0x00,0x00,0x00,0x00,0x0C,0x01,NANA,EOT}},
108 {0x6, "Keyboard",
109 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
110 {0x01,0x00,0x60,0x00,0x64,0x01,0x01,NANA,EOT}},
111 {0xf, "Shared Memory/Flash",
112 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
113 0xf6,EOT},
114 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
115 0x00,EOT}},
116 {0x10, "BRAM",
117 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
118 0xf5,EOT},
119 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,NANA,NANA,
120 NANA,EOT}},
121 {0x11, "Power Channel 1",
122 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
124 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
125 {0x12, "Power Channel 2",
126 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
127 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
128 {0x17, "Power Channel 3",
129 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
130 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
131 {EOT}}},
132 {0x8510, "IT8510E/TE/G", {
133 {NOLDN, "Chip ID",
134 {0x20,0x21, EOT},
135 {0x85,0x10, EOT}},
136 {NOLDN, "Chip Version",
137 {0x22,EOT},
138 {0x21,EOT}},
139 {NOLDN, "Super I/O Control Register (SIOCTRL)",
140 {0x23,EOT},
141 {0x01,EOT}},
142 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
143 {0x25,EOT},
144 {0x00,EOT}},
145 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
146 {0x26,EOT},
147 {0x00,EOT}},
148 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
149 {0x2d,EOT},
150 {0x00,EOT}},
151 {NOLDN, "Logical Device Activate Register (LDA)",
152 {0x30,EOT},
153 {0x00,EOT}},
154 {NOLDN, "I/O Port Base Address for Descriptor 0 (IOBAD0)",
155 {0x60,0x61,EOT},
156 {NANA,NANA,EOT}},
157 {NOLDN, "I/O Port Base Address for Descriptor 1 (IOBAD1)",
158 {0x62,0x63,EOT},
159 {NANA,NANA,EOT}},
160 {NOLDN, "Interrupt Request Number and Wake-Up on IRQ Enable (IRQNUMX)",
161 {0x70,EOT},
162 {NANA,EOT}},
163 {NOLDN, "Interrupt Request Type Select (IRQTP)",
164 {0x71,EOT},
165 {NANA,EOT}},
166 {NOLDN, "DMA Channel Select 0 (DMAS0)",
167 {0x74,EOT},
168 {0x04,EOT}},
169 {NOLDN, "DMA Channel Select 1 (DMAS1)",
170 {0x75,EOT},
171 {0x04,EOT}},
172 {0x4, "System Wakup-Up (SWUC)",
173 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
174 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
175 {0x5, "Keyboard/Mouse",
176 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
177 {0x00,0x00,0x00,0x00,0x00,0x0c,0x03,EOT}},
178 {0x6, "Keyboard/Mouse",
179 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
180 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,EOT}},
181 {0xf, "Shared Memory/Flash Interface (SMFI)",
182 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
183 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
184 {0x10, "Real Time Clock (RTC)",
185 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
186 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
187 {0x11, "Power Management Interface Channel 1",
188 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
189 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
190 {0x12, "Power Management Interface Channel 2",
191 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
192 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
193 {EOT}}},
194 {0x8511, "IT8511E/TE/G", {
195 {NOLDN, NULL,
196 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
197 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
198 {0x85,0x11,0x10,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
199 NANA,NANA,NANA,0x00,NANA,EOT}},
200 {0x4, "System Wake-Up",
201 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
202 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,EOT}},
203 {0x5, "Mouse",
204 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
205 {0x01,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
206 {0x6, "Keyboard",
207 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
208 {0x01,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
209 {0xf, "Shared Memory/Flash",
210 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
211 0xf6,EOT},
212 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
213 0x00,EOT}},
214 {0x10, "Real-Time Clock",
215 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,
216 0xf2,0xf3,0xf4,0xf5,EOT},
217 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,
218 0x4A,NANA,NANA,NANA,EOT}},
219 {0x11, "Power Channel 1",
220 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
221 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
222 {0x12, "Power Channel 2",
223 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
224 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
225 {EOT}}},
226 {0x8512, "IT8512E/F/G", {
227 {NOLDN, NULL,
228 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
229 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
230 {0x85,0x12,0x22,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
231 NANA,NANA,NANA,0x00,NANA,EOT}},
232 {0x4, "System Wake-Up",
233 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
234 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
235 {0x5, "Mouse",
236 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
237 {0x00,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
238 {0x6, "Keyboard",
239 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
240 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
241 {0xf, "Shared Memory/Flash",
242 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
243 0xf6,EOT},
244 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
245 0x00,EOT}},
246 {0x10, "BRAM",
247 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
248 0xf5,EOT},
249 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,NANA,NANA,
250 NANA,EOT}},
251 {0x11, "Power Channel 1",
252 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
253 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
254 {0x12, "Power Channel 2",
255 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
256 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
257 {EOT}}},
258 {0x8513, "IT8513E/F/G", {
259 {EOT}}},
260 {0x8516, "IT8516???", {
261 {NOLDN, "Chip ID",
262 {0x20,0x21, EOT},
263 {0x85,0x16, EOT}},
264 {NOLDN, "Chip Version",
265 {0x22,EOT},
266 {0x63,EOT}},
267 {NOLDN, "Super I/O Control Register (SIOCTRL)",
268 {0x23,EOT},
269 {0x01,EOT}},
270 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
271 {0x25,EOT},
272 {0x00,EOT}},
273 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
274 {0x26,EOT},
275 {0x00,EOT}},
276 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
277 {0x2d,EOT},
278 {0x00,EOT}},
279 {0x01, "UART1",
280 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
281 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
282 {0x02, "UART2",
283 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
284 {0x00,0x02,0xf8,0x00,0x00,0x04,0x02,EOT}},
285 {0x04, "System Wakup-Up (SWUC)",
286 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
287 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
288 {0x05, "Mouse",
289 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
290 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
291 {0x06, "Keyboard",
292 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
293 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
294 {0x0f, "Shared Memory/Flash Interface (SMFI)",
295 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
296 0xf4,0xf5,EOT},
297 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
298 NANA,NANA,EOT}},
299 {0x10, "BRAM / Real Time Clock (RTC)",
300 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
301 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
302 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
303 NANA,NANA,NANA,NANA,NANA,EOT}},
304 {0x11, "Power Management Interface Channel 1",
305 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
306 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
307 {0x12, "Power Management Interface Channel 2",
308 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
309 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
310 {0x17, "Power Management Interface Channel 3",
311 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
312 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
313 {EOT}}},
314 {0x8528, "IT8528", {
315 {NOLDN, NULL,
316 {0x24,0x25,0x26,0x27,0x28,0x29,
317 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
318 {0x00,0x00,0x00,0x00,0x00,0x00,
319 0x00,0x00,0x01,0x00,0x00,EOT}},
320 {NOLDN, "Chip ID",
321 {0x20,0x21, EOT},
322 {0x85,0x28, EOT}},
323 {NOLDN, "Chip Version",
324 {0x22,EOT},
325 {0x0a,EOT}},
326 {NOLDN, "Super I/O Control Register (SIOCTRL)",
327 {0x23,EOT},
328 {0x01,EOT}},
329 {0x01, "UART1",
330 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
331 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
332 {0x02, "UART2",
333 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
334 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,EOT}},
335 {0x04, "System Wake-Up (SWUC)",
336 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
337 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
338 {0x05, "Mouse",
339 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
340 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
341 {0x06, "Keyboard",
342 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
343 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
344 {0x0f, "Shared Memory/Flash Interface (SMFI)",
345 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
346 0xf4,0xf5,EOT},
347 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
348 NANA,NANA,EOT}},
349 {0x10, "BRAM / Real Time Clock (RTC)",
350 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
351 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
352 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
353 NANA,NANA,NANA,NANA,NANA,EOT}},
354 {0x11, "Power Channel 1",
355 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
356 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
357 {0x12, "Power Channel 2",
358 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
359 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
360 {0x17, "Power Channel 3",
361 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
362 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
363 {0x18, "Power Channel 4",
364 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
365 {0x00,0x00,0x74,0x00,0x78,0x01,0x01,EOT}},
366 {0x19, "Power Channel 5",
367 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
368 {0x00,0x00,0x7a,0x00,0x7c,0x01,0x01,EOT}},
369 {EOT}}},
370 {0x8613, "IT8613E", {
371 {NOLDN, NULL,
372 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
373 {0x86,0x13,0x05,0x40,0x00,0x48,EOT}},
374 {0x1, "COM1",
375 {0x30,0x60,0x61,0x70,0xf0,EOT},
376 {0x00,0x03,0xf8,0x04,0x00,EOT}},
377 {0x4, "Environment controller",
378 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
379 0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
380 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
381 0x00,NANA,NANA,0x00,0x00,0x00,EOT}},
382 {0x5, "Keyboard",
383 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
384 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
385 {0x6, "Mouse",
386 {0x30,0x70,0x71,0xf0,EOT},
387 {0x00,0x0c,0x02,0x00,EOT}},
388 {0x7, "GPIO",
389 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,0x61,
390 0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,0xb2,
391 0xb3,0xb4,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
392 0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xda,0xdb,
393 0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,0xf2,0xf3,
394 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
395 {0x00,0xF3,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
396 0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,0x00,
397 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
398 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
399 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,NANA,
400 0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
401 {0xa, "Consumer IR",
402 {0x30,0x60,0x61,0x70,0xf0,EOT},
403 {0x00,0x03,0x10,0x0b,0x06,EOT}},
404 {EOT}}},
405 {0x8616, "IT8616E/IT8656E", {
406 /* Derived from IT8625E, defaults dumped from hardware */
407 {NOLDN, NULL,
408 {0x20,0x21,0x22,0x23,0x24,EOT},
409 {0x86,0x16,MISC,0x40,0x00,EOT}},
410 {0x3, "Parallel port (unusable)",
411 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xf0,EOT},
412 {0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x00,0x00,0x04,0x0b,EOT}},
413 {0x4, "Environment controller",
414 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
415 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
416 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
417 0x00,0xe0,0x00,NANA,0x48,0x00,0x00,0x00,0x40,EOT}},
418 {0x5, "Keyboard",
419 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
420 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
421 {0x6, "Mouse",
422 {0x30,0x70,0x71,0xf0,EOT},
423 {0x00,0x0c,0x02,0x00,EOT}},
424 {0x7, "GPIO",
425 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x60,
426 0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
427 0xb2,0xb3,0xb4,0xb5,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,
428 0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,
429 0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
430 0xd8,0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,
431 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
432 {0x00,0xf3,0x00,0x00,0x00,0x01,0x48,0x01,0x00,0x00,
433 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
434 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x03,0x01,
435 0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
436 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,
437 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
438 0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
439 {0xa, "Consumer IR",
440 {0x30,0x60,0x61,0x70,0xf0,EOT},
441 {0x00,0x03,0x10,0x0b,0x06,EOT}},
442 {EOT}}},
443 {0x8623, "IT8623E", {
444 /* Defaults are not specified as no datasheet available */
445 {NOLDN, NULL,
446 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
447 {0x86,0x23,0x01,NANA,NANA,NANA,EOT}},
448 {0x0, "Floppy",
449 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
450 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
451 {0x1, "COM1",
452 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
453 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
454 {0x2, "COM2",
455 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
456 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
457 {0x3, "Parallel port",
458 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
459 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
460 {0x4, "Environment controller",
461 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
462 0xf4,0xf5,0xf6,EOT},
463 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
464 NANA,NANA,NANA,EOT}},
465 {0x5, "Keyboard",
466 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
467 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
468 {0x6, "Mouse",
469 {0x30,0x70,0x71,0xf0,EOT},
470 {NANA,NANA,NANA,NANA,EOT}},
471 {0x7, "GPIO",
472 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
473 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
474 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
475 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
476 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
477 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
478 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
479 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
480 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
481 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
482 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
483 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
484 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
485 NANA,NANA,NANA,NANA,NANA,EOT}},
486 {EOT}}},
487 {0x8625, "IT8625E", {
488 {NOLDN, NULL,
489 {0x20,0x21,0x22,0x23,0x24,EOT},
490 {0x86,0x25,MISC,0x40,0x00,EOT}},
491 {0x1, "COM1",
492 {0x30,0x60,0x61,0x70,0xf0,EOT},
493 {0x00,0x03,0xf8,0x04,0x00,EOT}},
494 {0x2, "COM2",
495 {0x30,0x60,0x61,0x70,0xf0,EOT},
496 {0x00,0x02,0xf8,0x03,0x00,EOT}},
497 {0x3, "Parallel port",
498 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
499 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x0b,EOT}},
500 {0x4, "Environment controller",
501 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
502 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
503 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
504 0x00,0x00,0x00,NANA,0x48,0x00,0x00,0x00,0x40,EOT}},
505 {0x5, "Keyboard",
506 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
507 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
508 {0x6, "Mouse",
509 {0x30,0x70,0x71,0xf0,EOT},
510 {0x00,0x0c,0x02,0x00,EOT}},
511 {0x7, "GPIO",
512 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x60,
513 0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
514 0xb2,0xb3,0xb4,0xb5,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,
515 0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,
516 0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
517 0xd8,0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,
518 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
519 {0x00,0xf3,0x00,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
520 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
521 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
522 0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
523 0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,
524 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
525 0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
526 {0xa, "Consumer IR",
527 {0x30,0x60,0x61,0x70,0xf0,EOT},
528 {0x00,0x03,0x10,0x0b,0x06,EOT}},
529 {EOT}}},
530 {0x8661, "IT8661F/IT8770F", {
531 {NOLDN, NULL,
532 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
533 0x23,0x24,EOT},
534 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x61,0x00,
535 0x00,0x00,EOT}},
536 {0x0, "Floppy",
537 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
538 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
539 {0x1, "COM1",
540 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
541 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
542 {0x2, "COM2",
543 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
544 {0x00,0x00,0x02,0xf8,0x03,0x02,0x00,EOT}},
545 {0x3, "Parallel port",
546 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
547 0xf0,EOT},
548 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
549 0x03,EOT}},
550 {0x4, "IR",
551 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
552 0x74,0x75,0xf0,EOT},
553 {0x00,0x00,0x02,0xe8,0x03,0x00,0x0a,0x02,0x0b,0x02,
554 0x01,0x00,0x00,EOT}},
555 {0x5, "GPIO",
556 {0x25,0x26,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
557 0x70,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
558 0xf9,0xfa,0xfb,0xfc,EOT},
559 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
560 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
561 0x00,0x00,0x00,0x00,EOT}},
562 {EOT}}},
563 {0x8673, "IT8673F", {
564 {EOT}}},
565 {0x8681, "IT8671F/IT8687R", {
566 {NOLDN, NULL,
567 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
568 0x23,0x24,0x25,0x26,0x2e,0x2f,EOT},
569 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x81,0x00,
570 0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
571 {0x0, "Floppy",
572 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
573 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
574 {0x1, "COM1",
575 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
576 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
577 {0x2, "COM2",
578 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
579 0x74,0x75,0xf0,0xf1,EOT},
580 {0x00,0x00,0x02,0xf8,0x03,0x00,0x03,0x02,0x0a,0x02,
581 0x00,0x01,0x00,0x00,EOT}},
582 {0x3, "Parallel port",
583 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
584 0xf0,EOT},
585 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
586 0x03,EOT}},
587 {0x4, "APC",
588 {0x30,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,EOT},
589 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
590 {0x5, "Keyboard",
591 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
592 {MISC,0x00,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
593 {0x6, "Mouse",
594 {0x30,0x70,0x71,0xf0,EOT},
595 {0x00,0x0c,0x02,0x00,EOT}},
596 {0x7, "GPIO",
597 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
598 0x70,0x71,0x72,0x73,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,
599 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
600 0xe0,0xe1,0xe2,0xe3,0xe4,EOT},
601 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
602 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
603 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
604 0x00,0x00,0x00,0x00,0x00,EOT}},
605 {EOT}}},
606 {0x8701, "IT8703F", {
607 {NOLDN, NULL,
608 {0x20,0x21,0x23,0x24,0x26,0x29,0x2a,0x2b,EOT},
609 {0x87,0x00,0x00,0x80,0x00,0x00,0x7c,0xc0,EOT}},
610 {0x0, "Floppy",
611 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf3,0xf4,
612 0xf5,EOT},
613 {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,
614 0x00,EOT}},
615 {0x1, "Parallel port",
616 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
617 {0x00,0x03,0x78,0x00,0x80,0x07,0x03,0x03,EOT}},
618 {0x2, "COM1",
619 {0x30,0x60,0x61,0x70,0xf0,EOT},
620 {0x00,0x03,0xf8,0x04,0x00,EOT}},
621 {0x3, "COM2",
622 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
623 {0x00,0x02,0xf8,0x03,0x00,0x00,0x00,0x7f,EOT}},
624 {0x5, "Keyboard",
625 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
626 {0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x80,EOT}},
627 {0x6, "Consumer IR",
628 {0x30,0x60,0x61,0x70,EOT},
629 {0x00,0x00,0x00,0x00,EOT}},
630 {0x7, "Game port, MIDI, GPIO set 1",
631 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,EOT},
632 {0x00,0x02,0x01,0x03,0x30,0x00,0xff,0x00,0x00,EOT}},
633 {0x8, "GPIO set 2",
634 {0x30,0xf0,0xf1,0xf2,0xf3,0xf5,EOT},
635 {0x00,0xff,0x00,0x00,0x00,0x00,EOT}},
636 {0x9, "GPIO set 3 and 4",
637 {0x30,0x60,0x61,0xf0,0xf1,0xf2,0xf3,0xf4,EOT},
638 {0x00,0x02,0x90,0xff,0x00,0x00,0x00,0x00,EOT}},
639 {0xa, "ACPI",
640 {0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
641 0xf3,0xf4,0xf6,0xf7,0xf9,EOT},
642 {0x00,0x00,0x00,0x00,NANA,NANA,0x00,0x00,0x00,0x00,
643 NANA,NANA,0x00,0x00,0x00,EOT}},
644 {0xc, "GPIO set 5, 6 and 7",
645 {0x30,0x60,0x61,0xf0,0xf3,0xf6,EOT},
646 {0x00,0x03,0x70,0x00,0xff,0xff,EOT}},
647 {EOT}}},
648 {0x8702, "IT8702F", {
649 {EOT}}},
650 {0x8705, "IT8705F/AF / IT8700F", {
651 {NOLDN, NULL,
652 {0x20,0x21,0x22,0x23,0x24,EOT},
653 {0x87,0x05,0x00,0x00,NANA,EOT}},
654 {0x0, "Floppy",
655 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
656 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
657 {0x1, "COM1",
658 {0x30,0x60,0x61,0x70,0xf0,EOT},
659 {0x00,0x03,0xf8,0x04,0x00,EOT}},
660 {0x2, "COM2",
661 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
662 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
663 {0x3, "Parallel port",
664 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
665 0xf0,EOT},
666 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
667 0x03,EOT}},
668 {0x4, "Environment controller",
669 {0x2b,0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
670 0xf3,0xf4,0xf5,0xf6,EOT},
671 {0x00,0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
672 0x00,0x00,NANA,NANA,EOT}},
673 {0x5, "GPIO",
674 {0x25,0x26,0x27,0x28,0x29,0x2a,0x60,0x61,0x62,0x63,
675 0x64,0x65,0x70,0x71,0x72,0xb0,0xb1,0xb2,0xb3,0xb4,
676 0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
677 0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xd0,
678 0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd8,0xd9,0xda,0xf0,
679 0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,
680 0xfd,0xfe,0xff,EOT},
681 {0x00,0x00,0x00,0xff,0xe0,0xff,0x00,0x00,0x00,0x00,
682 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
683 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
684 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
685 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
686 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
687 0x00,NANA,0x00,EOT}},
688 {0x6, "Game port",
689 {0x30,0x60,0x61,EOT},
690 {0x00,0x02,0x01,EOT}},
691 {0x7, "Consumer IR",
692 {0x30,0x60,0x61,0x70,0xf0,EOT},
693 {0x00,0x03,0x10,0x0b,0x00,EOT}},
694 {0x8, "MIDI port",
695 {0x30,0x60,0x61,0x70,0xf0,EOT},
696 {0x00,0x03,0x00,0x0a,0x00,EOT}},
697 {EOT}}},
698 {0x8706, "IT8706R", { /* TODO: Not yet in sensors-detect */
699 /* This is a "Special General Purpose I/O chip". */
700 {EOT}}},
701 {0x8707, "IT8707F", {
702 {EOT}}},
703 {0x8708, "IT8708F", {
704 {NOLDN, NULL,
705 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
706 0x2a,0x2e,0x2f,EOT},
707 {0x87,0x08,0x00,0x00,NANA,0x3f,0x00,0xff,0xff,0xff,
708 0xff,0x00,0x00,EOT}},
709 {0x0, "Floppy",
710 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
711 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
712 {0x1, "COM1",
713 {0x30,0x60,0x61,0x70,0xf0,EOT},
714 {0x00,0x03,0xf8,0x04,0x00,EOT}},
715 {0x2, "COM2",
716 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
717 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
718 {0x3, "Parallel port",
719 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
720 0xf0,EOT},
721 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
722 0x03,EOT}},
723 {0x4, "SWC",
724 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
725 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,EOT},
726 {NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
727 0x00,0x00,0x00,0x00,0x00,NANA,NANA,EOT}},
728 {0x5, "Keyboard",
729 /* Note: 0x30 can actually be 0x00 _or_ 0x01. */
730 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
731 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
732 {0x6, "Mouse",
733 {0x30,0x70,0x71,0xf0,EOT},
734 {0x00,0x0c,0x02,0x00,EOT}},
735 {0x7, "GPIO",
736 {0x70,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,
737 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,
738 0xc9,0xca,0xcb,0xcc,0xcd,0xd0,0xd1,0xd2,0xd3,0xd4,
739 0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xf0,0xf1,
740 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,
741 0xfc,EOT},
742 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
743 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
744 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
745 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x00,
746 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
747 0x00,EOT}},
748 {0x8, "Game port",
749 {0x30,0x60,0x61,EOT},
750 {0x00,0x02,0x01,EOT}},
751 {0x9, "Consumer IR",
752 {0x30,0x60,0x61,0x70,0xf0,EOT},
753 {0x00,0x03,0x10,0x0b,0x00,EOT}},
754 {0xa, "MIDI port",
755 {0x30,0x60,0x61,0x70,0xf0,EOT},
756 {0x00,0x03,0x00,0x0a,0x00,EOT}},
757 {EOT}}},
758 {0x8710, "IT8710F", { /* TODO: Not yet in sensors-detect */
759 {EOT}}},
760 {0x8711, "IT8711F", { /* 0x8711 is a guess, not found in datasheet. */
761 {EOT}}},
762 {0x8712, "IT8712F", {
763 {NOLDN, NULL,
764 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
765 {0x87,0x12,0x08,0x00,0x00,0x00,EOT}},
766 {0x0, "Floppy",
767 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
768 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
769 {0x1, "COM1",
770 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
771 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
772 {0x2, "COM2",
773 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
774 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
775 {0x3, "Parallel port",
776 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
777 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
778 {0x4, "Environment controller",
779 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
780 0xf4,0xf5,0xf6,EOT},
781 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
782 0x00,NANA,NANA,EOT}},
783 {0x5, "Keyboard",
784 /* TODO: 0xf0: Error in datasheet? */
785 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
786 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
787 {0x6, "Mouse",
788 {0x30,0x70,0x71,0xf0,EOT},
789 {0x00,0x0c,0x02,0x00,EOT}},
790 {0x7, "GPIO", /* TODO: 0x72, 0x73: Errors in datasheet? */
791 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
792 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
793 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
794 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
795 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
796 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
797 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
798 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
799 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
800 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
801 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
802 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
803 {0x8, "MIDI port",
804 {0x30,0x60,0x61,0x70,0xf0,EOT},
805 {0x00,0x03,0x00,0x0a,0x00,EOT}},
806 {0x9, "Game port",
807 {0x30,0x60,0x61,EOT},
808 {0x00,0x02,0x01,EOT}},
809 {0xa, "Consumer IR",
810 {0x30,0x60,0x61,0x70,0xf0,EOT},
811 {0x00,0x03,0x10,0x0b,0x00,EOT}},
812 {EOT}}},
813 {0x8716, "IT8716F", {
814 {NOLDN, NULL,
815 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
816 {0x87,0x16,0x01,0x00,0x00,0x00,EOT}},
817 {0x0, "Floppy",
818 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
819 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
820 {0x1, "COM1",
821 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
822 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
823 {0x2, "COM2",
824 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
825 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
826 {0x3, "Parallel port",
827 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
828 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
829 {0x4, "Environment controller",
830 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
831 0xf4,0xf5,0xf6,EOT},
832 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
833 0x00,NANA,NANA,EOT}},
834 {0x5, "Keyboard",
835 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
836 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
837 {0x6, "Mouse",
838 {0x30,0x70,0x71,0xf0,EOT},
839 {0x00,0x0c,0x02,0x00,EOT}},
840 {0x7, "GPIO",
841 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
842 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
843 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
844 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
845 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
846 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
847 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
848 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
849 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
850 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
851 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
852 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
853 {0x8, "MIDI port",
854 {0x30,0x60,0x61,0x70,0xf0,EOT},
855 {0x00,0x03,0x00,0x0a,0x00,EOT}},
856 {0x9, "Game port",
857 {0x30,0x60,0x61,EOT},
858 {0x00,0x02,0x01,EOT}},
859 {0xa, "Consumer IR",
860 {0x30,0x60,0x61,0x70,0xf0,EOT},
861 {0x00,0x03,0x10,0x0b,0x00,EOT}},
862 {EOT}}},
863 {0x8718, "IT8718F", {
864 {NOLDN, NULL,
865 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
866 {0x87,0x18,0x01,0x00,0x00,0x00,EOT}},
867 {0x0, "Floppy",
868 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
869 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
870 {0x1, "COM1",
871 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
872 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
873 {0x2, "COM2",
874 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
875 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
876 {0x3, "Parallel port",
877 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
878 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
879 {0x4, "Environment controller",
880 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
881 0xf4,0xf5,0xf6,EOT},
882 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
883 0x00,NANA,NANA,EOT}},
884 {0x5, "Keyboard",
885 /* 0xf0: Datasheet page 33: 0x00; page 56: 0x08. */
886 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
887 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
888 {0x6, "Mouse",
889 {0x30,0x70,0x71,0xf0,EOT},
890 {0x00,0x0c,0x02,0x00,EOT}},
891 {0x7, "GPIO",
892 /* 0x2c: Datasheet page 30: 0x00; page 43: 0x1f. */
893 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
894 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
895 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
896 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,
897 0xcc,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,
898 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
899 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
900 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
901 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
902 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
903 0x01,0x00,0x00,0x40,0x00,0x00,0x01,0x00,0x00,0x40,
904 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
905 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
906 0x00,NANA,0x00,0x00,0x00,EOT}},
907 {0xa, "Consumer IR",
908 {0x30,0x60,0x61,0x70,0xf0,EOT},
909 {0x00,0x03,0x10,0x0b,0x00,EOT}},
910 {EOT}}},
911 {0x8720, "IT8720F", {
912 {NOLDN, NULL,
913 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
914 {0x87,0x20,0x05,0x00,0x00,0x00,EOT}},
915 {0x0, "Floppy",
916 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
917 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
918 {0x1, "COM1",
919 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
920 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
921 {0x2, "COM2",
922 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
923 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
924 {0x3, "Parallel port",
925 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
926 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
927 {0x4, "Environment controller",
928 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
929 0xf4,0xf5,0xf6,EOT},
930 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
931 0x00,NANA,NANA,EOT}},
932 {0x5, "Keyboard",
933 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
934 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
935 {0x6, "Mouse",
936 {0x30,0x70,0x71,0xf0,EOT},
937 {0x00,0x0c,0x02,0x00,EOT}},
938 {0x7, "GPIO",
939 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
940 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
941 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
942 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
943 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
944 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
945 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
946 {0x00,0xff,0x00,0x40,0x00,0x00,0x03,0x00,0x00,0x00,
947 0x00,0x00,0x00,0x00,0x00,NANA,0x38,0x00,0x00,0x00,
948 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
949 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
950 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,
951 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
952 0x00,NANA,0x00,0x00,0x00,EOT}},
953 {0xa, "Consumer IR",
954 {0x30,0x60,0x61,0x70,0xf0,EOT},
955 {0x00,0x03,0x10,0x0b,0x06,EOT}},
956 {EOT}}},
957 {0x8721, "IT8721F", {
958 {EOT}}},
959 {0x8722, "IT8722F", {
960 {EOT}}},
961 {0x8726, "IT8726F", {
962 /* Datasheet wrongly says that the ID is 0x8716. */
963 {NOLDN, NULL,
964 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
965 {0x87,0x26,0x01,0x00,MISC,0x00,EOT}},
966 {0x0, "Floppy",
967 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
968 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
969 {0x1, "COM1",
970 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
971 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
972 {0x2, "COM2",
973 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
974 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
975 {0x3, "Parallel port",
976 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
977 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
978 {0x4, "Environment controller",
979 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
980 0xf4,0xf5,0xf6,EOT},
981 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
982 0x00,MISC,MISC,EOT}},
983 {0x5, "Keyboard",
984 /* 0xf0: Datasheet page 35: 0x00; page 59: 0x08. */
985 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
986 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
987 {0x6, "Mouse",
988 {0x30,0x70,0x71,0xf0,EOT},
989 {0x00,0x0c,0x02,0x00,EOT}},
990 {0x7, "GPIO",
991 /* 0x2c: Datasheet page 33: 0x00; page 45: 0x1f. */
992 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
993 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
994 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
995 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
996 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
997 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
998 {0x01,0x00,0x00,0x40,0x00,0x00,0x1f,0x00,0x00,0x00,
999 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
1000 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1001 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1002 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1003 0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,0x00,EOT}},
1004 {0x8, "MIDI port",
1005 {0x30,0x60,0x61,0x70,0xf0,EOT},
1006 {0x00,0x03,0x00,0x0a,0x00,EOT}},
1007 {0x9, "Game port",
1008 {0x30,0x60,0x61,EOT},
1009 {0x00,0x02,0x01,EOT}},
1010 {0xa, "Consumer IR",
1011 {0x30,0x60,0x61,0x70,0xf0,EOT},
1012 {0x00,0x03,0x10,0x0b,0x00,EOT}},
1013 {EOT}}},
1014 {0x8728, "IT8728F", {
1015 {NOLDN, NULL,
1016 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x2b,0x2e,0x2f,EOT},
1017 {NANA,NANA,0x87,0x28,0x01,0x00,0x00,MISC,0x00,0x00,EOT}},
1018 {0x0, "Floppy",
1019 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
1020 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
1021 {0x1, "COM1",
1022 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
1023 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
1024 {0x2, "COM2",
1025 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
1026 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
1027 {0x3, "Parallel port",
1028 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1029 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1030 {0x4, "Environment controller",
1031 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1032 0xf3,0xf4,0xf5,0xf6,0xF9,0xFA,0xFB,EOT},
1033 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1034 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1035 {0x5, "Keyboard",
1036 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1037 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1038 {0x6, "Mouse",
1039 {0x30,0x70,0x71,0xf0,EOT},
1040 {0x00,0x0c,0x02,0x00,EOT}},
1041 {0x7, "GPIO",
1042 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,
1043 0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,0x73,
1044 0x74,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
1045 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,
1046 0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xe0,0xe1,
1047 0xe2,0xe3,0xe4,0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,
1048 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1049 {0x00,0xf3,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
1050 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,
1051 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
1052 0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,
1053 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
1054 0x00,0x00,0x00,MISC,0x00,0x00,0x00,0x00,0x00,
1055 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1056 {0xa, "Consumer IR",
1057 {0x30,0x60,0x61,0x70,0xf0,EOT},
1058 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1059 {EOT}}},
1060 {0x8761, "IT8761E", {
1061 {EOT}}},
1062 {0x8772, "IT8772F", {
1063 {NOLDN, NULL,
1064 {0x20,0x21,0x22,0x23,0x24,0x2e,0x2f,EOT},
1065 {0x87,0x72,0x02,0x00,0x00,0x00,0x00,EOT}},
1066 {0x1, "COM1",
1067 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
1068 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
1069 {0x4, "Environment controller",
1070 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1071 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,EOT},
1072 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1073 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1074 {0x5, "Keyboard",
1075 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1076 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
1077 {0x6, "Mouse",
1078 {0x30,0x70,0x71,0xf0,EOT},
1079 {0x00,0x0c,0x02,0x00,EOT}},
1080 {0x7, "GPIO",
1081 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c, /* 25 .. 2c */
1082 0x60,0x61,0x62,0x63, /* 60 .. 64 */
1083 0x70,0x71,0x72,0x73,0x74, /* 70 .. 74 */
1084 0xb0,0xb1,0xb2,0xb3,0xb4, /* b0 .. b4 */
1085 0xb8,0xb9,0xba,0xbb,0xbc,0xbd, /* b8 .. bd */
1086 0xc0,0xc1,0xc2,0xc3,0xc4, /* c0 .. c4 */
1087 0xc8,0xc9,0xca,0xcb,0xcc,0xcd, /* c8 .. cd */
1088 0xe0,0xe1,0xe2,0xe3,0xe4,0xe9, /* e0 .. e9 */
1089 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5, /* f0 .. f5 */
1090 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb, /* f6 .. fb */
1091 EOT},
1092 {0x00,0xf3,0x00,0x00,0x00,0x00,MISC,0x01, /* 25 .. 2c */
1093 0x00,0x00,0x00,0x00, /* 60 .. 64 */
1094 0x00,0x00,0x20,0x38,0x00, /* 70 .. 74 */
1095 0x00,0x00,0x00,0x00,0x00, /* b0 .. b4 */
1096 0x20,0x00,0x00,0x00,0x00,0x00, /* b8 .. bd */
1097 0x01,0x00,0x00,0x40,0x00, /* c0 .. c4 */
1098 0x01,0x00,0x00,0x00,0x00,0x00, /* c8 .. cd */
1099 0x00,0x00,0x00,0x00,0x00,MISC, /* e0 .. e9 */
1100 0x00,0x00,0x00,0x00,0x00,0x00, /* f0 .. f6 */
1101 0x00,0x00,0x00,0x00,0x00,0x00, /* f6 .. fb */
1102 EOT}},
1103 {0xa, "Consumer IR",
1104 {0x30,0x60,0x61,0x70,0xf0,EOT},
1105 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1106 {EOT}}},
1107 {0x8780, "IT8780F", {
1108 {EOT}}},
1109 {0x8783, "IT8783E/F", {
1110 {NOLDN, NULL,
1111 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1112 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1113 EOT},
1114 {NANA,NANA,0x87,0x83,0x00,0x00,MISC,0x00,0x00,
1115 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
1116 EOT}},
1117 {0x0, "Floppy",
1118 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
1119 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
1120 {0x1, "COM1",
1121 {0x30,0x60,0x61,0x70,0xf0,EOT},
1122 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1123 {0x2, "COM2",
1124 {0x30,0x60,0x61,0x70,0xf0,EOT},
1125 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1126 {0x3, "Parallel port",
1127 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1128 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1129 {0x4, "Environment controller",
1130 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1131 0xf3,0xf4,0xf5,0xf6,0xf7,EOT},
1132 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1133 0x00,0x00,MISC,MISC,MISC,EOT}},
1134 {0x5, "Keyboard",
1135 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1136 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
1137 {0x6, "Mouse",
1138 {0x30,0x70,0x71,0xf0,EOT},
1139 {0x00,0x0c,0x02,0x00,EOT}},
1140 {0x7, "GPIO",
1141 {0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,
1142 0x73,0x74,0x81,0x82,0x83,0x84,0x91,0x92,0x93,
1143 0x94,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
1144 0xbb,0xbc,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,
1145 0xca,0xcb,0xcc,0xcd,0xe0,0xe1,0xe2,0xe3,0xe4,
1146 0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
1147 0xf8,0xf9,0xfa,0xfb,EOT},
1148 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,
1149 0x38,0x00,0x00,MISC,0x38,0x00,0x00,MISC,0x38,
1150 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1151 0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,0x00,
1152 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1153 MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1154 0x00,0x00,0x00,0x00,EOT}},
1155 {0x8, "COM3",
1156 {0x30,0x60,0x61,0x70,0xf0,EOT},
1157 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1158 {0x9, "COM4",
1159 {0x30,0x60,0x61,0x70,0xf0,EOT},
1160 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1161 {0xa, "COM5",
1162 {0x30,0x60,0x61,0x70,0xf0,EOT},
1163 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1164 {0xb, "COM6",
1165 {0x30,0x60,0x61,0x70,0xf0,EOT},
1166 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1167 {0xc, "Consumer IR",
1168 {0x30,0x60,0x61,0x70,0xf0,EOT},
1169 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1170 {EOT}}},
1171 {0x8784, "IT8784E-I", {
1172 {NOLDN, NULL,
1173 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1174 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1175 EOT},
1176 {NANA,NANA,0x87,0x86,MISC,0x40,RSVD,0x00,0xf3,
1177 0x00,0x00,0x00,0x00,0x48,0x89,0x00,0x00,0x00,
1178 EOT}},
1179 {0x1, "COM1",
1180 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1181 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1182 {0x2, "COM2",
1183 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1184 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1185 {0x3, "Parallel port",
1186 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1187 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1188 {0x4, "Environment controller",
1189 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1190 0xf3,0xf4,0xf5,0xf6,0xfa,0xfb,0xfd,EOT},
1191 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1192 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1193 {0x5, "Keyboard",
1194 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1195 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1196 {0x6, "Mouse",
1197 {0x30,0x70,0x71,0xf0,EOT},
1198 {0x00,0x0c,0x02,0x00,EOT}},
1199 {0x7, "GPIO",
1200 {0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,
1201 0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
1202 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
1203 0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,
1204 0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xe7,0xf0,0xf1,0xf2,
1205 0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1206 {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,
1207 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
1208 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1209 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1210 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1211 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1212 {0xa, "Consumer IR",
1213 {0x30,0x60,0x61,0x70,0xf0,EOT},
1214 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1215 {EOT}}},
1216 {0x8786, "IT8786E-I", {
1217 {NOLDN, NULL,
1218 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1219 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1220 EOT},
1221 {NANA,NANA,0x87,0x86,0x03,0x40,RSVD,0x00,0xf3,
1222 0x00,0x00,0x00,0x00,0x48,0x89,0x00,0x00,0x00,
1223 EOT}},
1224 {0x1, "COM1",
1225 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1226 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1227 {0x2, "COM2",
1228 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1229 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1230 {0x3, "Parallel port",
1231 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1232 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1233 {0x4, "Environment controller",
1234 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1235 0xf3,0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
1236 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1237 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1238 {0x5, "Keyboard",
1239 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1240 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1241 {0x6, "Mouse",
1242 {0x30,0x70,0x71,0xf0,EOT},
1243 {0x00,0x0c,0x02,0x00,EOT}},
1244 {0x7, "GPIO",
1245 {0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,
1246 0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
1247 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
1248 0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,
1249 0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,
1250 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1251 {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,
1252 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
1253 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1254 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1255 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1256 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1257 {0x8, "COM3",
1258 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1259 {0x00,0x03,0xf8,0x0b,0x00,0x50,0x00,EOT}},
1260 {0x9, "COM4",
1261 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1262 {0x00,0x02,0xf8,0x0a,0x00,0x50,0x00,EOT}},
1263 {0xa, "Consumer IR",
1264 {0x30,0x60,0x61,0x70,0xf0,EOT},
1265 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1266 {0xb, "COM5",
1267 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1268 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1269 {0xc, "COM6",
1270 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1271 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1272 {EOT}}},
1273 {0x8987, "IT8987", { /* global registers 0x24, 0x27, 0x28, 0x29, 0x2a, 0x2b are reserved */
1274 {NOLDN, "Chip ID",
1275 {0x20,0x21, EOT},
1276 {0x89,0x87, EOT}},
1277 {NOLDN, "Chip Version",
1278 {0x22,EOT},
1279 {0x03,EOT}},
1280 {NOLDN, "Super I/O Control Register (SIOCTRL)",
1281 {0x23,EOT},
1282 {0x01,EOT}},
1283 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
1284 {0x25,EOT},
1285 {0x00,EOT}},
1286 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
1287 {0x26,EOT},
1288 {0x00,EOT}},
1289 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
1290 {0x2d,EOT},
1291 {0x00,EOT}},
1292 {NOLDN, "Depth 2 I/O Address (D2ADR)",
1293 {0x2e,EOT},
1294 {0x00,EOT}},
1295 {NOLDN, "Depth 2 I/O Data (D2DAT)",
1296 {0x2f,EOT},
1297 {0x00,EOT}},
1298 {0x04, "System Wake-Up Control (SWUC)",
1299 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1300 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
1301 {0x05, "KBC/Mouse Interface",
1302 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1303 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
1304 {0x06, "KBC/Keyboard Interface",
1305 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1306 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
1307 {0xa, "Consumer IR",
1308 {0x30,0x60,0x61,0x70,0x71,EOT},
1309 {0x00,0x03,0x10,0x00,0x02,EOT}},
1310 {0x0f, "Shared Memory/Flash Interface (SMFI)",
1311 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
1312 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
1313 {0x10, "Real Time Clock (RTC)",
1314 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
1315 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
1316 {0x11, "Power Management I/F Channel 1 (PMC1)",
1317 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1318 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1319 {0x12, "Power Management I/F Channel 2 (PMC2)",
1320 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1321 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1322 {0x13, "Serial Peripheral Interface (SSPI)",
1323 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1324 {0x00,0x03,0x00,0x00,0x00,0x00,0x00,EOT}},
1325 {0x14, "Platform Environment Control Interface (PECI)",
1326 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1327 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1328 {0x17, "Power Management I/F Channel 3 (PMC3)",
1329 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1330 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1331 {0x18, "Power Management I/F Channel 4 (PMC4)",
1332 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1333 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1334 {0x19, "Power Management I/F Channel 5 (PMC5)",
1335 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1336 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1337 {EOT}}},
1338 {EOT}
1341 static const struct superio_registers ec_table[] = {
1342 {0x8613, "IT8613E", {
1343 {NOLDN, NULL,
1344 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1345 0x0a,0x0b,0x0c,0x0e,0x0f,0x11,0x12,0x13,0x14,0x16,
1346 0x17,0x19,0x1a,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,
1347 0x24,0x25,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,
1348 0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x38,0x39,0x3a,
1349 0x3b,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x50,
1350 0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,
1351 0x5b,0x5c,0x5d,0x5e,0x5f,0x68,0x69,0x6a,0x6b,0x6c,
1352 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,
1353 0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,
1354 0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,
1355 0x8e,0x8f,0x90,0x91,0x98,0x99,0x9c,0x9d,0x9e,0x9f,
1356 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xb4,0xb5,0xb6,
1357 0xb7,0xb8,0xb9,EOT},
1358 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1359 0x44,0x00,0x00,MISC,MISC,NANA,NANA,0x00,0x40,0x00,
1360 0x00,MISC,MISC,NANA,NANA,0x00,0x00,MISC,MISC,MISC,
1361 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1362 MISC,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1363 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1364 0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x00,
1365 0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
1366 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1367 0x7f,0x7f,0x00,0x00,0x7f,0x0f,MISC,MISC,MISC,MISC,
1368 NANA,NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
1369 0x00,MISC,0x00,0x00,0x00,0x00,0x00,NANA,0x00,NANA,
1370 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,
1371 NANA,NANA,NANA,EOT}},
1372 {EOT}}},
1373 {0x8625, "IT8625E", {
1374 {NOLDN, NULL,
1375 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1376 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1377 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1378 0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,
1379 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,
1380 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,
1381 0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,
1382 0x47,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,
1383 0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,
1384 0x63,0x64,0x65,0x66,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1385 0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,0x79,
1386 0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,0x84,
1387 0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,
1388 0x8f,0x90,0x91,0x92,0x93,0x94,0x98,0x99,0x9c,0x9d,
1389 0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa8,
1390 0xa9,0xaa,0xab,0xac,0xad,0xae,0xb2,0xb3,0xb4,0xb5,
1391 0xb6,0xb7,0xb8,0xb9,EOT},
1392 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
1393 0x44,0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1394 0x40,0x00,0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,
1395 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1396 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1397 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1398 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1399 NANA,0x00,0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,
1400 0x00,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,
1401 0x00,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1402 0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,0x7f,
1403 0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,NANA,
1404 NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1405 NANA,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,NANA,
1406 0x00,NANA,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1407 0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,
1408 NANA,NANA,NANA,NANA,EOT}},
1409 {EOT}}},
1410 {0x8716, "IT8716F", {
1411 {NOLDN, NULL,
1412 {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,
1413 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,
1414 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1415 0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,
1416 0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,
1417 0x59,0x5c,
1418 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,
1419 0x69,0x6a,0x6b,0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,
1420 0x75,0x84,0x85,0x86,0x87,0x88,0x89,0x8c,0x8d,0x8e,
1421 0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,0x9a,
1422 0x9b,0x9c,0x9d,EOT},
1423 {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,
1424 NANA,NANA,0x07,0x50,NANA,NANA,NANA,NANA,NANA,NANA,
1425 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1426 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1427 NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
1428 0x00,0x00,
1429 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,
1430 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1431 0x7f,NANA,NANA,NANA,NANA,0x00,0x00,0x02,0x00,0x99,
1432 0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,
1433 0x00,0x00,0x7f,EOT}},
1434 {EOT}}},
1435 {0x8718, "IT8718F", {
1436 {NOLDN, NULL,
1437 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1438 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1439 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1440 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1441 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1442 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1443 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x56,
1444 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1445 0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1446 0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,0x83,
1447 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1448 0x92,0x94,0x95,0x96,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,
1449 0xa6,EOT},
1450 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1451 0x40,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1452 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1453 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1454 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1455 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1456 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x00,
1457 0x00,0x90,0x00,0x12,0x00,0x00,0x00,0x00,0x7f,0x7f,
1458 0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1459 0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,
1460 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1461 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1462 0x00,EOT}},
1463 {EOT}}},
1464 {0x8720, "IT8720F", {
1465 {NOLDN, NULL,
1466 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1467 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1468 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1469 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1470 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1471 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1472 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,
1473 0x56,0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,
1474 0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,
1475 0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,
1476 0x83,0x84,0x85,0x86,0x87,
1477 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1478 0x92,0x94,0x95,0x96,EOT},
1479 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1480 0x58,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1481 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1482 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1483 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1484 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1485 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1486 0x00,0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,
1487 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1488 0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,
1489 NANA,NANA,NANA,NANA,NANA,
1490 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1491 0x00,0xff,0x00,0x00,EOT}},
1492 {EOT}}},
1493 {0x8728, "IT8728F", {
1494 {NOLDN, NULL,
1495 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1496 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1497 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1498 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,0x2a,
1499 0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,
1500 0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,
1501 0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,0x56,
1502 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1503 0x62,0x63,0x64,0x65,0x66,0x68,0x69,0x6a,0x6b,0x6c,
1504 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x80,
1505 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,
1506 0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x94,0x95,
1507 0x96,0x98,0x99,0x9c,0x9d,0x9e,0x9f,EOT},
1508 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1509 0x58,0x0f,0x00,MISC,MISC,MISC,MISC,MISC,MISC,0x07,
1510 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1511 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1512 NANA,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1513 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1514 MISC,MISC,MISC,0x00,0x00,0x7f,0x7f,0x7f,0x40,0x00,
1515 0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,
1516 0x7f,0x00,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,
1517 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,
1518 NANA,NANA,NANA,MISC,MISC,MISC,MISC,0x00,0x00,0x00,
1519 0x00,0x00,0x00,0x00,NANA,0xff,0x00,0x00,0xff,0x00,
1520 0x00,0x00,0x00,0x00,MISC,0x00,MISC,EOT}},
1521 {EOT}}},
1522 {0x8783, "IT8783E/F", {
1523 {NOLDN, NULL,
1524 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1525 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1526 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1527 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1528 0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
1529 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
1530 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1531 0x48,0x49,0x4a,0x4b,0x50,0x51,0x52,0x53,0x54,0x55,
1532 0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
1533 0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
1534 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x88,0x89,
1535 0x8a,0x8b,0x8c,0x8d,0x8e,EOT},
1536 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1537 0x54,0x09,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1538 0x50,MISC,MISC,MISC,NANA,NANA,NANA,MISC,MISC,MISC,
1539 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1540 NANA,NANA,NANA,NANA,NANA,NANA,MISC,MISC,MISC,MISC,
1541 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1542 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x5f,0x74,
1543 0x2d,0x40,0xab,0x22,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1544 0x00,0x00,0x90,0x00,MISC,0x12,0x60,0x00,0x00,0x00,
1545 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
1546 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,MISC,0x00,
1547 0x00,0x00,0x00,MISC,0x02,EOT}},
1548 {EOT}}},
1549 {0x8784, "IT8784E-I", {
1550 {NOLDN, NULL,
1551 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1552 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1553 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1554 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1555 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1556 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1557 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1558 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1559 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1560 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1561 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1562 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1563 0x9c,0x9d,0x9e,0x9f,0xc0,0xc1,0xc2,0xc3,0xc4,EOT},
1564 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1565 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1566 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1567 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1568 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1569 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1570 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1571 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1572 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1573 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1574 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1575 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1576 0x00,MISC,0x00,MISC,0x00,0x00,MISC,MISC,MISC,EOT}},
1577 {EOT}}},
1578 {0x8786, "IT8786E-I", {
1579 {NOLDN, NULL,
1580 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1581 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1582 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1583 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1584 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1585 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1586 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1587 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1588 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1589 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1590 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1591 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1592 0x9c,0x9d,0x9e,0x9f,EOT},
1593 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1594 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1595 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1596 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1597 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1598 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1599 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1600 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1601 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1602 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1603 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1604 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1605 0x00,MISC,0x00,MISC,EOT}},
1606 {EOT}}},
1607 {EOT}
1610 static const struct superio_registers bram_table[] = {
1611 {0x8516, "IT8516???", {
1612 {NOLDN, NULL,
1613 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1614 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1615 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1616 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1617 {NOLDN, NULL,
1618 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1619 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1620 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1621 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1622 {NOLDN, NULL,
1623 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1624 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1625 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1626 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1627 {NOLDN, NULL,
1628 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1629 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1630 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1631 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1632 {NOLDN, NULL,
1633 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1634 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1635 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1636 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1637 {NOLDN, NULL,
1638 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1639 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1640 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1641 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1642 {NOLDN, NULL,
1643 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1644 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1645 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1646 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1647 {NOLDN, NULL,
1648 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1649 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1650 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1651 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1652 {NOLDN, NULL,
1653 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1654 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1655 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1656 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1657 {NOLDN, NULL,
1658 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1659 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1660 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1661 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1662 {NOLDN, NULL,
1663 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1664 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1665 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1666 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1667 {NOLDN, NULL,
1668 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1669 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1670 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1671 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1672 {NOLDN, NULL,
1673 {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1674 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,EOT},
1675 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1676 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1677 {EOT}}},
1678 {0x8987, "IT8987", {
1679 {NOLDN, NULL,
1680 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1681 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1682 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1683 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1684 {NOLDN, NULL,
1685 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1686 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1687 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1688 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1689 {NOLDN, NULL,
1690 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1691 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1692 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1693 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1694 {NOLDN, NULL,
1695 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1696 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1697 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1698 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1699 {NOLDN, NULL,
1700 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1701 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1702 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1703 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1704 {NOLDN, NULL,
1705 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1706 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1707 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1708 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1709 {NOLDN, NULL,
1710 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1711 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1712 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1713 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1714 {NOLDN, NULL,
1715 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1716 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1717 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1718 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1719 {NOLDN, NULL,
1720 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1721 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1722 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1723 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1724 {NOLDN, NULL,
1725 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1726 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1727 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1728 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1729 {NOLDN, NULL,
1730 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1731 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1732 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1733 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1734 {NOLDN, NULL,
1735 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1736 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1737 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1738 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1739 {EOT}}},
1740 {EOT}
1743 /* Works for: IT8661F/IT8770F */
1744 static const uint8_t initkey_it8661f[][4] = {
1745 {0x86, 0x61, 0x55, 0x55}, /* 0x3f0 */
1746 {0x86, 0x61, 0x55, 0xaa}, /* 0x3bd */
1747 {0x86, 0x61, 0xaa, 0x55}, /* 0x370 */
1750 /* Works for: IT8671F/IT8687R, IT8673F */
1751 static const uint8_t initkey_it8671f[][4] = {
1752 {0x86, 0x80, 0x55, 0x55}, /* 0x3f0 */
1753 {0x86, 0x80, 0x55, 0xaa}, /* 0x3bd */
1754 {0x86, 0x80, 0xaa, 0x55}, /* 0x370 */
1757 /* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1758 static const uint8_t initkey_mbpnp[] = {
1759 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37,
1760 0x1b, 0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45,
1761 0xa2, 0xd1, 0xe8, 0x74, 0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39,
1764 /* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1765 static void enter_conf_mode_ite_legacy(uint16_t port, const uint8_t init[][4])
1767 int i, idx;
1769 /* Determine Super I/O config port. */
1770 idx = (port == 0x3f0) ? 0 : ((port == 0x3bd) ? 1 : 2);
1771 for (i = 0; i < 4; i++)
1772 OUTB(init[idx][i], ISA_PNP_ADDR);
1774 /* Sequentially write the 32 MB PnP init values. */
1775 for (i = 0; i < 32; i++)
1776 OUTB(initkey_mbpnp[i], port);
1779 static void enter_conf_mode_ite(uint16_t port)
1781 OUTB(0x87, port);
1782 OUTB(0x01, port);
1783 OUTB(0x55, port);
1784 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1787 static void enter_conf_mode_ite_it8502e(uint16_t port)
1789 OUTB(0x85, port);
1790 OUTB(0x02, port);
1791 OUTB(0x55, port);
1792 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1795 static void enter_conf_mode_ite_it8761e(uint16_t port)
1797 OUTB(0x87, port);
1798 OUTB(0x61, port);
1799 OUTB(0x55, port);
1800 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1803 static void enter_conf_mode_ite_it8228e(uint16_t port)
1805 OUTB(0x82, port);
1806 OUTB(0x28, port);
1807 OUTB(0x55, port);
1808 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1811 static void enter_conf_mode_ite_it8987e(uint16_t port)
1813 OUTB(0x89, port);
1814 OUTB(0x87, port);
1815 OUTB(0x55, port);
1816 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1819 static void exit_conf_mode_ite(uint16_t port)
1821 regwrite(port, 0x02, 0x02);
1824 static int chip_found_at_port;
1826 static void probe_idregs_ite_helper(const char *init, uint16_t port)
1828 uint16_t id, chipver, ecport;
1830 probing_for("ITE", init, port);
1832 id = regval(port, CHIP_ID_BYTE1_REG) << 8;
1833 id |= regval(port, CHIP_ID_BYTE2_REG);
1834 chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
1836 if (superio_unknown(reg_table, id)) {
1837 if (verbose)
1838 printf(NOTFOUND "id=0x%04x, rev=0x%01x\n", id, chipver);
1839 return;
1842 printf("Found ITE %s (id=0x%04x, rev=0x%01x) at 0x%x\n",
1843 get_superio_name(reg_table, id), id, chipver, port);
1844 chip_found = 1;
1845 chip_found_at_port = 1;
1847 dump_superio("ITE", reg_table, port, id, LDN_SEL);
1849 if (extra_dump) {
1850 regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */
1852 /* Get EC base address (stored in LDN 4, index 0x60/0x61). */
1853 ecport = regval(port, 0x60) << 8;
1854 ecport |= regval(port, 0x61);
1856 /* EC address register = EC base address + 5. */
1857 ecport += 5;
1859 printf("Environment controller (0x%04x)\n", ecport);
1860 dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
1862 regwrite(port, LDN_SEL, 0x10); /* Select LDN 16 (BRAM). */
1863 /* Get EC base address (stored in LDN 16, index 0x62/0x63). */
1864 ecport = regval(port, 0x62) << 8;
1865 ecport |= regval(port, 0x63);
1866 printf("BRAM (0x%04x)\n", ecport);
1867 dump_superio("ITE-BRAM", bram_table, ecport, id, LDN_SEL);
1871 void probe_idregs_ite(uint16_t port)
1873 chip_found_at_port = 0;
1875 if (port == 0x3f0 || port == 0x3bd || port == 0x370) {
1876 enter_conf_mode_ite_legacy(port, initkey_it8661f);
1877 probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
1878 exit_conf_mode_ite(port);
1879 if (chip_found_at_port)
1880 return;
1882 enter_conf_mode_ite_legacy(port, initkey_it8671f);
1883 probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
1884 exit_conf_mode_ite(port);
1885 if (chip_found_at_port)
1886 return;
1887 } else {
1888 enter_conf_mode_ite(port);
1889 probe_idregs_ite_helper("(init=standard) ", port);
1890 exit_conf_mode_ite(port);
1891 if (chip_found_at_port)
1892 return;
1894 enter_conf_mode_ite_it8502e(port);
1895 probe_idregs_ite_helper("(init=it8502e) ", port);
1896 exit_conf_mode_ite(port);
1897 if (chip_found_at_port)
1898 return;
1900 enter_conf_mode_ite_it8761e(port);
1901 probe_idregs_ite_helper("(init=it8761e) ", port);
1902 exit_conf_mode_ite(port);
1903 if (chip_found_at_port)
1904 return;
1906 enter_conf_mode_ite_it8228e(port);
1907 probe_idregs_ite_helper("(init=it8228e) ", port);
1908 exit_conf_mode_ite(port);
1909 if (chip_found_at_port)
1910 return;
1912 enter_conf_mode_ite_it8987e(port);
1913 probe_idregs_ite_helper("(init=it8987e) ", port);
1914 exit_conf_mode_ite(port);
1915 if (chip_found_at_port)
1916 return;
1918 enter_conf_mode_winbond_fintek_ite_8787(port);
1919 probe_idregs_ite_helper("(init=0x87,0x87) ", port);
1920 exit_conf_mode_winbond_fintek_ite_8787(port);
1921 if (chip_found_at_port)
1922 return;
1926 void print_ite_chips(void)
1928 print_vendor_chips("ITE", reg_table);
1929 print_vendor_chips("ITE-EC", ec_table);