blob: 31fc496c56dd7cb46f301b321a1f2bfa5c2e4375 [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}}},
Michał Kopećbd656b42022-03-26 15:46:54 +01001328 {0x8625, "IT8625E", {
1329 {NOLDN, NULL,
1330 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1331 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1332 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1333 0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,
1334 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,
1335 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,
1336 0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,
1337 0x47,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,
1338 0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,
1339 0x63,0x64,0x65,0x66,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1340 0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,0x79,
1341 0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,0x84,
1342 0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,
1343 0x8f,0x90,0x91,0x92,0x93,0x94,0x98,0x99,0x9c,0x9d,
1344 0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa8,
1345 0xa9,0xaa,0xab,0xac,0xad,0xae,0xb2,0xb3,0xb4,0xb5,
1346 0xb6,0xb7,0xb8,0xb9,EOT},
1347 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
1348 0x44,0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1349 0x40,0x00,0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,
1350 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1351 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1352 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1353 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1354 NANA,0x00,0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,
1355 0x00,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,
1356 0x00,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1357 0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,0x7f,
1358 0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,NANA,
1359 NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1360 NANA,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,NANA,
1361 0x00,NANA,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1362 0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,
1363 NANA,NANA,NANA,NANA,EOT}},
1364 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001365 {0x8716, "IT8716F", {
1366 {NOLDN, NULL,
1367 {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,
1368 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,
1369 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1370 0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,
1371 0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001372 0x59,0x5c,
1373 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,
1374 0x69,0x6a,0x6b,0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,
1375 0x75,0x84,0x85,0x86,0x87,0x88,0x89,0x8c,0x8d,0x8e,
1376 0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,0x9a,
1377 0x9b,0x9c,0x9d,EOT},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001378 {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,
1379 NANA,NANA,0x07,0x50,NANA,NANA,NANA,NANA,NANA,NANA,
1380 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1381 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1382 NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001383 0x00,0x00,
1384 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001385 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1386 0x7f,NANA,NANA,NANA,NANA,0x00,0x00,0x02,0x00,0x99,
1387 0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,
1388 0x00,0x00,0x7f,EOT}},
1389 {EOT}}},
Uwe Hermannbbd337e2008-05-08 14:37:12 +00001390 {0x8718, "IT8718F", {
1391 {NOLDN, NULL,
1392 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1393 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1394 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1395 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1396 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1397 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1398 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x56,
1399 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1400 0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1401 0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,0x83,
1402 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1403 0x92,0x94,0x95,0x96,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,
1404 0xa6,EOT},
1405 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1406 0x40,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1407 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1408 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1409 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1410 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1411 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x00,
1412 0x00,0x90,0x00,0x12,0x00,0x00,0x00,0x00,0x7f,0x7f,
1413 0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1414 0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,
1415 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1416 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1417 0x00,EOT}},
1418 {EOT}}},
Michael Büchler5f875e22020-08-02 20:54:23 +02001419 {0x8720, "IT8720F", {
1420 {NOLDN, NULL,
1421 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1422 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1423 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1424 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1425 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1426 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1427 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,
1428 0x56,0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,
1429 0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,
1430 0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,
1431 0x83,0x84,0x85,0x86,0x87,
1432 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1433 0x92,0x94,0x95,0x96,EOT},
1434 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1435 0x58,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1436 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1437 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1438 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1439 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1440 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1441 0x00,0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,
1442 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1443 0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,
1444 NANA,NANA,NANA,NANA,NANA,
1445 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1446 0x00,0xff,0x00,0x00,EOT}},
1447 {EOT}}},
Matt DeVillierceeeadb82020-08-12 10:41:19 -05001448 {0x8728, "IT8728F", {
1449 {NOLDN, NULL,
1450 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1451 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1452 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1453 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x28,0x29,0x2a,
1454 0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,
1455 0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,
1456 0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x55,0x56,
1457 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1458 0x62,0x63,0x64,0x65,0x66,0x68,0x69,0x6a,0x6b,0x6c,
1459 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x80,
1460 0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,
1461 0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x94,0x95,
1462 0x96,0x98,0x99,0x9c,0x9d,0x9e,0x9f,EOT},
1463 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1464 0x58,0x0f,0x00,MISC,MISC,MISC,MISC,MISC,MISC,0x07,
1465 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1466 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1467 NANA,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1468 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1469 MISC,MISC,MISC,0x00,0x00,0x7f,0x7f,0x7f,0x40,0x00,
1470 0x00,0x90,0x00,0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,
1471 0x7f,0x00,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,
1472 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,
1473 NANA,NANA,NANA,MISC,MISC,MISC,MISC,0x00,0x00,0x00,
1474 0x00,0x00,0x00,0x00,NANA,0xff,0x00,0x00,0xff,0x00,
1475 0x00,0x00,0x00,0x00,MISC,0x00,MISC,EOT}},
1476 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +02001477 {0x8783, "IT8783E/F", {
1478 {NOLDN, NULL,
1479 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1480 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1481 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1482 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
Nico Huber25445dc2016-09-29 12:22:30 +02001483 0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
1484 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
1485 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1486 0x48,0x49,0x4a,0x4b,0x50,0x51,0x52,0x53,0x54,0x55,
1487 0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
1488 0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
1489 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x88,0x89,
1490 0x8a,0x8b,0x8c,0x8d,0x8e,EOT},
Nico Hubere35a3742016-09-29 12:22:30 +02001491 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1492 0x54,0x09,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1493 0x50,MISC,MISC,MISC,NANA,NANA,NANA,MISC,MISC,MISC,
1494 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
Nico Huber25445dc2016-09-29 12:22:30 +02001495 NANA,NANA,NANA,NANA,NANA,NANA,MISC,MISC,MISC,MISC,
Nico Hubere35a3742016-09-29 12:22:30 +02001496 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
Nico Huber25445dc2016-09-29 12:22:30 +02001497 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x5f,0x74,
1498 0x2d,0x40,0xab,0x22,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1499 0x00,0x00,0x90,0x00,MISC,0x12,0x60,0x00,0x00,0x00,
1500 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
1501 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,MISC,0x00,
1502 0x00,0x00,0x00,MISC,0x02,EOT}},
Nico Hubere35a3742016-09-29 12:22:30 +02001503 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001504 {0x8786, "IT8786E-I", {
1505 {NOLDN, NULL,
1506 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1507 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1508 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1509 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1510 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1511 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1512 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1513 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1514 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1515 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1516 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1517 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1518 0x9c,0x9d,0x9e,0x9f,EOT},
1519 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1520 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1521 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1522 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1523 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1524 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1525 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1526 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1527 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1528 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1529 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1530 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1531 0x00,MISC,0x00,MISC,EOT}},
1532 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001533 {EOT}
1534};
1535
Nico Huber28a13242013-04-25 15:10:46 +02001536static const struct superio_registers bram_table[] = {
1537 {0x8516, "IT8516???", {
1538 {NOLDN, NULL,
1539 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1540 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1541 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1542 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1543 {NOLDN, NULL,
1544 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1545 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1546 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1547 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1548 {NOLDN, NULL,
1549 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1550 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1551 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1552 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1553 {NOLDN, NULL,
1554 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1555 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1556 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1557 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1558 {NOLDN, NULL,
1559 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1560 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1561 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1562 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1563 {NOLDN, NULL,
1564 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1565 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1566 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1567 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1568 {NOLDN, NULL,
1569 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1570 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1571 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1572 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1573 {NOLDN, NULL,
1574 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1575 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1576 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1577 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1578 {NOLDN, NULL,
1579 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1580 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1581 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1582 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1583 {NOLDN, NULL,
1584 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1585 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1586 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1587 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1588 {NOLDN, NULL,
1589 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1590 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1591 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1592 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1593 {NOLDN, NULL,
1594 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1595 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1596 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1597 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1598 {NOLDN, NULL,
1599 {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1600 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,EOT},
1601 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1602 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1603 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001604{0x8987, "IT8987", {
1605 {NOLDN, NULL,
1606 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1607 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1608 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1609 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1610 {NOLDN, NULL,
1611 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1612 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1613 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1614 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1615 {NOLDN, NULL,
1616 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1617 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1618 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1619 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1620 {NOLDN, NULL,
1621 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1622 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1623 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1624 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1625 {NOLDN, NULL,
1626 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1627 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1628 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1629 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1630 {NOLDN, NULL,
1631 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1632 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1633 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1634 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1635 {NOLDN, NULL,
1636 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1637 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1638 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1639 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1640 {NOLDN, NULL,
1641 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1642 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1643 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1644 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1645 {NOLDN, NULL,
1646 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1647 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1648 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1649 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1650 {NOLDN, NULL,
1651 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1652 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1653 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1654 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1655 {NOLDN, NULL,
1656 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1657 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1658 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1659 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1660 {NOLDN, NULL,
1661 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1662 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1663 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1664 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1665 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +02001666 {EOT}
1667};
1668
Urja Rannikko38204a22008-10-23 23:33:18 +00001669/* Works for: IT8661F/IT8770F */
1670static const uint8_t initkey_it8661f[][4] = {
1671 {0x86, 0x61, 0x55, 0x55}, /* 0x3f0 */
1672 {0x86, 0x61, 0x55, 0xaa}, /* 0x3bd */
1673 {0x86, 0x61, 0xaa, 0x55}, /* 0x370 */
1674};
1675
1676/* Works for: IT8671F/IT8687R, IT8673F */
1677static const uint8_t initkey_it8671f[][4] = {
1678 {0x86, 0x80, 0x55, 0x55}, /* 0x3f0 */
1679 {0x86, 0x80, 0x55, 0xaa}, /* 0x3bd */
1680 {0x86, 0x80, 0xaa, 0x55}, /* 0x370 */
1681};
1682
1683/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1684static const uint8_t initkey_mbpnp[] = {
1685 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37,
1686 0x1b, 0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45,
1687 0xa2, 0xd1, 0xe8, 0x74, 0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39,
1688};
1689
1690/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1691static void enter_conf_mode_ite_legacy(uint16_t port, const uint8_t init[][4])
1692{
1693 int i, idx;
1694
1695 /* Determine Super I/O config port. */
1696 idx = (port == 0x3f0) ? 0 : ((port == 0x3bd) ? 1 : 2);
1697 for (i = 0; i < 4; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001698 OUTB(init[idx][i], ISA_PNP_ADDR);
Urja Rannikko38204a22008-10-23 23:33:18 +00001699
1700 /* Sequentially write the 32 MB PnP init values. */
1701 for (i = 0; i < 32; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001702 OUTB(initkey_mbpnp[i], port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001703}
1704
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001705static void enter_conf_mode_ite(uint16_t port)
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001706{
Andriy Gaponb64aa602008-10-28 22:13:38 +00001707 OUTB(0x87, port);
1708 OUTB(0x01, port);
1709 OUTB(0x55, port);
1710 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001711}
1712
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001713static void enter_conf_mode_ite_it8502e(uint16_t port)
1714{
1715 OUTB(0x85, port);
1716 OUTB(0x02, port);
1717 OUTB(0x55, port);
1718 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1719}
1720
Uwe Hermannebb73f22008-11-12 19:08:58 +00001721static void enter_conf_mode_ite_it8761e(uint16_t port)
1722{
1723 OUTB(0x87, port);
1724 OUTB(0x61, port);
1725 OUTB(0x55, port);
1726 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1727}
1728
1729static void enter_conf_mode_ite_it8228e(uint16_t port)
1730{
1731 OUTB(0x82, port);
1732 OUTB(0x28, port);
1733 OUTB(0x55, port);
1734 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1735}
1736
Matt Parnell063b1622019-08-15 22:32:21 -05001737static void enter_conf_mode_ite_it8987e(uint16_t port)
1738{
1739 OUTB(0x89, port);
1740 OUTB(0x87, port);
1741 OUTB(0x55, port);
1742 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1743}
1744
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001745static void exit_conf_mode_ite(uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001746{
1747 regwrite(port, 0x02, 0x02);
1748}
1749
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001750static int chip_found_at_port;
1751
Uwe Hermannafe83092007-09-28 15:45:43 +00001752static void probe_idregs_ite_helper(const char *init, uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001753{
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001754 uint16_t id, chipver, ecport;
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001755
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001756 probing_for("ITE", init, port);
1757
Uwe Hermann07024692007-09-20 22:13:48 +00001758 id = regval(port, CHIP_ID_BYTE1_REG) << 8;
1759 id |= regval(port, CHIP_ID_BYTE2_REG);
1760 chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
1761
1762 if (superio_unknown(reg_table, id)) {
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001763 if (verbose)
1764 printf(NOTFOUND "id=0x%04x, rev=0x%01x\n", id, chipver);
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001765 return;
1766 }
1767
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001768 printf("Found ITE %s (id=0x%04x, rev=0x%01x) at 0x%x\n",
Uwe Hermann07024692007-09-20 22:13:48 +00001769 get_superio_name(reg_table, id), id, chipver, port);
Uwe Hermanne9d46162007-10-07 20:01:23 +00001770 chip_found = 1;
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001771 chip_found_at_port = 1;
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001772
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001773 dump_superio("ITE", reg_table, port, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001774
1775 if (extra_dump) {
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001776 regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001777
1778 /* Get EC base address (stored in LDN 4, index 0x60/0x61). */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001779 ecport = regval(port, 0x60) << 8;
1780 ecport |= regval(port, 0x61);
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001781
1782 /* EC address register = EC base address + 5. */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001783 ecport += 5;
1784
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001785 printf("Environment controller (0x%04x)\n", ecport);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001786 dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
Nico Huber28a13242013-04-25 15:10:46 +02001787
1788 regwrite(port, LDN_SEL, 0x10); /* Select LDN 16 (BRAM). */
1789 /* Get EC base address (stored in LDN 16, index 0x62/0x63). */
1790 ecport = regval(port, 0x62) << 8;
1791 ecport |= regval(port, 0x63);
1792 printf("BRAM (0x%04x)\n", ecport);
1793 dump_superio("ITE-BRAM", bram_table, ecport, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001794 }
Uwe Hermannb4db2202007-09-20 23:37:56 +00001795}
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001796
Uwe Hermannb4db2202007-09-20 23:37:56 +00001797void probe_idregs_ite(uint16_t port)
1798{
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001799 chip_found_at_port = 0;
1800
Urja Rannikko38204a22008-10-23 23:33:18 +00001801 if (port == 0x3f0 || port == 0x3bd || port == 0x370) {
1802 enter_conf_mode_ite_legacy(port, initkey_it8661f);
1803 probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
1804 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001805 if (chip_found_at_port)
1806 return;
Uwe Hermannb4db2202007-09-20 23:37:56 +00001807
Urja Rannikko38204a22008-10-23 23:33:18 +00001808 enter_conf_mode_ite_legacy(port, initkey_it8671f);
1809 probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
1810 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001811 if (chip_found_at_port)
1812 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001813 } else {
1814 enter_conf_mode_ite(port);
Uwe Hermannebb73f22008-11-12 19:08:58 +00001815 probe_idregs_ite_helper("(init=standard) ", port);
1816 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001817 if (chip_found_at_port)
1818 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001819
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001820 enter_conf_mode_ite_it8502e(port);
1821 probe_idregs_ite_helper("(init=it8502e) ", port);
1822 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001823 if (chip_found_at_port)
1824 return;
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001825
Uwe Hermannebb73f22008-11-12 19:08:58 +00001826 enter_conf_mode_ite_it8761e(port);
1827 probe_idregs_ite_helper("(init=it8761e) ", port);
1828 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001829 if (chip_found_at_port)
1830 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001831
1832 enter_conf_mode_ite_it8228e(port);
1833 probe_idregs_ite_helper("(init=it8228e) ", port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001834 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001835 if (chip_found_at_port)
1836 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001837
Matt Parnell063b1622019-08-15 22:32:21 -05001838 enter_conf_mode_ite_it8987e(port);
1839 probe_idregs_ite_helper("(init=it8987e) ", port);
1840 exit_conf_mode_ite(port);
1841 if (chip_found_at_port)
1842 return;
1843
Urja Rannikko38204a22008-10-23 23:33:18 +00001844 enter_conf_mode_winbond_fintek_ite_8787(port);
1845 probe_idregs_ite_helper("(init=0x87,0x87) ", port);
1846 exit_conf_mode_winbond_fintek_ite_8787(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001847 if (chip_found_at_port)
1848 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001849 }
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001850}
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001851
1852void print_ite_chips(void)
1853{
1854 print_vendor_chips("ITE", reg_table);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001855 print_vendor_chips("ITE-EC", ec_table);
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001856}