blob: 9b29ceb1e9670668c39b82c4b2559f80d5246816 [file] [log] [blame]
Patrick Georgi7333a112020-05-08 20:48:04 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Uwe Hermann0120e1a2007-09-16 18:11:03 +00002
3#include "superiotool.h"
4
Uwe Hermann07024692007-09-20 22:13:48 +00005#define CHIP_ID_BYTE1_REG 0x20
6#define CHIP_ID_BYTE2_REG 0x21
7#define CHIP_VERSION_REG 0x22
Urja Rannikko38204a22008-10-23 23:33:18 +00008#define ISA_PNP_ADDR 0x279
Uwe Hermann07024692007-09-20 22:13:48 +00009
Uwe Hermann246be7d2007-10-31 22:22:11 +000010static const struct superio_registers reg_table[] = {
Michael Niewöhnerff23a582020-10-19 00:37:35 +020011 {0x5570, "IT5570E", {
12 {NOLDN, NULL,
13 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2d,EOT},
14 {0x55,0x70,NANA,0x01,RSVD,0x00,0x00,RSVD,RSVD,RSVD,RSVD,RSVD,0x00,EOT}},
15 {0x01, "Serial Port 1 (UART1)",
16 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
17 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,0x00,EOT}},
18 {0x02, "Serial Port 2 (UART2)",
19 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
20 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,0x00,EOT}},
21 {0x04, "System Wake-Up Control (SWUC)",
22 {0x30,0x60,0x61,0x70,0x71,EOT},
23 {0x00,0x00,0x00,0x00,0x01,EOT}},
24 {0x05, "KBC Mouse",
25 {0x30,0x70,0x71,EOT},
26 {0x00,0x0c,0x01,EOT}},
27 {0x06, "KBC Keyboard",
28 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
29 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
30 {0x0a, "Consumer IR",
31 {0x30,0x60,0x61,0x70,0x71,EOT},
32 {0x00,0x03,0x10,0x00,0x02,EOT}},
33 {0x0f, "Shared Memory/Flash Interface (SMFI)",
34 {0x30,0x60,0x61,0x70,0x71,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,
35 0xf9,0xfa,0xfb,0xfc,EOT},
36 {0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
37 0x00,0x00,0x00,0x01,EOT}},
38 {0x10, "RTC-like Timer (RTC)",
39 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0xf0,
40 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
41 {0x00,0x00,0x70,0x02,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x01,0x00,
42 0x49,0x4a,0x00,0x00,0x00,EOT}},
43 {0x11, "Power Management Interface Channel 1 (PMC1)",
44 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
45 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
46 {0x12, "Power Management Interface Channel 2 (PMC2)",
47 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
48 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
49 {0x13, "Serial Peripheral Interface (SSPI)",
50 {0x30,0x60,0x61,0x70,0x71,EOT},
51 {0x00,0x03,0x00,0x00,0x02,EOT}},
52 {0x14, "Platform Environment Control Interface (PECI)",
53 {0x30,0x60,0x61,EOT},
54 {0x00,0x00,0x00,EOT}},
55 {0x17, "Power Management Interface Channel 3 (PMC3)",
56 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
57 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
58 {0x18, "Power Management Interface Channel 4 (PMC4)",
59 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
60 {0x00,0x00,0x74,0x00,0x78,0x01,0x01,EOT}},
61 {0x19, "Power Management Interface Channel 5 (PMC5)",
62 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
63 {0x00,0x00,0x7a,0x00,0x7c,0x01,0x01,EOT}},
64 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +000065 {0x8228, "IT8228E", {
66 {EOT}}},
Donald Huang03e54de2010-08-10 23:34:51 +000067 {0x8500, "IT8500B/E", {
68 {NOLDN, NULL,
69 {0x20,0x21,0x22,0x23,0x25,0x2d,0x2e,0x2f,0x30,EOT},
70 {0x85,0x00,0x01,0x01,0x00,0x00,NANA,NANA,0x00,EOT}},
71 {0x04, "System Wake-Up Control (SWUC)",
72 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
73 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
74 {0x05, "KBC/Mouse Interface",
75 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
76 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
77 {0x06, "KBC/Keyboard Interface",
78 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
79 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
80 {0x0f, "Shared Memory/Flash Interface (SMFI)",
81 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
82 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
83 {0x10, "BRAM",
84 {0x30,0x62,0x63,0x70,0x71,0xf3,0xf4,0xf5,EOT},
85 {0x00,0x00,0x72,0x08,0x01,NANA,NANA,NANA,EOT}},
86 {0x11, "Power Management I/F Channel 1 (PMC1)",
87 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
88 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
89 {0x12, "Power Management I/F Channel 2 (PMC2)",
90 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
91 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
92 {EOT}}},
Anton Kochkov106f7ff2010-06-29 21:26:17 +000093 {0x8502, "IT8502E/TE/G", {
94 {NOLDN, NULL,
95 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
96 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
97 {0x85,0x02,0x71,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
98 NANA,NANA,NANA,0x00,NANA,EOT}},
99 {0x1, "UART1",
100 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
101 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,0x00,EOT}},
102 {0x4, "System Wake-Up",
103 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
104 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,EOT}},
105 {0x5, "Mouse",
106 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
107 {0x01,0x00,0x00,0x00,0x00,0x0C,0x01,NANA,EOT}},
108 {0x6, "Keyboard",
109 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
110 {0x01,0x00,0x60,0x00,0x64,0x01,0x01,NANA,EOT}},
111 {0xf, "Shared Memory/Flash",
112 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
113 0xf6,EOT},
114 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
115 0x00,EOT}},
116 {0x10, "BRAM",
117 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
118 0xf5,EOT},
119 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,NANA,NANA,
120 NANA,EOT}},
121 {0x11, "Power Channel 1",
122 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
123
124 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
125 {0x12, "Power Channel 2",
126 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
127 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
128 {0x17, "Power Channel 3",
129 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
130 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
131 {EOT}}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000132 {0x8510, "IT8510E/TE/G", {
Anders Juel Jensen28e4af52010-08-22 19:41:47 +0000133 {NOLDN, "Chip ID",
134 {0x20,0x21, EOT},
135 {0x85,0x10, EOT}},
136 {NOLDN, "Chip Version",
137 {0x22,EOT},
138 {0x21,EOT}},
Patrick Georgi220c2092020-01-30 12:58:08 +0100139 {NOLDN, "Super I/O Control Register (SIOCTRL)",
Anders Juel Jensen28e4af52010-08-22 19:41:47 +0000140 {0x23,EOT},
141 {0x01,EOT}},
142 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
143 {0x25,EOT},
144 {0x00,EOT}},
145 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
146 {0x26,EOT},
147 {0x00,EOT}},
148 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
149 {0x2d,EOT},
150 {0x00,EOT}},
151 {NOLDN, "Logical Device Activate Register (LDA)",
152 {0x30,EOT},
153 {0x00,EOT}},
154 {NOLDN, "I/O Port Base Address for Descriptor 0 (IOBAD0)",
155 {0x60,0x61,EOT},
156 {NANA,NANA,EOT}},
157 {NOLDN, "I/O Port Base Address for Descriptor 1 (IOBAD1)",
158 {0x62,0x63,EOT},
159 {NANA,NANA,EOT}},
Elyes HAOUAS073d22b2018-08-23 18:21:35 +0200160 {NOLDN, "Interrupt Request Number and Wake-Up on IRQ Enable (IRQNUMX)",
Anders Juel Jensen28e4af52010-08-22 19:41:47 +0000161 {0x70,EOT},
162 {NANA,EOT}},
163 {NOLDN, "Interrupt Request Type Select (IRQTP)",
164 {0x71,EOT},
165 {NANA,EOT}},
166 {NOLDN, "DMA Channel Select 0 (DMAS0)",
167 {0x74,EOT},
168 {0x04,EOT}},
169 {NOLDN, "DMA Channel Select 1 (DMAS1)",
170 {0x75,EOT},
171 {0x04,EOT}},
172 {0x4, "System Wakup-Up (SWUC)",
173 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
174 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
175 {0x5, "Keyboard/Mouse",
176 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
177 {0x00,0x00,0x00,0x00,0x00,0x0c,0x03,EOT}},
178 {0x6, "Keyboard/Mouse",
179 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
180 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,EOT}},
181 {0xf, "Shared Memory/Flash Interface (SMFI)",
182 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
183 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
184 {0x10, "Real Time Clock (RTC)",
185 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
186 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
187 {0x11, "Power Management Interface Channel 1",
188 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
189 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
190 {0x12, "Power Management Interface Channel 2",
191 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
192 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000193 {EOT}}},
194 {0x8511, "IT8511E/TE/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000195 {NOLDN, NULL,
196 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
197 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
198 {0x85,0x11,0x10,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
199 NANA,NANA,NANA,0x00,NANA,EOT}},
200 {0x4, "System Wake-Up",
201 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
202 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,EOT}},
203 {0x5, "Mouse",
204 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
205 {0x01,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
206 {0x6, "Keyboard",
207 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
208 {0x01,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
209 {0xf, "Shared Memory/Flash",
210 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
211 0xf6,EOT},
212 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
213 0x00,EOT}},
214 {0x10, "Real-Time Clock",
215 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,
216 0xf2,0xf3,0xf4,0xf5,EOT},
217 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,
218 0x4A,NANA,NANA,NANA,EOT}},
219 {0x11, "Power Channel 1",
220 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
221 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
222 {0x12, "Power Channel 2",
223 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
224 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000225 {EOT}}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000226 {0x8512, "IT8512E/F/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000227 {NOLDN, NULL,
228 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
229 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
230 {0x85,0x12,0x22,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
231 NANA,NANA,NANA,0x00,NANA,EOT}},
232 {0x4, "System Wake-Up",
233 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
234 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
235 {0x5, "Mouse",
236 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
237 {0x00,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
238 {0x6, "Keyboard",
239 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
240 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
241 {0xf, "Shared Memory/Flash",
242 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
243 0xf6,EOT},
244 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
245 0x00,EOT}},
246 {0x10, "BRAM",
247 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
248 0xf5,EOT},
249 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,NANA,NANA,
250 NANA,EOT}},
251 {0x11, "Power Channel 1",
252 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
253 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
254 {0x12, "Power Channel 2",
255 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
256 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000257 {EOT}}},
258 {0x8513, "IT8513E/F/G", {
259 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +0200260 {0x8516, "IT8516???", {
261 {NOLDN, "Chip ID",
262 {0x20,0x21, EOT},
263 {0x85,0x16, EOT}},
264 {NOLDN, "Chip Version",
265 {0x22,EOT},
266 {0x63,EOT}},
Patrick Georgi220c2092020-01-30 12:58:08 +0100267 {NOLDN, "Super I/O Control Register (SIOCTRL)",
Nico Huber28a13242013-04-25 15:10:46 +0200268 {0x23,EOT},
269 {0x01,EOT}},
270 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
271 {0x25,EOT},
272 {0x00,EOT}},
273 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
274 {0x26,EOT},
275 {0x00,EOT}},
276 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
277 {0x2d,EOT},
278 {0x00,EOT}},
279 {0x01, "UART1",
280 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
281 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
282 {0x02, "UART2",
283 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
284 {0x00,0x02,0xf8,0x00,0x00,0x04,0x02,EOT}},
285 {0x04, "System Wakup-Up (SWUC)",
286 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
287 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
288 {0x05, "Mouse",
289 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
290 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
291 {0x06, "Keyboard",
292 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
293 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
294 {0x0f, "Shared Memory/Flash Interface (SMFI)",
295 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
296 0xf4,0xf5,EOT},
297 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
298 NANA,NANA,EOT}},
299 {0x10, "BRAM / Real Time Clock (RTC)",
300 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
301 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
302 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
303 NANA,NANA,NANA,NANA,NANA,EOT}},
304 {0x11, "Power Management Interface Channel 1",
305 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
306 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
307 {0x12, "Power Management Interface Channel 2",
308 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
309 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
310 {0x17, "Power Management Interface Channel 3",
311 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
312 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
313 {EOT}}},
Patrick Rudolph6085d392019-01-09 16:42:07 +0100314 {0x8528, "IT8528", {
315 {NOLDN, NULL,
316 {0x24,0x25,0x26,0x27,0x28,0x29,
317 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
318 {0x00,0x00,0x00,0x00,0x00,0x00,
319 0x00,0x00,0x01,0x00,0x00,EOT}},
320 {NOLDN, "Chip ID",
321 {0x20,0x21, EOT},
322 {0x85,0x28, EOT}},
323 {NOLDN, "Chip Version",
324 {0x22,EOT},
325 {0x0a,EOT}},
326 {NOLDN, "Super I/O Control Register (SIOCTRL)",
327 {0x23,EOT},
328 {0x01,EOT}},
329 {0x01, "UART1",
330 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
331 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
332 {0x02, "UART2",
333 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
334 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,EOT}},
335 {0x04, "System Wake-Up (SWUC)",
336 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
337 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
338 {0x05, "Mouse",
339 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
340 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
341 {0x06, "Keyboard",
342 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
343 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
344 {0x0f, "Shared Memory/Flash Interface (SMFI)",
345 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
346 0xf4,0xf5,EOT},
347 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
348 NANA,NANA,EOT}},
349 {0x10, "BRAM / Real Time Clock (RTC)",
350 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
351 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
352 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
353 NANA,NANA,NANA,NANA,NANA,EOT}},
354 {0x11, "Power Channel 1",
355 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
356 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
357 {0x12, "Power Channel 2",
358 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
359 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
360 {0x17, "Power Channel 3",
361 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
362 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
363 {0x18, "Power Channel 4",
364 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
365 {0x00,0x00,0x74,0x00,0x78,0x01,0x01,EOT}},
366 {0x19, "Power Channel 5",
367 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
368 {0x00,0x00,0x7a,0x00,0x7c,0x01,0x01,EOT}},
369 {EOT}}},
Krystian Hebel9e3c3022019-02-26 14:20:52 +0100370 {0x8613, "IT8613E", {
371 {NOLDN, NULL,
372 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
373 {0x86,0x13,0x05,0x40,0x00,0x48,EOT}},
374 {0x1, "COM1",
375 {0x30,0x60,0x61,0x70,0xf0,EOT},
376 {0x00,0x03,0xf8,0x04,0x00,EOT}},
377 {0x4, "Environment controller",
378 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
379 0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
380 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
381 0x00,NANA,NANA,0x00,0x00,0x00,EOT}},
382 {0x5, "Keyboard",
383 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
384 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
385 {0x6, "Mouse",
386 {0x30,0x70,0x71,0xf0,EOT},
387 {0x00,0x0c,0x02,0x00,EOT}},
388 {0x7, "GPIO",
389 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,0x61,
390 0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,0xb2,
391 0xb3,0xb4,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
392 0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xda,0xdb,
393 0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,0xf2,0xf3,
394 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
395 {0x00,0xF3,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
396 0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,0x00,
397 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
398 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
399 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,NANA,
400 0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
401 {0xa, "Consumer IR",
402 {0x30,0x60,0x61,0x70,0xf0,EOT},
403 {0x00,0x03,0x10,0x0b,0x06,EOT}},
404 {EOT}}},
Angel Pons75439de2021-02-09 16:19:08 +0100405 {0x8616, "IT8616E/IT8656E", {
406 /* Derived from IT8625E, defaults dumped from hardware */
407 {NOLDN, NULL,
408 {0x20,0x21,0x22,0x23,0x24,EOT},
409 {0x86,0x16,MISC,0x40,0x00,EOT}},
410 {0x3, "Parallel port (unusable)",
411 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xf0,EOT},
412 {0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x00,0x00,0x04,0x0b,EOT}},
413 {0x4, "Environment controller",
414 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
415 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
416 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
417 0x00,0xe0,0x00,NANA,0x48,0x00,0x00,0x00,0x40,EOT}},
418 {0x5, "Keyboard",
419 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
420 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
421 {0x6, "Mouse",
422 {0x30,0x70,0x71,0xf0,EOT},
423 {0x00,0x0c,0x02,0x00,EOT}},
424 {0x7, "GPIO",
425 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x60,
426 0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
427 0xb2,0xb3,0xb4,0xb5,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,
428 0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,
429 0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
430 0xd8,0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,
431 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
432 {0x00,0xf3,0x00,0x00,0x00,0x01,0x48,0x01,0x00,0x00,
433 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
434 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x03,0x01,
435 0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
436 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,
437 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
438 0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
439 {0xa, "Consumer IR",
440 {0x30,0x60,0x61,0x70,0xf0,EOT},
441 {0x00,0x03,0x10,0x0b,0x06,EOT}},
442 {EOT}}},
Gergely Kiss64e07992018-01-04 05:46:02 +0100443 {0x8623, "IT8623E", {
444 /* Defaults are not specified as no datasheet available */
445 {NOLDN, NULL,
446 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
447 {0x86,0x23,0x01,NANA,NANA,NANA,EOT}},
448 {0x0, "Floppy",
449 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
450 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
451 {0x1, "COM1",
452 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
453 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
454 {0x2, "COM2",
455 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
456 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
457 {0x3, "Parallel port",
458 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
459 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
460 {0x4, "Environment controller",
461 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
462 0xf4,0xf5,0xf6,EOT},
463 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
464 NANA,NANA,NANA,EOT}},
465 {0x5, "Keyboard",
466 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
467 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
468 {0x6, "Mouse",
469 {0x30,0x70,0x71,0xf0,EOT},
470 {NANA,NANA,NANA,NANA,EOT}},
471 {0x7, "GPIO",
472 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
473 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
474 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
475 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
476 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
477 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
478 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
479 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
480 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
481 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
482 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
483 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
484 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
485 NANA,NANA,NANA,NANA,NANA,EOT}},
486 {EOT}}},
Angel Pons86afb172021-02-09 14:29:55 +0100487 {0x8625, "IT8625E", {
488 {NOLDN, NULL,
489 {0x20,0x21,0x22,0x23,0x24,EOT},
490 {0x86,0x25,MISC,0x40,0x00,EOT}},
491 {0x1, "COM1",
492 {0x30,0x60,0x61,0x70,0xf0,EOT},
493 {0x00,0x03,0xf8,0x04,0x00,EOT}},
494 {0x2, "COM2",
495 {0x30,0x60,0x61,0x70,0xf0,EOT},
496 {0x00,0x02,0xf8,0x03,0x00,EOT}},
497 {0x3, "Parallel port",
498 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
499 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x0b,EOT}},
500 {0x4, "Environment controller",
501 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
502 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
503 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
504 0x00,0x00,0x00,NANA,0x48,0x00,0x00,0x00,0x40,EOT}},
505 {0x5, "Keyboard",
506 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
507 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
508 {0x6, "Mouse",
509 {0x30,0x70,0x71,0xf0,EOT},
510 {0x00,0x0c,0x02,0x00,EOT}},
511 {0x7, "GPIO",
512 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x60,
513 0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
514 0xb2,0xb3,0xb4,0xb5,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,
515 0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,
516 0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
517 0xd8,0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,
518 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
519 {0x00,0xf3,0x00,0x00,0x00,0x00,0x48,0x01,0x00,0x00,
520 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
521 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
522 0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
523 0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,
524 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
525 0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
526 {0xa, "Consumer IR",
527 {0x30,0x60,0x61,0x70,0xf0,EOT},
528 {0x00,0x03,0x10,0x0b,0x06,EOT}},
529 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000530 {0x8661, "IT8661F/IT8770F", {
Robinson P. Tryondc817692007-10-05 13:47:04 +0000531 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000532 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
533 0x23,0x24,EOT},
534 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x61,0x00,
535 0x00,0x00,EOT}},
Robinson P. Tryondc817692007-10-05 13:47:04 +0000536 {0x0, "Floppy",
537 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
538 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
539 {0x1, "COM1",
540 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
541 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
542 {0x2, "COM2",
543 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
544 {0x00,0x00,0x02,0xf8,0x03,0x02,0x00,EOT}},
545 {0x3, "Parallel port",
546 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
547 0xf0,EOT},
548 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
549 0x03,EOT}},
550 {0x4, "IR",
551 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
552 0x74,0x75,0xf0,EOT},
553 {0x00,0x00,0x02,0xe8,0x03,0x00,0x0a,0x02,0x0b,0x02,
554 0x01,0x00,0x00,EOT}},
555 {0x5, "GPIO",
556 {0x25,0x26,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
557 0x70,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
558 0xf9,0xfa,0xfb,0xfc,EOT},
559 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
560 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
561 0x00,0x00,0x00,0x00,EOT}},
562 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000563 {0x8673, "IT8673F", {
564 {EOT}}},
565 {0x8681, "IT8671F/IT8687R", {
Anders Jenbo14db1c02010-05-08 23:28:33 +0000566 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000567 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
568 0x23,0x24,0x25,0x26,0x2e,0x2f,EOT},
569 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x81,0x00,
570 0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
571 {0x0, "Floppy",
572 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
573 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000574 {0x1, "COM1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000575 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
576 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000577 {0x2, "COM2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000578 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
579 0x74,0x75,0xf0,0xf1,EOT},
580 {0x00,0x00,0x02,0xf8,0x03,0x00,0x03,0x02,0x0a,0x02,
581 0x00,0x01,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000582 {0x3, "Parallel port",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000583 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
584 0xf0,EOT},
585 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
586 0x03,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000587 {0x4, "APC",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000588 {0x30,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,EOT},
589 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000590 {0x5, "Keyboard",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000591 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
592 {MISC,0x00,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000593 {0x6, "Mouse",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000594 {0x30,0x70,0x71,0xf0,EOT},
595 {0x00,0x0c,0x02,0x00,EOT}},
596 {0x7, "GPIO",
597 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
598 0x70,0x71,0x72,0x73,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,
599 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
600 0xe0,0xe1,0xe2,0xe3,0xe4,EOT},
601 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
602 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
603 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
604 0x00,0x00,0x00,0x00,0x00,EOT}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000605 {EOT}}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000606 {0x8701, "IT8703F", {
607 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000608 {0x20,0x21,0x23,0x24,0x26,0x29,0x2a,0x2b,EOT},
609 {0x87,0x00,0x00,0x80,0x00,0x00,0x7c,0xc0,EOT}},
610 {0x0, "Floppy",
611 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf3,0xf4,
612 0xf5,EOT},
613 {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000614 0x00,EOT}},
615 {0x1, "Parallel port",
616 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
617 {0x00,0x03,0x78,0x00,0x80,0x07,0x03,0x03,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000618 {0x2, "COM1",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000619 {0x30,0x60,0x61,0x70,0xf0,EOT},
620 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000621 {0x3, "COM2",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000622 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
623 {0x00,0x02,0xf8,0x03,0x00,0x00,0x00,0x7f,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000624 {0x5, "Keyboard",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000625 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000626 {0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x80,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000627 {0x6, "Consumer IR",
628 {0x30,0x60,0x61,0x70,EOT},
629 {0x00,0x00,0x00,0x00,EOT}},
630 {0x7, "Game port, MIDI, GPIO set 1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000631 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,EOT},
632 {0x00,0x02,0x01,0x03,0x30,0x00,0xff,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000633 {0x8, "GPIO set 2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000634 {0x30,0xf0,0xf1,0xf2,0xf3,0xf5,EOT},
635 {0x00,0xff,0x00,0x00,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000636 {0x9, "GPIO set 3 and 4",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000637 {0x30,0x60,0x61,0xf0,0xf1,0xf2,0xf3,0xf4,EOT},
638 {0x00,0x02,0x90,0xff,0x00,0x00,0x00,0x00,EOT}},
639 {0xa, "ACPI",
640 {0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
641 0xf3,0xf4,0xf6,0xf7,0xf9,EOT},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000642 {0x00,0x00,0x00,0x00,NANA,NANA,0x00,0x00,0x00,0x00,
643 NANA,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000644 {0xc, "GPIO set 5, 6 and 7",
645 {0x30,0x60,0x61,0xf0,0xf3,0xf6,EOT},
646 {0x00,0x03,0x70,0x00,0xff,0xff,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000647 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000648 {0x8702, "IT8702F", {
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000649 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000650 {0x8705, "IT8705F/AF / IT8700F", {
Robinson P. Tryon43541032007-10-04 15:44:19 +0000651 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000652 {0x20,0x21,0x22,0x23,0x24,EOT},
653 {0x87,0x05,0x00,0x00,NANA,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000654 {0x0, "Floppy",
655 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
656 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
657 {0x1, "COM1",
658 {0x30,0x60,0x61,0x70,0xf0,EOT},
659 {0x00,0x03,0xf8,0x04,0x00,EOT}},
660 {0x2, "COM2",
661 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
662 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
663 {0x3, "Parallel port",
664 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
665 0xf0,EOT},
666 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
667 0x03,EOT}},
668 {0x4, "Environment controller",
669 {0x2b,0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
670 0xf3,0xf4,0xf5,0xf6,EOT},
671 {0x00,0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
672 0x00,0x00,NANA,NANA,EOT}},
673 {0x5, "GPIO",
Robinson P. Tryondc817692007-10-05 13:47:04 +0000674 {0x25,0x26,0x27,0x28,0x29,0x2a,0x60,0x61,0x62,0x63,
675 0x64,0x65,0x70,0x71,0x72,0xb0,0xb1,0xb2,0xb3,0xb4,
676 0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
677 0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xd0,
678 0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd8,0xd9,0xda,0xf0,
679 0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,
680 0xfd,0xfe,0xff,EOT},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000681 {0x00,0x00,0x00,0xff,0xe0,0xff,0x00,0x00,0x00,0x00,
682 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
683 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
684 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
685 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
686 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Robinson P. Tryondc817692007-10-05 13:47:04 +0000687 0x00,NANA,0x00,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000688 {0x6, "Game port",
689 {0x30,0x60,0x61,EOT},
690 {0x00,0x02,0x01,EOT}},
691 {0x7, "Consumer IR",
692 {0x30,0x60,0x61,0x70,0xf0,EOT},
693 {0x00,0x03,0x10,0x0b,0x00,EOT}},
694 {0x8, "MIDI port",
695 {0x30,0x60,0x61,0x70,0xf0,EOT},
696 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000697 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000698 {0x8706, "IT8706R", { /* TODO: Not yet in sensors-detect */
699 /* This is a "Special General Purpose I/O chip". */
700 {EOT}}},
Mattias Mattsson25bf69a2010-08-02 02:34:20 +0000701 {0x8707, "IT8707F", {
702 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000703 {0x8708, "IT8708F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000704 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000705 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
706 0x2a,0x2e,0x2f,EOT},
707 {0x87,0x08,0x00,0x00,NANA,0x3f,0x00,0xff,0xff,0xff,
708 0xff,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000709 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000710 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
711 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000712 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000713 {0x30,0x60,0x61,0x70,0xf0,EOT},
714 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000715 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000716 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
717 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000718 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000719 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
720 0xf0,EOT},
721 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
722 0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000723 {0x4, "SWC",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000724 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
725 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,EOT},
726 {NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
727 0x00,0x00,0x00,0x00,0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000728 {0x5, "Keyboard",
Uwe Hermann2c290e32007-09-20 00:00:49 +0000729 /* Note: 0x30 can actually be 0x00 _or_ 0x01. */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000730 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
731 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000732 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000733 {0x30,0x70,0x71,0xf0,EOT},
734 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000735 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000736 {0x70,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,
737 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,
738 0xc9,0xca,0xcb,0xcc,0xcd,0xd0,0xd1,0xd2,0xd3,0xd4,
739 0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xf0,0xf1,
740 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,
741 0xfc,EOT},
742 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
743 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
744 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
745 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x00,
746 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
747 0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000748 {0x8, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000749 {0x30,0x60,0x61,EOT},
750 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000751 {0x9, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000752 {0x30,0x60,0x61,0x70,0xf0,EOT},
753 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000754 {0xa, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000755 {0x30,0x60,0x61,0x70,0xf0,EOT},
756 {0x00,0x03,0x00,0x0a,0x00,EOT}},
757 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000758 {0x8710, "IT8710F", { /* TODO: Not yet in sensors-detect */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000759 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000760 {0x8711, "IT8711F", { /* 0x8711 is a guess, not found in datasheet. */
761 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000762 {0x8712, "IT8712F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000763 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000764 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
765 {0x87,0x12,0x08,0x00,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000766 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000767 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
768 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000769 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000770 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
771 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000772 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000773 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
774 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000775 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000776 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
777 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000778 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000779 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
780 0xf4,0xf5,0xf6,EOT},
781 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
782 0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000783 {0x5, "Keyboard",
784 /* TODO: 0xf0: Error in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000785 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
786 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000787 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000788 {0x30,0x70,0x71,0xf0,EOT},
789 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000790 {0x7, "GPIO", /* TODO: 0x72, 0x73: Errors in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000791 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
792 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
793 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
794 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
795 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
796 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
797 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
Uwe Hermann07024692007-09-20 22:13:48 +0000798 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000799 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
800 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
801 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
802 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000803 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000804 {0x30,0x60,0x61,0x70,0xf0,EOT},
805 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000806 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000807 {0x30,0x60,0x61,EOT},
808 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000809 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000810 {0x30,0x60,0x61,0x70,0xf0,EOT},
811 {0x00,0x03,0x10,0x0b,0x00,EOT}},
812 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000813 {0x8716, "IT8716F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000814 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000815 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
816 {0x87,0x16,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000817 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000818 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
819 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000820 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000821 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
822 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000823 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000824 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
825 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000826 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000827 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
828 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000829 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000830 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
831 0xf4,0xf5,0xf6,EOT},
832 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
833 0x00,NANA,NANA,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000834 {0x5, "Keyboard",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000835 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
836 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000837 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000838 {0x30,0x70,0x71,0xf0,EOT},
839 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000840 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000841 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
842 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
843 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
844 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
845 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
846 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
847 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
848 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
849 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
850 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
851 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
852 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000853 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000854 {0x30,0x60,0x61,0x70,0xf0,EOT},
855 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000856 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000857 {0x30,0x60,0x61,EOT},
858 {0x00,0x02,0x01,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000859 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000860 {0x30,0x60,0x61,0x70,0xf0,EOT},
861 {0x00,0x03,0x10,0x0b,0x00,EOT}},
862 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000863 {0x8718, "IT8718F", {
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000864 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000865 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
866 {0x87,0x18,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000867 {0x0, "Floppy",
868 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
869 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
870 {0x1, "COM1",
871 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
872 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
873 {0x2, "COM2",
874 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
875 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
876 {0x3, "Parallel port",
877 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
878 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
879 {0x4, "Environment controller",
880 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
881 0xf4,0xf5,0xf6,EOT},
882 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
883 0x00,NANA,NANA,EOT}},
884 {0x5, "Keyboard",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000885 /* 0xf0: Datasheet page 33: 0x00; page 56: 0x08. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000886 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
887 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
888 {0x6, "Mouse",
889 {0x30,0x70,0x71,0xf0,EOT},
890 {0x00,0x0c,0x02,0x00,EOT}},
891 {0x7, "GPIO",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000892 /* 0x2c: Datasheet page 30: 0x00; page 43: 0x1f. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000893 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
894 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
895 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000896 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,
897 0xcc,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,
898 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
899 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000900 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
901 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
902 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000903 0x01,0x00,0x00,0x40,0x00,0x00,0x01,0x00,0x00,0x40,
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000904 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
905 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000906 0x00,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000907 {0xa, "Consumer IR",
908 {0x30,0x60,0x61,0x70,0xf0,EOT},
909 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000910 {EOT}}},
Christian Ruppert7c2eec02011-02-03 16:00:28 +0000911 {0x8720, "IT8720F", {
912 {NOLDN, NULL,
913 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
914 {0x87,0x20,0x05,0x00,0x00,0x00,EOT}},
915 {0x0, "Floppy",
916 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
917 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
918 {0x1, "COM1",
919 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
920 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
921 {0x2, "COM2",
922 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
923 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
924 {0x3, "Parallel port",
925 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
926 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
927 {0x4, "Environment controller",
928 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
929 0xf4,0xf5,0xf6,EOT},
930 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
931 0x00,NANA,NANA,EOT}},
932 {0x5, "Keyboard",
933 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
934 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
935 {0x6, "Mouse",
936 {0x30,0x70,0x71,0xf0,EOT},
937 {0x00,0x0c,0x02,0x00,EOT}},
938 {0x7, "GPIO",
939 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
940 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
941 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
942 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
943 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
944 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
945 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
946 {0x00,0xff,0x00,0x40,0x00,0x00,0x03,0x00,0x00,0x00,
947 0x00,0x00,0x00,0x00,0x00,NANA,0x38,0x00,0x00,0x00,
948 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
949 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
950 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,
951 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
952 0x00,NANA,0x00,0x00,0x00,EOT}},
953 {0xa, "Consumer IR",
954 {0x30,0x60,0x61,0x70,0xf0,EOT},
955 {0x00,0x03,0x10,0x0b,0x06,EOT}},
Uwe Hermanncfb6ac72008-10-01 20:16:58 +0000956 {EOT}}},
Uwe Hermannf9bd9ae2011-01-01 22:05:57 +0000957 {0x8721, "IT8721F", {
958 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000959 {0x8722, "IT8722F", {
960 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000961 {0x8726, "IT8726F", {
962 /* Datasheet wrongly says that the ID is 0x8716. */
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000963 {NOLDN, NULL,
964 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
965 {0x87,0x26,0x01,0x00,MISC,0x00,EOT}},
966 {0x0, "Floppy",
967 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
968 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
969 {0x1, "COM1",
970 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
971 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
972 {0x2, "COM2",
973 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
974 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
975 {0x3, "Parallel port",
976 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
977 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
978 {0x4, "Environment controller",
979 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
980 0xf4,0xf5,0xf6,EOT},
981 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
982 0x00,MISC,MISC,EOT}},
983 {0x5, "Keyboard",
984 /* 0xf0: Datasheet page 35: 0x00; page 59: 0x08. */
985 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
986 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
987 {0x6, "Mouse",
988 {0x30,0x70,0x71,0xf0,EOT},
989 {0x00,0x0c,0x02,0x00,EOT}},
990 {0x7, "GPIO",
991 /* 0x2c: Datasheet page 33: 0x00; page 45: 0x1f. */
992 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
993 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
994 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
995 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
996 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
997 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
998 {0x01,0x00,0x00,0x40,0x00,0x00,0x1f,0x00,0x00,0x00,
999 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
1000 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1001 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1002 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1003 0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,0x00,EOT}},
1004 {0x8, "MIDI port",
1005 {0x30,0x60,0x61,0x70,0xf0,EOT},
1006 {0x00,0x03,0x00,0x0a,0x00,EOT}},
1007 {0x9, "Game port",
1008 {0x30,0x60,0x61,EOT},
1009 {0x00,0x02,0x01,EOT}},
1010 {0xa, "Consumer IR",
1011 {0x30,0x60,0x61,0x70,0xf0,EOT},
1012 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann44bb7772007-10-07 21:50:29 +00001013 {EOT}}},
Андрей Павловab9b71d2013-03-17 19:11:05 +03001014 {0x8728, "IT8728F", {
1015 {NOLDN, NULL,
1016 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x2b,0x2e,0x2f,EOT},
1017 {NANA,NANA,0x87,0x28,0x01,0x00,0x00,MISC,0x00,0x00,EOT}},
1018 {0x0, "Floppy",
1019 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
1020 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
1021 {0x1, "COM1",
1022 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
1023 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
1024 {0x2, "COM2",
1025 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
1026 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
1027 {0x3, "Parallel port",
1028 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1029 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1030 {0x4, "Environment controller",
1031 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1032 0xf3,0xf4,0xf5,0xf6,0xF9,0xFA,0xFB,EOT},
1033 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1034 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1035 {0x5, "Keyboard",
1036 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1037 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1038 {0x6, "Mouse",
1039 {0x30,0x70,0x71,0xf0,EOT},
1040 {0x00,0x0c,0x02,0x00,EOT}},
1041 {0x7, "GPIO",
1042 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,
1043 0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,0x73,
1044 0x74,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
1045 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,
1046 0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xe0,0xe1,
1047 0xe2,0xe3,0xe4,0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,
1048 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1049 {0x00,0xf3,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
1050 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,
1051 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
1052 0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,
1053 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
1054 0x00,0x00,0x00,MISC,0x00,0x00,0x00,0x00,0x00,
1055 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1056 {0xa, "Consumer IR",
1057 {0x30,0x60,0x61,0x70,0xf0,EOT},
1058 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1059 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +00001060 {0x8761, "IT8761E", {
1061 {EOT}}},
Stefan Reinauerd7a75ec2011-10-25 17:12:53 +00001062 {0x8772, "IT8772F", {
Angel Ponsd8eadff2018-12-14 19:24:44 +01001063 {NOLDN, NULL,
1064 {0x20,0x21,0x22,0x23,0x24,0x2e,0x2f,EOT},
1065 {0x87,0x72,0x02,0x00,0x00,0x00,0x00,EOT}},
1066 {0x1, "COM1",
1067 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
1068 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
1069 {0x4, "Environment controller",
1070 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1071 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,EOT},
1072 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1073 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1074 {0x5, "Keyboard",
1075 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1076 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
1077 {0x6, "Mouse",
1078 {0x30,0x70,0x71,0xf0,EOT},
1079 {0x00,0x0c,0x02,0x00,EOT}},
1080 {0x7, "GPIO",
1081 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c, /* 25 .. 2c */
1082 0x60,0x61,0x62,0x63, /* 60 .. 64 */
1083 0x70,0x71,0x72,0x73,0x74, /* 70 .. 74 */
1084 0xb0,0xb1,0xb2,0xb3,0xb4, /* b0 .. b4 */
1085 0xb8,0xb9,0xba,0xbb,0xbc,0xbd, /* b8 .. bd */
1086 0xc0,0xc1,0xc2,0xc3,0xc4, /* c0 .. c4 */
1087 0xc8,0xc9,0xca,0xcb,0xcc,0xcd, /* c8 .. cd */
1088 0xe0,0xe1,0xe2,0xe3,0xe4,0xe9, /* e0 .. e9 */
1089 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5, /* f0 .. f5 */
1090 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb, /* f6 .. fb */
1091 EOT},
1092 {0x00,0xf3,0x00,0x00,0x00,0x00,MISC,0x01, /* 25 .. 2c */
1093 0x00,0x00,0x00,0x00, /* 60 .. 64 */
1094 0x00,0x00,0x20,0x38,0x00, /* 70 .. 74 */
1095 0x00,0x00,0x00,0x00,0x00, /* b0 .. b4 */
1096 0x20,0x00,0x00,0x00,0x00,0x00, /* b8 .. bd */
1097 0x01,0x00,0x00,0x40,0x00, /* c0 .. c4 */
1098 0x01,0x00,0x00,0x00,0x00,0x00, /* c8 .. cd */
1099 0x00,0x00,0x00,0x00,0x00,MISC, /* e0 .. e9 */
1100 0x00,0x00,0x00,0x00,0x00,0x00, /* f0 .. f6 */
1101 0x00,0x00,0x00,0x00,0x00,0x00, /* f6 .. fb */
1102 EOT}},
1103 {0xa, "Consumer IR",
1104 {0x30,0x60,0x61,0x70,0xf0,EOT},
1105 {0x00,0x03,0x10,0x0b,0x06,EOT}},
Stefan Reinauerd7a75ec2011-10-25 17:12:53 +00001106 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +00001107 {0x8780, "IT8780F", {
1108 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +02001109 {0x8783, "IT8783E/F", {
1110 {NOLDN, NULL,
1111 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1112 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1113 EOT},
1114 {NANA,NANA,0x87,0x83,0x00,0x00,MISC,0x00,0x00,
1115 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
1116 EOT}},
1117 {0x0, "Floppy",
1118 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
1119 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
1120 {0x1, "COM1",
1121 {0x30,0x60,0x61,0x70,0xf0,EOT},
1122 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1123 {0x2, "COM2",
1124 {0x30,0x60,0x61,0x70,0xf0,EOT},
1125 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1126 {0x3, "Parallel port",
1127 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1128 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1129 {0x4, "Environment controller",
1130 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1131 0xf3,0xf4,0xf5,0xf6,0xf7,EOT},
1132 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1133 0x00,0x00,MISC,MISC,MISC,EOT}},
1134 {0x5, "Keyboard",
1135 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1136 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
1137 {0x6, "Mouse",
1138 {0x30,0x70,0x71,0xf0,EOT},
1139 {0x00,0x0c,0x02,0x00,EOT}},
1140 {0x7, "GPIO",
1141 {0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,
1142 0x73,0x74,0x81,0x82,0x83,0x84,0x91,0x92,0x93,
1143 0x94,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
1144 0xbb,0xbc,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,
1145 0xca,0xcb,0xcc,0xcd,0xe0,0xe1,0xe2,0xe3,0xe4,
1146 0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
1147 0xf8,0xf9,0xfa,0xfb,EOT},
1148 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,
1149 0x38,0x00,0x00,MISC,0x38,0x00,0x00,MISC,0x38,
1150 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1151 0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,0x00,
1152 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1153 MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1154 0x00,0x00,0x00,0x00,EOT}},
1155 {0x8, "COM3",
1156 {0x30,0x60,0x61,0x70,0xf0,EOT},
1157 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1158 {0x9, "COM4",
1159 {0x30,0x60,0x61,0x70,0xf0,EOT},
1160 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1161 {0xa, "COM5",
1162 {0x30,0x60,0x61,0x70,0xf0,EOT},
1163 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1164 {0xb, "COM6",
1165 {0x30,0x60,0x61,0x70,0xf0,EOT},
1166 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1167 {0xc, "Consumer IR",
1168 {0x30,0x60,0x61,0x70,0xf0,EOT},
1169 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1170 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001171 {0x8786, "IT8786E-I", {
1172 {NOLDN, NULL,
1173 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1174 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1175 EOT},
1176 {NANA,NANA,0x87,0x86,0x03,0x40,RSVD,0x00,0xf3,
1177 0x00,0x00,0x00,0x00,0x48,0x89,0x00,0x00,0x00,
1178 EOT}},
1179 {0x1, "COM1",
1180 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1181 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1182 {0x2, "COM2",
1183 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1184 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1185 {0x3, "Parallel port",
1186 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1187 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1188 {0x4, "Environment controller",
1189 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1190 0xf3,0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
1191 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1192 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1193 {0x5, "Keyboard",
1194 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1195 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1196 {0x6, "Mouse",
1197 {0x30,0x70,0x71,0xf0,EOT},
1198 {0x00,0x0c,0x02,0x00,EOT}},
1199 {0x7, "GPIO",
1200 {0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,
1201 0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
1202 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
1203 0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,
1204 0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,
1205 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1206 {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,
1207 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
1208 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1209 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1210 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1211 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1212 {0x8, "COM3",
1213 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1214 {0x00,0x03,0xf8,0x0b,0x00,0x50,0x00,EOT}},
1215 {0x9, "COM4",
1216 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1217 {0x00,0x02,0xf8,0x0a,0x00,0x50,0x00,EOT}},
1218 {0xa, "Consumer IR",
1219 {0x30,0x60,0x61,0x70,0xf0,EOT},
1220 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1221 {0xb, "COM5",
1222 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1223 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1224 {0xc, "COM6",
1225 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1226 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1227 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001228 {0x8987, "IT8987", { /* global registers 0x24, 0x27, 0x28, 0x29, 0x2a, 0x2b are reserved */
1229 {NOLDN, "Chip ID",
1230 {0x20,0x21, EOT},
1231 {0x89,0x87, EOT}},
1232 {NOLDN, "Chip Version",
1233 {0x22,EOT},
1234 {0x03,EOT}},
1235 {NOLDN, "Super I/O Control Register (SIOCTRL)",
1236 {0x23,EOT},
1237 {0x01,EOT}},
1238 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
1239 {0x25,EOT},
1240 {0x00,EOT}},
1241 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
1242 {0x26,EOT},
1243 {0x00,EOT}},
1244 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
1245 {0x2d,EOT},
1246 {0x00,EOT}},
1247 {NOLDN, "Depth 2 I/O Address (D2ADR)",
1248 {0x2e,EOT},
1249 {0x00,EOT}},
1250 {NOLDN, "Depth 2 I/O Data (D2DAT)",
1251 {0x2f,EOT},
1252 {0x00,EOT}},
1253 {0x04, "System Wake-Up Control (SWUC)",
1254 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1255 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
1256 {0x05, "KBC/Mouse Interface",
1257 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1258 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
1259 {0x06, "KBC/Keyboard Interface",
1260 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1261 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
1262 {0xa, "Consumer IR",
1263 {0x30,0x60,0x61,0x70,0x71,EOT},
1264 {0x00,0x03,0x10,0x00,0x02,EOT}},
1265 {0x0f, "Shared Memory/Flash Interface (SMFI)",
1266 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
1267 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
1268 {0x10, "Real Time Clock (RTC)",
1269 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
1270 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
1271 {0x11, "Power Management I/F Channel 1 (PMC1)",
1272 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1273 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1274 {0x12, "Power Management I/F Channel 2 (PMC2)",
1275 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1276 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1277 {0x13, "Serial Peripheral Interface (SSPI)",
1278 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1279 {0x00,0x03,0x00,0x00,0x00,0x00,0x00,EOT}},
1280 {0x14, "Platform Environment Control Interface (PECI)",
1281 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1282 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1283 {0x17, "Power Management I/F Channel 3 (PMC3)",
1284 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1285 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1286 {0x18, "Power Management I/F Channel 4 (PMC4)",
1287 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1288 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1289 {0x19, "Power Management I/F Channel 5 (PMC5)",
1290 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1291 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1292 {EOT}}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001293 {EOT}
1294};
1295
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001296static const struct superio_registers ec_table[] = {
Krystian Hebel9e3c3022019-02-26 14:20:52 +01001297 {0x8613, "IT8613E", {
1298 {NOLDN, NULL,
1299 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1300 0x0a,0x0b,0x0c,0x0e,0x0f,0x11,0x12,0x13,0x14,0x16,
1301 0x17,0x19,0x1a,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,
1302 0x24,0x25,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,
1303 0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x38,0x39,0x3a,
1304 0x3b,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x50,
1305 0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,
1306 0x5b,0x5c,0x5d,0x5e,0x5f,0x68,0x69,0x6a,0x6b,0x6c,
1307 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,
1308 0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,
1309 0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,
1310 0x8e,0x8f,0x90,0x91,0x98,0x99,0x9c,0x9d,0x9e,0x9f,
1311 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xb4,0xb5,0xb6,
1312 0xb7,0xb8,0xb9,EOT},
1313 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1314 0x44,0x00,0x00,MISC,MISC,NANA,NANA,0x00,0x40,0x00,
1315 0x00,MISC,MISC,NANA,NANA,0x00,0x00,MISC,MISC,MISC,
1316 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1317 MISC,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1318 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1319 0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x00,
1320 0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
1321 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1322 0x7f,0x7f,0x00,0x00,0x7f,0x0f,MISC,MISC,MISC,MISC,
1323 NANA,NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
1324 0x00,MISC,0x00,0x00,0x00,0x00,0x00,NANA,0x00,NANA,
1325 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,
1326 NANA,NANA,NANA,EOT}},
1327 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001328 {0x8716, "IT8716F", {
1329 {NOLDN, NULL,
1330 {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,
1331 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,
1332 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1333 0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,
1334 0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001335 0x59,0x5c,
1336 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,
1337 0x69,0x6a,0x6b,0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,
1338 0x75,0x84,0x85,0x86,0x87,0x88,0x89,0x8c,0x8d,0x8e,
1339 0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,0x9a,
1340 0x9b,0x9c,0x9d,EOT},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001341 {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,
1342 NANA,NANA,0x07,0x50,NANA,NANA,NANA,NANA,NANA,NANA,
1343 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1344 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1345 NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001346 0x00,0x00,
1347 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001348 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1349 0x7f,NANA,NANA,NANA,NANA,0x00,0x00,0x02,0x00,0x99,
1350 0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,
1351 0x00,0x00,0x7f,EOT}},
1352 {EOT}}},
Uwe Hermannbbd337e2008-05-08 14:37:12 +00001353 {0x8718, "IT8718F", {
1354 {NOLDN, NULL,
1355 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1356 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1357 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1358 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1359 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1360 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1361 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x56,
1362 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1363 0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1364 0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,0x83,
1365 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1366 0x92,0x94,0x95,0x96,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,
1367 0xa6,EOT},
1368 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1369 0x40,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1370 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1371 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1372 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1373 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1374 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x00,
1375 0x00,0x90,0x00,0x12,0x00,0x00,0x00,0x00,0x7f,0x7f,
1376 0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1377 0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,
1378 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1379 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1380 0x00,EOT}},
1381 {EOT}}},
Michael Büchler5f875e22020-08-02 20:54:23 +02001382 {0x8720, "IT8720F", {
1383 {NOLDN, NULL,
1384 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1385 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1386 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1387 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1388 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1389 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1390 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,
1391 0x56,0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,
1392 0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,
1393 0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,
1394 0x83,0x84,0x85,0x86,0x87,
1395 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1396 0x92,0x94,0x95,0x96,EOT},
1397 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1398 0x58,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1399 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1400 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1401 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1402 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1403 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1404 0x00,0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,
1405 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1406 0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,
1407 NANA,NANA,NANA,NANA,NANA,
1408 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1409 0x00,0xff,0x00,0x00,EOT}},
1410 {EOT}}},
Matt DeVillierceeeadb82020-08-12 10:41:19 -05001411 {0x8728, "IT8728F", {
1412 {NOLDN, NULL,
1413 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1414 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1415 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1416 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,0x2a,
1417 0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,
1418 0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,
1419 0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,0x56,
1420 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1421 0x62,0x63,0x64,0x65,0x66,0x68,0x69,0x6a,0x6b,0x6c,
1422 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x80,
1423 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,
1424 0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x94,0x95,
1425 0x96,0x98,0x99,0x9c,0x9d,0x9e,0x9f,EOT},
1426 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1427 0x58,0x0f,0x00,MISC,MISC,MISC,MISC,MISC,MISC,0x07,
1428 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1429 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1430 NANA,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1431 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1432 MISC,MISC,MISC,0x00,0x00,0x7f,0x7f,0x7f,0x40,0x00,
1433 0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,
1434 0x7f,0x00,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,
1435 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,
1436 NANA,NANA,NANA,MISC,MISC,MISC,MISC,0x00,0x00,0x00,
1437 0x00,0x00,0x00,0x00,NANA,0xff,0x00,0x00,0xff,0x00,
1438 0x00,0x00,0x00,0x00,MISC,0x00,MISC,EOT}},
1439 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +02001440 {0x8783, "IT8783E/F", {
1441 {NOLDN, NULL,
1442 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1443 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1444 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1445 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
Nico Huber25445dc2016-09-29 12:22:30 +02001446 0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
1447 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
1448 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1449 0x48,0x49,0x4a,0x4b,0x50,0x51,0x52,0x53,0x54,0x55,
1450 0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
1451 0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
1452 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x88,0x89,
1453 0x8a,0x8b,0x8c,0x8d,0x8e,EOT},
Nico Hubere35a3742016-09-29 12:22:30 +02001454 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1455 0x54,0x09,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1456 0x50,MISC,MISC,MISC,NANA,NANA,NANA,MISC,MISC,MISC,
1457 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
Nico Huber25445dc2016-09-29 12:22:30 +02001458 NANA,NANA,NANA,NANA,NANA,NANA,MISC,MISC,MISC,MISC,
Nico Hubere35a3742016-09-29 12:22:30 +02001459 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
Nico Huber25445dc2016-09-29 12:22:30 +02001460 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x5f,0x74,
1461 0x2d,0x40,0xab,0x22,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1462 0x00,0x00,0x90,0x00,MISC,0x12,0x60,0x00,0x00,0x00,
1463 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
1464 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,MISC,0x00,
1465 0x00,0x00,0x00,MISC,0x02,EOT}},
Nico Hubere35a3742016-09-29 12:22:30 +02001466 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001467 {0x8786, "IT8786E-I", {
1468 {NOLDN, NULL,
1469 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1470 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1471 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1472 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1473 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1474 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1475 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1476 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1477 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1478 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1479 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1480 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1481 0x9c,0x9d,0x9e,0x9f,EOT},
1482 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1483 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1484 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1485 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1486 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1487 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1488 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1489 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1490 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1491 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1492 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1493 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1494 0x00,MISC,0x00,MISC,EOT}},
1495 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001496 {EOT}
1497};
1498
Nico Huber28a13242013-04-25 15:10:46 +02001499static const struct superio_registers bram_table[] = {
1500 {0x8516, "IT8516???", {
1501 {NOLDN, NULL,
1502 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1503 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1504 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1505 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1506 {NOLDN, NULL,
1507 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1508 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1509 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1510 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1511 {NOLDN, NULL,
1512 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1513 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1514 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1515 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1516 {NOLDN, NULL,
1517 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1518 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1519 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1520 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1521 {NOLDN, NULL,
1522 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1523 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1524 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1525 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1526 {NOLDN, NULL,
1527 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1528 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1529 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1530 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1531 {NOLDN, NULL,
1532 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1533 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1534 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1535 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1536 {NOLDN, NULL,
1537 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1538 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1539 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1540 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1541 {NOLDN, NULL,
1542 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1543 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1544 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1545 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1546 {NOLDN, NULL,
1547 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1548 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1549 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1550 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1551 {NOLDN, NULL,
1552 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1553 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1554 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1555 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1556 {NOLDN, NULL,
1557 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1558 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1559 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1560 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1561 {NOLDN, NULL,
1562 {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1563 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,EOT},
1564 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1565 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1566 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001567{0x8987, "IT8987", {
1568 {NOLDN, NULL,
1569 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1570 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1571 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1572 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1573 {NOLDN, NULL,
1574 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1575 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1576 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1577 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1578 {NOLDN, NULL,
1579 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1580 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1581 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1582 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1583 {NOLDN, NULL,
1584 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1585 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1586 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1587 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1588 {NOLDN, NULL,
1589 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1590 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1591 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1592 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1593 {NOLDN, NULL,
1594 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1595 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1596 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1597 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1598 {NOLDN, NULL,
1599 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1600 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1601 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1602 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1603 {NOLDN, NULL,
1604 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1605 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1606 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1607 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1608 {NOLDN, NULL,
1609 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1610 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1611 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1612 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1613 {NOLDN, NULL,
1614 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1615 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1616 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1617 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1618 {NOLDN, NULL,
1619 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1620 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1621 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1622 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1623 {NOLDN, NULL,
1624 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1625 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1626 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1627 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1628 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +02001629 {EOT}
1630};
1631
Urja Rannikko38204a22008-10-23 23:33:18 +00001632/* Works for: IT8661F/IT8770F */
1633static const uint8_t initkey_it8661f[][4] = {
1634 {0x86, 0x61, 0x55, 0x55}, /* 0x3f0 */
1635 {0x86, 0x61, 0x55, 0xaa}, /* 0x3bd */
1636 {0x86, 0x61, 0xaa, 0x55}, /* 0x370 */
1637};
1638
1639/* Works for: IT8671F/IT8687R, IT8673F */
1640static const uint8_t initkey_it8671f[][4] = {
1641 {0x86, 0x80, 0x55, 0x55}, /* 0x3f0 */
1642 {0x86, 0x80, 0x55, 0xaa}, /* 0x3bd */
1643 {0x86, 0x80, 0xaa, 0x55}, /* 0x370 */
1644};
1645
1646/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1647static const uint8_t initkey_mbpnp[] = {
1648 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37,
1649 0x1b, 0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45,
1650 0xa2, 0xd1, 0xe8, 0x74, 0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39,
1651};
1652
1653/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1654static void enter_conf_mode_ite_legacy(uint16_t port, const uint8_t init[][4])
1655{
1656 int i, idx;
1657
1658 /* Determine Super I/O config port. */
1659 idx = (port == 0x3f0) ? 0 : ((port == 0x3bd) ? 1 : 2);
1660 for (i = 0; i < 4; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001661 OUTB(init[idx][i], ISA_PNP_ADDR);
Urja Rannikko38204a22008-10-23 23:33:18 +00001662
1663 /* Sequentially write the 32 MB PnP init values. */
1664 for (i = 0; i < 32; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001665 OUTB(initkey_mbpnp[i], port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001666}
1667
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001668static void enter_conf_mode_ite(uint16_t port)
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001669{
Andriy Gaponb64aa602008-10-28 22:13:38 +00001670 OUTB(0x87, port);
1671 OUTB(0x01, port);
1672 OUTB(0x55, port);
1673 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001674}
1675
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001676static void enter_conf_mode_ite_it8502e(uint16_t port)
1677{
1678 OUTB(0x85, port);
1679 OUTB(0x02, port);
1680 OUTB(0x55, port);
1681 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1682}
1683
Uwe Hermannebb73f22008-11-12 19:08:58 +00001684static void enter_conf_mode_ite_it8761e(uint16_t port)
1685{
1686 OUTB(0x87, port);
1687 OUTB(0x61, port);
1688 OUTB(0x55, port);
1689 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1690}
1691
1692static void enter_conf_mode_ite_it8228e(uint16_t port)
1693{
1694 OUTB(0x82, port);
1695 OUTB(0x28, port);
1696 OUTB(0x55, port);
1697 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1698}
1699
Matt Parnell063b1622019-08-15 22:32:21 -05001700static void enter_conf_mode_ite_it8987e(uint16_t port)
1701{
1702 OUTB(0x89, port);
1703 OUTB(0x87, port);
1704 OUTB(0x55, port);
1705 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1706}
1707
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001708static void exit_conf_mode_ite(uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001709{
1710 regwrite(port, 0x02, 0x02);
1711}
1712
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001713static int chip_found_at_port;
1714
Uwe Hermannafe83092007-09-28 15:45:43 +00001715static void probe_idregs_ite_helper(const char *init, uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001716{
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001717 uint16_t id, chipver, ecport;
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001718
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001719 probing_for("ITE", init, port);
1720
Uwe Hermann07024692007-09-20 22:13:48 +00001721 id = regval(port, CHIP_ID_BYTE1_REG) << 8;
1722 id |= regval(port, CHIP_ID_BYTE2_REG);
1723 chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
1724
1725 if (superio_unknown(reg_table, id)) {
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001726 if (verbose)
1727 printf(NOTFOUND "id=0x%04x, rev=0x%01x\n", id, chipver);
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001728 return;
1729 }
1730
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001731 printf("Found ITE %s (id=0x%04x, rev=0x%01x) at 0x%x\n",
Uwe Hermann07024692007-09-20 22:13:48 +00001732 get_superio_name(reg_table, id), id, chipver, port);
Uwe Hermanne9d46162007-10-07 20:01:23 +00001733 chip_found = 1;
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001734 chip_found_at_port = 1;
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001735
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001736 dump_superio("ITE", reg_table, port, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001737
1738 if (extra_dump) {
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001739 regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001740
1741 /* Get EC base address (stored in LDN 4, index 0x60/0x61). */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001742 ecport = regval(port, 0x60) << 8;
1743 ecport |= regval(port, 0x61);
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001744
1745 /* EC address register = EC base address + 5. */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001746 ecport += 5;
1747
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001748 printf("Environment controller (0x%04x)\n", ecport);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001749 dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
Nico Huber28a13242013-04-25 15:10:46 +02001750
1751 regwrite(port, LDN_SEL, 0x10); /* Select LDN 16 (BRAM). */
1752 /* Get EC base address (stored in LDN 16, index 0x62/0x63). */
1753 ecport = regval(port, 0x62) << 8;
1754 ecport |= regval(port, 0x63);
1755 printf("BRAM (0x%04x)\n", ecport);
1756 dump_superio("ITE-BRAM", bram_table, ecport, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001757 }
Uwe Hermannb4db2202007-09-20 23:37:56 +00001758}
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001759
Uwe Hermannb4db2202007-09-20 23:37:56 +00001760void probe_idregs_ite(uint16_t port)
1761{
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001762 chip_found_at_port = 0;
1763
Urja Rannikko38204a22008-10-23 23:33:18 +00001764 if (port == 0x3f0 || port == 0x3bd || port == 0x370) {
1765 enter_conf_mode_ite_legacy(port, initkey_it8661f);
1766 probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
1767 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001768 if (chip_found_at_port)
1769 return;
Uwe Hermannb4db2202007-09-20 23:37:56 +00001770
Urja Rannikko38204a22008-10-23 23:33:18 +00001771 enter_conf_mode_ite_legacy(port, initkey_it8671f);
1772 probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
1773 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001774 if (chip_found_at_port)
1775 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001776 } else {
1777 enter_conf_mode_ite(port);
Uwe Hermannebb73f22008-11-12 19:08:58 +00001778 probe_idregs_ite_helper("(init=standard) ", port);
1779 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001780 if (chip_found_at_port)
1781 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001782
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001783 enter_conf_mode_ite_it8502e(port);
1784 probe_idregs_ite_helper("(init=it8502e) ", port);
1785 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001786 if (chip_found_at_port)
1787 return;
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001788
Uwe Hermannebb73f22008-11-12 19:08:58 +00001789 enter_conf_mode_ite_it8761e(port);
1790 probe_idregs_ite_helper("(init=it8761e) ", port);
1791 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001792 if (chip_found_at_port)
1793 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001794
1795 enter_conf_mode_ite_it8228e(port);
1796 probe_idregs_ite_helper("(init=it8228e) ", port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001797 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001798 if (chip_found_at_port)
1799 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001800
Matt Parnell063b1622019-08-15 22:32:21 -05001801 enter_conf_mode_ite_it8987e(port);
1802 probe_idregs_ite_helper("(init=it8987e) ", port);
1803 exit_conf_mode_ite(port);
1804 if (chip_found_at_port)
1805 return;
1806
Urja Rannikko38204a22008-10-23 23:33:18 +00001807 enter_conf_mode_winbond_fintek_ite_8787(port);
1808 probe_idregs_ite_helper("(init=0x87,0x87) ", port);
1809 exit_conf_mode_winbond_fintek_ite_8787(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001810 if (chip_found_at_port)
1811 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001812 }
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001813}
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001814
1815void print_ite_chips(void)
1816{
1817 print_vendor_chips("ITE", reg_table);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001818 print_vendor_chips("ITE-EC", ec_table);
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001819}