blob: 43ccce173dd90634e9f724aab809d0bcc9672e36 [file] [log] [blame]
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001/*
Uwe Hermannafe83092007-09-28 15:45:43 +00002 * This file is part of the superiotool project.
Uwe Hermann0120e1a2007-09-16 18:11:03 +00003 *
4 * Copyright (C) 2007 Carl-Daniel Hailfinger
Uwe Hermannebb73f22008-11-12 19:08:58 +00005 * Copyright (C) 2007-2008 Uwe Hermann <uwe@hermann-uwe.de>
Uwe Hermann0120e1a2007-09-16 18:11:03 +00006 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
Uwe Hermann0120e1a2007-09-16 18:11:03 +000016 */
17
18#include "superiotool.h"
19
Uwe Hermann07024692007-09-20 22:13:48 +000020#define CHIP_ID_BYTE1_REG 0x20
21#define CHIP_ID_BYTE2_REG 0x21
22#define CHIP_VERSION_REG 0x22
Urja Rannikko38204a22008-10-23 23:33:18 +000023#define ISA_PNP_ADDR 0x279
Uwe Hermann07024692007-09-20 22:13:48 +000024
Uwe Hermann246be7d2007-10-31 22:22:11 +000025static const struct superio_registers reg_table[] = {
Uwe Hermannebb73f22008-11-12 19:08:58 +000026 {0x8228, "IT8228E", {
27 {EOT}}},
Donald Huang03e54de2010-08-10 23:34:51 +000028 {0x8500, "IT8500B/E", {
29 {NOLDN, NULL,
30 {0x20,0x21,0x22,0x23,0x25,0x2d,0x2e,0x2f,0x30,EOT},
31 {0x85,0x00,0x01,0x01,0x00,0x00,NANA,NANA,0x00,EOT}},
32 {0x04, "System Wake-Up Control (SWUC)",
33 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
34 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
35 {0x05, "KBC/Mouse Interface",
36 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
37 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
38 {0x06, "KBC/Keyboard Interface",
39 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
40 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
41 {0x0f, "Shared Memory/Flash Interface (SMFI)",
42 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
43 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
44 {0x10, "BRAM",
45 {0x30,0x62,0x63,0x70,0x71,0xf3,0xf4,0xf5,EOT},
46 {0x00,0x00,0x72,0x08,0x01,NANA,NANA,NANA,EOT}},
47 {0x11, "Power Management I/F Channel 1 (PMC1)",
48 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
49 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
50 {0x12, "Power Management I/F Channel 2 (PMC2)",
51 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
52 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
53 {EOT}}},
Anton Kochkov106f7ff2010-06-29 21:26:17 +000054 {0x8502, "IT8502E/TE/G", {
55 {NOLDN, NULL,
56 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
57 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
58 {0x85,0x02,0x71,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
59 NANA,NANA,NANA,0x00,NANA,EOT}},
60 {0x1, "UART1",
61 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
62 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,0x00,EOT}},
63 {0x4, "System Wake-Up",
64 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
65 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,EOT}},
66 {0x5, "Mouse",
67 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
68 {0x01,0x00,0x00,0x00,0x00,0x0C,0x01,NANA,EOT}},
69 {0x6, "Keyboard",
70 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
71 {0x01,0x00,0x60,0x00,0x64,0x01,0x01,NANA,EOT}},
72 {0xf, "Shared Memory/Flash",
73 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
74 0xf6,EOT},
75 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
76 0x00,EOT}},
77 {0x10, "BRAM",
78 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
79 0xf5,EOT},
80 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,NANA,NANA,
81 NANA,EOT}},
82 {0x11, "Power Channel 1",
83 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
84
85 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
86 {0x12, "Power Channel 2",
87 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
88 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
89 {0x17, "Power Channel 3",
90 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
91 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
92 {EOT}}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +000093 {0x8510, "IT8510E/TE/G", {
Anders Juel Jensen28e4af52010-08-22 19:41:47 +000094 {NOLDN, "Chip ID",
95 {0x20,0x21, EOT},
96 {0x85,0x10, EOT}},
97 {NOLDN, "Chip Version",
98 {0x22,EOT},
99 {0x21,EOT}},
100 {NOLDN, "Super I/O Control Reigster (SIOCTRL)",
101 {0x23,EOT},
102 {0x01,EOT}},
103 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
104 {0x25,EOT},
105 {0x00,EOT}},
106 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
107 {0x26,EOT},
108 {0x00,EOT}},
109 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
110 {0x2d,EOT},
111 {0x00,EOT}},
112 {NOLDN, "Logical Device Activate Register (LDA)",
113 {0x30,EOT},
114 {0x00,EOT}},
115 {NOLDN, "I/O Port Base Address for Descriptor 0 (IOBAD0)",
116 {0x60,0x61,EOT},
117 {NANA,NANA,EOT}},
118 {NOLDN, "I/O Port Base Address for Descriptor 1 (IOBAD1)",
119 {0x62,0x63,EOT},
120 {NANA,NANA,EOT}},
121 {NOLDN, "Interupt Request Number and Wake-Up on IRQ Enable (IRQNUMX)",
122 {0x70,EOT},
123 {NANA,EOT}},
124 {NOLDN, "Interrupt Request Type Select (IRQTP)",
125 {0x71,EOT},
126 {NANA,EOT}},
127 {NOLDN, "DMA Channel Select 0 (DMAS0)",
128 {0x74,EOT},
129 {0x04,EOT}},
130 {NOLDN, "DMA Channel Select 1 (DMAS1)",
131 {0x75,EOT},
132 {0x04,EOT}},
133 {0x4, "System Wakup-Up (SWUC)",
134 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
135 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
136 {0x5, "Keyboard/Mouse",
137 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
138 {0x00,0x00,0x00,0x00,0x00,0x0c,0x03,EOT}},
139 {0x6, "Keyboard/Mouse",
140 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
141 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,EOT}},
142 {0xf, "Shared Memory/Flash Interface (SMFI)",
143 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
144 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
145 {0x10, "Real Time Clock (RTC)",
146 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
147 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
148 {0x11, "Power Management Interface Channel 1",
149 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
150 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
151 {0x12, "Power Management Interface Channel 2",
152 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
153 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000154 {EOT}}},
155 {0x8511, "IT8511E/TE/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000156 {NOLDN, NULL,
157 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
158 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
159 {0x85,0x11,0x10,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
160 NANA,NANA,NANA,0x00,NANA,EOT}},
161 {0x4, "System Wake-Up",
162 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
163 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,EOT}},
164 {0x5, "Mouse",
165 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
166 {0x01,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
167 {0x6, "Keyboard",
168 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
169 {0x01,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
170 {0xf, "Shared Memory/Flash",
171 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
172 0xf6,EOT},
173 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
174 0x00,EOT}},
175 {0x10, "Real-Time Clock",
176 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,
177 0xf2,0xf3,0xf4,0xf5,EOT},
178 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,
179 0x4A,NANA,NANA,NANA,EOT}},
180 {0x11, "Power Channel 1",
181 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
182 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
183 {0x12, "Power Channel 2",
184 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
185 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000186 {EOT}}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000187 {0x8512, "IT8512E/F/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000188 {NOLDN, NULL,
189 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
190 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
191 {0x85,0x12,0x22,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
192 NANA,NANA,NANA,0x00,NANA,EOT}},
193 {0x4, "System Wake-Up",
194 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
195 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
196 {0x5, "Mouse",
197 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
198 {0x00,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
199 {0x6, "Keyboard",
200 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
201 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
202 {0xf, "Shared Memory/Flash",
203 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
204 0xf6,EOT},
205 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
206 0x00,EOT}},
207 {0x10, "BRAM",
208 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
209 0xf5,EOT},
210 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,NANA,NANA,
211 NANA,EOT}},
212 {0x11, "Power Channel 1",
213 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
214 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
215 {0x12, "Power Channel 2",
216 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
217 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000218 {EOT}}},
219 {0x8513, "IT8513E/F/G", {
220 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +0200221 {0x8516, "IT8516???", {
222 {NOLDN, "Chip ID",
223 {0x20,0x21, EOT},
224 {0x85,0x16, EOT}},
225 {NOLDN, "Chip Version",
226 {0x22,EOT},
227 {0x63,EOT}},
228 {NOLDN, "Super I/O Control Reigster (SIOCTRL)",
229 {0x23,EOT},
230 {0x01,EOT}},
231 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
232 {0x25,EOT},
233 {0x00,EOT}},
234 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
235 {0x26,EOT},
236 {0x00,EOT}},
237 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
238 {0x2d,EOT},
239 {0x00,EOT}},
240 {0x01, "UART1",
241 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
242 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
243 {0x02, "UART2",
244 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
245 {0x00,0x02,0xf8,0x00,0x00,0x04,0x02,EOT}},
246 {0x04, "System Wakup-Up (SWUC)",
247 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
248 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
249 {0x05, "Mouse",
250 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
251 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
252 {0x06, "Keyboard",
253 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
254 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
255 {0x0f, "Shared Memory/Flash Interface (SMFI)",
256 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
257 0xf4,0xf5,EOT},
258 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
259 NANA,NANA,EOT}},
260 {0x10, "BRAM / Real Time Clock (RTC)",
261 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
262 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
263 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
264 NANA,NANA,NANA,NANA,NANA,EOT}},
265 {0x11, "Power Management Interface Channel 1",
266 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
267 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
268 {0x12, "Power Management Interface Channel 2",
269 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
270 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
271 {0x17, "Power Management Interface Channel 3",
272 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
273 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
274 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000275 {0x8661, "IT8661F/IT8770F", {
Robinson P. Tryondc817692007-10-05 13:47:04 +0000276 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000277 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
278 0x23,0x24,EOT},
279 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x61,0x00,
280 0x00,0x00,EOT}},
Robinson P. Tryondc817692007-10-05 13:47:04 +0000281 {0x0, "Floppy",
282 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
283 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
284 {0x1, "COM1",
285 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
286 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
287 {0x2, "COM2",
288 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
289 {0x00,0x00,0x02,0xf8,0x03,0x02,0x00,EOT}},
290 {0x3, "Parallel port",
291 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
292 0xf0,EOT},
293 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
294 0x03,EOT}},
295 {0x4, "IR",
296 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
297 0x74,0x75,0xf0,EOT},
298 {0x00,0x00,0x02,0xe8,0x03,0x00,0x0a,0x02,0x0b,0x02,
299 0x01,0x00,0x00,EOT}},
300 {0x5, "GPIO",
301 {0x25,0x26,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
302 0x70,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
303 0xf9,0xfa,0xfb,0xfc,EOT},
304 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
305 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
306 0x00,0x00,0x00,0x00,EOT}},
307 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000308 {0x8673, "IT8673F", {
309 {EOT}}},
310 {0x8681, "IT8671F/IT8687R", {
Anders Jenbo14db1c02010-05-08 23:28:33 +0000311 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000312 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
313 0x23,0x24,0x25,0x26,0x2e,0x2f,EOT},
314 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x81,0x00,
315 0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
316 {0x0, "Floppy",
317 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
318 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000319 {0x1, "COM1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000320 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
321 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000322 {0x2, "COM2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000323 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
324 0x74,0x75,0xf0,0xf1,EOT},
325 {0x00,0x00,0x02,0xf8,0x03,0x00,0x03,0x02,0x0a,0x02,
326 0x00,0x01,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000327 {0x3, "Parallel port",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000328 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
329 0xf0,EOT},
330 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
331 0x03,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000332 {0x4, "APC",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000333 {0x30,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,EOT},
334 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000335 {0x5, "Keyboard",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000336 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
337 {MISC,0x00,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000338 {0x6, "Mouse",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000339 {0x30,0x70,0x71,0xf0,EOT},
340 {0x00,0x0c,0x02,0x00,EOT}},
341 {0x7, "GPIO",
342 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
343 0x70,0x71,0x72,0x73,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,
344 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
345 0xe0,0xe1,0xe2,0xe3,0xe4,EOT},
346 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
347 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
348 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
349 0x00,0x00,0x00,0x00,0x00,EOT}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000350 {EOT}}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000351 {0x8701, "IT8703F", {
352 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000353 {0x20,0x21,0x23,0x24,0x26,0x29,0x2a,0x2b,EOT},
354 {0x87,0x00,0x00,0x80,0x00,0x00,0x7c,0xc0,EOT}},
355 {0x0, "Floppy",
356 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf3,0xf4,
357 0xf5,EOT},
358 {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000359 0x00,EOT}},
360 {0x1, "Parallel port",
361 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
362 {0x00,0x03,0x78,0x00,0x80,0x07,0x03,0x03,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000363 {0x2, "COM1",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000364 {0x30,0x60,0x61,0x70,0xf0,EOT},
365 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000366 {0x3, "COM2",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000367 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
368 {0x00,0x02,0xf8,0x03,0x00,0x00,0x00,0x7f,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000369 {0x5, "Keyboard",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000370 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000371 {0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x80,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000372 {0x6, "Consumer IR",
373 {0x30,0x60,0x61,0x70,EOT},
374 {0x00,0x00,0x00,0x00,EOT}},
375 {0x7, "Game port, MIDI, GPIO set 1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000376 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,EOT},
377 {0x00,0x02,0x01,0x03,0x30,0x00,0xff,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000378 {0x8, "GPIO set 2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000379 {0x30,0xf0,0xf1,0xf2,0xf3,0xf5,EOT},
380 {0x00,0xff,0x00,0x00,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000381 {0x9, "GPIO set 3 and 4",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000382 {0x30,0x60,0x61,0xf0,0xf1,0xf2,0xf3,0xf4,EOT},
383 {0x00,0x02,0x90,0xff,0x00,0x00,0x00,0x00,EOT}},
384 {0xa, "ACPI",
385 {0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
386 0xf3,0xf4,0xf6,0xf7,0xf9,EOT},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000387 {0x00,0x00,0x00,0x00,NANA,NANA,0x00,0x00,0x00,0x00,
388 NANA,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000389 {0xc, "GPIO set 5, 6 and 7",
390 {0x30,0x60,0x61,0xf0,0xf3,0xf6,EOT},
391 {0x00,0x03,0x70,0x00,0xff,0xff,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000392 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000393 {0x8702, "IT8702F", {
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000394 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000395 {0x8705, "IT8705F/AF / IT8700F", {
Robinson P. Tryon43541032007-10-04 15:44:19 +0000396 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000397 {0x20,0x21,0x22,0x23,0x24,EOT},
398 {0x87,0x05,0x00,0x00,NANA,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000399 {0x0, "Floppy",
400 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
401 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
402 {0x1, "COM1",
403 {0x30,0x60,0x61,0x70,0xf0,EOT},
404 {0x00,0x03,0xf8,0x04,0x00,EOT}},
405 {0x2, "COM2",
406 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
407 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
408 {0x3, "Parallel port",
409 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
410 0xf0,EOT},
411 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
412 0x03,EOT}},
413 {0x4, "Environment controller",
414 {0x2b,0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
415 0xf3,0xf4,0xf5,0xf6,EOT},
416 {0x00,0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
417 0x00,0x00,NANA,NANA,EOT}},
418 {0x5, "GPIO",
Robinson P. Tryondc817692007-10-05 13:47:04 +0000419 {0x25,0x26,0x27,0x28,0x29,0x2a,0x60,0x61,0x62,0x63,
420 0x64,0x65,0x70,0x71,0x72,0xb0,0xb1,0xb2,0xb3,0xb4,
421 0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
422 0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xd0,
423 0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd8,0xd9,0xda,0xf0,
424 0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,
425 0xfd,0xfe,0xff,EOT},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000426 {0x00,0x00,0x00,0xff,0xe0,0xff,0x00,0x00,0x00,0x00,
427 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
428 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
429 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
430 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
431 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Robinson P. Tryondc817692007-10-05 13:47:04 +0000432 0x00,NANA,0x00,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000433 {0x6, "Game port",
434 {0x30,0x60,0x61,EOT},
435 {0x00,0x02,0x01,EOT}},
436 {0x7, "Consumer IR",
437 {0x30,0x60,0x61,0x70,0xf0,EOT},
438 {0x00,0x03,0x10,0x0b,0x00,EOT}},
439 {0x8, "MIDI port",
440 {0x30,0x60,0x61,0x70,0xf0,EOT},
441 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000442 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000443 {0x8706, "IT8706R", { /* TODO: Not yet in sensors-detect */
444 /* This is a "Special General Purpose I/O chip". */
445 {EOT}}},
Mattias Mattsson25bf69a2010-08-02 02:34:20 +0000446 {0x8707, "IT8707F", {
447 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000448 {0x8708, "IT8708F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000449 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000450 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
451 0x2a,0x2e,0x2f,EOT},
452 {0x87,0x08,0x00,0x00,NANA,0x3f,0x00,0xff,0xff,0xff,
453 0xff,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000454 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000455 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
456 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000457 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000458 {0x30,0x60,0x61,0x70,0xf0,EOT},
459 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000460 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000461 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
462 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000463 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000464 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
465 0xf0,EOT},
466 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
467 0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000468 {0x4, "SWC",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000469 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
470 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,EOT},
471 {NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
472 0x00,0x00,0x00,0x00,0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000473 {0x5, "Keyboard",
Uwe Hermann2c290e32007-09-20 00:00:49 +0000474 /* Note: 0x30 can actually be 0x00 _or_ 0x01. */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000475 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
476 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000477 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000478 {0x30,0x70,0x71,0xf0,EOT},
479 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000480 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000481 {0x70,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,
482 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,
483 0xc9,0xca,0xcb,0xcc,0xcd,0xd0,0xd1,0xd2,0xd3,0xd4,
484 0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xf0,0xf1,
485 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,
486 0xfc,EOT},
487 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
488 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
489 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
490 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x00,
491 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
492 0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000493 {0x8, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000494 {0x30,0x60,0x61,EOT},
495 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000496 {0x9, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000497 {0x30,0x60,0x61,0x70,0xf0,EOT},
498 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000499 {0xa, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000500 {0x30,0x60,0x61,0x70,0xf0,EOT},
501 {0x00,0x03,0x00,0x0a,0x00,EOT}},
502 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000503 {0x8710, "IT8710F", { /* TODO: Not yet in sensors-detect */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000504 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000505 {0x8711, "IT8711F", { /* 0x8711 is a guess, not found in datasheet. */
506 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000507 {0x8712, "IT8712F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000508 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000509 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
510 {0x87,0x12,0x08,0x00,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000511 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000512 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
513 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000514 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000515 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
516 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000517 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000518 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
519 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000520 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000521 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
522 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000523 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000524 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
525 0xf4,0xf5,0xf6,EOT},
526 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
527 0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000528 {0x5, "Keyboard",
529 /* TODO: 0xf0: Error in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000530 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
531 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000532 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000533 {0x30,0x70,0x71,0xf0,EOT},
534 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000535 {0x7, "GPIO", /* TODO: 0x72, 0x73: Errors in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000536 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
537 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
538 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
539 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
540 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
541 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
542 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
Uwe Hermann07024692007-09-20 22:13:48 +0000543 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000544 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
545 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
546 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
547 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000548 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000549 {0x30,0x60,0x61,0x70,0xf0,EOT},
550 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000551 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000552 {0x30,0x60,0x61,EOT},
553 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000554 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000555 {0x30,0x60,0x61,0x70,0xf0,EOT},
556 {0x00,0x03,0x10,0x0b,0x00,EOT}},
557 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000558 {0x8716, "IT8716F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000559 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000560 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
561 {0x87,0x16,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000562 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000563 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
564 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000565 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000566 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
567 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000568 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000569 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
570 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000571 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000572 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
573 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000574 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000575 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
576 0xf4,0xf5,0xf6,EOT},
577 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
578 0x00,NANA,NANA,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000579 {0x5, "Keyboard",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000580 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
581 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000582 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000583 {0x30,0x70,0x71,0xf0,EOT},
584 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000585 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000586 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
587 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
588 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
589 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
590 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
591 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
592 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
593 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
594 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
595 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
596 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
597 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000598 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000599 {0x30,0x60,0x61,0x70,0xf0,EOT},
600 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000601 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000602 {0x30,0x60,0x61,EOT},
603 {0x00,0x02,0x01,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000604 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000605 {0x30,0x60,0x61,0x70,0xf0,EOT},
606 {0x00,0x03,0x10,0x0b,0x00,EOT}},
607 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000608 {0x8718, "IT8718F", {
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000609 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000610 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
611 {0x87,0x18,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000612 {0x0, "Floppy",
613 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
614 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
615 {0x1, "COM1",
616 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
617 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
618 {0x2, "COM2",
619 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
620 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
621 {0x3, "Parallel port",
622 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
623 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
624 {0x4, "Environment controller",
625 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
626 0xf4,0xf5,0xf6,EOT},
627 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
628 0x00,NANA,NANA,EOT}},
629 {0x5, "Keyboard",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000630 /* 0xf0: Datasheet page 33: 0x00; page 56: 0x08. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000631 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
632 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
633 {0x6, "Mouse",
634 {0x30,0x70,0x71,0xf0,EOT},
635 {0x00,0x0c,0x02,0x00,EOT}},
636 {0x7, "GPIO",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000637 /* 0x2c: Datasheet page 30: 0x00; page 43: 0x1f. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000638 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
639 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
640 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000641 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,
642 0xcc,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,
643 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
644 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000645 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
646 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
647 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000648 0x01,0x00,0x00,0x40,0x00,0x00,0x01,0x00,0x00,0x40,
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000649 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
650 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000651 0x00,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000652 {0xa, "Consumer IR",
653 {0x30,0x60,0x61,0x70,0xf0,EOT},
654 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000655 {EOT}}},
Christian Ruppert7c2eec02011-02-03 16:00:28 +0000656 {0x8720, "IT8720F", {
657 {NOLDN, NULL,
658 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
659 {0x87,0x20,0x05,0x00,0x00,0x00,EOT}},
660 {0x0, "Floppy",
661 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
662 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
663 {0x1, "COM1",
664 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
665 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
666 {0x2, "COM2",
667 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
668 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
669 {0x3, "Parallel port",
670 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
671 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
672 {0x4, "Environment controller",
673 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
674 0xf4,0xf5,0xf6,EOT},
675 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
676 0x00,NANA,NANA,EOT}},
677 {0x5, "Keyboard",
678 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
679 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
680 {0x6, "Mouse",
681 {0x30,0x70,0x71,0xf0,EOT},
682 {0x00,0x0c,0x02,0x00,EOT}},
683 {0x7, "GPIO",
684 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
685 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
686 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
687 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
688 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
689 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
690 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
691 {0x00,0xff,0x00,0x40,0x00,0x00,0x03,0x00,0x00,0x00,
692 0x00,0x00,0x00,0x00,0x00,NANA,0x38,0x00,0x00,0x00,
693 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
694 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
695 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,
696 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
697 0x00,NANA,0x00,0x00,0x00,EOT}},
698 {0xa, "Consumer IR",
699 {0x30,0x60,0x61,0x70,0xf0,EOT},
700 {0x00,0x03,0x10,0x0b,0x06,EOT}},
Uwe Hermanncfb6ac72008-10-01 20:16:58 +0000701 {EOT}}},
Uwe Hermannf9bd9ae2011-01-01 22:05:57 +0000702 {0x8721, "IT8721F", {
703 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000704 {0x8722, "IT8722F", {
705 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000706 {0x8726, "IT8726F", {
707 /* Datasheet wrongly says that the ID is 0x8716. */
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000708 {NOLDN, NULL,
709 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
710 {0x87,0x26,0x01,0x00,MISC,0x00,EOT}},
711 {0x0, "Floppy",
712 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
713 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
714 {0x1, "COM1",
715 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
716 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
717 {0x2, "COM2",
718 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
719 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
720 {0x3, "Parallel port",
721 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
722 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
723 {0x4, "Environment controller",
724 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
725 0xf4,0xf5,0xf6,EOT},
726 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
727 0x00,MISC,MISC,EOT}},
728 {0x5, "Keyboard",
729 /* 0xf0: Datasheet page 35: 0x00; page 59: 0x08. */
730 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
731 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
732 {0x6, "Mouse",
733 {0x30,0x70,0x71,0xf0,EOT},
734 {0x00,0x0c,0x02,0x00,EOT}},
735 {0x7, "GPIO",
736 /* 0x2c: Datasheet page 33: 0x00; page 45: 0x1f. */
737 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
738 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
739 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
740 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
741 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
742 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
743 {0x01,0x00,0x00,0x40,0x00,0x00,0x1f,0x00,0x00,0x00,
744 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
745 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
746 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
747 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
748 0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,0x00,EOT}},
749 {0x8, "MIDI port",
750 {0x30,0x60,0x61,0x70,0xf0,EOT},
751 {0x00,0x03,0x00,0x0a,0x00,EOT}},
752 {0x9, "Game port",
753 {0x30,0x60,0x61,EOT},
754 {0x00,0x02,0x01,EOT}},
755 {0xa, "Consumer IR",
756 {0x30,0x60,0x61,0x70,0xf0,EOT},
757 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000758 {EOT}}},
Андрей Павловab9b71d2013-03-17 19:11:05 +0300759 {0x8728, "IT8728F", {
760 {NOLDN, NULL,
761 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x2b,0x2e,0x2f,EOT},
762 {NANA,NANA,0x87,0x28,0x01,0x00,0x00,MISC,0x00,0x00,EOT}},
763 {0x0, "Floppy",
764 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
765 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
766 {0x1, "COM1",
767 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
768 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
769 {0x2, "COM2",
770 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
771 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
772 {0x3, "Parallel port",
773 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
774 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
775 {0x4, "Environment controller",
776 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
777 0xf3,0xf4,0xf5,0xf6,0xF9,0xFA,0xFB,EOT},
778 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
779 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
780 {0x5, "Keyboard",
781 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
782 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
783 {0x6, "Mouse",
784 {0x30,0x70,0x71,0xf0,EOT},
785 {0x00,0x0c,0x02,0x00,EOT}},
786 {0x7, "GPIO",
787 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,
788 0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,0x73,
789 0x74,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
790 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,
791 0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xe0,0xe1,
792 0xe2,0xe3,0xe4,0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,
793 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
794 {0x00,0xf3,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
795 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,
796 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
797 0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,
798 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
799 0x00,0x00,0x00,MISC,0x00,0x00,0x00,0x00,0x00,
800 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
801 {0xa, "Consumer IR",
802 {0x30,0x60,0x61,0x70,0xf0,EOT},
803 {0x00,0x03,0x10,0x0b,0x06,EOT}},
804 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000805 {0x8761, "IT8761E", {
806 {EOT}}},
Stefan Reinauerd7a75ec2011-10-25 17:12:53 +0000807 {0x8772, "IT8772F", {
808 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000809 {0x8780, "IT8780F", {
810 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +0200811 {0x8783, "IT8783E/F", {
812 {NOLDN, NULL,
813 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
814 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
815 EOT},
816 {NANA,NANA,0x87,0x83,0x00,0x00,MISC,0x00,0x00,
817 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
818 EOT}},
819 {0x0, "Floppy",
820 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
821 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
822 {0x1, "COM1",
823 {0x30,0x60,0x61,0x70,0xf0,EOT},
824 {0x00,0x03,0xf8,0x04,0x00,EOT}},
825 {0x2, "COM2",
826 {0x30,0x60,0x61,0x70,0xf0,EOT},
827 {0x00,0x02,0xf8,0x03,0x00,EOT}},
828 {0x3, "Parallel port",
829 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
830 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
831 {0x4, "Environment controller",
832 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
833 0xf3,0xf4,0xf5,0xf6,0xf7,EOT},
834 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
835 0x00,0x00,MISC,MISC,MISC,EOT}},
836 {0x5, "Keyboard",
837 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
838 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
839 {0x6, "Mouse",
840 {0x30,0x70,0x71,0xf0,EOT},
841 {0x00,0x0c,0x02,0x00,EOT}},
842 {0x7, "GPIO",
843 {0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,
844 0x73,0x74,0x81,0x82,0x83,0x84,0x91,0x92,0x93,
845 0x94,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
846 0xbb,0xbc,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,
847 0xca,0xcb,0xcc,0xcd,0xe0,0xe1,0xe2,0xe3,0xe4,
848 0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
849 0xf8,0xf9,0xfa,0xfb,EOT},
850 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,
851 0x38,0x00,0x00,MISC,0x38,0x00,0x00,MISC,0x38,
852 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
853 0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,0x00,
854 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
855 MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
856 0x00,0x00,0x00,0x00,EOT}},
857 {0x8, "COM3",
858 {0x30,0x60,0x61,0x70,0xf0,EOT},
859 {0x00,0x03,0xf8,0x04,0x00,EOT}},
860 {0x9, "COM4",
861 {0x30,0x60,0x61,0x70,0xf0,EOT},
862 {0x00,0x02,0xf8,0x03,0x00,EOT}},
863 {0xa, "COM5",
864 {0x30,0x60,0x61,0x70,0xf0,EOT},
865 {0x00,0x03,0xf8,0x04,0x00,EOT}},
866 {0xb, "COM6",
867 {0x30,0x60,0x61,0x70,0xf0,EOT},
868 {0x00,0x02,0xf8,0x03,0x00,EOT}},
869 {0xc, "Consumer IR",
870 {0x30,0x60,0x61,0x70,0xf0,EOT},
871 {0x00,0x03,0x10,0x0b,0x06,EOT}},
872 {EOT}}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000873 {EOT}
874};
875
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +0000876static const struct superio_registers ec_table[] = {
877 {0x8716, "IT8716F", {
878 {NOLDN, NULL,
879 {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,
880 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,
881 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
882 0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,
883 0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,
Uwe Hermann8cb24582008-05-08 13:50:23 +0000884 0x59,0x5c,
885 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,
886 0x69,0x6a,0x6b,0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,
887 0x75,0x84,0x85,0x86,0x87,0x88,0x89,0x8c,0x8d,0x8e,
888 0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,0x9a,
889 0x9b,0x9c,0x9d,EOT},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +0000890 {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,
891 NANA,NANA,0x07,0x50,NANA,NANA,NANA,NANA,NANA,NANA,
892 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
893 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
894 NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
Uwe Hermann8cb24582008-05-08 13:50:23 +0000895 0x00,0x00,
896 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +0000897 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
898 0x7f,NANA,NANA,NANA,NANA,0x00,0x00,0x02,0x00,0x99,
899 0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,
900 0x00,0x00,0x7f,EOT}},
901 {EOT}}},
Uwe Hermannbbd337e2008-05-08 14:37:12 +0000902 {0x8718, "IT8718F", {
903 {NOLDN, NULL,
904 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
905 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
906 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
907 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
908 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
909 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
910 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x56,
911 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
912 0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
913 0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,0x83,
914 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
915 0x92,0x94,0x95,0x96,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,
916 0xa6,EOT},
917 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
918 0x40,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
919 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
920 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
921 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
922 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
923 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x00,
924 0x00,0x90,0x00,0x12,0x00,0x00,0x00,0x00,0x7f,0x7f,
925 0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
926 0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,
927 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
928 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
929 0x00,EOT}},
930 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +0200931 {0x8783, "IT8783E/F", {
932 {NOLDN, NULL,
933 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
934 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
935 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
936 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
Nico Huber25445dc2016-09-29 12:22:30 +0200937 0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
938 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
939 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
940 0x48,0x49,0x4a,0x4b,0x50,0x51,0x52,0x53,0x54,0x55,
941 0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
942 0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
943 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x88,0x89,
944 0x8a,0x8b,0x8c,0x8d,0x8e,EOT},
Nico Hubere35a3742016-09-29 12:22:30 +0200945 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
946 0x54,0x09,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
947 0x50,MISC,MISC,MISC,NANA,NANA,NANA,MISC,MISC,MISC,
948 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
Nico Huber25445dc2016-09-29 12:22:30 +0200949 NANA,NANA,NANA,NANA,NANA,NANA,MISC,MISC,MISC,MISC,
Nico Hubere35a3742016-09-29 12:22:30 +0200950 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
Nico Huber25445dc2016-09-29 12:22:30 +0200951 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x5f,0x74,
952 0x2d,0x40,0xab,0x22,0x00,0x00,0x7f,0x7f,0x7f,0x50,
953 0x00,0x00,0x90,0x00,MISC,0x12,0x60,0x00,0x00,0x00,
954 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
955 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,MISC,0x00,
956 0x00,0x00,0x00,MISC,0x02,EOT}},
Nico Hubere35a3742016-09-29 12:22:30 +0200957 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +0000958 {EOT}
959};
960
Nico Huber28a13242013-04-25 15:10:46 +0200961static const struct superio_registers bram_table[] = {
962 {0x8516, "IT8516???", {
963 {NOLDN, NULL,
964 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
965 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
966 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
967 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
968 {NOLDN, NULL,
969 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
970 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
971 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
972 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
973 {NOLDN, NULL,
974 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
975 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
976 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
977 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
978 {NOLDN, NULL,
979 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
980 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
981 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
982 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
983 {NOLDN, NULL,
984 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
985 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
986 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
987 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
988 {NOLDN, NULL,
989 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
990 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
991 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
992 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
993 {NOLDN, NULL,
994 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
995 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
996 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
997 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
998 {NOLDN, NULL,
999 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1000 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1001 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1002 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1003 {NOLDN, NULL,
1004 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1005 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1006 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1007 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1008 {NOLDN, NULL,
1009 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1010 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1011 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1012 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1013 {NOLDN, NULL,
1014 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1015 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1016 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1017 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1018 {NOLDN, NULL,
1019 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1020 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1021 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1022 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1023 {NOLDN, NULL,
1024 {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1025 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,EOT},
1026 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1027 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1028 {EOT}}},
1029 {EOT}
1030};
1031
Urja Rannikko38204a22008-10-23 23:33:18 +00001032/* Works for: IT8661F/IT8770F */
1033static const uint8_t initkey_it8661f[][4] = {
1034 {0x86, 0x61, 0x55, 0x55}, /* 0x3f0 */
1035 {0x86, 0x61, 0x55, 0xaa}, /* 0x3bd */
1036 {0x86, 0x61, 0xaa, 0x55}, /* 0x370 */
1037};
1038
1039/* Works for: IT8671F/IT8687R, IT8673F */
1040static const uint8_t initkey_it8671f[][4] = {
1041 {0x86, 0x80, 0x55, 0x55}, /* 0x3f0 */
1042 {0x86, 0x80, 0x55, 0xaa}, /* 0x3bd */
1043 {0x86, 0x80, 0xaa, 0x55}, /* 0x370 */
1044};
1045
1046/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1047static const uint8_t initkey_mbpnp[] = {
1048 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37,
1049 0x1b, 0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45,
1050 0xa2, 0xd1, 0xe8, 0x74, 0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39,
1051};
1052
1053/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1054static void enter_conf_mode_ite_legacy(uint16_t port, const uint8_t init[][4])
1055{
1056 int i, idx;
1057
1058 /* Determine Super I/O config port. */
1059 idx = (port == 0x3f0) ? 0 : ((port == 0x3bd) ? 1 : 2);
1060 for (i = 0; i < 4; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001061 OUTB(init[idx][i], ISA_PNP_ADDR);
Urja Rannikko38204a22008-10-23 23:33:18 +00001062
1063 /* Sequentially write the 32 MB PnP init values. */
1064 for (i = 0; i < 32; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001065 OUTB(initkey_mbpnp[i], port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001066}
1067
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001068static void enter_conf_mode_ite(uint16_t port)
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001069{
Andriy Gaponb64aa602008-10-28 22:13:38 +00001070 OUTB(0x87, port);
1071 OUTB(0x01, port);
1072 OUTB(0x55, port);
1073 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001074}
1075
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001076static void enter_conf_mode_ite_it8502e(uint16_t port)
1077{
1078 OUTB(0x85, port);
1079 OUTB(0x02, port);
1080 OUTB(0x55, port);
1081 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1082}
1083
Uwe Hermannebb73f22008-11-12 19:08:58 +00001084static void enter_conf_mode_ite_it8761e(uint16_t port)
1085{
1086 OUTB(0x87, port);
1087 OUTB(0x61, port);
1088 OUTB(0x55, port);
1089 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1090}
1091
1092static void enter_conf_mode_ite_it8228e(uint16_t port)
1093{
1094 OUTB(0x82, port);
1095 OUTB(0x28, port);
1096 OUTB(0x55, port);
1097 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1098}
1099
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001100static void exit_conf_mode_ite(uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001101{
1102 regwrite(port, 0x02, 0x02);
1103}
1104
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001105static int chip_found_at_port;
1106
Uwe Hermannafe83092007-09-28 15:45:43 +00001107static void probe_idregs_ite_helper(const char *init, uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001108{
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001109 uint16_t id, chipver, ecport;
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001110
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001111 probing_for("ITE", init, port);
1112
Uwe Hermann07024692007-09-20 22:13:48 +00001113 id = regval(port, CHIP_ID_BYTE1_REG) << 8;
1114 id |= regval(port, CHIP_ID_BYTE2_REG);
1115 chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
1116
1117 if (superio_unknown(reg_table, id)) {
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001118 if (verbose)
1119 printf(NOTFOUND "id=0x%04x, rev=0x%01x\n", id, chipver);
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001120 return;
1121 }
1122
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001123 printf("Found ITE %s (id=0x%04x, rev=0x%01x) at 0x%x\n",
Uwe Hermann07024692007-09-20 22:13:48 +00001124 get_superio_name(reg_table, id), id, chipver, port);
Uwe Hermanne9d46162007-10-07 20:01:23 +00001125 chip_found = 1;
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001126 chip_found_at_port = 1;
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001127
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001128 dump_superio("ITE", reg_table, port, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001129
1130 if (extra_dump) {
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001131 regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001132
1133 /* Get EC base address (stored in LDN 4, index 0x60/0x61). */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001134 ecport = regval(port, 0x60) << 8;
1135 ecport |= regval(port, 0x61);
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001136
1137 /* EC address register = EC base address + 5. */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001138 ecport += 5;
1139
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001140 printf("Environment controller (0x%04x)\n", ecport);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001141 dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
Nico Huber28a13242013-04-25 15:10:46 +02001142
1143 regwrite(port, LDN_SEL, 0x10); /* Select LDN 16 (BRAM). */
1144 /* Get EC base address (stored in LDN 16, index 0x62/0x63). */
1145 ecport = regval(port, 0x62) << 8;
1146 ecport |= regval(port, 0x63);
1147 printf("BRAM (0x%04x)\n", ecport);
1148 dump_superio("ITE-BRAM", bram_table, ecport, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001149 }
Uwe Hermannb4db2202007-09-20 23:37:56 +00001150}
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001151
Uwe Hermannb4db2202007-09-20 23:37:56 +00001152void probe_idregs_ite(uint16_t port)
1153{
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001154 chip_found_at_port = 0;
1155
Urja Rannikko38204a22008-10-23 23:33:18 +00001156 if (port == 0x3f0 || port == 0x3bd || port == 0x370) {
1157 enter_conf_mode_ite_legacy(port, initkey_it8661f);
1158 probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
1159 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001160 if (chip_found_at_port)
1161 return;
Uwe Hermannb4db2202007-09-20 23:37:56 +00001162
Urja Rannikko38204a22008-10-23 23:33:18 +00001163 enter_conf_mode_ite_legacy(port, initkey_it8671f);
1164 probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
1165 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001166 if (chip_found_at_port)
1167 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001168 } else {
1169 enter_conf_mode_ite(port);
Uwe Hermannebb73f22008-11-12 19:08:58 +00001170 probe_idregs_ite_helper("(init=standard) ", port);
1171 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001172 if (chip_found_at_port)
1173 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001174
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001175 enter_conf_mode_ite_it8502e(port);
1176 probe_idregs_ite_helper("(init=it8502e) ", port);
1177 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001178 if (chip_found_at_port)
1179 return;
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001180
Uwe Hermannebb73f22008-11-12 19:08:58 +00001181 enter_conf_mode_ite_it8761e(port);
1182 probe_idregs_ite_helper("(init=it8761e) ", port);
1183 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001184 if (chip_found_at_port)
1185 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001186
1187 enter_conf_mode_ite_it8228e(port);
1188 probe_idregs_ite_helper("(init=it8228e) ", port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001189 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001190 if (chip_found_at_port)
1191 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001192
1193 enter_conf_mode_winbond_fintek_ite_8787(port);
1194 probe_idregs_ite_helper("(init=0x87,0x87) ", port);
1195 exit_conf_mode_winbond_fintek_ite_8787(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001196 if (chip_found_at_port)
1197 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001198 }
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001199}
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001200
1201void print_ite_chips(void)
1202{
1203 print_vendor_chips("ITE", reg_table);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001204 print_vendor_chips("ITE-EC", ec_table);
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001205}