blob: dfcbaf76bdcf353b53e1aba8bba68d3cb126a9ce [file] [log] [blame]
Patrick Georgi7333a112020-05-08 20:48:04 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
David Hendrickse1822d92010-07-22 22:56:44 +00002
3#include "superiotool.h"
4
5#define DEVICE_ID_REG 0x20 /* Super I/O ID (SID) / family */
6#define DEVICE_REV_REG 0x27 /* Super I/O revision ID (SRID) */
7
8static const struct superio_registers reg_table[] = {
9 {0xfc, "WPCE775x / NPCE781x", {
10 {NOLDN, NULL,
11 {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,
12 0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,EOT},
Stefan Reinauer5a4ae822011-04-22 23:10:35 +000013 {0xfc,0x11,RSVD,RSVD,RSVD,0x00,0x00,MISC,0x00,
David Hendrickse1822d92010-07-22 22:56:44 +000014 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}},
47 {EOT}}},
Zheng Bao6d816462010-12-31 01:38:45 +000048 {0x1a, "WPCM450", {
49 {EOT}}},
Guenter Roeck975ffc22012-06-29 12:22:51 -070050 {0xb472, "NCT6775F (A)", {
51 {NOLDN, NULL,
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}},
56 {0x00, "FDC",
57 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
58 0xf5,EOT},
59 {0x03,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,
60 0x00,EOT}},
61 {0x01, "Parallel Port",
62 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
63 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
64 {0x02, "UART A",
65 {0x30,0x60,0x61,0x70,0xf0,EOT},
66 {0x01,0x03,0xf8,0x04,0x00,EOT}},
67 {0x03, "UART B, IR",
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}},
73 {0x06, "CIR",
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,
79 0xf6,0xf7,0xf8,EOT},
80 {0x18,0xff,0x00,0x00,0x00,0xef,0x00,0x00,0x00,
81 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
82 0x00,0x00,0x00,EOT}},
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}},
95 {0x0a, "ACPI",
96 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
97 0xe8,0xe9,0xea,0xeb,0xed,0xf2,0xf3,0xf4,0xf6,
98 0xf7,0xfe,EOT},
99 {0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,
100 0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
101 0x20,0x00,EOT}},
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,
105 0xfc,0xfd,0xfe,
106 EOT},
107 {0x00,0x00,0x00,0x00,0x00,0x00,0xc1,0x00,0x00,
108 0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,0x00,
109 0x00,0x00,0x00,
110 EOT}},
111 {0x0c, "PECI, SST",
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,
119 0xf8,0xf9,EOT},
120 {0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x14,
121 0x01,0x00,0x88,0x00,0x00,0x00,0x00,0x07,0x00,
122 0x00,0x00,EOT}},
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}},
131 {EOT}}},
Felix Held3ad6ff12015-05-31 20:37:04 +0200132 {0xb473, "NCT6775F (B) / NCT5572D (B) (not all LDNs supported)", {
Guenter Roeck975ffc22012-06-29 12:22:51 -0700133 {NOLDN, NULL,
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}},
138 {0x00, "FDC",
139 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
140 0xf5,EOT},
141 {0x03,0x03,0xf0,0x06,0x02,0x8e,0x00,0xff,0x00,
142 0x00,EOT}},
143 {0x01, "Parallel Port",
144 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
145 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
146 {0x02, "UART A",
147 {0x30,0x60,0x61,0x70,0xf0,EOT},
148 {0x01,0x03,0xf8,0x04,0x00,EOT}},
149 {0x03, "UART B, IR",
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}},
155 {0x06, "CIR",
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,
161 0xf6,0xf7,0xf8,EOT},
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}},
177 {0x0a, "ACPI",
178 {0x30,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
179 0xe8,0xe9,0xea,0xeb,0xed,0xf2,0xf3,0xf4,0xf6,
180 0xf7,0xfe,EOT},
181 {0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x1c,0x00,
182 0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,
183 0x20,0x00,EOT}},
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,
187 0xfc,0xfd,0xfe,
188 EOT},
189 {0x00,0x00,0x00,0x00,0x00,0x00,0xc1,0x00,0x00,
190 0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,0x00,
191 0x00,0x00,0x00,
192 EOT}},
193 {0x0c, "PECI, SST",
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,
201 0xf8,0xf9,EOT},
202 {0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x14,
203 0x01,0x00,0x88,0x00,0x00,0x00,0x00,0x07,0x00,
204 0x00,0x00,EOT}},
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}},
213 {EOT}}},
Stefan Reinauer3187d022011-04-22 23:12:40 +0000214 {0xc332, "NCT6776F (B)", {
215 {NOLDN, NULL,
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,
219 0x2e,0x2f,EOT},
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,
223 0x00,MISC,EOT}},
224 {0x00, "FDC",
225 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
226 0xf5,EOT},
227 {0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
228 0x00,EOT}},
229 {0x01, "Parallel Port",
230 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
231 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
232 {0x02, "UART A",
233 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT},
234 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT}},
235 {0x03, "UART B, IR",
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}},
241 {0x06, "CIR",
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,
247 0xf6,0xf7,0xf8,EOT},
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}},
263 {0x0a, "ACPI",
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,
271 EOT},
272 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,
273 0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,
274 EOT}},
275 {0x0d, "VID",
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}},
288 {0x14, "SVID",
289 {0xe0,0xe1,0xe3,0xe4,EOT},
290 {0x00,0x80,0x00,0x00,EOT}},
291 {0x16, "Deep Sleep",
292 {0x30,0xe0,0xe1,0xe2,EOT},
293 {0x20,0x20,0x04,0x05,EOT}},
294 {0x17, "GPIOA",
295 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,EOT},
296 {0x01,0x00,0x00,0x00,0x01,0x00,EOT}},
297 {EOT}}},
Felix Held5eabe252014-12-16 14:47:51 +0100298 {0xc333, "NCT6776F/D (C)", {
Stefan Reinauer3187d022011-04-22 23:12:40 +0000299 {NOLDN, NULL,
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,
303 0x2e,0x2f,EOT},
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,
307 0x00,MISC,EOT}},
308 {0x00, "FDC",
309 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,
310 0xf5,EOT},
311 {0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,
312 0x00,EOT}},
313 {0x01, "Parallel Port",
314 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
315 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
316 {0x02, "UART A",
317 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT},
318 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT}},
319 {0x03, "UART B, IR",
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}},
325 {0x06, "CIR",
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,
331 0xf6,0xf7,0xf8,EOT},
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},
Felix Held4a699d12014-12-16 14:43:36 +0100338 {0x02,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,
Stefan Reinauer3187d022011-04-22 23:12:40 +0000339 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}},
347 {0x0a, "ACPI",
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,
Felix Held4a699d12014-12-16 14:43:36 +0100351 0x00,0x00,0x5c,0x00,0x00,0x00,0xc0,0x00,EOT}},
Stefan Reinauer3187d022011-04-22 23:12:40 +0000352 {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,
355 EOT},
356 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,
357 0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,0x00,
358 EOT}},
359 {0x0d, "VID",
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}},
372 {0x14, "SVID",
373 {0xe0,0xe1,0xe3,0xe4,EOT},
374 {0x00,0x80,0x00,0x00,EOT}},
375 {0x16, "Deep Sleep",
376 {0x30,0xe0,0xe1,0xe2,EOT},
377 {0x20,0x20,0x04,0x05,EOT}},
378 {0x17, "GPIOA",
379 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,EOT},
380 {0x01,0x00,0x00,0x00,0x01,0x00,EOT}},
381 {EOT}}},
Guenter Roeck975ffc22012-06-29 12:22:51 -0700382 {0xc562, "NCT6779D", {
383 {NOLDN, NULL,
384 {0x10,0x11,0x13,0x14,0x1a,0x1b,0x1c,0x1d,0x20,
385 0x21,0x22,0x24,0x25,0x26,0x27,0x28,0x2a,0x2b,
386 0x2c,0x2f,EOT},
387 {0xff,0xff,0x00,0x00,0x30,0x70,0x10,0x00,0xc5,
388 0x62,0xff,0x04,0x00,MISC,0x00,0x00,0xc0,0x00,
389 0x01,MISC,EOT}},
390 {0x01, "Parallel Port",
391 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
392 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
393 {0x02, "UART A",
394 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT},
395 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT}},
396 {0x03, "UART B, IR",
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}},
402 {0x06, "CIR",
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}},
422 {0x0a, "ACPI",
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,
430 0xfa,EOT},
431 {0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0xff,
432 0xff,0x00,0x00,0x00,0x10,0x00,0x87,0x47,0x00,
433 0x00,EOT}},
434 {0x0d, "WDT1",
435 {0xf0,EOT},
436 {0x00,EOT}},
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,
442 0xf0,0xf1,0xf2,EOT},
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}},
448 {0x16, "Deep Sleep",
449 {0x30,0xe0,0xe1,0xe2,EOT},
450 {0x20,0x20,0x04,0x05,EOT}},
451 {EOT}}},
Roberto Muñoz Gómez15a53c62016-03-31 17:03:53 +0200452 {0xc452, "NCT6102D / NCT6106D", {
453 {NOLDN, NULL,
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}},
456 {0x00, "FDC",
457 {0x30,0x60,0x61,0x70,0x74,0xf0,0xf1,0xf2,0xf4,0xf5,EOT},
458 {0x01,0x03,0xf0,0x06,0x02,0x0e,0x00,0xff,0x00,0x00,EOT}},
459 {0x01, "PRT",
460 {0x30,0x60,0x61,0x70,0x74,0xf0,EOT},
461 {0x01,0x03,0x78,0x07,0x04,0x3f,EOT}},
462 {0x02, "UART A",
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}},
465 {0x03, "UART B",
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}},
471 {0x06, "CIR",
472 {0x30,0x60,0x61,0x70,0xf0,0xf1,0xf2,0xf3,EOT},
473 {0x00,0x00,0x00,0x00,0x08,0x09,0x32,0x00,EOT}},
474 {0x07, "GPIO",
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}},
477 {0x08, "GPIO,WDT1",
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}},
480 {0x09, "GPIO",
481 {0xe0,0xe1,0xe2,EOT},
482 {0x00,0x00,0x00,EOT}},
483 {0x0a, "ACPI",
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}},
489 {0x0d, "WDT2",
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}},
498 {0x10, "UARTC",
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}},
501 {0x11, "UARTD",
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}},
504 {0x12, "UARTE",
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}},
507 {0x13, "UARTF",
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}},
510 {0x14, "PORT80 IR",
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}},
513 {0x15, "FADING LED",
514 {0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,EOT},
515 {0x00,0x3f,0x01,0x11,0x11,0x02,0x00,0x00,0x01,0x00,EOT}},
516 {0x16, "Deep Sleep",
517 {0x30,0xe0,0xe1,0xe2,EOT},
518 {0x20,0x20,0x04,0x05,EOT}},
519 {EOT}}},
Omar Pakker312e9f52016-06-18 15:33:43 +0200520 {0xc803, "NCT6791D", {
521 {NOLDN, NULL,
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}},
527 {0x02, "UART A",
528 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT},
529 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT}},
530 {0x03, "UART B, IR",
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},
Nico Huber03d92982021-01-08 17:10:17 +0100541 {0x00,0x7f,NANA,0x00,NANA,0xff,NANA,0x00,NANA,0x00,0x00,0xff,NANA,0x00,NANA,0x00,EOT}},
Omar Pakker312e9f52016-06-18 15:33:43 +0200542 {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},
Nico Huber03d92982021-01-08 17:10:17 +0100544 {0x00,0x00,0x00,0xff,NANA,0x00,NANA,0x00,0xff,NANA,0x00,NANA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
Omar Pakker312e9f52016-06-18 15:33:43 +0200545 {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},
Nico Huber03d92982021-01-08 17:10:17 +0100547 {0x00,0xff,NANA,0x00,NANA,0x7f,NANA,0x00,NANA,NANA,0x00,0x00,0x00,0x00,0xff,NANA,0x00,0xff,NANA,0x00,NANA,0x00,EOT}},
Omar Pakker312e9f52016-06-18 15:33:43 +0200548 {0x0a, "ACPI",
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}},
566 {0x16, "Deep Sleep",
567 {0x30,0xe0,0xe1,0xe2,0xe3,EOT},
568 {0x20,0x20,0x04,0x05,0x01,EOT}},
569 {EOT}}},
Clayffa033e2021-01-05 00:29:29 -0600570 {0xd451, "NCT6797D (experimental)", {
571 {NOLDN, NULL,
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}},
577 {0x02, "UART A",
578 {0x30,0x60,0x61,0x70,0xf0,0xf2,EOT},
579 {0x01,0x03,0xf8,0x04,0x00,0x00,EOT}},
580 {0x03, "UART B, IR",
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}},
598 {0x0a, "ACPI",
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}},
616 {0x16, "Deep Sleep",
617 {0x30,0xe0,0xe1,0xe2,0xe3,EOT},
618 {0x20,0x20,0x04,0x05,0x01,EOT}},
619 {EOT}}},
Pavel Sayekatcc480092019-06-13 19:43:14 +0600620 {0xd121, "NCT5539D", {
621 {NOLDN, NULL,
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}},
626 {0x02, "UART A",
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}},
Pavel Sayekat40dc75e2019-06-30 11:38:07 +0600632 {0x06, "Consumer IR",
Pavel Sayekatcc480092019-06-13 19:43:14 +0600633 {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}},
648 {0x0a, "ACPI",
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}},
Pavel Sayekat40dc75e2019-06-30 11:38:07 +0600660 {0x0d, "WDT2",
Pavel Sayekatcc480092019-06-13 19:43:14 +0600661 {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}},
675 {0x15, "Fading LED",
676 {0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,EOT},
677 {0xff,0x7f,0x00,0x56,0x56,0x17,0x00,0x0f,0x10,EOT}},
678 {0x16, "Deep Sleep",
679 {0x30,0xe0,0xe1,0xe2,0xe3,EOT},
680 {0xa0,0x20,0x04,0x05,0x01,EOT}},
681 {EOT}}},
David Hendrickse1822d92010-07-22 22:56:44 +0000682 {EOT}
683};
684
685void probe_idregs_nuvoton(uint16_t port)
686{
687 uint8_t sid, srid;
Stefan Reinauer3187d022011-04-22 23:12:40 +0000688 uint16_t chip_id = 0;
689 uint8_t chip_rev = 0;
Guenter Roeck21856ee2012-06-29 12:24:57 -0700690 uint16_t iobase = 0;
691 int i;
Stefan Reinauer3187d022011-04-22 23:12:40 +0000692
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);
Guenter Roeck21856ee2012-06-29 12:24:57 -0700698 regwrite(port, LDN_SEL, 0x0b);
699 iobase = (regval(port, 0x60) << 8) | (regval(port, 0x61) & ~7);
Stefan Reinauer3187d022011-04-22 23:12:40 +0000700
701 exit_conf_mode_winbond_fintek_ite_8787(port);
702
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);
706 chip_found = 1;
Florian Zumbiehld3590612011-11-02 09:46:34 +0100707 enter_conf_mode_winbond_fintek_ite_8787(port);
Stefan Reinauer3187d022011-04-22 23:12:40 +0000708 dump_superio("Nuvoton", reg_table, port, chip_id, LDN_SEL);
Florian Zumbiehld3590612011-11-02 09:46:34 +0100709 exit_conf_mode_winbond_fintek_ite_8787(port);
Guenter Roeck21856ee2012-06-29 12:24:57 -0700710 goto extra;
Stefan Reinauer5ff7c132011-10-31 12:56:45 -0700711 }
Stefan Reinauer3187d022011-04-22 23:12:40 +0000712
713 if (verbose)
714 printf(NOTFOUND "chip_id=0x%04x\n", chip_id);
David Hendrickse1822d92010-07-22 22:56:44 +0000715
716 probing_for("Nuvoton", "(sid=0xfc) ", port);
717
718 sid = regval(port, DEVICE_ID_REG);
719 srid = regval(port, DEVICE_REV_REG);
720
721 if (sid == 0xfc) { /* WPCE775xL family */
722 /*
723 * bits 7-5: Chip ID
724 * bits 4-0: Chip revision
725 */
726 chip_id = srid >> 5;
727 chip_rev = srid & 0x1f;
728 }
729
730 if (superio_unknown(reg_table, sid)) {
731 if (verbose)
732 printf(NOTFOUND
733 "sid=0x%02x, id=0x%02x, rev=0x%02x\n", sid,
734 chip_id, chip_rev);
735 return;
736 }
737
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);
740 chip_found = 1;
David Hendrickse1822d92010-07-22 22:56:44 +0000741 dump_superio("Nuvoton", reg_table, port, sid, LDN_SEL);
Guenter Roeck21856ee2012-06-29 12:24:57 -0700742
743extra:
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);
752 break;
753 case 0xc330: /* NCT6776F */
754 for (i = 0; i < 8; i++)
755 dump_data(iobase + 5, i);
756 break;
757 case 0xc560: /* NCT6779D */
758 for (i = 0; i < 10; i++)
759 dump_data(iobase + 5, i);
760 break;
761 }
762 }
David Hendrickse1822d92010-07-22 22:56:44 +0000763}
764
765void print_nuvoton_chips(void)
766{
767 print_vendor_chips("Nuvoton", reg_table);
768}