blob: c2d15839d5edcd3ea7285b0f1108bdbdd14da502 [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}}},
Michał Żygowski8c1154dc2023-04-03 12:10:20 +02001171 {0x8784, "IT8784E-I", {
1172 {NOLDN, NULL,
1173 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1174 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1175 EOT},
1176 {NANA,NANA,0x87,0x86,MISC,0x40,RSVD,0x00,0xf3,
1177 0x00,0x00,0x00,0x00,0x48,0x89,0x00,0x00,0x00,
1178 EOT}},
1179 {0x1, "COM1",
1180 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1181 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1182 {0x2, "COM2",
1183 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1184 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1185 {0x3, "Parallel port",
1186 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1187 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1188 {0x4, "Environment controller",
1189 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1190 0xf3,0xf4,0xf5,0xf6,0xfa,0xfb,0xfd,EOT},
1191 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1192 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1193 {0x5, "Keyboard",
1194 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1195 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1196 {0x6, "Mouse",
1197 {0x30,0x70,0x71,0xf0,EOT},
1198 {0x00,0x0c,0x02,0x00,EOT}},
1199 {0x7, "GPIO",
1200 {0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,
1201 0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
1202 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
1203 0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,
1204 0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xe7,0xf0,0xf1,0xf2,
1205 0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1206 {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,
1207 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
1208 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1209 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1210 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1211 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1212 {0xa, "Consumer IR",
1213 {0x30,0x60,0x61,0x70,0xf0,EOT},
1214 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1215 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001216 {0x8786, "IT8786E-I", {
1217 {NOLDN, NULL,
1218 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1219 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1220 EOT},
1221 {NANA,NANA,0x87,0x86,0x03,0x40,RSVD,0x00,0xf3,
1222 0x00,0x00,0x00,0x00,0x48,0x89,0x00,0x00,0x00,
1223 EOT}},
1224 {0x1, "COM1",
1225 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1226 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1227 {0x2, "COM2",
1228 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1229 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1230 {0x3, "Parallel port",
1231 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1232 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1233 {0x4, "Environment controller",
1234 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1235 0xf3,0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
1236 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1237 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1238 {0x5, "Keyboard",
1239 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1240 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1241 {0x6, "Mouse",
1242 {0x30,0x70,0x71,0xf0,EOT},
1243 {0x00,0x0c,0x02,0x00,EOT}},
1244 {0x7, "GPIO",
1245 {0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,
1246 0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
1247 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
1248 0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,
1249 0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,
1250 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1251 {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,
1252 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
1253 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1254 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1255 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1256 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1257 {0x8, "COM3",
1258 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1259 {0x00,0x03,0xf8,0x0b,0x00,0x50,0x00,EOT}},
1260 {0x9, "COM4",
1261 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1262 {0x00,0x02,0xf8,0x0a,0x00,0x50,0x00,EOT}},
1263 {0xa, "Consumer IR",
1264 {0x30,0x60,0x61,0x70,0xf0,EOT},
1265 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1266 {0xb, "COM5",
1267 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1268 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1269 {0xc, "COM6",
1270 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1271 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1272 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001273 {0x8987, "IT8987", { /* global registers 0x24, 0x27, 0x28, 0x29, 0x2a, 0x2b are reserved */
1274 {NOLDN, "Chip ID",
1275 {0x20,0x21, EOT},
1276 {0x89,0x87, EOT}},
1277 {NOLDN, "Chip Version",
1278 {0x22,EOT},
1279 {0x03,EOT}},
1280 {NOLDN, "Super I/O Control Register (SIOCTRL)",
1281 {0x23,EOT},
1282 {0x01,EOT}},
1283 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
1284 {0x25,EOT},
1285 {0x00,EOT}},
1286 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
1287 {0x26,EOT},
1288 {0x00,EOT}},
1289 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
1290 {0x2d,EOT},
1291 {0x00,EOT}},
1292 {NOLDN, "Depth 2 I/O Address (D2ADR)",
1293 {0x2e,EOT},
1294 {0x00,EOT}},
1295 {NOLDN, "Depth 2 I/O Data (D2DAT)",
1296 {0x2f,EOT},
1297 {0x00,EOT}},
1298 {0x04, "System Wake-Up Control (SWUC)",
1299 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1300 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
1301 {0x05, "KBC/Mouse Interface",
1302 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1303 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
1304 {0x06, "KBC/Keyboard Interface",
1305 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1306 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
1307 {0xa, "Consumer IR",
1308 {0x30,0x60,0x61,0x70,0x71,EOT},
1309 {0x00,0x03,0x10,0x00,0x02,EOT}},
1310 {0x0f, "Shared Memory/Flash Interface (SMFI)",
1311 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
1312 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
1313 {0x10, "Real Time Clock (RTC)",
1314 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
1315 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
1316 {0x11, "Power Management I/F Channel 1 (PMC1)",
1317 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1318 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1319 {0x12, "Power Management I/F Channel 2 (PMC2)",
1320 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1321 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1322 {0x13, "Serial Peripheral Interface (SSPI)",
1323 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1324 {0x00,0x03,0x00,0x00,0x00,0x00,0x00,EOT}},
1325 {0x14, "Platform Environment Control Interface (PECI)",
1326 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1327 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1328 {0x17, "Power Management I/F Channel 3 (PMC3)",
1329 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1330 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1331 {0x18, "Power Management I/F Channel 4 (PMC4)",
1332 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1333 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1334 {0x19, "Power Management I/F Channel 5 (PMC5)",
1335 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1336 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1337 {EOT}}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001338 {EOT}
1339};
1340
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001341static const struct superio_registers ec_table[] = {
Krystian Hebel9e3c3022019-02-26 14:20:52 +01001342 {0x8613, "IT8613E", {
1343 {NOLDN, NULL,
1344 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1345 0x0a,0x0b,0x0c,0x0e,0x0f,0x11,0x12,0x13,0x14,0x16,
1346 0x17,0x19,0x1a,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,
1347 0x24,0x25,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,
1348 0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x38,0x39,0x3a,
1349 0x3b,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x50,
1350 0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,
1351 0x5b,0x5c,0x5d,0x5e,0x5f,0x68,0x69,0x6a,0x6b,0x6c,
1352 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,
1353 0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,
1354 0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,
1355 0x8e,0x8f,0x90,0x91,0x98,0x99,0x9c,0x9d,0x9e,0x9f,
1356 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xb4,0xb5,0xb6,
1357 0xb7,0xb8,0xb9,EOT},
1358 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1359 0x44,0x00,0x00,MISC,MISC,NANA,NANA,0x00,0x40,0x00,
1360 0x00,MISC,MISC,NANA,NANA,0x00,0x00,MISC,MISC,MISC,
1361 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1362 MISC,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1363 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1364 0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x00,
1365 0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
1366 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1367 0x7f,0x7f,0x00,0x00,0x7f,0x0f,MISC,MISC,MISC,MISC,
1368 NANA,NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
1369 0x00,MISC,0x00,0x00,0x00,0x00,0x00,NANA,0x00,NANA,
1370 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,
1371 NANA,NANA,NANA,EOT}},
1372 {EOT}}},
Michał Kopećbd656b42022-03-26 15:46:54 +01001373 {0x8625, "IT8625E", {
1374 {NOLDN, NULL,
1375 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1376 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1377 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1378 0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,
1379 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,
1380 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,
1381 0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,
1382 0x47,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,
1383 0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,
1384 0x63,0x64,0x65,0x66,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1385 0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,0x79,
1386 0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,0x84,
1387 0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,
1388 0x8f,0x90,0x91,0x92,0x93,0x94,0x98,0x99,0x9c,0x9d,
1389 0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa8,
1390 0xa9,0xaa,0xab,0xac,0xad,0xae,0xb2,0xb3,0xb4,0xb5,
1391 0xb6,0xb7,0xb8,0xb9,EOT},
1392 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
1393 0x44,0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1394 0x40,0x00,0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,
1395 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1396 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1397 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1398 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1399 NANA,0x00,0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,
1400 0x00,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,
1401 0x00,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1402 0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,0x7f,
1403 0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,NANA,
1404 NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1405 NANA,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,NANA,
1406 0x00,NANA,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1407 0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,
1408 NANA,NANA,NANA,NANA,EOT}},
1409 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001410 {0x8716, "IT8716F", {
1411 {NOLDN, NULL,
1412 {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,
1413 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,
1414 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1415 0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,
1416 0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001417 0x59,0x5c,
1418 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,
1419 0x69,0x6a,0x6b,0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,
1420 0x75,0x84,0x85,0x86,0x87,0x88,0x89,0x8c,0x8d,0x8e,
1421 0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,0x9a,
1422 0x9b,0x9c,0x9d,EOT},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001423 {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,
1424 NANA,NANA,0x07,0x50,NANA,NANA,NANA,NANA,NANA,NANA,
1425 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1426 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1427 NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001428 0x00,0x00,
1429 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001430 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1431 0x7f,NANA,NANA,NANA,NANA,0x00,0x00,0x02,0x00,0x99,
1432 0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,
1433 0x00,0x00,0x7f,EOT}},
1434 {EOT}}},
Uwe Hermannbbd337e2008-05-08 14:37:12 +00001435 {0x8718, "IT8718F", {
1436 {NOLDN, NULL,
1437 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1438 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1439 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1440 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1441 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1442 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1443 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x56,
1444 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1445 0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1446 0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,0x83,
1447 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1448 0x92,0x94,0x95,0x96,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,
1449 0xa6,EOT},
1450 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1451 0x40,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1452 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1453 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1454 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1455 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1456 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x00,
1457 0x00,0x90,0x00,0x12,0x00,0x00,0x00,0x00,0x7f,0x7f,
1458 0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1459 0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,
1460 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1461 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1462 0x00,EOT}},
1463 {EOT}}},
Michael Büchler5f875e22020-08-02 20:54:23 +02001464 {0x8720, "IT8720F", {
1465 {NOLDN, NULL,
1466 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1467 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1468 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1469 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1470 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1471 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1472 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,
1473 0x56,0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,
1474 0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,
1475 0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,
1476 0x83,0x84,0x85,0x86,0x87,
1477 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1478 0x92,0x94,0x95,0x96,EOT},
1479 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1480 0x58,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1481 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1482 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1483 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1484 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1485 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1486 0x00,0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,
1487 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1488 0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,
1489 NANA,NANA,NANA,NANA,NANA,
1490 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1491 0x00,0xff,0x00,0x00,EOT}},
1492 {EOT}}},
Matt DeVillierceeeadb82020-08-12 10:41:19 -05001493 {0x8728, "IT8728F", {
1494 {NOLDN, NULL,
1495 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1496 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1497 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1498 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,0x2a,
1499 0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,
1500 0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,
1501 0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,0x56,
1502 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1503 0x62,0x63,0x64,0x65,0x66,0x68,0x69,0x6a,0x6b,0x6c,
1504 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x80,
1505 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,
1506 0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x94,0x95,
1507 0x96,0x98,0x99,0x9c,0x9d,0x9e,0x9f,EOT},
1508 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1509 0x58,0x0f,0x00,MISC,MISC,MISC,MISC,MISC,MISC,0x07,
1510 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1511 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1512 NANA,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1513 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1514 MISC,MISC,MISC,0x00,0x00,0x7f,0x7f,0x7f,0x40,0x00,
1515 0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,
1516 0x7f,0x00,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,
1517 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,
1518 NANA,NANA,NANA,MISC,MISC,MISC,MISC,0x00,0x00,0x00,
1519 0x00,0x00,0x00,0x00,NANA,0xff,0x00,0x00,0xff,0x00,
1520 0x00,0x00,0x00,0x00,MISC,0x00,MISC,EOT}},
1521 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +02001522 {0x8783, "IT8783E/F", {
1523 {NOLDN, NULL,
1524 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1525 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1526 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1527 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
Nico Huber25445dc2016-09-29 12:22:30 +02001528 0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
1529 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
1530 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1531 0x48,0x49,0x4a,0x4b,0x50,0x51,0x52,0x53,0x54,0x55,
1532 0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
1533 0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
1534 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x88,0x89,
1535 0x8a,0x8b,0x8c,0x8d,0x8e,EOT},
Nico Hubere35a3742016-09-29 12:22:30 +02001536 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1537 0x54,0x09,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1538 0x50,MISC,MISC,MISC,NANA,NANA,NANA,MISC,MISC,MISC,
1539 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
Nico Huber25445dc2016-09-29 12:22:30 +02001540 NANA,NANA,NANA,NANA,NANA,NANA,MISC,MISC,MISC,MISC,
Nico Hubere35a3742016-09-29 12:22:30 +02001541 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
Nico Huber25445dc2016-09-29 12:22:30 +02001542 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x5f,0x74,
1543 0x2d,0x40,0xab,0x22,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1544 0x00,0x00,0x90,0x00,MISC,0x12,0x60,0x00,0x00,0x00,
1545 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
1546 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,MISC,0x00,
1547 0x00,0x00,0x00,MISC,0x02,EOT}},
Nico Hubere35a3742016-09-29 12:22:30 +02001548 {EOT}}},
Michał Żygowski8c1154dc2023-04-03 12:10:20 +02001549 {0x8784, "IT8784E-I", {
1550 {NOLDN, NULL,
1551 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1552 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1553 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1554 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1555 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1556 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1557 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1558 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1559 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1560 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1561 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1562 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1563 0x9c,0x9d,0x9e,0x9f,0xc0,0xc1,0xc2,0xc3,0xc4,EOT},
1564 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1565 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1566 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1567 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1568 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1569 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1570 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1571 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1572 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1573 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1574 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1575 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1576 0x00,MISC,0x00,MISC,0x00,0x00,MISC,MISC,MISC,EOT}},
1577 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001578 {0x8786, "IT8786E-I", {
1579 {NOLDN, NULL,
1580 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1581 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1582 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1583 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1584 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1585 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1586 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1587 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1588 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1589 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1590 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1591 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1592 0x9c,0x9d,0x9e,0x9f,EOT},
1593 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1594 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1595 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1596 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1597 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1598 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1599 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1600 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1601 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1602 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1603 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1604 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1605 0x00,MISC,0x00,MISC,EOT}},
1606 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001607 {EOT}
1608};
1609
Nico Huber28a13242013-04-25 15:10:46 +02001610static const struct superio_registers bram_table[] = {
1611 {0x8516, "IT8516???", {
1612 {NOLDN, NULL,
1613 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1614 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1615 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1616 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1617 {NOLDN, NULL,
1618 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1619 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1620 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1621 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1622 {NOLDN, NULL,
1623 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1624 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1625 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1626 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1627 {NOLDN, NULL,
1628 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1629 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1630 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1631 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1632 {NOLDN, NULL,
1633 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1634 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1635 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1636 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1637 {NOLDN, NULL,
1638 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1639 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1640 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1641 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1642 {NOLDN, NULL,
1643 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1644 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1645 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1646 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1647 {NOLDN, NULL,
1648 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1649 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1650 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1651 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1652 {NOLDN, NULL,
1653 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1654 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1655 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1656 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1657 {NOLDN, NULL,
1658 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1659 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1660 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1661 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1662 {NOLDN, NULL,
1663 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1664 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1665 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1666 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1667 {NOLDN, NULL,
1668 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1669 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1670 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1671 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1672 {NOLDN, NULL,
1673 {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1674 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,EOT},
1675 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1676 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1677 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001678{0x8987, "IT8987", {
1679 {NOLDN, NULL,
1680 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1681 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1682 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1683 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1684 {NOLDN, NULL,
1685 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1686 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1687 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1688 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1689 {NOLDN, NULL,
1690 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1691 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1692 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1693 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1694 {NOLDN, NULL,
1695 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1696 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1697 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1698 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1699 {NOLDN, NULL,
1700 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1701 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1702 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1703 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1704 {NOLDN, NULL,
1705 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1706 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1707 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1708 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1709 {NOLDN, NULL,
1710 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1711 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1712 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1713 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1714 {NOLDN, NULL,
1715 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1716 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1717 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1718 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1719 {NOLDN, NULL,
1720 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1721 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1722 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1723 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1724 {NOLDN, NULL,
1725 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1726 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1727 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1728 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1729 {NOLDN, NULL,
1730 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1731 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1732 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1733 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1734 {NOLDN, NULL,
1735 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1736 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1737 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1738 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1739 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +02001740 {EOT}
1741};
1742
Urja Rannikko38204a22008-10-23 23:33:18 +00001743/* Works for: IT8661F/IT8770F */
1744static const uint8_t initkey_it8661f[][4] = {
1745 {0x86, 0x61, 0x55, 0x55}, /* 0x3f0 */
1746 {0x86, 0x61, 0x55, 0xaa}, /* 0x3bd */
1747 {0x86, 0x61, 0xaa, 0x55}, /* 0x370 */
1748};
1749
1750/* Works for: IT8671F/IT8687R, IT8673F */
1751static const uint8_t initkey_it8671f[][4] = {
1752 {0x86, 0x80, 0x55, 0x55}, /* 0x3f0 */
1753 {0x86, 0x80, 0x55, 0xaa}, /* 0x3bd */
1754 {0x86, 0x80, 0xaa, 0x55}, /* 0x370 */
1755};
1756
1757/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1758static const uint8_t initkey_mbpnp[] = {
1759 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37,
1760 0x1b, 0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45,
1761 0xa2, 0xd1, 0xe8, 0x74, 0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39,
1762};
1763
1764/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1765static void enter_conf_mode_ite_legacy(uint16_t port, const uint8_t init[][4])
1766{
1767 int i, idx;
1768
1769 /* Determine Super I/O config port. */
1770 idx = (port == 0x3f0) ? 0 : ((port == 0x3bd) ? 1 : 2);
1771 for (i = 0; i < 4; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001772 OUTB(init[idx][i], ISA_PNP_ADDR);
Urja Rannikko38204a22008-10-23 23:33:18 +00001773
1774 /* Sequentially write the 32 MB PnP init values. */
1775 for (i = 0; i < 32; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001776 OUTB(initkey_mbpnp[i], port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001777}
1778
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001779static void enter_conf_mode_ite(uint16_t port)
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001780{
Andriy Gaponb64aa602008-10-28 22:13:38 +00001781 OUTB(0x87, port);
1782 OUTB(0x01, port);
1783 OUTB(0x55, port);
1784 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001785}
1786
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001787static void enter_conf_mode_ite_it8502e(uint16_t port)
1788{
1789 OUTB(0x85, port);
1790 OUTB(0x02, port);
1791 OUTB(0x55, port);
1792 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1793}
1794
Uwe Hermannebb73f22008-11-12 19:08:58 +00001795static void enter_conf_mode_ite_it8761e(uint16_t port)
1796{
1797 OUTB(0x87, port);
1798 OUTB(0x61, port);
1799 OUTB(0x55, port);
1800 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1801}
1802
1803static void enter_conf_mode_ite_it8228e(uint16_t port)
1804{
1805 OUTB(0x82, port);
1806 OUTB(0x28, port);
1807 OUTB(0x55, port);
1808 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1809}
1810
Matt Parnell063b1622019-08-15 22:32:21 -05001811static void enter_conf_mode_ite_it8987e(uint16_t port)
1812{
1813 OUTB(0x89, port);
1814 OUTB(0x87, port);
1815 OUTB(0x55, port);
1816 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1817}
1818
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001819static void exit_conf_mode_ite(uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001820{
1821 regwrite(port, 0x02, 0x02);
1822}
1823
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001824static int chip_found_at_port;
1825
Uwe Hermannafe83092007-09-28 15:45:43 +00001826static void probe_idregs_ite_helper(const char *init, uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001827{
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001828 uint16_t id, chipver, ecport;
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001829
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001830 probing_for("ITE", init, port);
1831
Uwe Hermann07024692007-09-20 22:13:48 +00001832 id = regval(port, CHIP_ID_BYTE1_REG) << 8;
1833 id |= regval(port, CHIP_ID_BYTE2_REG);
1834 chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
1835
1836 if (superio_unknown(reg_table, id)) {
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001837 if (verbose)
1838 printf(NOTFOUND "id=0x%04x, rev=0x%01x\n", id, chipver);
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001839 return;
1840 }
1841
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001842 printf("Found ITE %s (id=0x%04x, rev=0x%01x) at 0x%x\n",
Uwe Hermann07024692007-09-20 22:13:48 +00001843 get_superio_name(reg_table, id), id, chipver, port);
Uwe Hermanne9d46162007-10-07 20:01:23 +00001844 chip_found = 1;
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001845 chip_found_at_port = 1;
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001846
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001847 dump_superio("ITE", reg_table, port, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001848
1849 if (extra_dump) {
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001850 regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001851
1852 /* Get EC base address (stored in LDN 4, index 0x60/0x61). */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001853 ecport = regval(port, 0x60) << 8;
1854 ecport |= regval(port, 0x61);
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001855
1856 /* EC address register = EC base address + 5. */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001857 ecport += 5;
1858
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001859 printf("Environment controller (0x%04x)\n", ecport);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001860 dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
Nico Huber28a13242013-04-25 15:10:46 +02001861
1862 regwrite(port, LDN_SEL, 0x10); /* Select LDN 16 (BRAM). */
1863 /* Get EC base address (stored in LDN 16, index 0x62/0x63). */
1864 ecport = regval(port, 0x62) << 8;
1865 ecport |= regval(port, 0x63);
1866 printf("BRAM (0x%04x)\n", ecport);
1867 dump_superio("ITE-BRAM", bram_table, ecport, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001868 }
Uwe Hermannb4db2202007-09-20 23:37:56 +00001869}
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001870
Uwe Hermannb4db2202007-09-20 23:37:56 +00001871void probe_idregs_ite(uint16_t port)
1872{
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001873 chip_found_at_port = 0;
1874
Urja Rannikko38204a22008-10-23 23:33:18 +00001875 if (port == 0x3f0 || port == 0x3bd || port == 0x370) {
1876 enter_conf_mode_ite_legacy(port, initkey_it8661f);
1877 probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
1878 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001879 if (chip_found_at_port)
1880 return;
Uwe Hermannb4db2202007-09-20 23:37:56 +00001881
Urja Rannikko38204a22008-10-23 23:33:18 +00001882 enter_conf_mode_ite_legacy(port, initkey_it8671f);
1883 probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
1884 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001885 if (chip_found_at_port)
1886 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001887 } else {
1888 enter_conf_mode_ite(port);
Uwe Hermannebb73f22008-11-12 19:08:58 +00001889 probe_idregs_ite_helper("(init=standard) ", port);
1890 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001891 if (chip_found_at_port)
1892 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001893
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001894 enter_conf_mode_ite_it8502e(port);
1895 probe_idregs_ite_helper("(init=it8502e) ", port);
1896 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001897 if (chip_found_at_port)
1898 return;
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001899
Uwe Hermannebb73f22008-11-12 19:08:58 +00001900 enter_conf_mode_ite_it8761e(port);
1901 probe_idregs_ite_helper("(init=it8761e) ", port);
1902 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001903 if (chip_found_at_port)
1904 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001905
1906 enter_conf_mode_ite_it8228e(port);
1907 probe_idregs_ite_helper("(init=it8228e) ", port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001908 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001909 if (chip_found_at_port)
1910 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001911
Matt Parnell063b1622019-08-15 22:32:21 -05001912 enter_conf_mode_ite_it8987e(port);
1913 probe_idregs_ite_helper("(init=it8987e) ", port);
1914 exit_conf_mode_ite(port);
1915 if (chip_found_at_port)
1916 return;
1917
Urja Rannikko38204a22008-10-23 23:33:18 +00001918 enter_conf_mode_winbond_fintek_ite_8787(port);
1919 probe_idregs_ite_helper("(init=0x87,0x87) ", port);
1920 exit_conf_mode_winbond_fintek_ite_8787(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001921 if (chip_found_at_port)
1922 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001923 }
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001924}
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001925
1926void print_ite_chips(void)
1927{
1928 print_vendor_chips("ITE", reg_table);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001929 print_vendor_chips("ITE-EC", ec_table);
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001930}