1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #ifndef _DEV_ISA_VIASIOREG_H_
19 #define _DEV_ISA_VIASIOREG_H_
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 #define VT1211_INDEX 0x00
37 #define VT1211_DATA 0x01
38
39 #define VT1211_IOSIZE 0x02
40
41 #define VT1211_CONF_EN_MAGIC 0x87
42 #define VT1211_CONF_DS_MAGIC 0xaa
43
44
45 #define VT1211_LDN 0x07
46 #define VT1211_ID 0x20
47 #define VT1211_REV 0x21
48 #define VT1211_PDC 0x22
49 #define VT1211_LPCWSS 0x23
50 #define VT1211_GPIO1PS 0x24
51 #define VT1211_GPIO2PS 0x25
52 #define VT1211_GPIO7PS 0x26
53 #define VT1211_UART2PS 0x27
54 #define VT1211_MIDIPS 0x28
55 #define VT1211_HWMPS 0x29
56 #define VT1211_TMA 0x2e
57 #define VT1211_TMB 0x2f
58
59 #define VT1211_ID_VT1211 0x3c
60
61
62 #define VT1211_LDN_FDC 0x00
63 #define VT1211_LDN_PP 0x01
64 #define VT1211_LDN_UART1 0x02
65 #define VT1211_LDN_UART2 0x03
66 #define VT1211_LDN_MIDI 0x06
67 #define VT1211_LDN_GMP 0x07
68 #define VT1211_LDN_GPIO 0x08
69 #define VT1211_LDN_WDG 0x09
70 #define VT1211_LDN_WUC 0x0a
71 #define VT1211_LDN_HM 0x0b
72 #define VT1211_LDN_VFIR 0x0c
73 #define VT1211_LDN_ROM 0x0d
74
75
76 #define VT1211_WDG_ACT 0x30
77 #define VT1211_WDG_ACT_EN (1 << 0)
78 #define VT1211_WDG_ADDR_MSB 0x60
79 #define VT1211_WDG_ADDR_LSB 0x61
80 #define VT1211_WDG_IRQSEL 0x70
81 #define VT1211_WDG_CONF 0xf0
82
83
84 #define VT1211_HM_ACT 0x30
85 #define VT1211_HM_ACT_EN (1 << 0)
86 #define VT1211_HM_ADDR_MSB 0x60
87 #define VT1211_HM_ADDR_LSB 0x61
88 #define VT1211_HM_IRQSEL 0x70
89
90
91 #define VT1211_WDG_STAT 0x00
92 #define VT1211_WDG_STAT_ACT (1 << 0)
93 #define VT1211_WDG_MASK 0x01
94 #define VT1211_WDG_MASK_COM1 (1 << 1)
95 #define VT1211_WDG_MASK_COM2 (1 << 2)
96 #define VT1211_WDG_TIMEOUT 0x02
97
98 #define VT1211_WDG_IOSIZE 0x04
99
100
101 #define VT1211_HM_SELD0 0x10
102 #define VT1211_HM_SELD1 0x11
103 #define VT1211_HM_SELD2 0x12
104 #define VT1211_HM_ADATA_MSB 0x13
105 #define VT1211_HM_ADATA_LSB 0x14
106 #define VT1211_HM_DDATA 0x15
107 #define VT1211_HM_CHCNT 0x16
108 #define VT1211_HM_DVCI 0x17
109 #define VT1211_HM_SMBUSCTL 0x18
110 #define VT1211_HM_AFECTL 0x19
111 #define VT1211_HM_AFETCTL 0x1a
112 #define VT1211_HM_CHSET 0x1b
113 #define VT1211_HM_HTL3 0x1d
114 #define VT1211_HM_HTHL3 0x1e
115 #define VT1211_HM_TEMP1 0x1f
116 #define VT1211_HM_TEMP3 0x20
117 #define VT1211_HM_UCH1 0x21
118 #define VT1211_HM_UCH2 0x22
119 #define VT1211_HM_UCH3 0x23
120 #define VT1211_HM_UCH4 0x24
121 #define VT1211_HM_UCH5 0x25
122 #define VT1211_HM_33V 0x26
123 #define VT1211_HM_FAN1 0x29
124 #define VT1211_HM_FAN2 0x2a
125 #define VT1211_HM_UCH2HL 0x2b
126 #define VT1211_HM_UCH2LL 0x2c
127 #define VT1211_HM_UCH3HL 0x2d
128 #define VT1211_HM_UCH3LL 0x2e
129 #define VT1211_HM_UCH4HL 0x2f
130 #define VT1211_HM_UCH4LL 0x30
131 #define VT1211_HM_UCH5HL 0x31
132 #define VT1211_HM_UCH5LL 0x32
133 #define VT1211_HM_33VHL 0x33
134 #define VT1211_HM_33VLL 0x34
135 #define VT1211_HM_HTL1 0x39
136 #define VT1211_HM_HTHL1 0x3a
137 #define VT1211_HM_FAN1CL 0x3b
138 #define VT1211_HM_FAN2CL 0x3c
139 #define VT1211_HM_UCH1HL 0x3d
140 #define VT1211_HM_UCH1LL 0x3e
141 #define VT1211_HM_STEPID 0x3f
142 #define VT1211_HM_CONF 0x40
143 #define VT1211_HM_CONF_START (1 << 0)
144 #define VT1211_HM_INTST1 0x41
145 #define VT1211_HM_INTST2 0x42
146 #define VT1211_HM_INTMASK1 0x43
147 #define VT1211_HM_INTMASK2 0x44
148 #define VT1211_HM_VID 0x45
149 #define VT1211_HM_OVOFCTL 0x46
150 #define VT1211_HM_FSCTL 0x47
151 #define VT1211_HM_FSCTL_DIV1(v) (((v) >> 4) & 0x03)
152 #define VT1211_HM_FSCTL_DIV2(v) (((v) >> 6) & 0x03)
153 #define VT1211_HM_SBA 0x48
154 #define VT1211_HM_VID4 0x49
155 #define VT1211_HM_VID4_UCH1(v) (((v) >> 4) & 0x03)
156 #define VT1211_HM_UCHCONF 0x4a
157 #define VT1211_HM_UCHCONF_ISTEMP(v, n) (((v) & (1 << ((n) + 1))) != 0)
158 #define VT1211_HM_TCONF1 0x4b
159 #define VT1211_HM_TCONF1_TEMP1(v) (((v) >> 6) & 0x03)
160 #define VT1211_HM_TCONF2 0x4c
161 #define VT1211_HM_ETR 0x4d
162 #define VT1211_HM_ETR_UCH(v, n) (((v) >> (((n) - 2) * 2)) & 0x03)
163 #define VT1211_HM_OTCTL 0x4e
164 #define VT1211_HM_PWMCS 0x50
165 #define VT1211_HM_PWMCTL 0x51
166 #define VT1211_HM_PWMFST 0x52
167 #define VT1211_HM_PWMHST 0x53
168 #define VT1211_HM_PWMLST 0x54
169 #define VT1211_HM_PWMFOT 0x55
170 #define VT1211_HM_PWMO1HSDC 0x56
171 #define VT1211_HM_PWMO1LSDC 0x57
172 #define VT1211_HM_PWMO2HSDC 0x58
173 #define VT1211_HM_PWMO2LSDC 0x59
174 #define VT1211_HM_PWMO3HSDC 0x5a
175 #define VT1211_HM_PWMO3LSDC 0x5b
176 #define VT1211_HM_BEEPEN 0x5c
177 #define VT1211_HM_FEBFD 0x5d
178 #define VT1211_HM_VEBFD 0x5e
179 #define VT1211_HM_TEBFD 0x5f
180 #define VT1211_HM_PWM1CDC 0x60
181 #define VT1211_HM_PWM2CDC 0x61
182
183 #define VT1211_HM_IOSIZE 0x80
184
185
186 static const int vt1211_hm_clock[] = {
187 90000, 45000, 22500, 11250, 5630, 2800, 1400, 700
188 };
189
190
191 static const int vt1211_hm_vrfact[] = {
192 5952, 8333, 5952, 4167, 1754, 6296
193 };
194
195
196
197
198
199
200
201
202 static const struct {
203 int raw;
204 int64_t temp;
205 } vt1211_hm_temptbl[] = {
206 { 176, 203690000LL },
207 { 184, 218020000LL },
208 { 192, 225470000LL },
209 { 200, 230710000LL },
210 { 208, 234830000LL },
211 { 216, 238260000LL },
212 { 224, 241230000LL },
213 { 232, 243850000LL },
214 { 240, 246220000LL },
215 { 248, 248390000LL },
216 { 256, 250390000LL },
217 { 264, 252260000LL },
218 { 272, 254020000LL },
219 { 280, 255680000LL },
220 { 288, 257260000LL },
221 { 296, 258760000LL },
222 { 304, 260210000LL },
223 { 312, 261600000LL },
224 { 320, 262940000LL },
225 { 328, 264240000LL },
226 { 336, 265500000LL },
227 { 344, 266730000LL },
228 { 352, 267930000LL },
229 { 360, 269100000LL },
230 { 368, 270240000LL },
231 { 376, 271360000LL },
232 { 384, 272460000LL },
233 { 392, 273540000LL },
234 { 400, 274610000LL },
235 { 408, 275660000LL },
236 { 416, 276700000LL },
237 { 424, 277720000LL },
238 { 432, 278730000LL },
239 { 440, 279740000LL },
240 { 448, 280730000LL },
241 { 456, 281720000LL },
242 { 464, 282700000LL },
243 { 472, 283670000LL },
244 { 480, 284640000LL },
245 { 488, 285610000LL },
246 { 496, 286570000LL },
247 { 504, 287530000LL },
248 { 512, 288490000LL },
249 { 520, 289450000LL },
250 { 528, 290400000LL },
251 { 536, 291360000LL },
252 { 544, 292320000LL },
253 { 552, 293280000LL },
254 { 560, 294250000LL },
255 { 568, 295210000LL },
256 { 576, 296190000LL },
257 { 584, 297160000LL },
258 { 592, 298150000LL },
259 { 600, 299130000LL },
260 { 608, 300130000LL },
261 { 616, 301140000LL },
262 { 624, 302150000LL },
263 { 632, 303170000LL },
264 { 640, 304210000LL },
265 { 648, 305250000LL },
266 { 656, 306310000LL },
267 { 664, 307380000LL },
268 { 672, 308470000LL },
269 { 680, 309570000LL },
270 { 688, 310690000LL },
271 { 696, 311830000LL },
272 { 704, 312990000LL },
273 { 712, 314170000LL },
274 { 720, 315380000LL },
275 { 728, 316610000LL },
276 { 736, 317860000LL },
277 { 744, 319150000LL },
278 { 752, 320460000LL },
279 { 760, 321810000LL },
280 { 768, 323200000LL },
281 { 776, 324620000LL },
282 { 784, 326090000LL },
283 { 792, 327610000LL },
284 { 800, 329170000LL },
285 { 808, 330790000LL },
286 { 816, 332470000LL },
287 { 824, 334220000LL },
288 { 832, 336040000LL },
289 { 840, 337940000LL },
290 { 848, 339940000LL },
291 { 856, 342030000LL },
292 { 864, 344230000LL },
293 { 872, 346560000LL },
294 { 880, 349030000LL },
295 { 888, 351670000LL },
296 { 896, 354490000LL },
297 { 904, 357530000LL },
298 { 912, 360830000LL },
299 { 920, 364430000LL },
300 { 928, 368410000LL },
301 { 936, 372830000LL },
302 { 944, 377820000LL },
303 { 952, 383530000LL },
304 { 960, 390210000LL },
305 { 968, 398230000LL },
306 { 976, 408200000LL },
307 { 984, 421270000LL },
308 { 992, 439960000LL }
309 };
310
311
312 enum {
313 VT1211_HMS_TEMP1 = 0,
314 VT1211_HMS_UCH1,
315 VT1211_HMS_UCH2,
316 VT1211_HMS_UCH3,
317 VT1211_HMS_UCH4,
318 VT1211_HMS_UCH5,
319 VT1211_HMS_33V,
320 VT1211_HMS_FAN1,
321 VT1211_HMS_FAN2,
322 VT1211_HM_NSENSORS
323 };
324
325 #endif