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