blob: 4e82845b39cddf9c8e7e15e1bd6d52b0d2c2b266 [file] [log] [blame]
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001/*
Uwe Hermannafe83092007-09-28 15:45:43 +00002 * This file is part of the superiotool project.
Uwe Hermann0120e1a2007-09-16 18:11:03 +00003 *
4 * Copyright (C) 2007 Carl-Daniel Hailfinger
Uwe Hermannebb73f22008-11-12 19:08:58 +00005 * Copyright (C) 2007-2008 Uwe Hermann <uwe@hermann-uwe.de>
Kyösti Mälkki031dc672018-06-04 11:16:13 +03006 * Copyright (C) 2018 Libretrend LDA
Krystian Hebel9e3c3022019-02-26 14:20:52 +01007 * Copyright (C) 2019 Protectli
Uwe Hermann0120e1a2007-09-16 18:11:03 +00008 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
Uwe Hermann0120e1a2007-09-16 18:11:03 +000018 */
19
20#include "superiotool.h"
21
Uwe Hermann07024692007-09-20 22:13:48 +000022#define CHIP_ID_BYTE1_REG 0x20
23#define CHIP_ID_BYTE2_REG 0x21
24#define CHIP_VERSION_REG 0x22
Urja Rannikko38204a22008-10-23 23:33:18 +000025#define ISA_PNP_ADDR 0x279
Uwe Hermann07024692007-09-20 22:13:48 +000026
Uwe Hermann246be7d2007-10-31 22:22:11 +000027static const struct superio_registers reg_table[] = {
Uwe Hermannebb73f22008-11-12 19:08:58 +000028 {0x8228, "IT8228E", {
29 {EOT}}},
Donald Huang03e54de2010-08-10 23:34:51 +000030 {0x8500, "IT8500B/E", {
31 {NOLDN, NULL,
32 {0x20,0x21,0x22,0x23,0x25,0x2d,0x2e,0x2f,0x30,EOT},
33 {0x85,0x00,0x01,0x01,0x00,0x00,NANA,NANA,0x00,EOT}},
34 {0x04, "System Wake-Up Control (SWUC)",
35 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
36 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
37 {0x05, "KBC/Mouse Interface",
38 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
39 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
40 {0x06, "KBC/Keyboard Interface",
41 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
42 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
43 {0x0f, "Shared Memory/Flash Interface (SMFI)",
44 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
45 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
46 {0x10, "BRAM",
47 {0x30,0x62,0x63,0x70,0x71,0xf3,0xf4,0xf5,EOT},
48 {0x00,0x00,0x72,0x08,0x01,NANA,NANA,NANA,EOT}},
49 {0x11, "Power Management I/F Channel 1 (PMC1)",
50 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
51 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
52 {0x12, "Power Management I/F Channel 2 (PMC2)",
53 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
54 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
55 {EOT}}},
Anton Kochkov106f7ff2010-06-29 21:26:17 +000056 {0x8502, "IT8502E/TE/G", {
57 {NOLDN, NULL,
58 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
59 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
60 {0x85,0x02,0x71,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
61 NANA,NANA,NANA,0x00,NANA,EOT}},
62 {0x1, "UART1",
63 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
64 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,0x00,EOT}},
65 {0x4, "System Wake-Up",
66 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
67 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,EOT}},
68 {0x5, "Mouse",
69 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
70 {0x01,0x00,0x00,0x00,0x00,0x0C,0x01,NANA,EOT}},
71 {0x6, "Keyboard",
72 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
73 {0x01,0x00,0x60,0x00,0x64,0x01,0x01,NANA,EOT}},
74 {0xf, "Shared Memory/Flash",
75 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
76 0xf6,EOT},
77 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
78 0x00,EOT}},
79 {0x10, "BRAM",
80 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
81 0xf5,EOT},
82 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,NANA,NANA,
83 NANA,EOT}},
84 {0x11, "Power Channel 1",
85 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
86
87 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
88 {0x12, "Power Channel 2",
89 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
90 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
91 {0x17, "Power Channel 3",
92 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
93 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
94 {EOT}}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +000095 {0x8510, "IT8510E/TE/G", {
Anders Juel Jensen28e4af52010-08-22 19:41:47 +000096 {NOLDN, "Chip ID",
97 {0x20,0x21, EOT},
98 {0x85,0x10, EOT}},
99 {NOLDN, "Chip Version",
100 {0x22,EOT},
101 {0x21,EOT}},
102 {NOLDN, "Super I/O Control Reigster (SIOCTRL)",
103 {0x23,EOT},
104 {0x01,EOT}},
105 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
106 {0x25,EOT},
107 {0x00,EOT}},
108 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
109 {0x26,EOT},
110 {0x00,EOT}},
111 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
112 {0x2d,EOT},
113 {0x00,EOT}},
114 {NOLDN, "Logical Device Activate Register (LDA)",
115 {0x30,EOT},
116 {0x00,EOT}},
117 {NOLDN, "I/O Port Base Address for Descriptor 0 (IOBAD0)",
118 {0x60,0x61,EOT},
119 {NANA,NANA,EOT}},
120 {NOLDN, "I/O Port Base Address for Descriptor 1 (IOBAD1)",
121 {0x62,0x63,EOT},
122 {NANA,NANA,EOT}},
Elyes HAOUAS073d22b2018-08-23 18:21:35 +0200123 {NOLDN, "Interrupt Request Number and Wake-Up on IRQ Enable (IRQNUMX)",
Anders Juel Jensen28e4af52010-08-22 19:41:47 +0000124 {0x70,EOT},
125 {NANA,EOT}},
126 {NOLDN, "Interrupt Request Type Select (IRQTP)",
127 {0x71,EOT},
128 {NANA,EOT}},
129 {NOLDN, "DMA Channel Select 0 (DMAS0)",
130 {0x74,EOT},
131 {0x04,EOT}},
132 {NOLDN, "DMA Channel Select 1 (DMAS1)",
133 {0x75,EOT},
134 {0x04,EOT}},
135 {0x4, "System Wakup-Up (SWUC)",
136 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
137 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
138 {0x5, "Keyboard/Mouse",
139 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
140 {0x00,0x00,0x00,0x00,0x00,0x0c,0x03,EOT}},
141 {0x6, "Keyboard/Mouse",
142 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
143 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,EOT}},
144 {0xf, "Shared Memory/Flash Interface (SMFI)",
145 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
146 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
147 {0x10, "Real Time Clock (RTC)",
148 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
149 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
150 {0x11, "Power Management Interface Channel 1",
151 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
152 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
153 {0x12, "Power Management Interface Channel 2",
154 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
155 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000156 {EOT}}},
157 {0x8511, "IT8511E/TE/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000158 {NOLDN, NULL,
159 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
160 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
161 {0x85,0x11,0x10,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
162 NANA,NANA,NANA,0x00,NANA,EOT}},
163 {0x4, "System Wake-Up",
164 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
165 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,EOT}},
166 {0x5, "Mouse",
167 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
168 {0x01,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
169 {0x6, "Keyboard",
170 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
171 {0x01,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
172 {0xf, "Shared Memory/Flash",
173 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
174 0xf6,EOT},
175 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
176 0x00,EOT}},
177 {0x10, "Real-Time Clock",
178 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,
179 0xf2,0xf3,0xf4,0xf5,EOT},
180 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,
181 0x4A,NANA,NANA,NANA,EOT}},
182 {0x11, "Power Channel 1",
183 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
184 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
185 {0x12, "Power Channel 2",
186 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
187 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anders Juel Jensenb850eb82010-01-23 15:50:12 +0000188 {EOT}}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000189 {0x8512, "IT8512E/F/G", {
Anton Kochkov106f7ff2010-06-29 21:26:17 +0000190 {NOLDN, NULL,
191 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
192 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
193 {0x85,0x12,0x22,0x01,NANA,0x00,0x00,NANA,NANA,NANA,
194 NANA,NANA,NANA,0x00,NANA,EOT}},
195 {0x4, "System Wake-Up",
196 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
197 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,EOT}},
198 {0x5, "Mouse",
199 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
200 {0x00,0x00,0x00,0x00,0x00,0x0C,0x03,NANA,EOT}},
201 {0x6, "Keyboard",
202 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
203 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,NANA,EOT}},
204 {0xf, "Shared Memory/Flash",
205 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,0xf5,
206 0xf6,EOT},
207 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
208 0x00,EOT}},
209 {0x10, "BRAM",
210 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf3,0xf4,
211 0xf5,EOT},
212 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,NANA,NANA,
213 NANA,EOT}},
214 {0x11, "Power Channel 1",
215 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
216 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,EOT}},
217 {0x12, "Power Channel 2",
218 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
219 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,EOT}},
Anton Kochkov7b5df5a2010-05-09 15:30:45 +0000220 {EOT}}},
221 {0x8513, "IT8513E/F/G", {
222 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +0200223 {0x8516, "IT8516???", {
224 {NOLDN, "Chip ID",
225 {0x20,0x21, EOT},
226 {0x85,0x16, EOT}},
227 {NOLDN, "Chip Version",
228 {0x22,EOT},
229 {0x63,EOT}},
230 {NOLDN, "Super I/O Control Reigster (SIOCTRL)",
231 {0x23,EOT},
232 {0x01,EOT}},
233 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
234 {0x25,EOT},
235 {0x00,EOT}},
236 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
237 {0x26,EOT},
238 {0x00,EOT}},
239 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
240 {0x2d,EOT},
241 {0x00,EOT}},
242 {0x01, "UART1",
243 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
244 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
245 {0x02, "UART2",
246 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
247 {0x00,0x02,0xf8,0x00,0x00,0x04,0x02,EOT}},
248 {0x04, "System Wakup-Up (SWUC)",
249 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
250 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
251 {0x05, "Mouse",
252 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
253 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
254 {0x06, "Keyboard",
255 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
256 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
257 {0x0f, "Shared Memory/Flash Interface (SMFI)",
258 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
259 0xf4,0xf5,EOT},
260 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
261 NANA,NANA,EOT}},
262 {0x10, "BRAM / Real Time Clock (RTC)",
263 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
264 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
265 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
266 NANA,NANA,NANA,NANA,NANA,EOT}},
267 {0x11, "Power Management Interface Channel 1",
268 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
269 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
270 {0x12, "Power Management Interface Channel 2",
271 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
272 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
273 {0x17, "Power Management Interface Channel 3",
274 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
275 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
276 {EOT}}},
Patrick Rudolph6085d392019-01-09 16:42:07 +0100277 {0x8528, "IT8528", {
278 {NOLDN, NULL,
279 {0x24,0x25,0x26,0x27,0x28,0x29,
280 0x2A,0x2B,0x2C,0x2D,0x2E,EOT},
281 {0x00,0x00,0x00,0x00,0x00,0x00,
282 0x00,0x00,0x01,0x00,0x00,EOT}},
283 {NOLDN, "Chip ID",
284 {0x20,0x21, EOT},
285 {0x85,0x28, EOT}},
286 {NOLDN, "Chip Version",
287 {0x22,EOT},
288 {0x0a,EOT}},
289 {NOLDN, "Super I/O Control Register (SIOCTRL)",
290 {0x23,EOT},
291 {0x01,EOT}},
292 {0x01, "UART1",
293 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
294 {0x00,0x03,0xf8,0x00,0x00,0x04,0x02,EOT}},
295 {0x02, "UART2",
296 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
297 {0x00,0x02,0xf8,0x00,0x00,0x03,0x02,EOT}},
298 {0x04, "System Wake-Up (SWUC)",
299 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
300 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
301 {0x05, "Mouse",
302 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
303 {0x00,0x00,0x00,0x00,0x00,0x0C,0x01,EOT}},
304 {0x06, "Keyboard",
305 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
306 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
307 {0x0f, "Shared Memory/Flash Interface (SMFI)",
308 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
309 0xf4,0xf5,EOT},
310 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,
311 NANA,NANA,EOT}},
312 {0x10, "BRAM / Real Time Clock (RTC)",
313 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,
314 0xf1,0xf2,0xf3,0xf4,0xf5,EOT},
315 {0x00,0x00,0x70,0x00,0x72,0x08,0x01,
316 NANA,NANA,NANA,NANA,NANA,EOT}},
317 {0x11, "Power Channel 1",
318 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
319 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
320 {0x12, "Power Channel 2",
321 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
322 {0x00,0x00,0x68,0x00,0x6c,0x01,0x01,EOT}},
323 {0x17, "Power Channel 3",
324 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
325 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x01,EOT}},
326 {0x18, "Power Channel 4",
327 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
328 {0x00,0x00,0x74,0x00,0x78,0x01,0x01,EOT}},
329 {0x19, "Power Channel 5",
330 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
331 {0x00,0x00,0x7a,0x00,0x7c,0x01,0x01,EOT}},
332 {EOT}}},
Krystian Hebel9e3c3022019-02-26 14:20:52 +0100333 {0x8613, "IT8613E", {
334 {NOLDN, NULL,
335 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
336 {0x86,0x13,0x05,0x40,0x00,0x48,EOT}},
337 {0x1, "COM1",
338 {0x30,0x60,0x61,0x70,0xf0,EOT},
339 {0x00,0x03,0xf8,0x04,0x00,EOT}},
340 {0x4, "Environment controller",
341 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
342 0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
343 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
344 0x00,NANA,NANA,0x00,0x00,0x00,EOT}},
345 {0x5, "Keyboard",
346 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
347 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
348 {0x6, "Mouse",
349 {0x30,0x70,0x71,0xf0,EOT},
350 {0x00,0x0c,0x02,0x00,EOT}},
351 {0x7, "GPIO",
352 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,0x61,
353 0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,0xb2,
354 0xb3,0xb4,0xb8,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
355 0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xda,0xdb,
356 0xe0,0xe1,0xe2,0xe3,0xe4,0xec,0xf0,0xf1,0xf2,0xf3,
357 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
358 {0x00,0xF3,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
359 0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,0x00,
360 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
361 0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
362 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,NANA,
363 0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,EOT}},
364 {0xa, "Consumer IR",
365 {0x30,0x60,0x61,0x70,0xf0,EOT},
366 {0x00,0x03,0x10,0x0b,0x06,EOT}},
367 {EOT}}},
Gergely Kiss64e07992018-01-04 05:46:02 +0100368 {0x8623, "IT8623E", {
369 /* Defaults are not specified as no datasheet available */
370 {NOLDN, NULL,
371 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
372 {0x86,0x23,0x01,NANA,NANA,NANA,EOT}},
373 {0x0, "Floppy",
374 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
375 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
376 {0x1, "COM1",
377 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
378 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
379 {0x2, "COM2",
380 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
381 {NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
382 {0x3, "Parallel port",
383 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
384 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
385 {0x4, "Environment controller",
386 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
387 0xf4,0xf5,0xf6,EOT},
388 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
389 NANA,NANA,NANA,EOT}},
390 {0x5, "Keyboard",
391 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
392 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
393 {0x6, "Mouse",
394 {0x30,0x70,0x71,0xf0,EOT},
395 {NANA,NANA,NANA,NANA,EOT}},
396 {0x7, "GPIO",
397 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
398 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
399 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
400 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
401 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
402 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
403 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
404 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
405 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
406 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
407 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
408 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
409 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
410 NANA,NANA,NANA,NANA,NANA,EOT}},
411 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000412 {0x8661, "IT8661F/IT8770F", {
Robinson P. Tryondc817692007-10-05 13:47:04 +0000413 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000414 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
415 0x23,0x24,EOT},
416 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x61,0x00,
417 0x00,0x00,EOT}},
Robinson P. Tryondc817692007-10-05 13:47:04 +0000418 {0x0, "Floppy",
419 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
420 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
421 {0x1, "COM1",
422 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
423 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
424 {0x2, "COM2",
425 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
426 {0x00,0x00,0x02,0xf8,0x03,0x02,0x00,EOT}},
427 {0x3, "Parallel port",
428 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
429 0xf0,EOT},
430 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
431 0x03,EOT}},
432 {0x4, "IR",
433 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
434 0x74,0x75,0xf0,EOT},
435 {0x00,0x00,0x02,0xe8,0x03,0x00,0x0a,0x02,0x0b,0x02,
436 0x01,0x00,0x00,EOT}},
437 {0x5, "GPIO",
438 {0x25,0x26,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
439 0x70,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
440 0xf9,0xfa,0xfb,0xfc,EOT},
441 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
442 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
443 0x00,0x00,0x00,0x00,EOT}},
444 {EOT}}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000445 {0x8673, "IT8673F", {
446 {EOT}}},
447 {0x8681, "IT8671F/IT8687R", {
Anders Jenbo14db1c02010-05-08 23:28:33 +0000448 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000449 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x20,0x21,0x22,
450 0x23,0x24,0x25,0x26,0x2e,0x2f,EOT},
451 {NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x86,0x81,0x00,
452 0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
453 {0x0, "Floppy",
454 {0x30,0x31,0x60,0x61,0x70,0x71,0x74,0xf0,EOT},
455 {0x00,0x00,0x03,0xf0,0x06,0x02,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000456 {0x1, "COM1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000457 {0x30,0x31,0x60,0x61,0x70,0x71,0xf0,EOT},
458 {0x00,0x00,0x03,0xf8,0x04,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000459 {0x2, "COM2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000460 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,
461 0x74,0x75,0xf0,0xf1,EOT},
462 {0x00,0x00,0x02,0xf8,0x03,0x00,0x03,0x02,0x0a,0x02,
463 0x00,0x01,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000464 {0x3, "Parallel port",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000465 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0x74,
466 0xf0,EOT},
467 {0x00,0x00,0x03,0x78,0x07,0x78,0x07,0x02,0x03,
468 0x03,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000469 {0x4, "APC",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000470 {0x30,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,EOT},
471 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000472 {0x5, "Keyboard",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000473 {0x30,0x31,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
474 {MISC,0x00,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Anders Jenbo14db1c02010-05-08 23:28:33 +0000475 {0x6, "Mouse",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000476 {0x30,0x70,0x71,0xf0,EOT},
477 {0x00,0x0c,0x02,0x00,EOT}},
478 {0x7, "GPIO",
479 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
480 0x70,0x71,0x72,0x73,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,
481 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,
482 0xe0,0xe1,0xe2,0xe3,0xe4,EOT},
483 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
484 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
485 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
486 0x00,0x00,0x00,0x00,0x00,EOT}},
Urja Rannikko38204a22008-10-23 23:33:18 +0000487 {EOT}}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000488 {0x8701, "IT8703F", {
489 {NOLDN, NULL,
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000490 {0x20,0x21,0x23,0x24,0x26,0x29,0x2a,0x2b,EOT},
491 {0x87,0x00,0x00,0x80,0x00,0x00,0x7c,0xc0,EOT}},
492 {0x0, "Floppy",
493 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf3,0xf4,
494 0xf5,EOT},
495 {0x00,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000496 0x00,EOT}},
497 {0x1, "Parallel port",
498 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
499 {0x00,0x03,0x78,0x00,0x80,0x07,0x03,0x03,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000500 {0x2, "COM1",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000501 {0x30,0x60,0x61,0x70,0xf0,EOT},
502 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000503 {0x3, "COM2",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000504 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
505 {0x00,0x02,0xf8,0x03,0x00,0x00,0x00,0x7f,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000506 {0x5, "Keyboard",
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000507 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000508 {0x01,0x00,0x60,0x00,0x64,0x01,0x0c,0x80,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000509 {0x6, "Consumer IR",
510 {0x30,0x60,0x61,0x70,EOT},
511 {0x00,0x00,0x00,0x00,EOT}},
512 {0x7, "Game port, MIDI, GPIO set 1",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000513 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,EOT},
514 {0x00,0x02,0x01,0x03,0x30,0x00,0xff,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000515 {0x8, "GPIO set 2",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000516 {0x30,0xf0,0xf1,0xf2,0xf3,0xf5,EOT},
517 {0x00,0xff,0x00,0x00,0x00,0x00,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000518 {0x9, "GPIO set 3 and 4",
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000519 {0x30,0x60,0x61,0xf0,0xf1,0xf2,0xf3,0xf4,EOT},
520 {0x00,0x02,0x90,0xff,0x00,0x00,0x00,0x00,EOT}},
521 {0xa, "ACPI",
522 {0x30,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
523 0xf3,0xf4,0xf6,0xf7,0xf9,EOT},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000524 {0x00,0x00,0x00,0x00,NANA,NANA,0x00,0x00,0x00,0x00,
525 NANA,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann4bdd6432010-05-14 16:40:55 +0000526 {0xc, "GPIO set 5, 6 and 7",
527 {0x30,0x60,0x61,0xf0,0xf3,0xf6,EOT},
528 {0x00,0x03,0x70,0x00,0xff,0xff,EOT}},
Luc Verhaegen7a0f01f2009-07-12 14:24:06 +0000529 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000530 {0x8702, "IT8702F", {
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000531 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000532 {0x8705, "IT8705F/AF / IT8700F", {
Robinson P. Tryon43541032007-10-04 15:44:19 +0000533 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000534 {0x20,0x21,0x22,0x23,0x24,EOT},
535 {0x87,0x05,0x00,0x00,NANA,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000536 {0x0, "Floppy",
537 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
538 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
539 {0x1, "COM1",
540 {0x30,0x60,0x61,0x70,0xf0,EOT},
541 {0x00,0x03,0xf8,0x04,0x00,EOT}},
542 {0x2, "COM2",
543 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
544 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
545 {0x3, "Parallel port",
546 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
547 0xf0,EOT},
548 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
549 0x03,EOT}},
550 {0x4, "Environment controller",
551 {0x2b,0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
552 0xf3,0xf4,0xf5,0xf6,EOT},
553 {0x00,0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
554 0x00,0x00,NANA,NANA,EOT}},
555 {0x5, "GPIO",
Robinson P. Tryondc817692007-10-05 13:47:04 +0000556 {0x25,0x26,0x27,0x28,0x29,0x2a,0x60,0x61,0x62,0x63,
557 0x64,0x65,0x70,0x71,0x72,0xb0,0xb1,0xb2,0xb3,0xb4,
558 0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,
559 0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xd0,
560 0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd8,0xd9,0xda,0xf0,
561 0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,
562 0xfd,0xfe,0xff,EOT},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000563 {0x00,0x00,0x00,0xff,0xe0,0xff,0x00,0x00,0x00,0x00,
564 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
565 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
566 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
567 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
568 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Robinson P. Tryondc817692007-10-05 13:47:04 +0000569 0x00,NANA,0x00,EOT}},
Robinson P. Tryon43541032007-10-04 15:44:19 +0000570 {0x6, "Game port",
571 {0x30,0x60,0x61,EOT},
572 {0x00,0x02,0x01,EOT}},
573 {0x7, "Consumer IR",
574 {0x30,0x60,0x61,0x70,0xf0,EOT},
575 {0x00,0x03,0x10,0x0b,0x00,EOT}},
576 {0x8, "MIDI port",
577 {0x30,0x60,0x61,0x70,0xf0,EOT},
578 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000579 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000580 {0x8706, "IT8706R", { /* TODO: Not yet in sensors-detect */
581 /* This is a "Special General Purpose I/O chip". */
582 {EOT}}},
Mattias Mattsson25bf69a2010-08-02 02:34:20 +0000583 {0x8707, "IT8707F", {
584 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000585 {0x8708, "IT8708F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000586 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000587 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
588 0x2a,0x2e,0x2f,EOT},
589 {0x87,0x08,0x00,0x00,NANA,0x3f,0x00,0xff,0xff,0xff,
590 0xff,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000591 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000592 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
593 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000594 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000595 {0x30,0x60,0x61,0x70,0xf0,EOT},
596 {0x00,0x03,0xf8,0x04,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000597 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000598 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
599 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000600 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000601 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x74,
602 0xf0,EOT},
603 {0x00,0x03,0x78,0x07,0x78,0x00,0x80,0x07,0x03,
604 0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000605 {0x4, "SWC",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000606 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
607 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,EOT},
608 {NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
609 0x00,0x00,0x00,0x00,0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000610 {0x5, "Keyboard",
Uwe Hermann2c290e32007-09-20 00:00:49 +0000611 /* Note: 0x30 can actually be 0x00 _or_ 0x01. */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000612 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
613 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000614 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000615 {0x30,0x70,0x71,0xf0,EOT},
616 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000617 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000618 {0x70,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,
619 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,
620 0xc9,0xca,0xcb,0xcc,0xcd,0xd0,0xd1,0xd2,0xd3,0xd4,
621 0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xf0,0xf1,
622 0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,
623 0xfc,EOT},
624 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
625 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
626 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
627 0x00,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x00,0x00,
628 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
629 0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000630 {0x8, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000631 {0x30,0x60,0x61,EOT},
632 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000633 {0x9, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000634 {0x30,0x60,0x61,0x70,0xf0,EOT},
635 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000636 {0xa, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000637 {0x30,0x60,0x61,0x70,0xf0,EOT},
638 {0x00,0x03,0x00,0x0a,0x00,EOT}},
639 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000640 {0x8710, "IT8710F", { /* TODO: Not yet in sensors-detect */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000641 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000642 {0x8711, "IT8711F", { /* 0x8711 is a guess, not found in datasheet. */
643 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000644 {0x8712, "IT8712F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000645 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000646 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
647 {0x87,0x12,0x08,0x00,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000648 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000649 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
650 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000651 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000652 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
653 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000654 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000655 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
656 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000657 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000658 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
659 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000660 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000661 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
662 0xf4,0xf5,0xf6,EOT},
663 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
664 0x00,NANA,NANA,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000665 {0x5, "Keyboard",
666 /* TODO: 0xf0: Error in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000667 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
668 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000669 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000670 {0x30,0x70,0x71,0xf0,EOT},
671 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000672 {0x7, "GPIO", /* TODO: 0x72, 0x73: Errors in datasheet? */
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000673 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
674 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
675 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
676 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
677 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
678 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
679 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
Uwe Hermann07024692007-09-20 22:13:48 +0000680 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000681 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
682 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
683 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
684 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000685 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000686 {0x30,0x60,0x61,0x70,0xf0,EOT},
687 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000688 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000689 {0x30,0x60,0x61,EOT},
690 {0x00,0x02,0x01,EOT}},
Uwe Hermann07024692007-09-20 22:13:48 +0000691 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000692 {0x30,0x60,0x61,0x70,0xf0,EOT},
693 {0x00,0x03,0x10,0x0b,0x00,EOT}},
694 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000695 {0x8716, "IT8716F", {
Uwe Hermann2c290e32007-09-20 00:00:49 +0000696 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000697 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
698 {0x87,0x16,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000699 {0x0, "Floppy",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000700 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
701 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000702 {0x1, "COM1",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000703 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
704 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000705 {0x2, "COM2",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000706 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
707 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000708 {0x3, "Parallel port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000709 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
710 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000711 {0x4, "Environment controller",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000712 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
713 0xf4,0xf5,0xf6,EOT},
714 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
715 0x00,NANA,NANA,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000716 {0x5, "Keyboard",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000717 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
718 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000719 {0x6, "Mouse",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000720 {0x30,0x70,0x71,0xf0,EOT},
721 {0x00,0x0c,0x02,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000722 {0x7, "GPIO",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000723 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
724 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
725 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
726 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
727 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
728 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
729 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
730 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
731 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
732 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
733 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
734 0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000735 {0x8, "MIDI port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000736 {0x30,0x60,0x61,0x70,0xf0,EOT},
737 {0x00,0x03,0x00,0x0a,0x00,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000738 {0x9, "Game port",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000739 {0x30,0x60,0x61,EOT},
740 {0x00,0x02,0x01,EOT}},
Uwe Hermann11887f22007-12-07 23:55:20 +0000741 {0xa, "Consumer IR",
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000742 {0x30,0x60,0x61,0x70,0xf0,EOT},
743 {0x00,0x03,0x10,0x0b,0x00,EOT}},
744 {EOT}}},
Uwe Hermann07024692007-09-20 22:13:48 +0000745 {0x8718, "IT8718F", {
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000746 {NOLDN, NULL,
Uwe Hermannb0ae9762008-10-14 16:34:38 +0000747 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
748 {0x87,0x18,0x01,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000749 {0x0, "Floppy",
750 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
751 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
752 {0x1, "COM1",
753 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
754 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
755 {0x2, "COM2",
756 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
757 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
758 {0x3, "Parallel port",
759 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
760 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
761 {0x4, "Environment controller",
762 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
763 0xf4,0xf5,0xf6,EOT},
764 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
765 0x00,NANA,NANA,EOT}},
766 {0x5, "Keyboard",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000767 /* 0xf0: Datasheet page 33: 0x00; page 56: 0x08. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000768 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
769 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x00,EOT}},
770 {0x6, "Mouse",
771 {0x30,0x70,0x71,0xf0,EOT},
772 {0x00,0x0c,0x02,0x00,EOT}},
773 {0x7, "GPIO",
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000774 /* 0x2c: Datasheet page 30: 0x00; page 43: 0x1f. */
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000775 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
776 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
777 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000778 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc8,0xc9,0xca,0xcb,
779 0xcc,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,
780 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
781 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000782 {0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
783 0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,0x00,
784 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000785 0x01,0x00,0x00,0x40,0x00,0x00,0x01,0x00,0x00,0x40,
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000786 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
787 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000788 0x00,NANA,0x00,0x00,0x00,EOT}},
Uwe Hermann420f6ab2007-09-21 14:48:04 +0000789 {0xa, "Consumer IR",
790 {0x30,0x60,0x61,0x70,0xf0,EOT},
791 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +0000792 {EOT}}},
Christian Ruppert7c2eec02011-02-03 16:00:28 +0000793 {0x8720, "IT8720F", {
794 {NOLDN, NULL,
795 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
796 {0x87,0x20,0x05,0x00,0x00,0x00,EOT}},
797 {0x0, "Floppy",
798 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
799 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
800 {0x1, "COM1",
801 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
802 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
803 {0x2, "COM2",
804 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
805 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
806 {0x3, "Parallel port",
807 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
808 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
809 {0x4, "Environment controller",
810 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
811 0xf4,0xf5,0xf6,EOT},
812 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
813 0x00,NANA,NANA,EOT}},
814 {0x5, "Keyboard",
815 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
816 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
817 {0x6, "Mouse",
818 {0x30,0x70,0x71,0xf0,EOT},
819 {0x00,0x0c,0x02,0x00,EOT}},
820 {0x7, "GPIO",
821 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
822 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
823 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
824 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
825 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,
826 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
827 0xfb,0xfc,0xfd,0xfe,0xff,EOT},
828 {0x00,0xff,0x00,0x40,0x00,0x00,0x03,0x00,0x00,0x00,
829 0x00,0x00,0x00,0x00,0x00,NANA,0x38,0x00,0x00,0x00,
830 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
831 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
832 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,0x00,
833 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
834 0x00,NANA,0x00,0x00,0x00,EOT}},
835 {0xa, "Consumer IR",
836 {0x30,0x60,0x61,0x70,0xf0,EOT},
837 {0x00,0x03,0x10,0x0b,0x06,EOT}},
Uwe Hermanncfb6ac72008-10-01 20:16:58 +0000838 {EOT}}},
Uwe Hermannf9bd9ae2011-01-01 22:05:57 +0000839 {0x8721, "IT8721F", {
840 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000841 {0x8722, "IT8722F", {
842 {EOT}}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000843 {0x8726, "IT8726F", {
844 /* Datasheet wrongly says that the ID is 0x8716. */
Josh Profittb9c6b0e2008-10-14 16:28:50 +0000845 {NOLDN, NULL,
846 {0x20,0x21,0x22,0x23,0x24,0x2b,EOT},
847 {0x87,0x26,0x01,0x00,MISC,0x00,EOT}},
848 {0x0, "Floppy",
849 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
850 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
851 {0x1, "COM1",
852 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
853 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,0x7f,EOT}},
854 {0x2, "COM2",
855 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
856 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,0x7f,EOT}},
857 {0x3, "Parallel port",
858 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
859 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
860 {0x4, "Environment controller",
861 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,0xf3,
862 0xf4,0xf5,0xf6,EOT},
863 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,0x00,
864 0x00,MISC,MISC,EOT}},
865 {0x5, "Keyboard",
866 /* 0xf0: Datasheet page 35: 0x00; page 59: 0x08. */
867 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
868 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
869 {0x6, "Mouse",
870 {0x30,0x70,0x71,0xf0,EOT},
871 {0x00,0x0c,0x02,0x00,EOT}},
872 {0x7, "GPIO",
873 /* 0x2c: Datasheet page 33: 0x00; page 45: 0x1f. */
874 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x60,0x61,0x62,
875 0x63,0x64,0x65,0x70,0x71,0x72,0x73,0x74,0xb0,0xb1,
876 0xb2,0xb3,0xb4,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
877 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
878 0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,
879 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,EOT},
880 {0x01,0x00,0x00,0x40,0x00,0x00,0x1f,0x00,0x00,0x00,
881 0x00,0x00,0x00,0x00,0x00,MISC,0x38,0x00,0x00,0x00,
882 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
883 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
884 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
885 0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,0x00,EOT}},
886 {0x8, "MIDI port",
887 {0x30,0x60,0x61,0x70,0xf0,EOT},
888 {0x00,0x03,0x00,0x0a,0x00,EOT}},
889 {0x9, "Game port",
890 {0x30,0x60,0x61,EOT},
891 {0x00,0x02,0x01,EOT}},
892 {0xa, "Consumer IR",
893 {0x30,0x60,0x61,0x70,0xf0,EOT},
894 {0x00,0x03,0x10,0x0b,0x00,EOT}},
Uwe Hermann44bb7772007-10-07 21:50:29 +0000895 {EOT}}},
Андрей Павловab9b71d2013-03-17 19:11:05 +0300896 {0x8728, "IT8728F", {
897 {NOLDN, NULL,
898 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x2b,0x2e,0x2f,EOT},
899 {NANA,NANA,0x87,0x28,0x01,0x00,0x00,MISC,0x00,0x00,EOT}},
900 {0x0, "Floppy",
901 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
902 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
903 {0x1, "COM1",
904 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
905 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
906 {0x2, "COM2",
907 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
908 {0x00,0x02,0xf8,0x03,0x00,0x50,EOT}},
909 {0x3, "Parallel port",
910 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
911 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
912 {0x4, "Environment controller",
913 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
914 0xf3,0xf4,0xf5,0xf6,0xF9,0xFA,0xFB,EOT},
915 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
916 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
917 {0x5, "Keyboard",
918 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
919 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
920 {0x6, "Mouse",
921 {0x30,0x70,0x71,0xf0,EOT},
922 {0x00,0x0c,0x02,0x00,EOT}},
923 {0x7, "GPIO",
924 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0x2d,0x60,
925 0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,0x73,
926 0x74,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
927 0xbb,0xbc,0xbd,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,
928 0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xe0,0xe1,
929 0xe2,0xe3,0xe4,0xe9,0xf0,0xf1,0xf2,0xf3,0xf4,
930 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
931 {0x00,0xf3,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
932 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,
933 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
934 0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,
935 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
936 0x00,0x00,0x00,MISC,0x00,0x00,0x00,0x00,0x00,
937 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
938 {0xa, "Consumer IR",
939 {0x30,0x60,0x61,0x70,0xf0,EOT},
940 {0x00,0x03,0x10,0x0b,0x06,EOT}},
941 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000942 {0x8761, "IT8761E", {
943 {EOT}}},
Stefan Reinauerd7a75ec2011-10-25 17:12:53 +0000944 {0x8772, "IT8772F", {
Angel Ponsd8eadff2018-12-14 19:24:44 +0100945 {NOLDN, NULL,
946 {0x20,0x21,0x22,0x23,0x24,0x2e,0x2f,EOT},
947 {0x87,0x72,0x02,0x00,0x00,0x00,0x00,EOT}},
948 {0x1, "COM1",
949 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT},
950 {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}},
951 {0x4, "Environment controller",
952 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
953 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,EOT},
954 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
955 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
956 {0x5, "Keyboard",
957 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
958 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
959 {0x6, "Mouse",
960 {0x30,0x70,0x71,0xf0,EOT},
961 {0x00,0x0c,0x02,0x00,EOT}},
962 {0x7, "GPIO",
963 {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c, /* 25 .. 2c */
964 0x60,0x61,0x62,0x63, /* 60 .. 64 */
965 0x70,0x71,0x72,0x73,0x74, /* 70 .. 74 */
966 0xb0,0xb1,0xb2,0xb3,0xb4, /* b0 .. b4 */
967 0xb8,0xb9,0xba,0xbb,0xbc,0xbd, /* b8 .. bd */
968 0xc0,0xc1,0xc2,0xc3,0xc4, /* c0 .. c4 */
969 0xc8,0xc9,0xca,0xcb,0xcc,0xcd, /* c8 .. cd */
970 0xe0,0xe1,0xe2,0xe3,0xe4,0xe9, /* e0 .. e9 */
971 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5, /* f0 .. f5 */
972 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb, /* f6 .. fb */
973 EOT},
974 {0x00,0xf3,0x00,0x00,0x00,0x00,MISC,0x01, /* 25 .. 2c */
975 0x00,0x00,0x00,0x00, /* 60 .. 64 */
976 0x00,0x00,0x20,0x38,0x00, /* 70 .. 74 */
977 0x00,0x00,0x00,0x00,0x00, /* b0 .. b4 */
978 0x20,0x00,0x00,0x00,0x00,0x00, /* b8 .. bd */
979 0x01,0x00,0x00,0x40,0x00, /* c0 .. c4 */
980 0x01,0x00,0x00,0x00,0x00,0x00, /* c8 .. cd */
981 0x00,0x00,0x00,0x00,0x00,MISC, /* e0 .. e9 */
982 0x00,0x00,0x00,0x00,0x00,0x00, /* f0 .. f6 */
983 0x00,0x00,0x00,0x00,0x00,0x00, /* f6 .. fb */
984 EOT}},
985 {0xa, "Consumer IR",
986 {0x30,0x60,0x61,0x70,0xf0,EOT},
987 {0x00,0x03,0x10,0x0b,0x06,EOT}},
Stefan Reinauerd7a75ec2011-10-25 17:12:53 +0000988 {EOT}}},
Uwe Hermannebb73f22008-11-12 19:08:58 +0000989 {0x8780, "IT8780F", {
990 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +0200991 {0x8783, "IT8783E/F", {
992 {NOLDN, NULL,
993 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
994 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
995 EOT},
996 {NANA,NANA,0x87,0x83,0x00,0x00,MISC,0x00,0x00,
997 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
998 EOT}},
999 {0x0, "Floppy",
1000 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,EOT},
1001 {0x00,0x03,0xf0,0x06,0x02,0x00,0x00,EOT}},
1002 {0x1, "COM1",
1003 {0x30,0x60,0x61,0x70,0xf0,EOT},
1004 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1005 {0x2, "COM2",
1006 {0x30,0x60,0x61,0x70,0xf0,EOT},
1007 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1008 {0x3, "Parallel port",
1009 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1010 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1011 {0x4, "Environment controller",
1012 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1013 0xf3,0xf4,0xf5,0xf6,0xf7,EOT},
1014 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1015 0x00,0x00,MISC,MISC,MISC,EOT}},
1016 {0x5, "Keyboard",
1017 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1018 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}},
1019 {0x6, "Mouse",
1020 {0x30,0x70,0x71,0xf0,EOT},
1021 {0x00,0x0c,0x02,0x00,EOT}},
1022 {0x7, "GPIO",
1023 {0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0x72,
1024 0x73,0x74,0x81,0x82,0x83,0x84,0x91,0x92,0x93,
1025 0x94,0xb0,0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,
1026 0xbb,0xbc,0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,
1027 0xca,0xcb,0xcc,0xcd,0xe0,0xe1,0xe2,0xe3,0xe4,
1028 0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
1029 0xf8,0xf9,0xfa,0xfb,EOT},
1030 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,MISC,
1031 0x38,0x00,0x00,MISC,0x38,0x00,0x00,MISC,0x38,
1032 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1033 0x00,0x00,0x01,0x00,0x00,0x40,0x00,0x01,0x00,
1034 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1035 MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1036 0x00,0x00,0x00,0x00,EOT}},
1037 {0x8, "COM3",
1038 {0x30,0x60,0x61,0x70,0xf0,EOT},
1039 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1040 {0x9, "COM4",
1041 {0x30,0x60,0x61,0x70,0xf0,EOT},
1042 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1043 {0xa, "COM5",
1044 {0x30,0x60,0x61,0x70,0xf0,EOT},
1045 {0x00,0x03,0xf8,0x04,0x00,EOT}},
1046 {0xb, "COM6",
1047 {0x30,0x60,0x61,0x70,0xf0,EOT},
1048 {0x00,0x02,0xf8,0x03,0x00,EOT}},
1049 {0xc, "Consumer IR",
1050 {0x30,0x60,0x61,0x70,0xf0,EOT},
1051 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1052 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001053 {0x8786, "IT8786E-I", {
1054 {NOLDN, NULL,
1055 {0x02,0x07,0x20,0x21,0x22,0x23,0x24,0x25,0x26,
1056 0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
1057 EOT},
1058 {NANA,NANA,0x87,0x86,0x03,0x40,RSVD,0x00,0xf3,
1059 0x00,0x00,0x00,0x00,0x48,0x89,0x00,0x00,0x00,
1060 EOT}},
1061 {0x1, "COM1",
1062 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1063 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1064 {0x2, "COM2",
1065 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1066 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1067 {0x3, "Parallel port",
1068 {0x30,0x60,0x61,0x62,0x63,0x70,0x74,0xf0,EOT},
1069 {0x00,0x03,0x78,0x07,0x78,0x07,0x03,0x03,EOT}},
1070 {0x4, "Environment controller",
1071 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
1072 0xf3,0xf4,0xf5,0xf6,0xfa,0xfb,0xfc,EOT},
1073 {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00,
1074 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}},
1075 {0x5, "Keyboard",
1076 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT},
1077 {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x48,EOT}},
1078 {0x6, "Mouse",
1079 {0x30,0x70,0x71,0xf0,EOT},
1080 {0x00,0x0c,0x02,0x00,EOT}},
1081 {0x7, "GPIO",
1082 {0x60,0x61,0x62,0x63,0x70,0x71,0x72,0x73,0x74,0xb0,
1083 0xb1,0xb2,0xb3,0xb4,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
1084 0xc0,0xc1,0xc2,0xc3,0xc4,0xc8,0xc9,0xca,0xcb,0xcc,
1085 0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,
1086 0xd9,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,
1087 0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT},
1088 {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x38,0x00,0x00,
1089 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
1090 0x01,0x00,0x00,0x40,0x00,0x01,0x00,0x00,0x40,0x00,
1091 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1092 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1093 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1094 {0x8, "COM3",
1095 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1096 {0x00,0x03,0xf8,0x0b,0x00,0x50,0x00,EOT}},
1097 {0x9, "COM4",
1098 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1099 {0x00,0x02,0xf8,0x0a,0x00,0x50,0x00,EOT}},
1100 {0xa, "Consumer IR",
1101 {0x30,0x60,0x61,0x70,0xf0,EOT},
1102 {0x00,0x03,0x10,0x0b,0x06,EOT}},
1103 {0xb, "COM5",
1104 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1105 {0x00,0x03,0xf8,0x04,0x00,0x50,0x00,EOT}},
1106 {0xc, "COM6",
1107 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT},
1108 {0x00,0x02,0xf8,0x03,0x00,0x50,0x00,EOT}},
1109 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001110 {0x8987, "IT8987", { /* global registers 0x24, 0x27, 0x28, 0x29, 0x2a, 0x2b are reserved */
1111 {NOLDN, "Chip ID",
1112 {0x20,0x21, EOT},
1113 {0x89,0x87, EOT}},
1114 {NOLDN, "Chip Version",
1115 {0x22,EOT},
1116 {0x03,EOT}},
1117 {NOLDN, "Super I/O Control Register (SIOCTRL)",
1118 {0x23,EOT},
1119 {0x01,EOT}},
1120 {NOLDN, "Super I/O Configuration Register (SIOIRQ)",
1121 {0x25,EOT},
1122 {0x00,EOT}},
1123 {NOLDN, "Super I/O General Purpose Register (SIOGP)",
1124 {0x26,EOT},
1125 {0x00,EOT}},
1126 {NOLDN, "Super I/O Power Mode Register (SIOPWR)",
1127 {0x2d,EOT},
1128 {0x00,EOT}},
1129 {NOLDN, "Depth 2 I/O Address (D2ADR)",
1130 {0x2e,EOT},
1131 {0x00,EOT}},
1132 {NOLDN, "Depth 2 I/O Data (D2DAT)",
1133 {0x2f,EOT},
1134 {0x00,EOT}},
1135 {0x04, "System Wake-Up Control (SWUC)",
1136 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1137 {0x00,0x00,0x00,0x00,0x00,0x00,0x01,EOT}},
1138 {0x05, "KBC/Mouse Interface",
1139 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1140 {0x00,0x00,0x00,0x00,0x00,0x0c,0x01,EOT}},
1141 {0x06, "KBC/Keyboard Interface",
1142 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1143 {0x00,0x00,0x60,0x00,0x64,0x01,0x01,EOT}},
1144 {0xa, "Consumer IR",
1145 {0x30,0x60,0x61,0x70,0x71,EOT},
1146 {0x00,0x03,0x10,0x00,0x02,EOT}},
1147 {0x0f, "Shared Memory/Flash Interface (SMFI)",
1148 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf4,EOT},
1149 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,EOT}},
1150 {0x10, "Real Time Clock (RTC)",
1151 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,0xf1,0xf2,EOT},
1152 {0x00,0x00,0x70,0x00,0x72,0x08,0x00,0x00,0x49,0x4a,EOT}},
1153 {0x11, "Power Management I/F Channel 1 (PMC1)",
1154 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1155 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1156 {0x12, "Power Management I/F Channel 2 (PMC2)",
1157 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1158 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1159 {0x13, "Serial Peripheral Interface (SSPI)",
1160 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1161 {0x00,0x03,0x00,0x00,0x00,0x00,0x00,EOT}},
1162 {0x14, "Platform Environment Control Interface (PECI)",
1163 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1164 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
1165 {0x17, "Power Management I/F Channel 3 (PMC3)",
1166 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,EOT},
1167 {0x00,0x00,0x62,0x00,0x66,0x01,0x01,EOT}},
1168 {0x18, "Power Management I/F Channel 4 (PMC4)",
1169 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1170 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1171 {0x19, "Power Management I/F Channel 5 (PMC5)",
1172 {0x30,0x60,0x61,0x62,0x63,0x64,0x65,0x70,0x71,0xf0,EOT},
1173 {0x00,0x00,0x68,0x00,0x6c,0x00,0x00,0x01,0x01,NANA,EOT}},
1174 {EOT}}},
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001175 {EOT}
1176};
1177
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001178static const struct superio_registers ec_table[] = {
Krystian Hebel9e3c3022019-02-26 14:20:52 +01001179 {0x8613, "IT8613E", {
1180 {NOLDN, NULL,
1181 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1182 0x0a,0x0b,0x0c,0x0e,0x0f,0x11,0x12,0x13,0x14,0x16,
1183 0x17,0x19,0x1a,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,
1184 0x24,0x25,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,
1185 0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x38,0x39,0x3a,
1186 0x3b,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x50,
1187 0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,
1188 0x5b,0x5c,0x5d,0x5e,0x5f,0x68,0x69,0x6a,0x6b,0x6c,
1189 0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,
1190 0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,
1191 0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,
1192 0x8e,0x8f,0x90,0x91,0x98,0x99,0x9c,0x9d,0x9e,0x9f,
1193 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xb4,0xb5,0xb6,
1194 0xb7,0xb8,0xb9,EOT},
1195 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1196 0x44,0x00,0x00,MISC,MISC,NANA,NANA,0x00,0x40,0x00,
1197 0x00,MISC,MISC,NANA,NANA,0x00,0x00,MISC,MISC,MISC,
1198 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1199 MISC,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1200 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,0x00,
1201 0x00,0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x00,
1202 0x12,0x60,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
1203 0x7f,0x0f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,0x7f,
1204 0x7f,0x7f,0x00,0x00,0x7f,0x0f,MISC,MISC,MISC,MISC,
1205 NANA,NANA,NANA,NANA,0x00,0x00,0x00,0x00,0x00,0x00,
1206 0x00,MISC,0x00,0x00,0x00,0x00,0x00,NANA,0x00,NANA,
1207 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x0f,NANA,NANA,NANA,
1208 NANA,NANA,NANA,EOT}},
1209 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001210 {0x8716, "IT8716F", {
1211 {NOLDN, NULL,
1212 {0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0b,0x0c,0x10,
1213 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x1b,0x1c,0x1d,
1214 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1215 0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,
1216 0x44,0x45,0x48,0x50,0x51,0x52,0x53,0x54,0x56,0x57,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001217 0x59,0x5c,
1218 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x68,
1219 0x69,0x6a,0x6b,0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,
1220 0x75,0x84,0x85,0x86,0x87,0x88,0x89,0x8c,0x8d,0x8e,
1221 0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x98,0x99,0x9a,
1222 0x9b,0x9c,0x9d,EOT},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001223 {0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x09,0x00,NANA,
1224 NANA,NANA,0x07,0x50,NANA,NANA,NANA,NANA,NANA,NANA,
1225 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1226 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1227 NANA,NANA,RSVD,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,
Uwe Hermann8cb24582008-05-08 13:50:23 +00001228 0x00,0x00,
1229 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001230 0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,
1231 0x7f,NANA,NANA,NANA,NANA,0x00,0x00,0x02,0x00,0x99,
1232 0x99,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,
1233 0x00,0x00,0x7f,EOT}},
1234 {EOT}}},
Uwe Hermannbbd337e2008-05-08 14:37:12 +00001235 {0x8718, "IT8718F", {
1236 {NOLDN, NULL,
1237 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1238 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1239 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1240 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
1241 0x2a,0x2b,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1242 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,
1243 0x42,0x43,0x44,0x45,0x50,0x51,0x52,0x53,0x54,0x56,
1244 0x57,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,
1245 0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,0x6c,0x6d,
1246 0x70,0x71,0x72,0x73,0x74,0x75,0x80,0x81,0x82,0x83,
1247 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,
1248 0x92,0x94,0x95,0x96,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,
1249 0xa6,EOT},
1250 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1251 0x40,0x09,0x00,NANA,NANA,NANA,NANA,NANA,NANA,0x07,
1252 0x50,MISC,MISC,MISC,NANA,NANA,NANA,NANA,NANA,NANA,
1253 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1254 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1255 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1256 NANA,NANA,NANA,NANA,0x00,0x00,0x7f,0x7f,0x7f,0x00,
1257 0x00,0x90,0x00,0x12,0x00,0x00,0x00,0x00,0x7f,0x7f,
1258 0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,
1259 0x7f,0x7f,0x7f,0x00,0x00,0x7f,NANA,NANA,NANA,NANA,
1260 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xff,0x00,
1261 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
1262 0x00,EOT}},
1263 {EOT}}},
Nico Hubere35a3742016-09-29 12:22:30 +02001264 {0x8783, "IT8783E/F", {
1265 {NOLDN, NULL,
1266 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1267 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1268 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1269 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,
Nico Huber25445dc2016-09-29 12:22:30 +02001270 0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,
1271 0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,
1272 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1273 0x48,0x49,0x4a,0x4b,0x50,0x51,0x52,0x53,0x54,0x55,
1274 0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
1275 0x60,0x61,0x62,0x63,0x64,0x65,0x68,0x69,0x6a,0x6b,
1276 0x6c,0x6d,0x70,0x71,0x72,0x73,0x74,0x75,0x88,0x89,
1277 0x8a,0x8b,0x8c,0x8d,0x8e,EOT},
Nico Hubere35a3742016-09-29 12:22:30 +02001278 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
1279 0x54,0x09,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1280 0x50,MISC,MISC,MISC,NANA,NANA,NANA,MISC,MISC,MISC,
1281 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
Nico Huber25445dc2016-09-29 12:22:30 +02001282 NANA,NANA,NANA,NANA,NANA,NANA,MISC,MISC,MISC,MISC,
Nico Hubere35a3742016-09-29 12:22:30 +02001283 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
Nico Huber25445dc2016-09-29 12:22:30 +02001284 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x5f,0x74,
1285 0x2d,0x40,0xab,0x22,0x00,0x00,0x7f,0x7f,0x7f,0x50,
1286 0x00,0x00,0x90,0x00,MISC,0x12,0x60,0x00,0x00,0x00,
1287 0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,
1288 0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,MISC,0x00,
1289 0x00,0x00,0x00,MISC,0x02,EOT}},
Nico Hubere35a3742016-09-29 12:22:30 +02001290 {EOT}}},
Kyösti Mälkki031dc672018-06-04 11:16:13 +03001291 {0x8786, "IT8786E-I", {
1292 {NOLDN, NULL,
1293 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
1294 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
1295 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
1296 0x20,0x21,0x22,0x23,0x24,0x27,0x28,0x29,0x2a,0x2b,
1297 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
1298 0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x50,0x51,
1299 0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5b,0x5c,
1300 0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,
1301 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,
1302 0x73,0x74,0x75,0x76,0x80,0x81,0x82,0x83,0x84,0x85,
1303 0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
1304 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,
1305 0x9c,0x9d,0x9e,0x9f,EOT},
1306 {0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
1307 0x44,0x0F,0x00,NANA,NANA,NANA,MISC,MISC,MISC,0x07,
1308 0x40,0x00,0x00,0x00,NANA,NANA,NANA,MISC,MISC,MISC,
1309 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1310 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,
1311 MISC,MISC,MISC,MISC,MISC,MISC,MISC,MISC,0x00,0x00,
1312 0x7f,0x7f,0x7f,0x40,0x00,0x00,0x90,0x00,0x12,0x60,
1313 0x00,0x00,0x00,0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,
1314 0x7f,0x7f,0x7f,0x80,0x00,0x7f,0x0f,0x7f,0x7f,0x7f,
1315 0x80,0x00,0x7f,0x0f,NANA,NANA,NANA,NANA,MISC,MISC
1316 MISC,MISC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,NANA,
1317 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,MISC,0x00,
1318 0x00,MISC,0x00,MISC,EOT}},
1319 {EOT}}},
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001320 {EOT}
1321};
1322
Nico Huber28a13242013-04-25 15:10:46 +02001323static const struct superio_registers bram_table[] = {
1324 {0x8516, "IT8516???", {
1325 {NOLDN, NULL,
1326 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1327 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1328 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1329 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1330 {NOLDN, NULL,
1331 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1332 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1333 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1334 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1335 {NOLDN, NULL,
1336 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1337 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1338 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1339 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1340 {NOLDN, NULL,
1341 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1342 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1343 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1344 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1345 {NOLDN, NULL,
1346 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1347 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1348 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1349 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1350 {NOLDN, NULL,
1351 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1352 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1353 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1354 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1355 {NOLDN, NULL,
1356 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1357 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1358 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1359 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1360 {NOLDN, NULL,
1361 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1362 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1363 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1364 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1365 {NOLDN, NULL,
1366 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1367 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1368 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1369 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1370 {NOLDN, NULL,
1371 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1372 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1373 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1374 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1375 {NOLDN, NULL,
1376 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1377 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1378 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1379 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1380 {NOLDN, NULL,
1381 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1382 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1383 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1384 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1385 {NOLDN, NULL,
1386 {0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1387 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,EOT},
1388 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1389 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1390 {EOT}}},
Matt Parnell063b1622019-08-15 22:32:21 -05001391{0x8987, "IT8987", {
1392 {NOLDN, NULL,
1393 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
1394 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,EOT},
1395 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1396 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1397 {NOLDN, NULL,
1398 {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
1399 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,EOT},
1400 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1401 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1402 {NOLDN, NULL,
1403 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
1404 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
1405 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1406 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1407 {NOLDN, NULL,
1408 {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
1409 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,EOT},
1410 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1411 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1412 {NOLDN, NULL,
1413 {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
1414 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,EOT},
1415 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1416 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1417 {NOLDN, NULL,
1418 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,
1419 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,EOT},
1420 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1421 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1422 {NOLDN, NULL,
1423 {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
1424 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,EOT},
1425 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1426 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1427 {NOLDN, NULL,
1428 {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
1429 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,EOT},
1430 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1431 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1432 {NOLDN, NULL,
1433 {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
1434 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,EOT},
1435 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1436 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1437 {NOLDN, NULL,
1438 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
1439 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,EOT},
1440 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1441 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1442 {NOLDN, NULL,
1443 {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
1444 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,EOT},
1445 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1446 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1447 {NOLDN, NULL,
1448 {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
1449 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,EOT},
1450 {NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,
1451 NANA,NANA,NANA,NANA,NANA,NANA,NANA,NANA,EOT}},
1452 {EOT}}},
Nico Huber28a13242013-04-25 15:10:46 +02001453 {EOT}
1454};
1455
Urja Rannikko38204a22008-10-23 23:33:18 +00001456/* Works for: IT8661F/IT8770F */
1457static const uint8_t initkey_it8661f[][4] = {
1458 {0x86, 0x61, 0x55, 0x55}, /* 0x3f0 */
1459 {0x86, 0x61, 0x55, 0xaa}, /* 0x3bd */
1460 {0x86, 0x61, 0xaa, 0x55}, /* 0x370 */
1461};
1462
1463/* Works for: IT8671F/IT8687R, IT8673F */
1464static const uint8_t initkey_it8671f[][4] = {
1465 {0x86, 0x80, 0x55, 0x55}, /* 0x3f0 */
1466 {0x86, 0x80, 0x55, 0xaa}, /* 0x3bd */
1467 {0x86, 0x80, 0xaa, 0x55}, /* 0x370 */
1468};
1469
1470/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1471static const uint8_t initkey_mbpnp[] = {
1472 0x6a, 0xb5, 0xda, 0xed, 0xf6, 0xfb, 0x7d, 0xbe, 0xdf, 0x6f, 0x37,
1473 0x1b, 0x0d, 0x86, 0xc3, 0x61, 0xb0, 0x58, 0x2c, 0x16, 0x8b, 0x45,
1474 0xa2, 0xd1, 0xe8, 0x74, 0x3a, 0x9d, 0xce, 0xe7, 0x73, 0x39,
1475};
1476
1477/* Works for: IT8661F/IT8770F, IT8671F/IT8687R, IT8673F. */
1478static void enter_conf_mode_ite_legacy(uint16_t port, const uint8_t init[][4])
1479{
1480 int i, idx;
1481
1482 /* Determine Super I/O config port. */
1483 idx = (port == 0x3f0) ? 0 : ((port == 0x3bd) ? 1 : 2);
1484 for (i = 0; i < 4; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001485 OUTB(init[idx][i], ISA_PNP_ADDR);
Urja Rannikko38204a22008-10-23 23:33:18 +00001486
1487 /* Sequentially write the 32 MB PnP init values. */
1488 for (i = 0; i < 32; i++)
Andriy Gaponb64aa602008-10-28 22:13:38 +00001489 OUTB(initkey_mbpnp[i], port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001490}
1491
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001492static void enter_conf_mode_ite(uint16_t port)
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001493{
Andriy Gaponb64aa602008-10-28 22:13:38 +00001494 OUTB(0x87, port);
1495 OUTB(0x01, port);
1496 OUTB(0x55, port);
1497 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001498}
1499
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001500static void enter_conf_mode_ite_it8502e(uint16_t port)
1501{
1502 OUTB(0x85, port);
1503 OUTB(0x02, port);
1504 OUTB(0x55, port);
1505 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1506}
1507
Uwe Hermannebb73f22008-11-12 19:08:58 +00001508static void enter_conf_mode_ite_it8761e(uint16_t port)
1509{
1510 OUTB(0x87, port);
1511 OUTB(0x61, port);
1512 OUTB(0x55, port);
1513 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1514}
1515
1516static void enter_conf_mode_ite_it8228e(uint16_t port)
1517{
1518 OUTB(0x82, port);
1519 OUTB(0x28, port);
1520 OUTB(0x55, port);
1521 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1522}
1523
Matt Parnell063b1622019-08-15 22:32:21 -05001524static void enter_conf_mode_ite_it8987e(uint16_t port)
1525{
1526 OUTB(0x89, port);
1527 OUTB(0x87, port);
1528 OUTB(0x55, port);
1529 OUTB((port == 0x2e) ? 0x55 : 0xaa, port);
1530}
1531
Uwe Hermann3acf31e2007-09-19 01:55:35 +00001532static void exit_conf_mode_ite(uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001533{
1534 regwrite(port, 0x02, 0x02);
1535}
1536
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001537static int chip_found_at_port;
1538
Uwe Hermannafe83092007-09-28 15:45:43 +00001539static void probe_idregs_ite_helper(const char *init, uint16_t port)
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001540{
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001541 uint16_t id, chipver, ecport;
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001542
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001543 probing_for("ITE", init, port);
1544
Uwe Hermann07024692007-09-20 22:13:48 +00001545 id = regval(port, CHIP_ID_BYTE1_REG) << 8;
1546 id |= regval(port, CHIP_ID_BYTE2_REG);
1547 chipver = regval(port, CHIP_VERSION_REG) & 0x0f; /* Only bits 3..0 */
1548
1549 if (superio_unknown(reg_table, id)) {
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001550 if (verbose)
1551 printf(NOTFOUND "id=0x%04x, rev=0x%01x\n", id, chipver);
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001552 return;
1553 }
1554
Uwe Hermann8b8d0392007-10-04 15:23:38 +00001555 printf("Found ITE %s (id=0x%04x, rev=0x%01x) at 0x%x\n",
Uwe Hermann07024692007-09-20 22:13:48 +00001556 get_superio_name(reg_table, id), id, chipver, port);
Uwe Hermanne9d46162007-10-07 20:01:23 +00001557 chip_found = 1;
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001558 chip_found_at_port = 1;
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001559
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001560 dump_superio("ITE", reg_table, port, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001561
1562 if (extra_dump) {
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001563 regwrite(port, LDN_SEL, 0x04); /* Select LDN 4 (EC). */
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001564
1565 /* Get EC base address (stored in LDN 4, index 0x60/0x61). */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001566 ecport = regval(port, 0x60) << 8;
1567 ecport |= regval(port, 0x61);
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001568
1569 /* EC address register = EC base address + 5. */
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001570 ecport += 5;
1571
Uwe Hermanneec5ff42008-03-01 18:49:39 +00001572 printf("Environment controller (0x%04x)\n", ecport);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001573 dump_superio("ITE-EC", ec_table, ecport, id, LDN_SEL);
Nico Huber28a13242013-04-25 15:10:46 +02001574
1575 regwrite(port, LDN_SEL, 0x10); /* Select LDN 16 (BRAM). */
1576 /* Get EC base address (stored in LDN 16, index 0x62/0x63). */
1577 ecport = regval(port, 0x62) << 8;
1578 ecport |= regval(port, 0x63);
1579 printf("BRAM (0x%04x)\n", ecport);
1580 dump_superio("ITE-BRAM", bram_table, ecport, id, LDN_SEL);
Ronald Hoogenboom0be73bb2008-02-25 22:32:41 +00001581 }
Uwe Hermannb4db2202007-09-20 23:37:56 +00001582}
Uwe Hermann25a6c0f2007-09-19 00:48:42 +00001583
Uwe Hermannb4db2202007-09-20 23:37:56 +00001584void probe_idregs_ite(uint16_t port)
1585{
Stefan Reinauerd7ce71d2010-12-30 16:57:58 +00001586 chip_found_at_port = 0;
1587
Urja Rannikko38204a22008-10-23 23:33:18 +00001588 if (port == 0x3f0 || port == 0x3bd || port == 0x370) {
1589 enter_conf_mode_ite_legacy(port, initkey_it8661f);
1590 probe_idregs_ite_helper("(init=legacy/it8661f) ", port);
1591 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001592 if (chip_found_at_port)
1593 return;
Uwe Hermannb4db2202007-09-20 23:37:56 +00001594
Urja Rannikko38204a22008-10-23 23:33:18 +00001595 enter_conf_mode_ite_legacy(port, initkey_it8671f);
1596 probe_idregs_ite_helper("(init=legacy/it8671f) ", port);
1597 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001598 if (chip_found_at_port)
1599 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001600 } else {
1601 enter_conf_mode_ite(port);
Uwe Hermannebb73f22008-11-12 19:08:58 +00001602 probe_idregs_ite_helper("(init=standard) ", port);
1603 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001604 if (chip_found_at_port)
1605 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001606
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001607 enter_conf_mode_ite_it8502e(port);
1608 probe_idregs_ite_helper("(init=it8502e) ", port);
1609 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001610 if (chip_found_at_port)
1611 return;
Anton Kochkov106f7ff2010-06-29 21:26:17 +00001612
Uwe Hermannebb73f22008-11-12 19:08:58 +00001613 enter_conf_mode_ite_it8761e(port);
1614 probe_idregs_ite_helper("(init=it8761e) ", port);
1615 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001616 if (chip_found_at_port)
1617 return;
Uwe Hermannebb73f22008-11-12 19:08:58 +00001618
1619 enter_conf_mode_ite_it8228e(port);
1620 probe_idregs_ite_helper("(init=it8228e) ", port);
Urja Rannikko38204a22008-10-23 23:33:18 +00001621 exit_conf_mode_ite(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001622 if (chip_found_at_port)
1623 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001624
Matt Parnell063b1622019-08-15 22:32:21 -05001625 enter_conf_mode_ite_it8987e(port);
1626 probe_idregs_ite_helper("(init=it8987e) ", port);
1627 exit_conf_mode_ite(port);
1628 if (chip_found_at_port)
1629 return;
1630
Urja Rannikko38204a22008-10-23 23:33:18 +00001631 enter_conf_mode_winbond_fintek_ite_8787(port);
1632 probe_idregs_ite_helper("(init=0x87,0x87) ", port);
1633 exit_conf_mode_winbond_fintek_ite_8787(port);
Uwe Hermannc55bcde2011-06-09 20:56:29 +02001634 if (chip_found_at_port)
1635 return;
Urja Rannikko38204a22008-10-23 23:33:18 +00001636 }
Uwe Hermann0120e1a2007-09-16 18:11:03 +00001637}
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001638
1639void print_ite_chips(void)
1640{
1641 print_vendor_chips("ITE", reg_table);
Stefan Reinauer7a51e502008-12-01 14:18:57 +00001642 print_vendor_chips("ITE-EC", ec_table);
Robinson P. Tryon552cfb72008-01-15 22:30:55 +00001643}