[BACK]Return to viasioreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / isa

Annotation of sys/dev/isa/viasioreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: viasioreg.h,v 1.3 2006/02/24 11:16:17 grange Exp $    */
        !             2: /*
        !             3:  * Copyright (c) 2005 Alexander Yurchenko <grange@openbsd.org>
        !             4:  *
        !             5:  * Permission to use, copy, modify, and distribute this software for any
        !             6:  * purpose with or without fee is hereby granted, provided that the above
        !             7:  * copyright notice and this permission notice appear in all copies.
        !             8:  *
        !             9:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            10:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            11:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            12:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            13:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            14:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            15:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            16:  */
        !            17:
        !            18: #ifndef _DEV_ISA_VIASIOREG_H_
        !            19: #define _DEV_ISA_VIASIOREG_H_
        !            20:
        !            21: /*
        !            22:  * VIA VT1211 LPC Super I/O register definitions.
        !            23:  */
        !            24:
        !            25: /*
        !            26:  * Obtained from the following datasheet:
        !            27:  *
        !            28:  * VT1211
        !            29:  * Low Pin Count Super I/O And Hardware Monitor
        !            30:  * Revision 1.0
        !            31:  * January 8, 2002
        !            32:  * VIA TECHNOLOGIES, INC.
        !            33:  */
        !            34:
        !            35: /* ISA bus registers */
        !            36: #define VT1211_INDEX           0x00    /* Configuration Index Register */
        !            37: #define VT1211_DATA            0x01    /* Configuration Data Register */
        !            38:
        !            39: #define VT1211_IOSIZE          0x02    /* ISA I/O space size */
        !            40:
        !            41: #define VT1211_CONF_EN_MAGIC   0x87    /* enable configuration mode */
        !            42: #define VT1211_CONF_DS_MAGIC   0xaa    /* disable configuration mode */
        !            43:
        !            44: /* Configuration Space Registers */
        !            45: #define VT1211_LDN             0x07    /* Logical Device Number */
        !            46: #define VT1211_ID              0x20    /* Device ID */
        !            47: #define VT1211_REV             0x21    /* Device Revision */
        !            48: #define VT1211_PDC             0x22    /* Power Down Control */
        !            49: #define VT1211_LPCWSS          0x23    /* LPC Wait State Select */
        !            50: #define VT1211_GPIO1PS         0x24    /* GPIO Port 1 Pin Select */
        !            51: #define VT1211_GPIO2PS         0x25    /* GPIO Port 2 Pin Select */
        !            52: #define VT1211_GPIO7PS         0x26    /* GPIO Port 7 Pin Select */
        !            53: #define VT1211_UART2PS         0x27    /* UART2 Multi Function Pin Select */
        !            54: #define VT1211_MIDIPS          0x28    /* MIDI Multi Function Pin Select */
        !            55: #define VT1211_HWMPS           0x29    /* HWM Multi Function Pin Select */
        !            56: #define VT1211_TMA             0x2e    /* Test Mode A */
        !            57: #define VT1211_TMB             0x2f    /* Test Mode B */
        !            58:
        !            59: #define VT1211_ID_VT1211       0x3c    /* VT1211 Device ID */
        !            60:
        !            61: /* Logical Device Number (LDN) Assignments */
        !            62: #define VT1211_LDN_FDC         0x00    /* Floppy Disk Controller */
        !            63: #define VT1211_LDN_PP          0x01    /* Parallel Port */
        !            64: #define VT1211_LDN_UART1       0x02    /* Serial Port 1 */
        !            65: #define VT1211_LDN_UART2       0x03    /* Serial Port 2 */
        !            66: #define VT1211_LDN_MIDI                0x06    /* MIDI */
        !            67: #define VT1211_LDN_GMP         0x07    /* Game Port */
        !            68: #define VT1211_LDN_GPIO                0x08    /* GPIO */
        !            69: #define VT1211_LDN_WDG         0x09    /* Watch Dog */
        !            70: #define VT1211_LDN_WUC         0x0a    /* Wake-up Control */
        !            71: #define VT1211_LDN_HM          0x0b    /* Hardware Monitor */
        !            72: #define VT1211_LDN_VFIR                0x0c    /* Very Fast IR */
        !            73: #define VT1211_LDN_ROM         0x0d    /* Flash ROM */
        !            74:
        !            75: /* Watchdog Timer Control Registers (LDN 9) */
        !            76: #define VT1211_WDG_ACT         0x30    /* Activate */
        !            77: #define VT1211_WDG_ACT_EN              (1 << 0)        /* enabled */
        !            78: #define VT1211_WDG_ADDR_MSB    0x60    /* Address [15:8] */
        !            79: #define VT1211_WDG_ADDR_LSB    0x61    /* Address [7:0] */
        !            80: #define VT1211_WDG_IRQSEL      0x70    /* IRQ Select */
        !            81: #define VT1211_WDG_CONF                0xf0    /* Configuration */
        !            82:
        !            83: /* Hardware Monitor Control Registers (LDN B) */
        !            84: #define VT1211_HM_ACT          0x30    /* Activate */
        !            85: #define VT1211_HM_ACT_EN               (1 << 0)        /* enabled */
        !            86: #define VT1211_HM_ADDR_MSB     0x60    /* Address [15:8] */
        !            87: #define VT1211_HM_ADDR_LSB     0x61    /* Address [7:0] */
        !            88: #define VT1211_HM_IRQSEL       0x70    /* IRQ Select */
        !            89:
        !            90: /* Watchdog Timer I/O Space Registers */
        !            91: #define VT1211_WDG_STAT                0x00    /* Status */
        !            92: #define VT1211_WDG_STAT_ACT            (1 << 0)        /* timer is active */
        !            93: #define VT1211_WDG_MASK                0x01    /* Mask */
        !            94: #define VT1211_WDG_MASK_COM1           (1 << 1)        /* COM1 trigger */
        !            95: #define VT1211_WDG_MASK_COM2           (1 << 2)        /* COM2 trigger */
        !            96: #define VT1211_WDG_TIMEOUT     0x02    /* Timeout */
        !            97:
        !            98: #define VT1211_WDG_IOSIZE      0x04    /* Watchdog timer I/O space size */
        !            99:
        !           100: /* Hardware Monitor I/O Space Registers */
        !           101: #define VT1211_HM_SELD0                0x10    /* SELD[7:0] */
        !           102: #define VT1211_HM_SELD1                0x11    /* SELD[15:8] */
        !           103: #define VT1211_HM_SELD2                0x12    /* SELD[19:16] */
        !           104: #define VT1211_HM_ADATA_MSB    0x13    /* Analog Data D[15:8] */
        !           105: #define VT1211_HM_ADATA_LSB    0x14    /* Analog Data D[7:0] */
        !           106: #define VT1211_HM_DDATA                0x15    /* Digital Data D[7:0] */
        !           107: #define VT1211_HM_CHCNT                0x16    /* Channel Counter */
        !           108: #define VT1211_HM_DVCI         0x17    /* Data Valid & Channel Indications */
        !           109: #define VT1211_HM_SMBUSCTL     0x18    /* SMBus Control */
        !           110: #define VT1211_HM_AFECTL       0x19    /* AFE Control */
        !           111: #define VT1211_HM_AFETCTL      0x1a    /* AFE Test Control */
        !           112: #define VT1211_HM_CHSET                0x1b    /* Channel Setting */
        !           113: #define VT1211_HM_HTL3         0x1d    /* Hot Temp Limit 3 */
        !           114: #define VT1211_HM_HTHL3                0x1e    /* Hot Temp Hysteresis Limit 3 */
        !           115: #define VT1211_HM_TEMP1                0x1f    /* Temperature Reading 1 */
        !           116: #define VT1211_HM_TEMP3                0x20    /* Temperature Reading 3 */
        !           117: #define VT1211_HM_UCH1         0x21    /* UCH1 */
        !           118: #define VT1211_HM_UCH2         0x22    /* UCH2 */
        !           119: #define VT1211_HM_UCH3         0x23    /* UCH3 */
        !           120: #define VT1211_HM_UCH4         0x24    /* UCH4 */
        !           121: #define VT1211_HM_UCH5         0x25    /* UCH5 */
        !           122: #define VT1211_HM_33V          0x26    /* +3.3V (Internal Vcc ) */
        !           123: #define VT1211_HM_FAN1         0x29    /* FAN1 Reading */
        !           124: #define VT1211_HM_FAN2         0x2a    /* FAN2 Reading */
        !           125: #define VT1211_HM_UCH2HL       0x2b    /* UCH2 High Limit */
        !           126: #define VT1211_HM_UCH2LL       0x2c    /* UCH2 Low Limit */
        !           127: #define VT1211_HM_UCH3HL       0x2d    /* UCH3 High Limit */
        !           128: #define VT1211_HM_UCH3LL       0x2e    /* UCH3 Low Limit */
        !           129: #define VT1211_HM_UCH4HL       0x2f    /* UCH4 High Limit */
        !           130: #define VT1211_HM_UCH4LL       0x30    /* UCH4 Low Limit */
        !           131: #define VT1211_HM_UCH5HL       0x31    /* UCH5 High Limit */
        !           132: #define VT1211_HM_UCH5LL       0x32    /* UCH5 Low Limit */
        !           133: #define VT1211_HM_33VHL                0x33    /* Internal +3.3V High Limit */
        !           134: #define VT1211_HM_33VLL                0x34    /* Internal +3.3V Low Limit */
        !           135: #define VT1211_HM_HTL1         0x39    /* Hot Temp Limit 1 */
        !           136: #define VT1211_HM_HTHL1                0x3a    /* Hot Temp Hysteresis Limit 1 */
        !           137: #define VT1211_HM_FAN1CL       0x3b    /* FAN1 Fan Count Limit */
        !           138: #define VT1211_HM_FAN2CL       0x3c    /* FAN2 Fan Count Limit */
        !           139: #define VT1211_HM_UCH1HL       0x3d    /* UCH1 High Limit */
        !           140: #define VT1211_HM_UCH1LL       0x3e    /* UCH1 Low Limit */
        !           141: #define VT1211_HM_STEPID       0x3f    /* Stepping ID Number */
        !           142: #define VT1211_HM_CONF         0x40    /* Configuration */
        !           143: #define VT1211_HM_CONF_START           (1 << 0)
        !           144: #define VT1211_HM_INTST1       0x41    /* Interrupt INT Status 1 */
        !           145: #define VT1211_HM_INTST2       0x42    /* Interrupt INT Status 2 */
        !           146: #define VT1211_HM_INTMASK1     0x43    /* INT Mask 1 */
        !           147: #define VT1211_HM_INTMASK2     0x44    /* INT Mask 2 */
        !           148: #define VT1211_HM_VID          0x45    /* VID */
        !           149: #define VT1211_HM_OVOFCTL      0x46    /* Over Voltage & Over Fan Control */
        !           150: #define VT1211_HM_FSCTL                0x47    /* Fan Speed Control */
        !           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    /* Serial Bus Address */
        !           154: #define VT1211_HM_VID4         0x49    /* VID 4 */
        !           155: #define VT1211_HM_VID4_UCH1(v)         (((v) >> 4) & 0x03)
        !           156: #define VT1211_HM_UCHCONF      0x4a    /* Universal Channel Configuration */
        !           157: #define VT1211_HM_UCHCONF_ISTEMP(v, n) (((v) & (1 << ((n) + 1))) != 0)
        !           158: #define VT1211_HM_TCONF1       0x4b    /* Temperature Configuration 1 */
        !           159: #define VT1211_HM_TCONF1_TEMP1(v)      (((v) >> 6) & 0x03)
        !           160: #define VT1211_HM_TCONF2       0x4c    /* Temperature Configuration 2 */
        !           161: #define VT1211_HM_ETR          0x4d    /* Extended Temperature Resolution */
        !           162: #define VT1211_HM_ETR_UCH(v, n)                (((v) >> (((n) - 2) * 2)) & 0x03)
        !           163: #define VT1211_HM_OTCTL                0x4e    /* Over Temperature Control */
        !           164: #define VT1211_HM_PWMCS                0x50    /* PWM Clock Select */
        !           165: #define VT1211_HM_PWMCTL       0x51    /* PWM Control */
        !           166: #define VT1211_HM_PWMFST       0x52    /* PWM Full Speed Temperature Value */
        !           167: #define VT1211_HM_PWMHST       0x53    /* PWM High Speed Temperature Value */
        !           168: #define VT1211_HM_PWMLST       0x54    /* PWM Low Speed Temperature Value */
        !           169: #define VT1211_HM_PWMFOT       0x55    /* PWM Fan Off Temperature Value */
        !           170: #define VT1211_HM_PWMO1HSDC    0x56    /* PWM Output 1 Hi Speed Duty Cycle */
        !           171: #define VT1211_HM_PWMO1LSDC    0x57    /* PWM Output 1 Lo Speed Duty Cycle */
        !           172: #define VT1211_HM_PWMO2HSDC    0x58    /* PWM Output 2 Hi Speed Duty Cycle */
        !           173: #define VT1211_HM_PWMO2LSDC    0x59    /* PWM Output 2 Lo Speed Duty Cycle */
        !           174: #define VT1211_HM_PWMO3HSDC    0x5a    /* PWM Output 3 Hi Speed Duty Cycle */
        !           175: #define VT1211_HM_PWMO3LSDC    0x5b    /* PWM Output 3 Lo Speed Duty Cycle */
        !           176: #define VT1211_HM_BEEPEN       0x5c    /* BEEP Event Enable */
        !           177: #define VT1211_HM_FEBFD                0x5d    /* Fan Event BEEP Frequency Divisor */
        !           178: #define VT1211_HM_VEBFD                0x5e    /* Volt Event BEEP Frequency Divisor */
        !           179: #define VT1211_HM_TEBFD                0x5f    /* Temp Event BEEP Frequency Divisor */
        !           180: #define VT1211_HM_PWM1CDC      0x60    /* PWM1 Current Duty Cycle */
        !           181: #define VT1211_HM_PWM2CDC      0x61    /* PWM2 Current Duty Cycle */
        !           182:
        !           183: #define VT1211_HM_IOSIZE       0x80    /* Hardware monitor I/O space size */
        !           184:
        !           185: /* PWM clock frequencies */
        !           186: static const int vt1211_hm_clock[] = {
        !           187:        90000, 45000, 22500, 11250, 5630, 2800, 1400, 700
        !           188: };
        !           189:
        !           190: /* Voltage inputs resistor factors */
        !           191: static const int vt1211_hm_vrfact[] = {
        !           192:        5952, 8333, 5952, 4167, 1754, 6296
        !           193: };
        !           194:
        !           195: /*
        !           196:  * Temperature lookup table for the following conversion formula:
        !           197:  *
        !           198:  * temp (degC) = (1.0 / (((1.0 / 3435.0) * (log((253.0 - raw / 4.0) /
        !           199:  *               (raw / 4.0 - 43.0)))) + (1.0 / 298.15))) - 273.15;
        !           200:  *
        !           201:  */
        !           202: static const struct {
        !           203:        int raw;                /* raw value */
        !           204:        int64_t temp;           /* temperature in uK */
        !           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: /* Hardware monitor sensors */
        !           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              /* must be the last */
        !           323: };
        !           324:
        !           325: #endif /* !_DEV_ISA_VIASIOREG_H_ */

CVSweb