1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #ifndef _DEV_PCI_ICHREG_H_
20 #define _DEV_PCI_ICHREG_H_
21
22
23
24
25
26
27
28
29
30
31 #define ICH_PMBASE 0x40
32 #define ICH_ACPI_CNTL 0x44
33 #define ICH_ACPI_CNTL_ACPI_EN (1 << 4)
34 #define ICH_GEN_PMCON1 0xa0
35
36 #define ICH_GEN_PMCON1_SS_EN 0x08
37
38
39 #define ICH_PM_TMR 0x08
40
41 #define ICH_PM_CNTL 0x20
42 #define ICH_PM_ARB_DIS 0x01
43 #define ICH_PM_SS_CNTL 0x50
44 #define ICH_PM_SS_STATE_LOW 0x01
45
46 #define ICH_PMSIZE 128
47
48
49
50
51
52
53 #define ICH_SMB_BASE 0x20
54 #define ICH_SMB_HOSTC 0x40
55 #define ICH_SMB_HOSTC_HSTEN (1 << 0)
56 #define ICH_SMB_HOSTC_SMIEN (1 << 1)
57 #define ICH_SMB_HOSTC_I2CEN (1 << 2)
58
59
60 #define ICH_SMB_HS 0x00
61 #define ICH_SMB_HS_BUSY (1 << 0)
62 #define ICH_SMB_HS_INTR (1 << 1)
63 #define ICH_SMB_HS_DEVERR (1 << 2)
64 #define ICH_SMB_HS_BUSERR (1 << 3)
65 #define ICH_SMB_HS_FAILED (1 << 4)
66 #define ICH_SMB_HS_SMBAL (1 << 5)
67 #define ICH_SMB_HS_INUSE (1 << 6)
68 #define ICH_SMB_HS_BDONE (1 << 7)
69 #define ICH_SMB_HS_BITS "\020\001BUSY\002INTR\003DEVERR\004BUSERR\005FAILED\006SMBAL\007INUSE\010BDONE"
70 #define ICH_SMB_HC 0x02
71 #define ICH_SMB_HC_INTREN (1 << 0)
72 #define ICH_SMB_HC_KILL (1 << 1)
73 #define ICH_SMB_HC_CMD_QUICK (0 << 2)
74 #define ICH_SMB_HC_CMD_BYTE (1 << 2)
75 #define ICH_SMB_HC_CMD_BDATA (2 << 2)
76 #define ICH_SMB_HC_CMD_WDATA (3 << 2)
77 #define ICH_SMB_HC_CMD_PCALL (4 << 2)
78 #define ICH_SMB_HC_CMD_BLOCK (5 << 2)
79 #define ICH_SMB_HC_CMD_I2CREAD (6 << 2)
80 #define ICH_SMB_HC_CMD_BLOCKP (7 << 2)
81 #define ICH_SMB_HC_LASTB (1 << 5)
82 #define ICH_SMB_HC_START (1 << 6)
83 #define ICH_SMB_HC_PECEN (1 << 7)
84 #define ICH_SMB_HCMD 0x03
85 #define ICH_SMB_TXSLVA 0x04
86 #define ICH_SMB_TXSLVA_READ (1 << 0)
87 #define ICH_SMB_TXSLVA_ADDR(x) (((x) & 0x7f) << 1)
88 #define ICH_SMB_HD0 0x05
89 #define ICH_SMB_HD1 0x06
90 #define ICH_SMB_HBDB 0x07
91 #define ICH_SMB_PEC 0x08
92 #define ICH_SMB_RXSLVA 0x09
93 #define ICH_SMB_SD 0x0a
94 #define ICH_SMB_SD_MSG0(x) ((x) & 0xff)
95 #define ICH_SMB_SD_MSG1(x) ((x) >> 8)
96 #define ICH_SMB_AS 0x0c
97 #define ICH_SMB_AS_CRCE (1 << 0)
98 #define ICH_SMB_AS_TCO (1 << 1)
99 #define ICH_SMB_AC 0x0d
100 #define ICH_SMB_AC_AAC (1 << 0)
101 #define ICH_SMB_AC_E32B (1 << 1)
102 #define ICH_SMB_SMLPC 0x0e
103 #define ICH_SMB_SMLPC_LINK0 (1 << 0)
104 #define ICH_SMB_SMLPC_LINK1 (1 << 1)
105 #define ICH_SMB_SMLPC_CLKC (1 << 2)
106 #define ICH_SMB_SMBPC 0x0f
107 #define ICH_SMB_SMBPC_CLK (1 << 0)
108 #define ICH_SMB_SMBPC_DATA (1 << 1)
109 #define ICH_SMB_SMBPC_CLKC (1 << 2)
110 #define ICH_SMB_SS 0x10
111 #define ICH_SMB_SS_HN (1 << 0)
112 #define ICH_SMB_SCMD 0x11
113 #define ICH_SMB_SCMD_INTREN (1 << 0)
114 #define ICH_SMB_SCMD_WKEN (1 << 1)
115 #define ICH_SMB_SCMD_SMBALDS (1 << 2)
116 #define ICH_SMB_NDADDR 0x14
117 #define ICH_SMB_NDADDR_ADDR(x) ((x) >> 1)
118 #define ICH_SMB_NDLOW 0x16
119 #define ICH_SMB_NDHIGH 0x17
120
121
122
123
124
125
126 #define ICH_WDT_BASE 0x10
127 #define ICH_WDT_CONF 0x60
128 #define ICH_WDT_CONF_MASK 0xffff
129 #define ICH_WDT_CONF_INT_MASK 0x3
130 #define ICH_WDT_CONF_INT_IRQ 0x0
131 #define ICH_WDT_CONF_INT_SMI 0x2
132 #define ICH_WDT_CONF_INT_DIS 0x3
133 #define ICH_WDT_CONF_PRE (1 << 2)
134 #define ICH_WDT_CONF_OUTDIS (1 << 5)
135 #define ICH_WDT_LOCK 0x68
136 #define ICH_WDT_LOCK_LOCKED (1 << 0)
137 #define ICH_WDT_LOCK_ENABLED (1 << 1)
138 #define ICH_WDT_LOCK_FREERUN (1 << 2)
139
140
141 #define ICH_WDT_PRE1 0x00
142 #define ICH_WDT_PRE2 0x04
143 #define ICH_WDT_GIS 0x08
144 #define ICH_WDT_GIS_ACTIVE (1 << 0)
145 #define ICH_WDT_RELOAD 0x0c
146 #define ICH_WDT_RELOAD_RLD (1 << 8)
147 #define ICH_WDT_RELOAD_TIMEOUT (1 << 9)
148
149 #endif