1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 #include "superiotool.h"
5 #define DEVICE_ID_REG 0x20 /* Super I/O ID (SID) / family */
6 #define DEVICE_REV_REG 0x27 /* Super I/O revision ID (SRID) */
8 static const struct superio_registers reg_table
[] = {
9 {0xfc, "WPCE775x / NPCE781x", {
11 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
12 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT
},
13 {0xfc,0x11,RSVD
,RSVD
,RSVD
,0x00,0x00,MISC
,0x00,
14 0x04,RSVD
,RSVD
,RSVD
,0x00,RSVD
,RSVD
,EOT
}},
15 {0x03, "CIR Port (CIRP)", /* where supported */
16 {0x30,0x60,0x61,0x70,0x71,0x74,0x75,0xf0,EOT
},
17 {0x00,0x03,0xf8,0x04,0x03,0x04,0x04,0x02,EOT
}},
18 {0x04, "Mobile System Wake-Up Control Config (MSWC)",
19 {0x30,0x60,0x61,0x70,0x71,0x74,0x75,EOT
},
20 {0x00,0x00,0x00,0x00,0x03,0x04,0x04,EOT
}},
21 {0x05, "Mouse config (KBC)",
22 {0x30,0x70,0x71,0x74,0x75,EOT
},
23 {0x00,0x0c,0x03,0x04,0x04,EOT
}},
24 {0x06, "Keyboard config (KBC)",
25 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x74,0x75,EOT
},
26 {0x00,0x00,0x60,0x00,0x64,0x01,0x03,0x04,0x04,EOT
}},
27 {0x0f, "Shared memory (SHM)",
28 {0x30,0x60,0x61,0x70,0x71,0x74,0x75,0xf0,0xf1,0xf2,
29 0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT
},
30 {0x00,0x00,0x00,0x00,0x00,0x04,0x04,MISC
,0x07,RSVD
,
31 RSVD
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
32 {0x11, "Power management I/F Channel 1 (PM1)",
33 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x74,0x75,EOT
},
34 {0x00,0x00,0x62,0x00,0x66,0x01,0x03,0x04,0x04,EOT
}},
35 {0x12, "Power management I/F Channel 2 (PM2)",
36 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x74,0x75,EOT
},
37 {0x00,0x00,0x68,0x00,0x6c,0x01,0x03,0x04,0x04,EOT
}},
38 {0x15, "Enhanced Wake On CIR (EWOC)",
39 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x74,0x75,EOT
},
40 {0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x04,EOT
}},
41 {0x17, "Power Management I/F Channel 3 (PM3)",
42 {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0x74,0x75,EOT
},
43 {0x00,0x00,0x6a,0x00,0x6e,0x01,0x03,0x04,0x04,EOT
}},
44 {0x1a, "Serial Port with Fast Infrared Port (FIR)",
45 {0x30,0x60,0x61,0x70,0x71,0x74,0x75,0xf0,EOT
},
46 {0x00,0x02,0xf8,0x03,0x03,0x04,0x04,0x02,EOT
}},
50 {0xb472, "NCT6775F (A)", {
52 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
53 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT
},
54 {0xb4,0x72,0xff,0x78,0x40,0x00,0x00,0x7d,0x00,
55 0x00,0x58,0x77,0xfc,0x04,0x00,MISC
,EOT
}},
57 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
59 {0x03,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,
61 {0x01, "Parallel Port",
62 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
63 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
65 {0x30,0x60,0x61,0x70,0xf0,EOT
},
66 {0x01,0x03,0xf8,0x04,0x00,EOT
}},
68 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT
},
69 {0x01,0x02,0xf8,0x03,0x00,0x00,EOT
}},
70 {0x05, "Keyboard Controller",
71 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
72 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
74 {0x30,0x60,0x61,0x70,EOT
},
75 {0x00,0x00,0x00,0x00,EOT
}},
76 {0x07, "GPIO6, GPIO7, GPIO8, GPIO9",
77 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
78 0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xf4,0xf5,
80 {0x18,0xff,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
81 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
83 {0x08, "WDT1, GPIO0, GPIO1",
84 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,
85 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,EOT
},
86 {0x00,0xff,0x00,0x00,0x00,0x00,0xff,
87 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
88 {0x09, "GPIO2, GPIO3, GPIO4, GPIO5",
89 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
90 0xe8,0xe9,0xea,0xeb,0xee,0xf0,0xf1,0xf2,0xf4,
91 0xf5,0xf6,0xf7,0xfe,EOT
},
92 {0x05,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
93 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,
94 0x00,0x00,0x00,0x00,EOT
}},
96 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
97 0xe8,0xe9,0xea,0xeb,0xed,0xf2,0xf3,0xf4,0xf6,
99 {0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,
100 0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
102 {0x0b, "Hardware Monitor, Front Panel LED",
103 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
104 0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,
107 {0x00,0x00,0x00,0x00,0x00,0x00,0xc1,0x00,0x00,
108 0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,0x00,
112 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,
113 0xee,0xef,0xf1,0xf2,0xf3,0xfa,EOT
},
114 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0f,
115 0x47,0x5b,0x40,0x50,0x10,0x00,EOT
}},
116 {0x0d, "VID, VIDDAC, BUSSEL",
117 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xeb,
118 0xec,0xed,0xee,0xef,0xf3,0xf4,0xf5,0xf6,0xf7,
120 {0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x14,
121 0x01,0x00,0x88,0x00,0x00,0x00,0x00,0x07,0x00,
123 {0x0e, "CIR WAKE-UP",
124 {0x30,0x60,0x61,0x70,EOT
},
125 {0x00,0x00,0x00,0x00,EOT
}},
126 {0x0f, "GPIO Push-Pull or Open-drain",
127 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
128 0xe9,0xf0,0xf2,0xf3,0xf4,0xf8,0xfe,EOT
},
129 {0xff,0xff,0xf7,0xff,0xfb,0xcb,0xff,0xff,0xff,
130 0xff,0x00,0x00,0x00,0x00,0x70,0xff,EOT
}},
132 {0xb473, "NCT6775F (B) / NCT5572D (B) (not all LDNs supported)", {
134 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
135 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT
},
136 {0xb4,0x73,0xff,0x78,0x40,0x00,0x00,0x7d,0x00,
137 0x00,0x58,0x77,0xfc,0x04,0x00,MISC
,EOT
}},
139 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
141 {0x03,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,
143 {0x01, "Parallel Port",
144 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
145 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
147 {0x30,0x60,0x61,0x70,0xf0,EOT
},
148 {0x01,0x03,0xf8,0x04,0x00,EOT
}},
150 {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT
},
151 {0x01,0x02,0xf8,0x03,0x00,0x00,EOT
}},
152 {0x05, "Keyboard Controller",
153 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
154 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
156 {0x30,0x60,0x61,0x70,EOT
},
157 {0x00,0x00,0x00,0x00,EOT
}},
158 {0x07, "GPIO6, GPIO7, GPIO8, GPIO9",
159 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
160 0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xf4,0xf5,
162 {0x18,0xff,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
163 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
164 0x00,0x00,0x00,EOT
}},
165 {0x08, "WDT1, GPIO0, GPIO1",
166 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,
167 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,EOT
},
168 {0x00,0xff,0x00,0x00,0x00,0x00,0xff,
169 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
170 {0x09, "GPIO2, GPIO3, GPIO4, GPIO5",
171 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
172 0xe8,0xe9,0xea,0xeb,0xee,0xf0,0xf1,0xf2,0xf4,
173 0xf5,0xf6,0xf7,0xfe,EOT
},
174 {0x05,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
175 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,
176 0x00,0x00,0x00,0x00,EOT
}},
178 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
179 0xe8,0xe9,0xea,0xeb,0xed,0xf2,0xf3,0xf4,0xf6,
181 {0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,
182 0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
184 {0x0b, "Hardware Monitor, Front Panel LED",
185 {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2,
186 0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,
189 {0x00,0x00,0x00,0x00,0x00,0x00,0xc1,0x00,0x00,
190 0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,0x00,
194 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,
195 0xee,0xef,0xf1,0xf2,0xf3,0xfa,EOT
},
196 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0f,
197 0x47,0x5b,0x40,0x50,0x10,0x00,EOT
}},
198 {0x0d, "VID, VIDDAC, BUSSEL",
199 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xeb,
200 0xec,0xed,0xee,0xef,0xf3,0xf4,0xf5,0xf6,0xf7,
202 {0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x14,
203 0x01,0x00,0x88,0x00,0x00,0x00,0x00,0x07,0x00,
205 {0x0e, "CIR WAKE-UP",
206 {0x30,0x60,0x61,0x70,EOT
},
207 {0x00,0x00,0x00,0x00,EOT
}},
208 {0x0f, "GPIO Push-Pull or Open-drain",
209 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
210 0xe9,0xf0,0xf2,0xf3,0xf4,0xf8,0xfe,EOT
},
211 {0xff,0xff,0xf7,0xff,0xfb,0xcb,0xff,0xff,0xff,
212 0xff,0x00,0x00,0x00,0x00,0x70,0xff,EOT
}},
214 {0xc332, "NCT6776F (B)", {
216 {0x10,0x11,0x13,0x14,0x16,0x17,0x18,0x19,0x1a,
217 0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,
218 0x24,0x25,0x26,0x27,0x28,0x2a,0x2b,0x2c,0x2d,
220 {0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xf0,
221 0x78,0x00,0x00,0xff,0xff,0xc3,0x32,0xff,0x00,
222 0x64,0x00,MISC
,0x00,0x00,0xc0,0x00,0x81,0x00,
225 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
227 {0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
229 {0x01, "Parallel Port",
230 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
231 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
233 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT
},
234 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT
}},
236 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT
},
237 {0x01,0x02,0xf8,0x03,0x00,0x00,0x00,EOT
}},
238 {0x05, "Keyboard Controller",
239 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
240 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
242 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT
},
243 {0x00,0x00,0x00,0x00,0x08,0x09,0x32,0x00,EOT
}},
244 {0x07, "GPIO6, GPIO7, GPIO8, GPIO9",
245 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
246 0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xf4,0xf5,
248 {0x03,0xff,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
249 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
250 0x00,0x00,0x00,EOT
}},
251 {0x08, "WDT1, GPIO0, GPIO1, GPIOA",
252 {0x30,0x60,0x61,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,
253 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,EOT
},
254 {0x02,0x00,0x00,0xff,0x00,0x00,0x00,0xef,0xff,
255 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
256 {0x09, "GPIO2, GPIO3, GPIO4, GPIO5",
257 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
258 0xe8,0xe9,0xea,0xeb,0xee,0xf0,0xf1,0xf2,0xf4,
259 0xf5,0xf6,0xf7,0xfe,EOT
},
260 {0x04,0xdf,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
261 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,
262 0x00,0x00,0x00,0x00,EOT
}},
264 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,
265 0xee,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xfe,EOT
},
266 {0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,0x00,
267 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,EOT
}},
268 {0x0b, "Hardware Monitor, Front Panel LED",
269 {0x30,0x60,0x61,0x62,0x63,0x70,0xe0,0xe1,0xe2,
270 0xf0,0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
272 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,
273 0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,
276 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe9,0xee,
277 0xef,0xf0,0xf4,0xf5,EOT
},
278 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,
279 0x00,0x00,0x00,0x00,EOT
}},
280 {0x0e, "CIR WAKE-UP",
281 {0x30,0x60,0x61,0x70,EOT
},
282 {0x00,0x00,0x00,0x00,EOT
}},
283 {0x0f, "GPIO Push-Pull or Open-drain",
284 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
285 0xe9,0xf0,0xf1,0xf2,EOT
},
286 {0xff,0xdf,0xff,0xfe,0xf6,0xff,0xff,0xd3,0xff,
287 0x9f,0x00,0x00,0x00,EOT
}},
289 {0xe0,0xe1,0xe3,0xe4,EOT
},
290 {0x00,0x80,0x00,0x00,EOT
}},
292 {0x30,0xe0,0xe1,0xe2,EOT
},
293 {0x20,0x20,0x04,0x05,EOT
}},
295 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,EOT
},
296 {0x01,0x00,0x00,0x00,0x01,0x00,EOT
}},
298 {0xc333, "NCT6776F/D (C)", {
300 {0x10,0x11,0x13,0x14,0x16,0x17,0x18,0x19,0x1a,
301 0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,
302 0x24,0x25,0x26,0x27,0x28,0x2a,0x2b,0x2c,0x2d,
304 {0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xf0,
305 0x78,0x00,0x00,0xff,0xff,0xc3,0x33,0xff,0x00,
306 0x64,0x00,MISC
,0x00,0x00,0xc0,0x00,0x81,0x00,
309 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
311 {0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
313 {0x01, "Parallel Port",
314 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
315 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
317 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT
},
318 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT
}},
320 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT
},
321 {0x01,0x02,0xf8,0x03,0x00,0x00,0x00,EOT
}},
322 {0x05, "Keyboard Controller",
323 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
324 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
326 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT
},
327 {0x00,0x00,0x00,0x00,0x08,0x09,0x32,0x00,EOT
}},
328 {0x07, "GPIO6, GPIO7, GPIO8, GPIO9",
329 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
330 0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xf4,0xf5,
332 {0x03,0xff,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
333 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
334 0x00,0x00,0x00,EOT
}},
335 {0x08, "WDT1, GPIO0, GPIO1, GPIOA",
336 {0x30,0x60,0x61,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,
337 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,EOT
},
338 {0x02,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,
339 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
340 {0x09, "GPIO2, GPIO3, GPIO4, GPIO5",
341 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
342 0xe8,0xe9,0xea,0xeb,0xee,0xf0,0xf1,0xf2,0xf4,
343 0xf5,0xf6,0xf7,0xfe,EOT
},
344 {0x04,0xdf,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
345 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,
346 0x00,0x00,0x00,0x00,EOT
}},
348 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,
349 0xee,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xfe,EOT
},
350 {0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,0x00,
351 0x00,0x00,0x5c,0x00,0x00,0x00,0xc0,0x00,EOT
}},
352 {0x0b, "Hardware Monitor, Front Panel LED",
353 {0x30,0x60,0x61,0x62,0x63,0x70,0xe0,0xe1,0xe2,
354 0xf0,0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,
356 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,
357 0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,
360 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe9,0xee,
361 0xef,0xf0,0xf4,0xf5,EOT
},
362 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,
363 0x00,0x00,0x00,0x00,EOT
}},
364 {0x0e, "CIR WAKE-UP",
365 {0x30,0x60,0x61,0x70,EOT
},
366 {0x00,0x00,0x00,0x00,EOT
}},
367 {0x0f, "GPIO Push-Pull or Open-drain",
368 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
369 0xe9,0xf0,0xf1,0xf2,EOT
},
370 {0xff,0xdf,0xff,0xfe,0xf6,0xff,0xff,0xd3,0xff,
371 0x9f,0x00,0x00,0x00,EOT
}},
373 {0xe0,0xe1,0xe3,0xe4,EOT
},
374 {0x00,0x80,0x00,0x00,EOT
}},
376 {0x30,0xe0,0xe1,0xe2,EOT
},
377 {0x20,0x20,0x04,0x05,EOT
}},
379 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,EOT
},
380 {0x01,0x00,0x00,0x00,0x01,0x00,EOT
}},
382 {0xc562, "NCT6779D", {
384 {0x10,0x11,0x13,0x14,0x1a,0x1b,0x1c,0x1d,0x20,
385 0x21,0x22,0x24,0x25,0x26,0x27,0x28,0x2a,0x2b,
387 {0xff,0xff,0x00,0x00,0x30,0x70,0x10,0x00,0xc5,
388 0x62,0xff,0x04,0x00,MISC
,0x00,0x00,0xc0,0x00,
390 {0x01, "Parallel Port",
391 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
392 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
394 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT
},
395 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT
}},
397 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT
},
398 {0x01,0x02,0xf8,0x03,0x00,0x00,0x00,EOT
}},
399 {0x05, "Keyboard Controller",
400 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
401 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
403 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT
},
404 {0x00,0x00,0x00,0x00,0x08,0x09,0x32,0x00,EOT
}},
405 {0x07, "GPIO6, GPIO7, GPIO8",
406 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
407 0xec,0xed,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
408 {0x0f,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
409 0x00,0x00,0xff,0x00,0x00,0x00,0x00,EOT
}},
410 {0x08, "WDT1, GPIO0, GPIO1",
411 {0x30,0x60,0x61,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,
412 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,EOT
},
413 {0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,
414 0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
415 {0x09, "GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, GPIO7, GPIO8",
416 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
417 0xe8,0xe9,0xea,0xeb,0xee,0xf0,0xf1,0xf2,0xf4,
418 0xf5,0xf6,0xf7,0xfe,EOT
},
419 {0x00,0xff,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,
420 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,
421 0x00,0x00,0x00,0x00,EOT
}},
423 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,
424 0xee,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xfe,EOT
},
425 {0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,0x00,
426 0x00,0x10,0x5c,0x00,0x00,0x00,0xc0,0x00,EOT
}},
427 {0x0b, "Hardware Monitor, Front Panel LED",
428 {0x30,0x60,0x61,0x62,0x63,0x70,0xe0,0xe1,0xe2,
429 0xe4,0xf0,0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,
431 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,
432 0xff,0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,
437 {0x0e, "CIR WAKE-UP",
438 {0x30,0x60,0x61,0x70,EOT
},
439 {0x00,0x00,0x00,0x00,EOT
}},
440 {0x0f, "GPIO Push-Pull or Open-drain",
441 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,
443 {0xff,0xff,0x7f,0xff,0xff,0xff,0x0f,0xff,0xff,
444 0x9d,0x00,0x00,EOT
}},
445 {0x14, "Port 80 UART",
446 {0xe0,0xe1,0xe2,0xe3,0xe4,EOT
},
447 {0x80,0x00,0x00,0x10,0x00,EOT
}},
449 {0x30,0xe0,0xe1,0xe2,EOT
},
450 {0x20,0x20,0x04,0x05,EOT
}},
452 {0xc452, "NCT6102D / NCT6106D", {
454 {0x07,0x10,0x11,0x13,0x14,0x1a,0x1b,0x20,0x21,0x22,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2f,EOT
},
455 {0x00,0xff,0xff,0x00,0x00,0xcc,0x03,0x10,0x61,0x7F,0x00,0x00,MISC
,0x00,0x00,0xf0,0x00,MISC
,EOT
}},
457 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,0xf5,EOT
},
458 {0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,EOT
}},
460 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
461 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
463 {0x30,0x60,0x61,0x70,0xf0,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
464 {0x01,0x03,0xf8,0x04,0x00,0x00,0x00,0xff,0xff,0x02,0x00,0x00,EOT
}},
466 {0x30,0x60,0x61,0x70,0xf0,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
467 {0x01,0x02,0xf8,0x03,0x00,0x00,0x00,0xff,0xff,0x02,0x00,0x00,EOT
}},
468 {0x05, "Keyboard Controller (KBC)",
469 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
470 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
472 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT
},
473 {0x00,0x00,0x00,0x00,0x08,0x09,0x32,0x00,EOT
}},
475 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,EOT
},
476 {0xdf,0xff,0x00,0x00,0x00,0xef,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x02,0x00,0x00,0x00,EOT
}},
478 {0x30,0x60,0x61,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,0xf1,0xf2,EOT
},
479 {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,EOT
}},
481 {0xe0,0xe1,0xe2,EOT
},
482 {0x00,0x00,0x00,EOT
}},
484 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xfa,EOT
},
485 {0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,EOT
}},
486 {0x0b, "Hardware Monitor, Front Panel LED",
487 {0x30,0x60,0x61,0x62,0x63,0x70,0xe0,0xe1,0xe2,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,EOT
},
488 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x87,0x47,0x00,EOT
}},
490 {0xe0,0xe1,0xe2,0xe3,0xe4,EOT
},
491 {0x00,0x32,0x14,0x00,0x00,EOT
}},
492 {0x0e, "CIR WAKE-UP",
493 {0x30,0x60,0x61,0x70,0xe0,0xe1,EOT
},
494 {0x00,0x00,0x00,0x00,0x25,0x00,EOT
}},
495 {0x0f, "GPIO Push-Pull or Open-drain",
496 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xf0,0xf1,0xf2,EOT
},
497 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x9d,0x00,0x00,EOT
}},
499 {0x30,0x60,0x61,0x70,0xf0,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
500 {0x00,0x03,0x00,0x04,0x00,0x00,0x00,0xff,0xff,0x02,0x00,0x00,EOT
}},
502 {0x30,0x60,0x61,0x70,0xf0,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
503 {0x00,0x02,0x00,0x03,0x00,0x00,0x00,0xff,0xff,0x02,0x00,0x00,EOT
}},
505 {0x30,0x60,0x61,0x70,0xf0,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
506 {0x00,0x03,0xe8,0x04,0x00,0x00,0x00,0xff,0xff,0x02,0x00,0x00,EOT
}},
508 {0x30,0x60,0x61,0x70,0xf0,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
509 {0x00,0x02,0xe8,0x03,0x00,0x00,0x00,0xff,0xff,0x02,0x00,0x00,EOT
}},
511 {0x30,0x60,0x61,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,EOT
},
512 {0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x10,0x00,0x00,0x00,EOT
}},
514 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,EOT
},
515 {0x00,0x3f,0x01,0x11,0x11,0x02,0x00,0x00,0x01,0x00,EOT
}},
517 {0x30,0xe0,0xe1,0xe2,EOT
},
518 {0x20,0x20,0x04,0x05,EOT
}},
520 {0xc803, "NCT6791D", {
522 {0x07,0x10,0x11,0x13,0x14,0x1a,0x1b,0x1c,0x1d,0x20,0x21,0x22,0x24,0x25,0x26,0x27,0x28,0x2a,0x2b,0x2c,0x2d,0x2f,EOT
},
523 {0x00,0xff,0xff,0x00,0x00,0x30,0x70,0x10,0x00,0xc8,0x03,0xff,0x04,0x00,MISC
,0x00,0x00,0xc0,0x00,0x01,0x00,MISC
,EOT
}},
524 {0x01, "Parallel Port",
525 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
526 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
528 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT
},
529 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT
}},
531 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT
},
532 {0x01,0x02,0xf8,0x03,0x00,0x00,0x00,EOT
}},
533 {0x05, "Keyboard Controller",
534 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
535 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
536 {0x06, "Consumer IR",
537 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT
},
538 {0x00,0x00,0x00,0x00,0x08,0x09,0x32,0x00,EOT
}},
539 {0x07, "GPIO 6, GPIO 7, GPIO 8",
540 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xec,0xed,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
541 {0x00,0x7f,NANA
,0x00,NANA
,0xff,NANA
,0x00,NANA
,0x00,0x00,0xff,NANA
,0x00,NANA
,0x00,EOT
}},
542 {0x08, "WDT1, WDT_MEM, GPIO 0, GPIO 1",
543 {0x30,0x60,0x61,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfe,0xff,EOT
},
544 {0x00,0x00,0x00,0xff,NANA
,0x00,NANA
,0x00,0xff,NANA
,0x00,NANA
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
545 {0x09, "GPIO 2, GPIO 3, GPIO 4, GPIO 5",
546 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xee,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xfe,EOT
},
547 {0x00,0xff,NANA
,0x00,NANA
,0x7f,NANA
,0x00,NANA
,NANA
,0x00,0x00,0x00,0x00,0xff,NANA
,0x00,0xff,NANA
,0x00,NANA
,0x00,EOT
}},
549 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xec,0xed,0xee,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xfc,0xfe,EOT
},
550 {0x01,0x00,0x00,0x00,0x00,0x02,0x1a,0x00,0x00,0x00,0x00,0x00,0x10,0x5c,0x00,0x00,0x00,0xc0,0x00,0x00,EOT
}},
551 {0x0b, "Hardware Monitor, Front Panel LED",
552 {0x30,0x60,0x61,0x62,0x63,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe6,0xe7,0xf0,0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT
},
553 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,0xff,0xff,0x08,0xff,0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,0x00,EOT
}},
554 {0x0d, "BCLK, WDT2, WDT_MEM",
555 {0xe0,0xe1,0xe7,0xe8,0xeb,0xed,0xf0,0xf3,EOT
},
556 {0x00,MISC
,0x00,0x32,0x14,0x00,0x00,0x00,EOT
}},
557 {0x0e, "CIR Wake-Up",
558 {0x30,0x60,0x61,0x70,EOT
},
559 {0x00,0x00,0x00,0x00,EOT
}},
560 {0x0f, "GPIO Push-Pull or Open-Drain selection",
561 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,0xf1,0xf2,EOT
},
562 {0xff,0xff,0x7f,0xff,0xff,0xff,0x0f,0xff,0xff,0x9d,0x00,0x00,EOT
}},
563 {0x14, "Port 80 UART",
564 {0xe0,0xe1,0xe2,0xe3,0xe4,EOT
},
565 {0x80,0x00,0x00,0x10,0x00,EOT
}},
567 {0x30,0xe0,0xe1,0xe2,0xe3,EOT
},
568 {0x20,0x20,0x04,0x05,0x01,EOT
}},
570 {0xd451, "NCT6797D (experimental)", {
572 {0x07,0x10,0x11,0x13,0x14,0x1a,0x1b,0x1c,0x1d,0x20,0x21,0x22,0x24,0x25,0x26,0x27,0x28,0x2a,0x2b,0x2c,0x2d,0x2f,EOT
},
573 {0x00,0xff,0xff,0x00,0x00,0x30,0x70,0x10,0x00,0xc8,0x03,0xff,0x04,0x00,MISC
,0x00,0x00,0xc0,0x00,0x01,0x00,MISC
,EOT
}},
574 {0x01, "Parallel Port",
575 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT
},
576 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT
}},
578 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT
},
579 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT
}},
581 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,EOT
},
582 {0x01,0x02,0xf8,0x03,0x00,0x00,0x00,EOT
}},
583 {0x05, "Keyboard Controller",
584 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
585 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
586 {0x06, "Consumer IR",
587 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT
},
588 {0x00,0x00,0x00,0x00,0x08,0x09,0x32,0x00,EOT
}},
589 {0x07, "GPIO 6, GPIO 7, GPIO 8",
590 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xec,0xed,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
591 {0x00,0x7f,NANA
,0x00,NANA
,0xff,NANA
,0x00,NANA
,0x00,0x00,0xff,NANA
,0x00,NANA
,0x00,EOT
}},
592 {0x08, "WDT1, WDT_MEM, GPIO 0, GPIO 1",
593 {0x30,0x60,0x61,0xe0,0xe1,0xe2,0xe3,0xe4,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfe,0xff,EOT
},
594 {0x00,0x00,0x00,0xff,NANA
,0x00,NANA
,0x00,0xff,NANA
,0x00,NANA
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
}},
595 {0x09, "GPIO 2, GPIO 3, GPIO 4, GPIO 5",
596 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xee,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xfe,EOT
},
597 {0x00,0xff,NANA
,0x00,NANA
,0x7f,NANA
,0x00,NANA
,NANA
,0x00,0x00,0x00,0x00,0xff,NANA
,0x00,0xff,NANA
,0x00,NANA
,0x00,EOT
}},
599 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xec,0xed,0xee,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xfc,0xfe,EOT
},
600 {0x01,0x00,0x00,0x00,0x00,0x02,0x1a,0x00,0x00,0x00,0x00,0x00,0x10,0x5c,0x00,0x00,0x00,0xc0,0x00,0x00,EOT
}},
601 {0x0b, "Hardware Monitor, Front Panel LED",
602 {0x30,0x60,0x61,0x62,0x63,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe6,0xe7,0xf0,0xf1,0xf2,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,EOT
},
603 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,0xff,0xff,0x08,0xff,0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,0x00,EOT
}},
604 {0x0d, "BCLK, WDT2, WDT_MEM",
605 {0xe0,0xe1,0xe7,0xe8,0xeb,0xed,0xf0,0xf3,EOT
},
606 {0x00,MISC
,0x00,0x32,0x14,0x00,0x00,0x00,EOT
}},
607 {0x0e, "CIR Wake-Up",
608 {0x30,0x60,0x61,0x70,EOT
},
609 {0x00,0x00,0x00,0x00,EOT
}},
610 {0x0f, "GPIO Push-Pull or Open-Drain selection",
611 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xf0,0xf1,0xf2,EOT
},
612 {0xff,0xff,0x7f,0xff,0xff,0xff,0x0f,0xff,0xff,0x9d,0x00,0x00,EOT
}},
613 {0x14, "Port 80 UART",
614 {0xe0,0xe1,0xe2,0xe3,0xe4,EOT
},
615 {0x80,0x00,0x00,0x10,0x00,EOT
}},
617 {0x30,0xe0,0xe1,0xe2,0xe3,EOT
},
618 {0x20,0x20,0x04,0x05,0x01,EOT
}},
620 {0xd121, "NCT5539D", {
622 {0x10,0x11,0x13,0x14,0x1a,0x1b,0x1c,0x1d,0x22,0x24,
623 0x25,0x26,0x27,0x28,0x2a,0x2b,0x2c,0x2d,0x2f,EOT
},
624 {0xff,0xff,0x00,0x00,0x30,0x50,0x10,0x00,0xff,0x04,
625 0x00,MISC
,0x03,0x00,0xc0,0x00,0x01,MISC
,MISC
,EOT
}},
627 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT
},
628 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT
}},
629 {0x05, "Keyboard Controller",
630 {0x30,0x60,0x61,0x62,0x63,0x70,0x72,0xf0,EOT
},
631 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,EOT
}},
632 {0x06, "Consumer IR",
633 {0x30,0x60,0x61,0x70,EOT
},
634 {0x00,0x00,0x00,0x00,EOT
}},
635 {0x07, "GPIO 7, GPIO 8",
636 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xec,0xed,EOT
},
637 {0x00,0xff,NANA
,0x00,NANA
,0xff,NANA
,0x00,NANA
,0x00,0x00,EOT
}},
638 {0x08, "WDT1, WDT3, GPIO 0, KBC P20",
639 {0x30,0x60,0x61,0xe0,0xe1,0xe2,0xe3,0xe4,0xf5,0xf6,
640 0xf7,0xf8,0xf9,0xfa,0xfe,0xff,EOT
},
641 {0x00,0x00,0x00,0xff,NANA
,0x00,NANA
,0x00,0x00,0x00,
642 0x00,0x00,0x00,0x00,0x00, 0x00,EOT
}},
643 {0x09, "GPIO 2, GPIO 3, GPIO 4, GPIO 5",
644 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,
645 0xe9,0xea,0xeb,0xee, 0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,EOT
},
646 {0x00,0xff,NANA
,0x00,NANA
,0x7f,NANA
,0x00,NANA
,NANA
,
647 0x00,0x00,0x00,0x00,0xff,NANA
,0x00,0xff,NANA
,0x00,NANA
,EOT
}},
649 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe9,0xec,
650 0xed,0xee,0xf0,0xf1,0xf2,0xf3,0xf6,0xf7,0xfc,EOT
},
651 {0x01,0x00,0x00,0x00,0x00,0x02,0x1a,0x00,0x00,0x00,
652 0x01,0x00,0x10,0x48,0x5c,0x00,0x00,0xc0,0x80,EOT
}},
653 {0x0b, "Hardware Monitor, Front Panel LED",
654 {0x30,0x60,0x61,0x70,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,
655 0xe6,0xe7,0xec,0xed,0xf0,0xf1,0xf2,0xf6,0xf7,0xf8,
656 0xf9,0xfa,0xfb,0xfc,EOT
},
657 {0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0xa8,
658 0x08,0x7f,0x00,0x81,0x00,0x00,0x00,0x00,0x87,0x47,
659 0x00,0x00,0x00,0x02,EOT
}},
661 {0xe7,0xe8,0xeb,0xed,0xf0,0xf3,EOT
},
662 {0x10,0x32,0x14,0x00,0x00,0x00,EOT
}},
663 {0x0e, "CIR Wake-Up",
664 {0x30,0x60,0x61,0x70,EOT
},
665 {0x00,0x00,0x00,0x00,EOT
}},
666 {0x0f, "GPIO Push-Pull or Open-Drain selection",
667 {0xe1,0xe2,0xe3,0xe4,0xe6,0xe7,0xe9,EOT
},
668 {0xff,0x7f,0xff,0xff,0xff,0xff,0xff,EOT
}},
669 {0x11, "GPIO, RI PSOUT Wake-Up Status",
670 {0xe1,0xe2,0xe9,EOT
},
671 {0x00,0x00,0x00,EOT
}},
672 {0x12, "SW Error Control",
673 {0xe1,0xe7,0xea,0xeb,0xec,EOT
},
674 {0x00,0x00,0x10,0x00,0x00,EOT
}},
676 {0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT
},
677 {0xff,0x7f,0x00,0x56,0x56,0x17,0x00,0x0f,0x10,EOT
}},
679 {0x30,0xe0,0xe1,0xe2,0xe3,EOT
},
680 {0xa0,0x20,0x04,0x05,0x01,EOT
}},
685 void probe_idregs_nuvoton(uint16_t port
)
688 uint16_t chip_id
= 0;
689 uint8_t chip_rev
= 0;
693 /* Probe for the 16bit IDs first to avoid collisions */
694 probing_for("Nuvoton", "", port
);
695 enter_conf_mode_winbond_fintek_ite_8787(port
);
696 chip_id
= (regval(port
, DEVICE_ID_REG
) << 8) |
697 regval(port
, DEVICE_ID_REG
+ 1);
698 regwrite(port
, LDN_SEL
, 0x0b);
699 iobase
= (regval(port
, 0x60) << 8) | (regval(port
, 0x61) & ~7);
701 exit_conf_mode_winbond_fintek_ite_8787(port
);
703 if (!superio_unknown(reg_table
, chip_id
)) {
704 printf("Found Nuvoton %s (id=0x%02x) at 0x%x\n",
705 get_superio_name(reg_table
, chip_id
), chip_id
, port
);
707 enter_conf_mode_winbond_fintek_ite_8787(port
);
708 dump_superio("Nuvoton", reg_table
, port
, chip_id
, LDN_SEL
);
709 exit_conf_mode_winbond_fintek_ite_8787(port
);
714 printf(NOTFOUND
"chip_id=0x%04x\n", chip_id
);
716 probing_for("Nuvoton", "(sid=0xfc) ", port
);
718 sid
= regval(port
, DEVICE_ID_REG
);
719 srid
= regval(port
, DEVICE_REV_REG
);
721 if (sid
== 0xfc) { /* WPCE775xL family */
724 * bits 4-0: Chip revision
727 chip_rev
= srid
& 0x1f;
730 if (superio_unknown(reg_table
, sid
)) {
733 "sid=0x%02x, id=0x%02x, rev=0x%02x\n", sid
,
738 printf("Found Nuvoton %s (id=0x%02x, rev=0x%02x) at 0x%x\n",
739 get_superio_name(reg_table
, sid
), chip_id
, chip_rev
, port
);
741 dump_superio("Nuvoton", reg_table
, port
, sid
, LDN_SEL
);
744 if (extra_dump
&& iobase
) {
745 switch (chip_id
& 0xfff0) {
746 case 0xb470: /* NCT6775F */
747 for (i
= 0; i
< 7; i
++)
748 dump_data(iobase
+ 5, i
);
749 dump_data(iobase
+ 5, 0xa);
750 dump_data(iobase
+ 5, 0xc);
751 dump_data(iobase
+ 5, 0xd);
753 case 0xc330: /* NCT6776F */
754 for (i
= 0; i
< 8; i
++)
755 dump_data(iobase
+ 5, i
);
757 case 0xc560: /* NCT6779D */
758 for (i
= 0; i
< 10; i
++)
759 dump_data(iobase
+ 5, i
);
765 void print_nuvoton_chips(void)
767 print_vendor_chips("Nuvoton", reg_table
);