wbsioreg.h revision 1.9 1 1.9 msaitoh /* $NetBSD: wbsioreg.h,v 1.9 2019/07/10 16:23:55 msaitoh Exp $ */
2 1.4 msaitoh
3 1.1 msaitoh /* $OpenBSD: wbsioreg.h,v 1.4 2015/01/02 23:02:54 chris Exp $ */
4 1.1 msaitoh /*
5 1.1 msaitoh * Copyright (c) 2008 Mark Kettenis <kettenis (at) openbsd.org>
6 1.1 msaitoh *
7 1.1 msaitoh * Permission to use, copy, modify, and distribute this software for any
8 1.1 msaitoh * purpose with or without fee is hereby granted, provided that the above
9 1.1 msaitoh * copyright notice and this permission notice appear in all copies.
10 1.1 msaitoh *
11 1.1 msaitoh * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 1.1 msaitoh * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 1.1 msaitoh * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 1.1 msaitoh * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 1.1 msaitoh * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 1.1 msaitoh * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 1.1 msaitoh * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 1.1 msaitoh */
19 1.1 msaitoh
20 1.1 msaitoh /*
21 1.1 msaitoh * Winbond LPC Super I/O driver registers
22 1.1 msaitoh */
23 1.1 msaitoh
24 1.1 msaitoh /* ISA bus registers */
25 1.1 msaitoh #define WBSIO_INDEX 0x00 /* Configuration Index Register */
26 1.1 msaitoh #define WBSIO_DATA 0x01 /* Configuration Data Register */
27 1.1 msaitoh
28 1.1 msaitoh #define WBSIO_IOSIZE 0x02 /* ISA I/O space size */
29 1.1 msaitoh
30 1.1 msaitoh #define WBSIO_CONF_EN_MAGIC 0x87 /* enable configuration mode */
31 1.1 msaitoh #define WBSIO_CONF_DS_MAGIC 0xaa /* disable configuration mode */
32 1.1 msaitoh
33 1.1 msaitoh /* Configuration Space Registers */
34 1.1 msaitoh #define WBSIO_LDN 0x07 /* Logical Device Number */
35 1.6 knakahar #define WBSIO_MFS0 0x1A /* Multi Function Selection 0 */
36 1.6 knakahar #define WBSIO_MFS1 0x1B /* Multi Function Selection 1 */
37 1.6 knakahar #define WBSIO_MFS2 0x1C /* Multi Function Selection 2 */
38 1.6 knakahar #define WBSIO_MFS3 0x1D /* Multi Function Selection 3 */
39 1.1 msaitoh #define WBSIO_ID 0x20 /* Device ID */
40 1.1 msaitoh #define WBSIO_REV 0x21 /* Device Revision */
41 1.6 knakahar #define WBSIO_GOPT0 0x24 /* Global Option 0 */
42 1.6 knakahar #define WBSIO_GOPT1 0x26 /* Global Option 1 */
43 1.6 knakahar #define WBSIO_GOPT2 0x27 /* Global Option 2 */
44 1.6 knakahar #define WBSIO_GOPT3 0x28 /* Global Option 3 */
45 1.6 knakahar #define WBSIO_MFS4 0x2A /* Multi Function Selection 4 */
46 1.6 knakahar #define WBSIO_MFS5 0x2B /* Multi Function Selection 5 */
47 1.6 knakahar #define WBSIO_MFS6 0x2C /* Multi Function Selection 6 */
48 1.6 knakahar #define WBSIO_SFR 0x2F /* Strapping Function Result */
49 1.6 knakahar
50 1.1 msaitoh
51 1.9 msaitoh #define WBSIO_ID_W83627HF 0x52 /* 8bits */
52 1.1 msaitoh #define WBSIO_ID_W83697HF 0x60
53 1.1 msaitoh #define WBSIO_ID_W83637HF 0x70
54 1.1 msaitoh #define WBSIO_ID_W83627THF 0x82
55 1.1 msaitoh #define WBSIO_ID_W83687THF 0x85
56 1.9 msaitoh #define WBSIO_ID_W83627SF 0x595 /* 12bits */
57 1.3 msaitoh #define WBSIO_ID_W83697UG 0x681
58 1.3 msaitoh #define WBSIO_ID_W83627EHF_A 0x885
59 1.3 msaitoh #define WBSIO_ID_W83627EHF 0x886
60 1.3 msaitoh #define WBSIO_ID_W83627DHG 0xa02
61 1.3 msaitoh #define WBSIO_ID_W83627UHG 0xa23
62 1.3 msaitoh #define WBSIO_ID_W83667HG 0xa51
63 1.3 msaitoh #define WBSIO_ID_W83627DHGP 0xb07
64 1.3 msaitoh #define WBSIO_ID_W83667HGB 0xb35
65 1.3 msaitoh #define WBSIO_ID_NCT6775F 0xb47
66 1.3 msaitoh #define WBSIO_ID_NCT6776F 0xc33
67 1.3 msaitoh #define WBSIO_ID_NCT5104D 0xc45 /* 610[246]D */
68 1.3 msaitoh #define WBSIO_ID_NCT6779D 0xc56
69 1.3 msaitoh #define WBSIO_ID_NCT6791D 0xc80
70 1.3 msaitoh #define WBSIO_ID_NCT6792D 0xc91
71 1.3 msaitoh #define WBSIO_ID_NCT6793D 0xd12
72 1.3 msaitoh #define WBSIO_ID_NCT6795D 0xd35
73 1.9 msaitoh #define WBSIO_ID_NCT6796D 0xd420 /* 13bits */
74 1.9 msaitoh #define WBSIO_ID_NCT6798D 0xd428
75 1.9 msaitoh
76 1.9 msaitoh /* Make the above WBSIO_ID_* vaue from WBSIO_ID, WBSIO_REV and IDbits */
77 1.9 msaitoh #define WBSIO_MAKEID(id, rev, bits) \
78 1.9 msaitoh (((bits) == 13) ? (((uint16_t)(id) << 8) | ((rev) & 0xf8)) : \
79 1.9 msaitoh ((bits) == 12) ? (((uint16_t)(id) << 4) | ((rev) >> 4)) : (id))
80 1.9 msaitoh
81 1.9 msaitoh #define WBSIO_MAKEREV(rev, bits) \
82 1.9 msaitoh (((bits) == 13) ? ((rev) & 0x07) : ((bits) == 12) ? ((rev) & 0x0f) : \
83 1.9 msaitoh (rev))
84 1.1 msaitoh
85 1.6 knakahar /* Strapping Function Result */
86 1.6 knakahar #define WBSIO_SFR_24M48M 0x01
87 1.6 knakahar #define WBSIO_SFR_LPT 0x02
88 1.6 knakahar #define WBSIO_SFR_TEST 0x04
89 1.6 knakahar #define WBSIO_SFR_DSW 0x08
90 1.6 knakahar #define WBSIO_SFR_AMDPWR 0x20
91 1.6 knakahar #define WBSIO_SFR_UARTP80 0x40
92 1.6 knakahar
93 1.1 msaitoh /* Logical Device Number (LDN) Assignments */
94 1.1 msaitoh #define WBSIO_LDN_HM 0x0b
95 1.6 knakahar #define WBSIO_LDN_GPIO0 0x08 /* WDT, GPIO 0 */
96 1.6 knakahar #define WBSIO_LDN_GPIO1 0x09 /* GPIO 1 to GPIO 8 */
97 1.1 msaitoh
98 1.1 msaitoh /* Hardware Monitor Control Registers (LDN B) */
99 1.1 msaitoh #define WBSIO_HM_ADDR_MSB 0x60 /* Address [15:8] */
100 1.1 msaitoh #define WBSIO_HM_ADDR_LSB 0x61 /* Address [7:0] */
101 1.6 knakahar #define WBSIO_HM_CONF 0xE4 /* Configuration Register */
102 1.6 knakahar #define WBSIO_HM_CONF_RSTOUT4 0x02 /* RSTOUT4# bit */
103 1.6 knakahar #define WBSIO_HM_CONF_RSTOUT3 0x04 /* RSTOUT3# bit */
104 1.6 knakahar #define WBSIO_HM_CONF_PWROK 0x08 /* Power OK Bit */
105 1.6 knakahar
106 1.6 knakahar /* GPIO Registers */
107 1.6 knakahar #define WBSIO_GPIO_ADDR_MSB 0x60 /* Address [15:8] */
108 1.6 knakahar #define WBSIO_GPIO_ADDR_LSB 0x61 /* Address [7:0] */
109 1.6 knakahar #define WBSIO_GPIO_CONF 0x30 /* GPIO0, WDT1 config */
110 1.7 knakahar #define WBSIO_WDT_MODE 0xF5 /* WDT1 Control Mode */
111 1.7 knakahar #define WBSIO_WDT_CNTR 0xF6 /* WDT1 Counter */
112 1.7 knakahar #define WBSIO_WDT_STAT 0xF7 /* WDT1 Control & Status */
113 1.7 knakahar #define WBSIO_GPIO4_MFS 0xEE /* GPIO4 Multi-Function Select */
114 1.6 knakahar
115 1.7 knakahar #define WBSIO_GPIO0_WDT1 __BIT(0)
116 1.6 knakahar #define WBSIO_GPIO0_ENABLE __BIT(1)
117 1.7 knakahar
118 1.7 knakahar /* Reserved */
119 1.6 knakahar #define WBSIO_GPIO_BASEADDR __BIT(3) /* Base address mode */
120 1.6 knakahar #define WBSIO_GPIO1_ENABLE __BIT(1)
121 1.6 knakahar #define WBSIO_GPIO2_ENABLE __BIT(2)
122 1.6 knakahar #define WBSIO_GPIO3_ENABLE __BIT(3)
123 1.6 knakahar #define WBSIO_GPIO4_ENABLE __BIT(4)
124 1.6 knakahar #define WBSIO_GPIO5_ENABLE __BIT(5)
125 1.6 knakahar #define WBSIO_GPIO6_ENABLE __BIT(6)
126 1.6 knakahar #define WBSIO_GPIO7_ENABLE __BIT(7)
127 1.6 knakahar #define WBSIO_GPIO8_ENABLE __BIT(0)
128 1.6 knakahar
129 1.6 knakahar #define WBSIO_GPIO_NPINS 64
130 1.6 knakahar #define WBSIO_GPIO_IOSIZE 0x06 /* GPIO register table size */
131 1.6 knakahar
132 1.6 knakahar #define WBSIO_GPIO_GSR 0x00 /* GPIO Select Register */
133 1.6 knakahar #define WBSIO_GPIO_IOR 0x01 /* I/O direction */
134 1.6 knakahar #define WBSIO_GPIO_DAT 0x02 /* Data */
135 1.6 knakahar #define WBSIO_GPIO_INV 0x03 /* Inversion */
136 1.6 knakahar #define WBSIO_GPIO_DST 0x04 /* Event Status */
137 1.7 knakahar /* WDT1 Control Mode */
138 1.7 knakahar /* WDT1 control */
139 1.7 knakahar #define WBSIO_WDT_MODE_LEVEL __BIT(0)
140 1.7 knakahar /* enable/disable KBRST */
141 1.7 knakahar #define WBSIO_WDT_MODE_KBCRST __BIT(2)
142 1.7 knakahar #define WBSIO_WDT_MODE_MINUTES __BIT(3)
143 1.7 knakahar #define WBSIO_WDT_MODE_FASTER __BIT(4)
144 1.7 knakahar
145 1.7 knakahar #define WBSIO_WDT_CNTR_STOP 0
146 1.7 knakahar #define WBSIO_WDT_CNTR_MAX 255
147 1.7 knakahar
148 1.7 knakahar #define WBSIO_WDT_STAT_TIMEOUT __BIT(4)
149 1.7 knakahar #define WBSIO_WDT_STAT_EVENT __BIT(5)
150 1.7 knakahar
151 1.6 knakahar
152 1.6 knakahar /* NCT6779D */
153 1.6 knakahar #define WBSIO_NCT6779D_MFS2_GP00 __BIT(0)
154 1.6 knakahar #define WBSIO_NCT6779D_MFS2_GP01 __BIT(1)
155 1.6 knakahar #define WBSIO_NCT6779D_MFS2_GP02 __BIT(2)
156 1.6 knakahar #define WBSIO_NCT6779D_MFS2_GP03_MASK (__BIT(3)|__BIT(4))
157 1.6 knakahar #define WBSIO_NCT6779D_MFS2_GP04 __BIT(5)
158 1.6 knakahar #define WBSIO_NCT6779D_MFS2_GP05 __BIT(6)
159 1.6 knakahar #define WBSIO_NCT6779D_MFS2_GP06 __BIT(7)
160 1.6 knakahar #define WBSIO_NCT6779D_MFS3_GP07_MASK __BIT(0)
161 1.6 knakahar #define WBSIO_NCT6779D_MFS4_GP10_GP17 __BIT(6)
162 1.6 knakahar #define WBSIO_NCT6779D_MFS4_GP20_GP21 __BIT(0)
163 1.6 knakahar #define WBSIO_NCT6779D_MFS4_GP22_GP23 __BIT(1)
164 1.6 knakahar #define WBSIO_NCT6779D_MFS1_GP24_MASK __BIT(4)
165 1.6 knakahar #define WBSIO_NCT6779D_GOPT2_GP24_MASK __BIT(3)
166 1.6 knakahar #define WBSIO_NCT6779D_MFS4_GP25_MASK __BIT(3)
167 1.6 knakahar #define WBSIO_NCT6779D_GOPT2_GP25_MASK __BIT(3)
168 1.6 knakahar #define WBSIO_NCT6779D_MFS6_GP26 __BIT(0)
169 1.6 knakahar #define WBSIO_NCT6779D_MFS6_GP27_MASK (__BIT(3)|__BIT(4))
170 1.6 knakahar #define WBSIO_NCT6779D_MFS0_GP30 __BIT(6)
171 1.6 knakahar #define WBSIO_NCT6779D_MFS0_GP30_MASK __BIT(7)
172 1.6 knakahar #define WBSIO_NCT6779D_MFS0_GP31 __BIT(5)
173 1.6 knakahar #define WBSIO_NCT6779D_MFS1_GP31_MASK __BIT(0)
174 1.6 knakahar #define WBSIO_NCT6779D_MFS0_GP32 __BIT(4)
175 1.6 knakahar #define WBSIO_NCT6779D_MFS1_GP32_MASK __BIT(0)
176 1.6 knakahar #define WBSIO_NCT6779D_MFS6_GP33 __BIT(7)
177 1.6 knakahar #define WBSIO_NCT6779D_MFS6_GP33_MASK __BIT(6)
178 1.6 knakahar #define WBSIO_NCT6779D_MFS1_GP40 __BIT(3)
179 1.6 knakahar #define WBSIO_NCT6779D_MFS0_GP41 __BIT(3)
180 1.6 knakahar #define WBSIO_NCT6779D_MFS0_GP41_MASK __BIT(2)
181 1.6 knakahar #define WBSIO_NCT6779D_MFS1_GP42 (__BIT(1)|__BIT(2))
182 1.6 knakahar #define WBSIO_NCT6779D_GOPT2_GP43 __BIT(4)
183 1.6 knakahar #define WBSIO_NCT6779D_MFS1_GP44_GP45_MASK __BIT(6)
184 1.6 knakahar #define WBSIO_NCT6779D_GOPT2_GP46_MASK __BIT(5)
185 1.6 knakahar #define WBSIO_NCT6779D_MFS1_GP47 __BIT(7)
186 1.6 knakahar #define WBSIO_NCT6779D_HM_GP50_MASK __BIT(2)
187 1.6 knakahar #define WBSIO_NCT6779D_HM_GP52_MASK __BIT(1)
188 1.6 knakahar #define WBSIO_NCT6779D_HM_GP55_MASK __BIT(3)
189 1.6 knakahar #define WBSIO_NCT6779D_MFS5_GP74 __BIT(5)
190 1.6 knakahar #define WBSIO_NCT6779D_MFS5_GP75 __BIT(6)
191 1.6 knakahar #define WBSIO_NCT6779D_MFS5_GP76 __BIT(7)
192 1.7 knakahar #define WBSIO_NCT6779D_GPIO4_WDTO __BIT(4)
193