blob: 458250a0e6e4923d66db8821fd1d0cd120349b46 [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[] = {
Uwe Hermannebb73f22008-11-12 19:08:58 +000011 {0x8228, "IT8228E", {
12 {EOT}}},
Donald Huang03e54de2010-08-10 23:34:51 +000013 {0x8500, "IT8500B/E", {
14 {NOLDN, NULL,
15 {0x20,0x21,0x22,0x23,0x25,0x2d,0x2e,0x2f,0x30,EOT},
16 {0x85,0x00,0x01,0x01,0x00,0x00,NANA,NANA,0x00,EOT}},
17 {0x04, "System Wake-Up Control (SWUC)",
18 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
19 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
20 {0x05, "KBC/Mouse Interface",
21 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
22 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
23 {0x06, "KBC/Keyboard Interface",
24 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
25 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
26 {0x0f, "Shared Memory/Flash Interface (SMFI)",
27 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
28 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
29 {0x10, "BRAM",
30 {0x30,0x62,0x63,0x70,0x71,0xf3,0xf4,0xf5,EOT},
31 {0x00,0x00,0x72,0x08,0x01,NANA,NANA,NANA,EOT}},
32 {0x11, "Power Management I/F Channel 1 (PMC1)",
33 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
34 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
35 {0x12, "Power Management I/F Channel 2 (PMC2)",
36 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
37 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
38 {EOT}}},
Anton Kochkov106f7ff2010-06-29 21:26:17 +000039 {0x8502, "IT8502E/TE/G", {
40 {NOLDN, NULL,
41 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
42 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
43 {0x85,0x02,0x71,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
44 NANA,NANA,NANA,0x00,NANA,EOT}},
45 {0x1, "UART1",
46 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
47 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,0x00,EOT}},
48 {0x4, "System Wake-Up",
49 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
50 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,EOT}},
51 {0x5, "Mouse",
52 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
53 {0x01,0x00,0x00,0x00,0x00,0x0C,0x01,NANA,EOT}},
54 {0x6, "Keyboard",
55 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
56 {0x01,0x00,0x60,0x00,0x64,0x01,0x01,NANA,EOT}},
57 {0xf, "Shared Memory/Flash",
58 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
59 0xf6,EOT},
60 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
61 0x00,EOT}},
62 {0x10, "BRAM",
63 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
64 0xf5,EOT},
65 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,NANA,NANA,
66 NANA,EOT}},
67 {0x11, "Power Channel 1",
68 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
69
70 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
71 {0x12, "Power Channel 2",
72 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
73 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
74 {0x17, "Power Channel 3",
75 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
76 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
77 {EOT}}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +000078 {0x8510, "IT8510E/TE/G", {
Anders Juel Jensen28e4af52010-08-22 19:41:47 +000079 {NOLDN, "Chip ID",
80 {0x20,0x21, EOT},
81 {0x85,0x10, EOT}},
82 {NOLDN, "Chip Version",
83 {0x22,EOT},
84 {0x21,EOT}},
Patrick Georgi220c2092020-01-30 12:58:08 +010085 {NOLDN, "Super I/O Control Register (SIOCTRL)",
Anders Juel Jensen28e4af52010-08-22 19:41:47 +000086 {0x23,EOT},
87 {0x01,EOT}},
88 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
89 {0x25,EOT},
90 {0x00,EOT}},
91 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
92 {0x26,EOT},
93 {0x00,EOT}},
94 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
95 {0x2d,EOT},
96 {0x00,EOT}},
97 {NOLDN, "Logical Device Activate Register (LDA)",
98 {0x30,EOT},
99 {0x00,EOT}},
100 {NOLDN, "I/O Port Base Address for Descriptor 0 (IOBAD0)",
101 {0x60,0x61,EOT},
102 {NANA,NANA,EOT}},
103 {NOLDN, "I/O Port Base Address for Descriptor 1 (IOBAD1)",
104 {0x62,0x63,EOT},
105 {NANA,NANA,EOT}},
Elyes HAOUAS073d22b2018-08-23 18:21:35 +0200106 {NOLDN, "Interrupt Request Number and Wake-Up on IRQ Enable (IRQNUMX)",
Anders Juel Jensen28e4af52010-08-22 19:41:47 +0000107 {0x70,EOT},
108 {NANA,EOT}},
109 {NOLDN, "Interrupt Request Type Select (IRQTP)",
110 {0x71,EOT},
111 {NANA,EOT}},
112 {NOLDN, "DMA Channel Select 0 (DMAS0)",
113 {0x74,EOT},
114 {0x04,EOT}},
115 {NOLDN, "DMA Channel Select 1 (DMAS1)",
116 {0x75,EOT},
117 {0x04,EOT}},
118 {0x4, "System Wakup-Up (SWUC)",
119 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
120 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
121 {0x5, "Keyboard/Mouse",
122 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
123 {0x00,0x00,0x00,0x00,0x00,0x0c,0x03,EOT}},
124 {0x6, "Keyboard/Mouse",
125 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
126 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,EOT}},
127 {0xf, "Shared Memory/Flash Interface (SMFI)",
128 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
129 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
130 {0x10, "Real Time Clock (RTC)",
131 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
132 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
133 {0x11, "Power Management Interface Channel 1",
134 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
135 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
136 {0x12, "Power Management Interface Channel 2",
137 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
138 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000139 {EOT}}},
140 {0x8511, "IT8511E/TE/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000141 {NOLDN, NULL,
142 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
143 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
144 {0x85,0x11,0x10,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
145 NANA,NANA,NANA,0x00,NANA,EOT}},
146 {0x4, "System Wake-Up",
147 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
148 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,EOT}},
149 {0x5, "Mouse",
150 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
151 {0x01,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
152 {0x6, "Keyboard",
153 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
154 {0x01,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
155 {0xf, "Shared Memory/Flash",
156 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
157 0xf6,EOT},
158 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
159 0x00,EOT}},
160 {0x10, "Real-Time Clock",
161 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,
162 0xf2,0xf3,0xf4,0xf5,EOT},
163 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,
164 0x4A,NANA,NANA,NANA,EOT}},
165 {0x11, "Power Channel 1",
166 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
167 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
168 {0x12, "Power Channel 2",
169 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
170 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000171 {EOT}}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000172 {0x8512, "IT8512E/F/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000173 {NOLDN, NULL,
174 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
175 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
176 {0x85,0x12,0x22,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
177 NANA,NANA,NANA,0x00,NANA,EOT}},
178 {0x4, "System Wake-Up",
179 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
180 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
181 {0x5, "Mouse",
182 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
183 {0x00,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
184 {0x6, "Keyboard",
185 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
186 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
187 {0xf, "Shared Memory/Flash",
188 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
189 0xf6,EOT},
190 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
191 0x00,EOT}},
192 {0x10, "BRAM",
193 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
194 0xf5,EOT},
195 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,NANA,NANA,
196 NANA,EOT}},
197 {0x11, "Power Channel 1",
198 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
199 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
200 {0x12, "Power Channel 2",
201 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
202 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000203 {EOT}}},
204 {0x8513, "IT8513E/F/G", {
205 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +0200206 {0x8516, "IT8516???", {
207 {NOLDN, "Chip ID",
208 {0x20,0x21, EOT},
209 {0x85,0x16, EOT}},
210 {NOLDN, "Chip Version",
211 {0x22,EOT},
212 {0x63,EOT}},
Patrick Georgi220c2092020-01-30 12:58:08 +0100213 {NOLDN, "Super I/O Control Register (SIOCTRL)",
Nico Huber28a13242013-04-25 15:10:46 +0200214 {0x23,EOT},
215 {0x01,EOT}},
216 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
217 {0x25,EOT},
218 {0x00,EOT}},
219 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
220 {0x26,EOT},
221 {0x00,EOT}},
222 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
223 {0x2d,EOT},
224 {0x00,EOT}},
225 {0x01, "UART1",
226 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
227 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
228 {0x02, "UART2",
229 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
230 {0x00,0x02,0xf8,0x00,0x00,0x04,0x02,EOT}},
231 {0x04, "System Wakup-Up (SWUC)",
232 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
233 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
234 {0x05, "Mouse",
235 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
236 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
237 {0x06, "Keyboard",
238 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
239 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
240 {0x0f, "Shared Memory/Flash Interface (SMFI)",
241 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
242 0xf4,0xf5,EOT},
243 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
244 NANA,NANA,EOT}},
245 {0x10, "BRAM / Real Time Clock (RTC)",
246 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
247 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
248 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
249 NANA,NANA,NANA,NANA,NANA,EOT}},
250 {0x11, "Power Management Interface Channel 1",
251 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
252 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
253 {0x12, "Power Management Interface Channel 2",
254 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
255 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
256 {0x17, "Power Management Interface Channel 3",
257 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
258 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
259 {EOT}}},
Patrick Rudolph6085d392019-01-09 16:42:07 +0100260 {0x8528, "IT8528", {
261 {NOLDN, NULL,
262 {0x24,0x25,0x26,0x27,0x28,0x29,
263 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
264 {0x00,0x00,0x00,0x00,0x00,0x00,
265 0x00,0x00,0x01,0x00,0x00,EOT}},
266 {NOLDN, "Chip ID",
267 {0x20,0x21, EOT},
268 {0x85,0x28, EOT}},
269 {NOLDN, "Chip Version",
270 {0x22,EOT},
271 {0x0a,EOT}},
272 {NOLDN, "Super I/O Control Register (SIOCTRL)",
273 {0x23,EOT},
274 {0x01,EOT}},
275 {0x01, "UART1",
276 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
277 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
278 {0x02, "UART2",
279 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
280 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,EOT}},
281 {0x04, "System Wake-Up (SWUC)",
282 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
283 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
284 {0x05, "Mouse",
285 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
286 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
287 {0x06, "Keyboard",
288 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
289 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
290 {0x0f, "Shared Memory/Flash Interface (SMFI)",
291 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
292 0xf4,0xf5,EOT},
293 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
294 NANA,NANA,EOT}},
295 {0x10, "BRAM / Real Time Clock (RTC)",
296 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
297 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
298 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
299 NANA,NANA,NANA,NANA,NANA,EOT}},
300 {0x11, "Power Channel 1",
301 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
302 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
303 {0x12, "Power Channel 2",
304 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
305 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
306 {0x17, "Power Channel 3",
307 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
308 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
309 {0x18, "Power Channel 4",
310 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
311 {0x00,0x00,0x74,0x00,0x78,0x01,0x01,EOT}},
312 {0x19, "Power Channel 5",
313 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
314 {0x00,0x00,0x7a,0x00,0x7c,0x01,0x01,EOT}},
315 {EOT}}},
Krystian Hebel9e3c3022019-02-26 14:20:52 +0100316 {0x8613, "IT8613E", {
317 {NOLDN, NULL,
318 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
319 {0x86,0x13,0x05,0x40,0x00,0x48,EOT}},
320 {0x1, "COM1",
321 {0x30,0x60,0x61,0x70,0xf0,EOT},
322 {0x00,0x03,0xf8,0x04,0x00,EOT}},
323 {0x4, "Environment controller",
324 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
325 0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
326 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
327 0x00,NANA,NANA,0x00,0x00,0x00,EOT}},
328 {0x5, "Keyboard",
329 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
330 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
331 {0x6, "Mouse",
332 {0x30,0x70,0x71,0xf0,EOT},
333 {0x00,0x0c,0x02,0x00,EOT}},
334 {0x7, "GPIO",
335 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,0x61,
336 0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,0xb2,
337 0xb3,0xb4,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
338 0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xda,0xdb,
339 0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,0xf2,0xf3,
340 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
341 {0x00,0xF3,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
342 0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,0x00,
343 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
344 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
345 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,NANA,
346 0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
347 {0xa, "Consumer IR",
348 {0x30,0x60,0x61,0x70,0xf0,EOT},
349 {0x00,0x03,0x10,0x0b,0x06,EOT}},
350 {EOT}}},
Gergely Kiss64e07992018-01-04 05:46:02 +0100351 {0x8623, "IT8623E", {
352 /* Defaults are not specified as no datasheet available */
353 {NOLDN, NULL,
354 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
355 {0x86,0x23,0x01,NANA,NANA,NANA,EOT}},
356 {0x0, "Floppy",
357 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
358 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
359 {0x1, "COM1",
360 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
361 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
362 {0x2, "COM2",
363 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
364 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
365 {0x3, "Parallel port",
366 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
367 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
368 {0x4, "Environment controller",
369 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
370 0xf4,0xf5,0xf6,EOT},
371 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
372 NANA,NANA,NANA,EOT}},
373 {0x5, "Keyboard",
374 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
375 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
376 {0x6, "Mouse",
377 {0x30,0x70,0x71,0xf0,EOT},
378 {NANA,NANA,NANA,NANA,EOT}},
379 {0x7, "GPIO",
380 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
381 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
382 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
383 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
384 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
385 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
386 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
387 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
388 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
389 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
390 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
391 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
392 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
393 NANA,NANA,NANA,NANA,NANA,EOT}},
394 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000395 {0x8661, "IT8661F/IT8770F", {
Robinson P. Tryondc817692007-10-05 13:47:04 +0000396 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000397 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
398 0x23,0x24,EOT},
399 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x61,0x00,
400 0x00,0x00,EOT}},
Robinson P. Tryondc817692007-10-05 13:47:04 +0000401 {0x0, "Floppy",
402 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
403 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
404 {0x1, "COM1",
405 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
406 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
407 {0x2, "COM2",
408 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
409 {0x00,0x00,0x02,0xf8,0x03,0x02,0x00,EOT}},
410 {0x3, "Parallel port",
411 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
412 0xf0,EOT},
413 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
414 0x03,EOT}},
415 {0x4, "IR",
416 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
417 0x74,0x75,0xf0,EOT},
418 {0x00,0x00,0x02,0xe8,0x03,0x00,0x0a,0x02,0x0b,0x02,
419 0x01,0x00,0x00,EOT}},
420 {0x5, "GPIO",
421 {0x25,0x26,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
422 0x70,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
423 0xf9,0xfa,0xfb,0xfc,EOT},
424 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
425 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
426 0x00,0x00,0x00,0x00,EOT}},
427 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000428 {0x8673, "IT8673F", {
429 {EOT}}},
430 {0x8681, "IT8671F/IT8687R", {
Anders Jenbo14db1c02010-05-08 23:28:33 +0000431 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000432 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
433 0x23,0x24,0x25,0x26,0x2e,0x2f,EOT},
434 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x81,0x00,
435 0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
436 {0x0, "Floppy",
437 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
438 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000439 {0x1, "COM1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000440 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
441 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000442 {0x2, "COM2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000443 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
444 0x74,0x75,0xf0,0xf1,EOT},
445 {0x00,0x00,0x02,0xf8,0x03,0x00,0x03,0x02,0x0a,0x02,
446 0x00,0x01,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000447 {0x3, "Parallel port",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000448 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
449 0xf0,EOT},
450 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
451 0x03,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000452 {0x4, "APC",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000453 {0x30,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,EOT},
454 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000455 {0x5, "Keyboard",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000456 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
457 {MISC,0x00,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000458 {0x6, "Mouse",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000459 {0x30,0x70,0x71,0xf0,EOT},
460 {0x00,0x0c,0x02,0x00,EOT}},
461 {0x7, "GPIO",
462 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
463 0x70,0x71,0x72,0x73,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,
464 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
465 0xe0,0xe1,0xe2,0xe3,0xe4,EOT},
466 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
467 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
468 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
469 0x00,0x00,0x00,0x00,0x00,EOT}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000470 {EOT}}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000471 {0x8701, "IT8703F", {
472 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000473 {0x20,0x21,0x23,0x24,0x26,0x29,0x2a,0x2b,EOT},
474 {0x87,0x00,0x00,0x80,0x00,0x00,0x7c,0xc0,EOT}},
475 {0x0, "Floppy",
476 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf3,0xf4,
477 0xf5,EOT},
478 {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000479 0x00,EOT}},
480 {0x1, "Parallel port",
481 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
482 {0x00,0x03,0x78,0x00,0x80,0x07,0x03,0x03,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000483 {0x2, "COM1",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000484 {0x30,0x60,0x61,0x70,0xf0,EOT},
485 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000486 {0x3, "COM2",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000487 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
488 {0x00,0x02,0xf8,0x03,0x00,0x00,0x00,0x7f,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000489 {0x5, "Keyboard",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000490 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000491 {0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x80,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000492 {0x6, "Consumer IR",
493 {0x30,0x60,0x61,0x70,EOT},
494 {0x00,0x00,0x00,0x00,EOT}},
495 {0x7, "Game port, MIDI, GPIO set 1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000496 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,EOT},
497 {0x00,0x02,0x01,0x03,0x30,0x00,0xff,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000498 {0x8, "GPIO set 2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000499 {0x30,0xf0,0xf1,0xf2,0xf3,0xf5,EOT},
500 {0x00,0xff,0x00,0x00,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000501 {0x9, "GPIO set 3 and 4",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000502 {0x30,0x60,0x61,0xf0,0xf1,0xf2,0xf3,0xf4,EOT},
503 {0x00,0x02,0x90,0xff,0x00,0x00,0x00,0x00,EOT}},
504 {0xa, "ACPI",
505 {0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
506 0xf3,0xf4,0xf6,0xf7,0xf9,EOT},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000507 {0x00,0x00,0x00,0x00,NANA,NANA,0x00,0x00,0x00,0x00,
508 NANA,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000509 {0xc, "GPIO set 5, 6 and 7",
510 {0x30,0x60,0x61,0xf0,0xf3,0xf6,EOT},
511 {0x00,0x03,0x70,0x00,0xff,0xff,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000512 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000513 {0x8702, "IT8702F", {
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000514 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000515 {0x8705, "IT8705F/AF / IT8700F", {
Robinson P. Tryon43541032007-10-04 15:44:19 +0000516 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000517 {0x20,0x21,0x22,0x23,0x24,EOT},
518 {0x87,0x05,0x00,0x00,NANA,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000519 {0x0, "Floppy",
520 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
521 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
522 {0x1, "COM1",
523 {0x30,0x60,0x61,0x70,0xf0,EOT},
524 {0x00,0x03,0xf8,0x04,0x00,EOT}},
525 {0x2, "COM2",
526 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
527 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
528 {0x3, "Parallel port",
529 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
530 0xf0,EOT},
531 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
532 0x03,EOT}},
533 {0x4, "Environment controller",
534 {0x2b,0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
535 0xf3,0xf4,0xf5,0xf6,EOT},
536 {0x00,0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
537 0x00,0x00,NANA,NANA,EOT}},
538 {0x5, "GPIO",
Robinson P. Tryondc817692007-10-05 13:47:04 +0000539 {0x25,0x26,0x27,0x28,0x29,0x2a,0x60,0x61,0x62,0x63,
540 0x64,0x65,0x70,0x71,0x72,0xb0,0xb1,0xb2,0xb3,0xb4,
541 0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
542 0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xd0,
543 0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd8,0xd9,0xda,0xf0,
544 0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,
545 0xfd,0xfe,0xff,EOT},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000546 {0x00,0x00,0x00,0xff,0xe0,0xff,0x00,0x00,0x00,0x00,
547 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
548 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
549 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
550 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
551 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Robinson P. Tryondc817692007-10-05 13:47:04 +0000552 0x00,NANA,0x00,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000553 {0x6, "Game port",
554 {0x30,0x60,0x61,EOT},
555 {0x00,0x02,0x01,EOT}},
556 {0x7, "Consumer IR",
557 {0x30,0x60,0x61,0x70,0xf0,EOT},
558 {0x00,0x03,0x10,0x0b,0x00,EOT}},
559 {0x8, "MIDI port",
560 {0x30,0x60,0x61,0x70,0xf0,EOT},
561 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000562 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000563 {0x8706, "IT8706R", { /* TODO: Not yet in sensors-detect */
564 /* This is a "Special General Purpose I/O chip". */
565 {EOT}}},
Mattias Mattsson25bf69a2010-08-02 02:34:20 +0000566 {0x8707, "IT8707F", {
567 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000568 {0x8708, "IT8708F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000569 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000570 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
571 0x2a,0x2e,0x2f,EOT},
572 {0x87,0x08,0x00,0x00,NANA,0x3f,0x00,0xff,0xff,0xff,
573 0xff,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000574 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000575 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
576 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000577 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000578 {0x30,0x60,0x61,0x70,0xf0,EOT},
579 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000580 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000581 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
582 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000583 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000584 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
585 0xf0,EOT},
586 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
587 0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000588 {0x4, "SWC",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000589 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
590 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,EOT},
591 {NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
592 0x00,0x00,0x00,0x00,0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000593 {0x5, "Keyboard",
Uwe Hermann2c290e32007-09-20 00:00:49 +0000594 /* Note: 0x30 can actually be 0x00 _or_ 0x01. */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000595 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
596 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000597 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000598 {0x30,0x70,0x71,0xf0,EOT},
599 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000600 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000601 {0x70,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,
602 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,
603 0xc9,0xca,0xcb,0xcc,0xcd,0xd0,0xd1,0xd2,0xd3,0xd4,
604 0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xf0,0xf1,
605 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,
606 0xfc,EOT},
607 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
608 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
609 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
610 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x00,
611 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
612 0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000613 {0x8, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000614 {0x30,0x60,0x61,EOT},
615 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000616 {0x9, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000617 {0x30,0x60,0x61,0x70,0xf0,EOT},
618 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000619 {0xa, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000620 {0x30,0x60,0x61,0x70,0xf0,EOT},
621 {0x00,0x03,0x00,0x0a,0x00,EOT}},
622 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000623 {0x8710, "IT8710F", { /* TODO: Not yet in sensors-detect */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000624 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000625 {0x8711, "IT8711F", { /* 0x8711 is a guess, not found in datasheet. */
626 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000627 {0x8712, "IT8712F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000628 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000629 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
630 {0x87,0x12,0x08,0x00,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000631 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000632 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
633 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000634 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000635 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
636 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000637 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000638 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
639 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000640 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000641 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
642 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000643 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000644 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
645 0xf4,0xf5,0xf6,EOT},
646 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
647 0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000648 {0x5, "Keyboard",
649 /* TODO: 0xf0: Error in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000650 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
651 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000652 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000653 {0x30,0x70,0x71,0xf0,EOT},
654 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000655 {0x7, "GPIO", /* TODO: 0x72, 0x73: Errors in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000656 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
657 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
658 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
659 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
660 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
661 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
662 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
Uwe Hermann07024692007-09-20 22:13:48 +0000663 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000664 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
665 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
666 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
667 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000668 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000669 {0x30,0x60,0x61,0x70,0xf0,EOT},
670 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000671 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000672 {0x30,0x60,0x61,EOT},
673 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000674 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000675 {0x30,0x60,0x61,0x70,0xf0,EOT},
676 {0x00,0x03,0x10,0x0b,0x00,EOT}},
677 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000678 {0x8716, "IT8716F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000679 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000680 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
681 {0x87,0x16,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000682 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000683 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
684 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000685 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000686 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
687 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000688 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000689 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
690 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000691 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000692 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
693 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000694 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000695 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
696 0xf4,0xf5,0xf6,EOT},
697 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
698 0x00,NANA,NANA,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000699 {0x5, "Keyboard",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000700 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
701 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000702 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000703 {0x30,0x70,0x71,0xf0,EOT},
704 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000705 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000706 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
707 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
708 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
709 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
710 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
711 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
712 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
713 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
714 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
715 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
716 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
717 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000718 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000719 {0x30,0x60,0x61,0x70,0xf0,EOT},
720 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000721 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000722 {0x30,0x60,0x61,EOT},
723 {0x00,0x02,0x01,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000724 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000725 {0x30,0x60,0x61,0x70,0xf0,EOT},
726 {0x00,0x03,0x10,0x0b,0x00,EOT}},
727 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000728 {0x8718, "IT8718F", {
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000729 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000730 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
731 {0x87,0x18,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000732 {0x0, "Floppy",
733 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
734 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
735 {0x1, "COM1",
736 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
737 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
738 {0x2, "COM2",
739 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
740 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
741 {0x3, "Parallel port",
742 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
743 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
744 {0x4, "Environment controller",
745 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
746 0xf4,0xf5,0xf6,EOT},
747 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
748 0x00,NANA,NANA,EOT}},
749 {0x5, "Keyboard",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000750 /* 0xf0: Datasheet page 33: 0x00; page 56: 0x08. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000751 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
752 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
753 {0x6, "Mouse",
754 {0x30,0x70,0x71,0xf0,EOT},
755 {0x00,0x0c,0x02,0x00,EOT}},
756 {0x7, "GPIO",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000757 /* 0x2c: Datasheet page 30: 0x00; page 43: 0x1f. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000758 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
759 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
760 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000761 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,
762 0xcc,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,
763 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
764 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000765 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
766 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
767 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000768 0x01,0x00,0x00,0x40,0x00,0x00,0x01,0x00,0x00,0x40,
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000769 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
770 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000771 0x00,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000772 {0xa, "Consumer IR",
773 {0x30,0x60,0x61,0x70,0xf0,EOT},
774 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000775 {EOT}}},
Christian Ruppert7c2eec02011-02-03 16:00:28 +0000776 {0x8720, "IT8720F", {
777 {NOLDN, NULL,
778 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
779 {0x87,0x20,0x05,0x00,0x00,0x00,EOT}},
780 {0x0, "Floppy",
781 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
782 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
783 {0x1, "COM1",
784 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
785 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
786 {0x2, "COM2",
787 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
788 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
789 {0x3, "Parallel port",
790 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
791 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
792 {0x4, "Environment controller",
793 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
794 0xf4,0xf5,0xf6,EOT},
795 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
796 0x00,NANA,NANA,EOT}},
797 {0x5, "Keyboard",
798 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
799 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
800 {0x6, "Mouse",
801 {0x30,0x70,0x71,0xf0,EOT},
802 {0x00,0x0c,0x02,0x00,EOT}},
803 {0x7, "GPIO",
804 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
805 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
806 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
807 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
808 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
809 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
810 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
811 {0x00,0xff,0x00,0x40,0x00,0x00,0x03,0x00,0x00,0x00,
812 0x00,0x00,0x00,0x00,0x00,NANA,0x38,0x00,0x00,0x00,
813 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
814 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
815 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,
816 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
817 0x00,NANA,0x00,0x00,0x00,EOT}},
818 {0xa, "Consumer IR",
819 {0x30,0x60,0x61,0x70,0xf0,EOT},
820 {0x00,0x03,0x10,0x0b,0x06,EOT}},
Uwe Hermanncfb6ac72008-10-01 20:16:58 +0000821 {EOT}}},
Uwe Hermannf9bd9ae2011-01-01 22:05:57 +0000822 {0x8721, "IT8721F", {
823 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000824 {0x8722, "IT8722F", {
825 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000826 {0x8726, "IT8726F", {
827 /* Datasheet wrongly says that the ID is 0x8716. */
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000828 {NOLDN, NULL,
829 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
830 {0x87,0x26,0x01,0x00,MISC,0x00,EOT}},
831 {0x0, "Floppy",
832 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
833 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
834 {0x1, "COM1",
835 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
836 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
837 {0x2, "COM2",
838 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
839 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
840 {0x3, "Parallel port",
841 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
842 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
843 {0x4, "Environment controller",
844 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
845 0xf4,0xf5,0xf6,EOT},
846 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
847 0x00,MISC,MISC,EOT}},
848 {0x5, "Keyboard",
849 /* 0xf0: Datasheet page 35: 0x00; page 59: 0x08. */
850 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
851 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
852 {0x6, "Mouse",
853 {0x30,0x70,0x71,0xf0,EOT},
854 {0x00,0x0c,0x02,0x00,EOT}},
855 {0x7, "GPIO",
856 /* 0x2c: Datasheet page 33: 0x00; page 45: 0x1f. */
857 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
858 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
859 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
860 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
861 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
862 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
863 {0x01,0x00,0x00,0x40,0x00,0x00,0x1f,0x00,0x00,0x00,
864 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
865 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
866 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
867 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
868 0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,0x00,EOT}},
869 {0x8, "MIDI port",
870 {0x30,0x60,0x61,0x70,0xf0,EOT},
871 {0x00,0x03,0x00,0x0a,0x00,EOT}},
872 {0x9, "Game port",
873 {0x30,0x60,0x61,EOT},
874 {0x00,0x02,0x01,EOT}},
875 {0xa, "Consumer IR",
876 {0x30,0x60,0x61,0x70,0xf0,EOT},
877 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000878 {EOT}}},
Андрей Павловab9b71d2013-03-17 19:11:05 +0300879 {0x8728, "IT8728F", {
880 {NOLDN, NULL,
881 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x2b,0x2e,0x2f,EOT},
882 {NANA,NANA,0x87,0x28,0x01,0x00,0x00,MISC,0x00,0x00,EOT}},
883 {0x0, "Floppy",
884 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
885 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
886 {0x1, "COM1",
887 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
888 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
889 {0x2, "COM2",
890 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
891 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
892 {0x3, "Parallel port",
893 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
894 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
895 {0x4, "Environment controller",
896 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
897 0xf3,0xf4,0xf5,0xf6,0xF9,0xFA,0xFB,EOT},
898 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
899 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
900 {0x5, "Keyboard",
901 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
902 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
903 {0x6, "Mouse",
904 {0x30,0x70,0x71,0xf0,EOT},
905 {0x00,0x0c,0x02,0x00,EOT}},
906 {0x7, "GPIO",
907 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,
908 0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,0x73,
909 0x74,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
910 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,
911 0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xe0,0xe1,
912 0xe2,0xe3,0xe4,0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,
913 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
914 {0x00,0xf3,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
915 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,
916 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
917 0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,
918 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
919 0x00,0x00,0x00,MISC,0x00,0x00,0x00,0x00,0x00,
920 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
921 {0xa, "Consumer IR",
922 {0x30,0x60,0x61,0x70,0xf0,EOT},
923 {0x00,0x03,0x10,0x0b,0x06,EOT}},
924 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000925 {0x8761, "IT8761E", {
926 {EOT}}},
Stefan Reinauerd7a75ec2011-10-25 17:12:53 +0000927 {0x8772, "IT8772F", {
Angel Ponsd8eadff2018-12-14 19:24:44 +0100928 {NOLDN, NULL,
929 {0x20,0x21,0x22,0x23,0x24,0x2e,0x2f,EOT},
930 {0x87,0x72,0x02,0x00,0x00,0x00,0x00,EOT}},
931 {0x1, "COM1",
932 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
933 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
934 {0x4, "Environment controller",
935 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
936 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,EOT},
937 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
938 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
939 {0x5, "Keyboard",
940 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
941 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
942 {0x6, "Mouse",
943 {0x30,0x70,0x71,0xf0,EOT},
944 {0x00,0x0c,0x02,0x00,EOT}},
945 {0x7, "GPIO",
946 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c, /* 25 .. 2c */
947 0x60,0x61,0x62,0x63, /* 60 .. 64 */
948 0x70,0x71,0x72,0x73,0x74, /* 70 .. 74 */
949 0xb0,0xb1,0xb2,0xb3,0xb4, /* b0 .. b4 */
950 0xb8,0xb9,0xba,0xbb,0xbc,0xbd, /* b8 .. bd */
951 0xc0,0xc1,0xc2,0xc3,0xc4, /* c0 .. c4 */
952 0xc8,0xc9,0xca,0xcb,0xcc,0xcd, /* c8 .. cd */
953 0xe0,0xe1,0xe2,0xe3,0xe4,0xe9, /* e0 .. e9 */
954 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5, /* f0 .. f5 */
955 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb, /* f6 .. fb */
956 EOT},
957 {0x00,0xf3,0x00,0x00,0x00,0x00,MISC,0x01, /* 25 .. 2c */
958 0x00,0x00,0x00,0x00, /* 60 .. 64 */
959 0x00,0x00,0x20,0x38,0x00, /* 70 .. 74 */
960 0x00,0x00,0x00,0x00,0x00, /* b0 .. b4 */
961 0x20,0x00,0x00,0x00,0x00,0x00, /* b8 .. bd */
962 0x01,0x00,0x00,0x40,0x00, /* c0 .. c4 */
963 0x01,0x00,0x00,0x00,0x00,0x00, /* c8 .. cd */
964 0x00,0x00,0x00,0x00,0x00,MISC, /* e0 .. e9 */
965 0x00,0x00,0x00,0x00,0x00,0x00, /* f0 .. f6 */
966 0x00,0x00,0x00,0x00,0x00,0x00, /* f6 .. fb */
967 EOT}},
968 {0xa, "Consumer IR",
969 {0x30,0x60,0x61,0x70,0xf0,EOT},
970 {0x00,0x03,0x10,0x0b,0x06,EOT}},
Stefan Reinauerd7a75ec2011-10-25 17:12:53 +0000971 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000972 {0x8780, "IT8780F", {
973 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +0200974 {0x8783, "IT8783E/F", {
975 {NOLDN, NULL,
976 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
977 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
978 EOT},
979 {NANA,NANA,0x87,0x83,0x00,0x00,MISC,0x00,0x00,
980 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
981 EOT}},
982 {0x0, "Floppy",
983 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
984 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
985 {0x1, "COM1",
986 {0x30,0x60,0x61,0x70,0xf0,EOT},
987 {0x00,0x03,0xf8,0x04,0x00,EOT}},
988 {0x2, "COM2",
989 {0x30,0x60,0x61,0x70,0xf0,EOT},
990 {0x00,0x02,0xf8,0x03,0x00,EOT}},
991 {0x3, "Parallel port",
992 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
993 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
994 {0x4, "Environment controller",
995 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
996 0xf3,0xf4,0xf5,0xf6,0xf7,EOT},
997 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
998 0x00,0x00,MISC,MISC,MISC,EOT}},
999 {0x5, "Keyboard",
1000 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1001 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
1002 {0x6, "Mouse",
1003 {0x30,0x70,0x71,0xf0,EOT},
1004 {0x00,0x0c,0x02,0x00,EOT}},
1005 {0x7, "GPIO",
1006 {0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,
1007 0x73,0x74,0x81,0x82,0x83,0x84,0x91,0x92,0x93,
1008 0x94,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
1009 0xbb,0xbc,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,
1010 0xca,0xcb,0xcc,0xcd,0xe0,0xe1,0xe2,0xe3,0xe4,
1011 0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
1012 0xf8,0xf9,0xfa,0xfb,EOT},
1013 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,
1014 0x38,0x00,0x00,MISC,0x38,0x00,0x00,MISC,0x38,
1015 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1016 0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,0x00,
1017 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1018 MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1019 0x00,0x00,0x00,0x00,EOT}},
1020 {0x8, "COM3",
1021 {0x30,0x60,0x61,0x70,0xf0,EOT},
1022 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1023 {0x9, "COM4",
1024 {0x30,0x60,0x61,0x70,0xf0,EOT},
1025 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1026 {0xa, "COM5",
1027 {0x30,0x60,0x61,0x70,0xf0,EOT},
1028 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1029 {0xb, "COM6",
1030 {0x30,0x60,0x61,0x70,0xf0,EOT},
1031 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1032 {0xc, "Consumer IR",
1033 {0x30,0x60,0x61,0x70,0xf0,EOT},
1034 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1035 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001036 {0x8786, "IT8786E-I", {
1037 {NOLDN, NULL,
1038 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1039 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1040 EOT},
1041 {NANA,NANA,0x87,0x86,0x03,0x40,RSVD,0x00,0xf3,
1042 0x00,0x00,0x00,0x00,0x48,0x89,0x00,0x00,0x00,
1043 EOT}},
1044 {0x1, "COM1",
1045 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1046 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1047 {0x2, "COM2",
1048 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1049 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1050 {0x3, "Parallel port",
1051 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1052 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1053 {0x4, "Environment controller",
1054 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1055 0xf3,0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
1056 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1057 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1058 {0x5, "Keyboard",
1059 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1060 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1061 {0x6, "Mouse",
1062 {0x30,0x70,0x71,0xf0,EOT},
1063 {0x00,0x0c,0x02,0x00,EOT}},
1064 {0x7, "GPIO",
1065 {0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,
1066 0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
1067 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
1068 0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,
1069 0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,
1070 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1071 {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,
1072 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
1073 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1074 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1075 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1076 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1077 {0x8, "COM3",
1078 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1079 {0x00,0x03,0xf8,0x0b,0x00,0x50,0x00,EOT}},
1080 {0x9, "COM4",
1081 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1082 {0x00,0x02,0xf8,0x0a,0x00,0x50,0x00,EOT}},
1083 {0xa, "Consumer IR",
1084 {0x30,0x60,0x61,0x70,0xf0,EOT},
1085 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1086 {0xb, "COM5",
1087 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1088 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1089 {0xc, "COM6",
1090 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1091 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1092 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001093 {0x8987, "IT8987", { /* global registers 0x24, 0x27, 0x28, 0x29, 0x2a, 0x2b are reserved */
1094 {NOLDN, "Chip ID",
1095 {0x20,0x21, EOT},
1096 {0x89,0x87, EOT}},
1097 {NOLDN, "Chip Version",
1098 {0x22,EOT},
1099 {0x03,EOT}},
1100 {NOLDN, "Super I/O Control Register (SIOCTRL)",
1101 {0x23,EOT},
1102 {0x01,EOT}},
1103 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
1104 {0x25,EOT},
1105 {0x00,EOT}},
1106 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
1107 {0x26,EOT},
1108 {0x00,EOT}},
1109 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
1110 {0x2d,EOT},
1111 {0x00,EOT}},
1112 {NOLDN, "Depth 2 I/O Address (D2ADR)",
1113 {0x2e,EOT},
1114 {0x00,EOT}},
1115 {NOLDN, "Depth 2 I/O Data (D2DAT)",
1116 {0x2f,EOT},
1117 {0x00,EOT}},
1118 {0x04, "System Wake-Up Control (SWUC)",
1119 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1120 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
1121 {0x05, "KBC/Mouse Interface",
1122 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1123 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
1124 {0x06, "KBC/Keyboard Interface",
1125 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1126 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
1127 {0xa, "Consumer IR",
1128 {0x30,0x60,0x61,0x70,0x71,EOT},
1129 {0x00,0x03,0x10,0x00,0x02,EOT}},
1130 {0x0f, "Shared Memory/Flash Interface (SMFI)",
1131 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
1132 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
1133 {0x10, "Real Time Clock (RTC)",
1134 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
1135 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
1136 {0x11, "Power Management I/F Channel 1 (PMC1)",
1137 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1138 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1139 {0x12, "Power Management I/F Channel 2 (PMC2)",
1140 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1141 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1142 {0x13, "Serial Peripheral Interface (SSPI)",
1143 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1144 {0x00,0x03,0x00,0x00,0x00,0x00,0x00,EOT}},
1145 {0x14, "Platform Environment Control Interface (PECI)",
1146 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1147 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1148 {0x17, "Power Management I/F Channel 3 (PMC3)",
1149 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1150 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1151 {0x18, "Power Management I/F Channel 4 (PMC4)",
1152 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1153 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1154 {0x19, "Power Management I/F Channel 5 (PMC5)",
1155 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1156 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1157 {EOT}}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001158 {EOT}
1159};
1160
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001161static const struct superio_registers ec_table[] = {
Krystian Hebel9e3c3022019-02-26 14:20:52 +01001162 {0x8613, "IT8613E", {
1163 {NOLDN, NULL,
1164 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1165 0x0a,0x0b,0x0c,0x0e,0x0f,0x11,0x12,0x13,0x14,0x16,
1166 0x17,0x19,0x1a,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,
1167 0x24,0x25,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,
1168 0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x38,0x39,0x3a,
1169 0x3b,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x50,
1170 0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,
1171 0x5b,0x5c,0x5d,0x5e,0x5f,0x68,0x69,0x6a,0x6b,0x6c,
1172 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,
1173 0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,
1174 0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,
1175 0x8e,0x8f,0x90,0x91,0x98,0x99,0x9c,0x9d,0x9e,0x9f,
1176 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xb4,0xb5,0xb6,
1177 0xb7,0xb8,0xb9,EOT},
1178 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1179 0x44,0x00,0x00,MISC,MISC,NANA,NANA,0x00,0x40,0x00,
1180 0x00,MISC,MISC,NANA,NANA,0x00,0x00,MISC,MISC,MISC,
1181 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1182 MISC,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1183 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1184 0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x00,
1185 0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
1186 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1187 0x7f,0x7f,0x00,0x00,0x7f,0x0f,MISC,MISC,MISC,MISC,
1188 NANA,NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
1189 0x00,MISC,0x00,0x00,0x00,0x00,0x00,NANA,0x00,NANA,
1190 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,
1191 NANA,NANA,NANA,EOT}},
1192 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001193 {0x8716, "IT8716F", {
1194 {NOLDN, NULL,
1195 {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,
1196 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,
1197 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1198 0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,
1199 0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001200 0x59,0x5c,
1201 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,
1202 0x69,0x6a,0x6b,0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,
1203 0x75,0x84,0x85,0x86,0x87,0x88,0x89,0x8c,0x8d,0x8e,
1204 0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,0x9a,
1205 0x9b,0x9c,0x9d,EOT},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001206 {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,
1207 NANA,NANA,0x07,0x50,NANA,NANA,NANA,NANA,NANA,NANA,
1208 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1209 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1210 NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001211 0x00,0x00,
1212 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001213 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1214 0x7f,NANA,NANA,NANA,NANA,0x00,0x00,0x02,0x00,0x99,
1215 0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,
1216 0x00,0x00,0x7f,EOT}},
1217 {EOT}}},
Uwe Hermannbbd337e2008-05-08 14:37:12 +00001218 {0x8718, "IT8718F", {
1219 {NOLDN, NULL,
1220 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1221 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1222 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1223 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1224 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1225 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1226 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x56,
1227 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1228 0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1229 0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,0x83,
1230 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1231 0x92,0x94,0x95,0x96,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,
1232 0xa6,EOT},
1233 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1234 0x40,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1235 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1236 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1237 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1238 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1239 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x00,
1240 0x00,0x90,0x00,0x12,0x00,0x00,0x00,0x00,0x7f,0x7f,
1241 0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1242 0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,
1243 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1244 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1245 0x00,EOT}},
1246 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +02001247 {0x8783, "IT8783E/F", {
1248 {NOLDN, NULL,
1249 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1250 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1251 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1252 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
Nico Huber25445dc2016-09-29 12:22:30 +02001253 0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
1254 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
1255 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1256 0x48,0x49,0x4a,0x4b,0x50,0x51,0x52,0x53,0x54,0x55,
1257 0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
1258 0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
1259 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x88,0x89,
1260 0x8a,0x8b,0x8c,0x8d,0x8e,EOT},
Nico Hubere35a3742016-09-29 12:22:30 +02001261 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1262 0x54,0x09,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1263 0x50,MISC,MISC,MISC,NANA,NANA,NANA,MISC,MISC,MISC,
1264 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
Nico Huber25445dc2016-09-29 12:22:30 +02001265 NANA,NANA,NANA,NANA,NANA,NANA,MISC,MISC,MISC,MISC,
Nico Hubere35a3742016-09-29 12:22:30 +02001266 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
Nico Huber25445dc2016-09-29 12:22:30 +02001267 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x5f,0x74,
1268 0x2d,0x40,0xab,0x22,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1269 0x00,0x00,0x90,0x00,MISC,0x12,0x60,0x00,0x00,0x00,
1270 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
1271 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,MISC,0x00,
1272 0x00,0x00,0x00,MISC,0x02,EOT}},
Nico Hubere35a3742016-09-29 12:22:30 +02001273 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001274 {0x8786, "IT8786E-I", {
1275 {NOLDN, NULL,
1276 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1277 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1278 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1279 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1280 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1281 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1282 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1283 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1284 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1285 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1286 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1287 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1288 0x9c,0x9d,0x9e,0x9f,EOT},
1289 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1290 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1291 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1292 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1293 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1294 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1295 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1296 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1297 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1298 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1299 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1300 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1301 0x00,MISC,0x00,MISC,EOT}},
1302 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001303 {EOT}
1304};
1305
Nico Huber28a13242013-04-25 15:10:46 +02001306static const struct superio_registers bram_table[] = {
1307 {0x8516, "IT8516???", {
1308 {NOLDN, NULL,
1309 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1310 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1311 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1312 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1313 {NOLDN, NULL,
1314 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1315 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1316 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1317 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1318 {NOLDN, NULL,
1319 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1320 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1321 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1322 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1323 {NOLDN, NULL,
1324 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1325 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1326 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1327 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1328 {NOLDN, NULL,
1329 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1330 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1331 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1332 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1333 {NOLDN, NULL,
1334 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1335 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1336 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1337 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1338 {NOLDN, NULL,
1339 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1340 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1341 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1342 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1343 {NOLDN, NULL,
1344 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1345 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1346 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1347 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1348 {NOLDN, NULL,
1349 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1350 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1351 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1352 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1353 {NOLDN, NULL,
1354 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1355 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1356 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1357 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1358 {NOLDN, NULL,
1359 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1360 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1361 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1362 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1363 {NOLDN, NULL,
1364 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1365 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1366 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1367 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1368 {NOLDN, NULL,
1369 {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1370 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,EOT},
1371 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1372 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1373 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001374{0x8987, "IT8987", {
1375 {NOLDN, NULL,
1376 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1377 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1378 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1379 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1380 {NOLDN, NULL,
1381 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1382 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1383 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1384 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1385 {NOLDN, NULL,
1386 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1387 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1388 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1389 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1390 {NOLDN, NULL,
1391 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1392 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1393 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1394 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1395 {NOLDN, NULL,
1396 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1397 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1398 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1399 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1400 {NOLDN, NULL,
1401 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1402 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1403 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1404 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1405 {NOLDN, NULL,
1406 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1407 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1408 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1409 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1410 {NOLDN, NULL,
1411 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1412 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1413 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1414 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1415 {NOLDN, NULL,
1416 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1417 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1418 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1419 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1420 {NOLDN, NULL,
1421 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1422 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1423 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1424 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1425 {NOLDN, NULL,
1426 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1427 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1428 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1429 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1430 {NOLDN, NULL,
1431 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1432 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1433 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1434 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1435 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +02001436 {EOT}
1437};
1438
Urja Rannikko38204a22008-10-23 23:33:18 +00001439/* Works for: IT8661F/IT8770F */
1440static const uint8_t initkey_it8661f[][4] = {
1441 {0x86, 0x61, 0x55, 0x55}, /* 0x3f0 */
1442 {0x86, 0x61, 0x55, 0xaa}, /* 0x3bd */
1443 {0x86, 0x61, 0xaa, 0x55}, /* 0x370 */
1444};
1445
1446/* Works for: IT8671F/IT8687R, IT8673F */
1447static const uint8_t initkey_it8671f[][4] = {
1448 {0x86, 0x80, 0x55, 0x55}, /* 0x3f0 */
1449 {0x86, 0x80, 0x55, 0xaa}, /* 0x3bd */
1450 {0x86, 0x80, 0xaa, 0x55}, /* 0x370 */
1451};
1452
1453/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1454static const uint8_t initkey_mbpnp[] = {
1455 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37,
1456 0x1b, 0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45,
1457 0xa2, 0xd1, 0xe8, 0x74, 0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39,
1458};
1459
1460/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1461static void enter_conf_mode_ite_legacy(uint16_t port, const uint8_t init[][4])
1462{
1463 int i, idx;
1464
1465 /* Determine Super I/O config port. */
1466 idx = (port == 0x3f0) ? 0 : ((port == 0x3bd) ? 1 : 2);
1467 for (i = 0; i < 4; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001468 OUTB(init[idx][i], ISA_PNP_ADDR);
Urja Rannikko38204a22008-10-23 23:33:18 +00001469
1470 /* Sequentially write the 32 MB PnP init values. */
1471 for (i = 0; i < 32; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001472 OUTB(initkey_mbpnp[i], port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001473}
1474
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001475static void enter_conf_mode_ite(uint16_t port)
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001476{
Andriy Gaponb64aa602008-10-28 22:13:38 +00001477 OUTB(0x87, port);
1478 OUTB(0x01, port);
1479 OUTB(0x55, port);
1480 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001481}
1482
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001483static void enter_conf_mode_ite_it8502e(uint16_t port)
1484{
1485 OUTB(0x85, port);
1486 OUTB(0x02, port);
1487 OUTB(0x55, port);
1488 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1489}
1490
Uwe Hermannebb73f22008-11-12 19:08:58 +00001491static void enter_conf_mode_ite_it8761e(uint16_t port)
1492{
1493 OUTB(0x87, port);
1494 OUTB(0x61, port);
1495 OUTB(0x55, port);
1496 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1497}
1498
1499static void enter_conf_mode_ite_it8228e(uint16_t port)
1500{
1501 OUTB(0x82, port);
1502 OUTB(0x28, port);
1503 OUTB(0x55, port);
1504 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1505}
1506
Matt Parnell063b1622019-08-15 22:32:21 -05001507static void enter_conf_mode_ite_it8987e(uint16_t port)
1508{
1509 OUTB(0x89, port);
1510 OUTB(0x87, port);
1511 OUTB(0x55, port);
1512 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1513}
1514
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001515static void exit_conf_mode_ite(uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001516{
1517 regwrite(port, 0x02, 0x02);
1518}
1519
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001520static int chip_found_at_port;
1521
Uwe Hermannafe83092007-09-28 15:45:43 +00001522static void probe_idregs_ite_helper(const char *init, uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001523{
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001524 uint16_t id, chipver, ecport;
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001525
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001526 probing_for("ITE", init, port);
1527
Uwe Hermann07024692007-09-20 22:13:48 +00001528 id = regval(port, CHIP_ID_BYTE1_REG) << 8;
1529 id |= regval(port, CHIP_ID_BYTE2_REG);
1530 chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
1531
1532 if (superio_unknown(reg_table, id)) {
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001533 if (verbose)
1534 printf(NOTFOUND "id=0x%04x, rev=0x%01x\n", id, chipver);
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001535 return;
1536 }
1537
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001538 printf("Found ITE %s (id=0x%04x, rev=0x%01x) at 0x%x\n",
Uwe Hermann07024692007-09-20 22:13:48 +00001539 get_superio_name(reg_table, id), id, chipver, port);
Uwe Hermanne9d46162007-10-07 20:01:23 +00001540 chip_found = 1;
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001541 chip_found_at_port = 1;
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001542
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001543 dump_superio("ITE", reg_table, port, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001544
1545 if (extra_dump) {
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001546 regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001547
1548 /* Get EC base address (stored in LDN 4, index 0x60/0x61). */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001549 ecport = regval(port, 0x60) << 8;
1550 ecport |= regval(port, 0x61);
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001551
1552 /* EC address register = EC base address + 5. */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001553 ecport += 5;
1554
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001555 printf("Environment controller (0x%04x)\n", ecport);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001556 dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
Nico Huber28a13242013-04-25 15:10:46 +02001557
1558 regwrite(port, LDN_SEL, 0x10); /* Select LDN 16 (BRAM). */
1559 /* Get EC base address (stored in LDN 16, index 0x62/0x63). */
1560 ecport = regval(port, 0x62) << 8;
1561 ecport |= regval(port, 0x63);
1562 printf("BRAM (0x%04x)\n", ecport);
1563 dump_superio("ITE-BRAM", bram_table, ecport, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001564 }
Uwe Hermannb4db2202007-09-20 23:37:56 +00001565}
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001566
Uwe Hermannb4db2202007-09-20 23:37:56 +00001567void probe_idregs_ite(uint16_t port)
1568{
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001569 chip_found_at_port = 0;
1570
Urja Rannikko38204a22008-10-23 23:33:18 +00001571 if (port == 0x3f0 || port == 0x3bd || port == 0x370) {
1572 enter_conf_mode_ite_legacy(port, initkey_it8661f);
1573 probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
1574 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001575 if (chip_found_at_port)
1576 return;
Uwe Hermannb4db2202007-09-20 23:37:56 +00001577
Urja Rannikko38204a22008-10-23 23:33:18 +00001578 enter_conf_mode_ite_legacy(port, initkey_it8671f);
1579 probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
1580 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001581 if (chip_found_at_port)
1582 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001583 } else {
1584 enter_conf_mode_ite(port);
Uwe Hermannebb73f22008-11-12 19:08:58 +00001585 probe_idregs_ite_helper("(init=standard) ", port);
1586 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001587 if (chip_found_at_port)
1588 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001589
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001590 enter_conf_mode_ite_it8502e(port);
1591 probe_idregs_ite_helper("(init=it8502e) ", port);
1592 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001593 if (chip_found_at_port)
1594 return;
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001595
Uwe Hermannebb73f22008-11-12 19:08:58 +00001596 enter_conf_mode_ite_it8761e(port);
1597 probe_idregs_ite_helper("(init=it8761e) ", port);
1598 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001599 if (chip_found_at_port)
1600 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001601
1602 enter_conf_mode_ite_it8228e(port);
1603 probe_idregs_ite_helper("(init=it8228e) ", port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001604 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001605 if (chip_found_at_port)
1606 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001607
Matt Parnell063b1622019-08-15 22:32:21 -05001608 enter_conf_mode_ite_it8987e(port);
1609 probe_idregs_ite_helper("(init=it8987e) ", port);
1610 exit_conf_mode_ite(port);
1611 if (chip_found_at_port)
1612 return;
1613
Urja Rannikko38204a22008-10-23 23:33:18 +00001614 enter_conf_mode_winbond_fintek_ite_8787(port);
1615 probe_idregs_ite_helper("(init=0x87,0x87) ", port);
1616 exit_conf_mode_winbond_fintek_ite_8787(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001617 if (chip_found_at_port)
1618 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001619 }
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001620}
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001621
1622void print_ite_chips(void)
1623{
1624 print_vendor_chips("ITE", reg_table);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001625 print_vendor_chips("ITE-EC", ec_table);
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001626}