1 /*++
2 
3 Copyright (c) 2012  - 2014, Intel Corporation. All rights reserved
4 
5   This program and the accompanying materials are licensed and made available under
6   the terms and conditions of the BSD License that accompanies this distribution.
7   The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php.
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 
14 
15 Module Name:
16 
17   PchRegsLpss.h
18 
19 Abstract:
20 
21   Register names for VLV Low Input Output (LPSS) module.
22 
23   Conventions:
24 
25   - Prefixes:
26     Definitions beginning with "R_" are registers
27     Definitions beginning with "B_" are bits within registers
28     Definitions beginning with "V_" are meaningful values of bits within the registers
29     Definitions beginning with "S_" are register sizes
30     Definitions beginning with "N_" are the bit position
31   - In general, PCH registers are denoted by "_PCH_" in register names
32   - Registers / bits that are different between PCH generations are denoted by
33     "_PCH_<generation_name>_" in register/bit names. e.g., "_PCH_VLV_"
34   - Registers / bits that are different between SKUs are denoted by "_<SKU_name>"
35     at the end of the register/bit names
36   - Registers / bits of new devices introduced in a PCH generation will be just named
37     as "_PCH_" without <generation_name> inserted.
38 
39 --*/
40 #ifndef _PCH_REGS_LPSS_H_
41 #define _PCH_REGS_LPSS_H_
42 
43 
44 //
45 // Low Power Input Output (LPSS) Module Registers
46 //
47 
48 //
49 // LPSS DMAC Modules
50 // PCI Config Space Registers
51 //
52 #define PCI_DEVICE_NUMBER_PCH_LPSS_DMAC0          30
53 #define PCI_DEVICE_NUMBER_PCH_LPSS_DMAC1          24
54 #define PCI_FUNCTION_NUMBER_PCH_LPSS_DMAC         0
55 
56 #define R_PCH_LPSS_DMAC_DEVVENDID                 0x00  // Device ID & Vendor ID
57 #define B_PCH_LPSS_DMAC_DEVVENDID_DID             0xFFFF0000 // Device ID
58 #define B_PCH_LPSS_DMAC_DEVVENDID_VID             0x0000FFFF // Vendor ID
59 
60 #define R_PCH_LPSS_DMAC_STSCMD                    0x04  // Status & Command
61 #define B_PCH_LPSS_DMAC_STSCMD_RMA                BIT29 // RMA
62 #define B_PCH_LPSS_DMAC_STSCMD_RCA                BIT28 // RCA
63 #define B_PCH_LPSS_DMAC_STSCMD_CAPLIST            BIT20 // Capability List
64 #define B_PCH_LPSS_DMAC_STSCMD_INTRSTS            BIT19 // Interrupt Status
65 #define B_PCH_LPSS_DMAC_STSCMD_INTRDIS            BIT10 // Interrupt Disable
66 #define B_PCH_LPSS_DMAC_STSCMD_SERREN             BIT8  // SERR# Enable
67 #define B_PCH_LPSS_DMAC_STSCMD_BME                BIT2  // Bus Master Enable
68 #define B_PCH_LPSS_DMAC_STSCMD_MSE                BIT1  // Memory Space Enable
69 
70 #define R_PCH_LPSS_DMAC_REVCC                     0x08  // Revision ID & Class Code
71 #define B_PCH_LPSS_DMAC_REVCC_CC                  0xFFFFFF00 // Class Code
72 #define B_PCH_LPSS_DMAC_REVCC_RID                 0x000000FF // Revision ID
73 
74 #define R_PCH_LPSS_DMAC_CLHB                      0x0C
75 #define B_PCH_LPSS_DMAC_CLHB_MULFNDEV             BIT23
76 #define B_PCH_LPSS_DMAC_CLHB_HT                   0x007F0000 // Header Type
77 #define B_PCH_LPSS_DMAC_CLHB_LT                   0x0000FF00 // Latency Timer
78 #define B_PCH_LPSS_DMAC_CLHB_CLS                  0x000000FF // Cache Line Size
79 
80 #define R_PCH_LPSS_DMAC_BAR                       0x10  // BAR
81 #define B_PCH_LPSS_DMAC_BAR_BA                    0xFFFFC000 // Base Address
82 #define V_PCH_LPSS_DMAC_BAR_SIZE                  0x4000
83 #define N_PCH_LPSS_DMAC_BAR_ALIGNMENT             14
84 #define B_PCH_LPSS_DMAC_BAR_SI                    0x00000FF0 // Size Indicator
85 #define B_PCH_LPSS_DMAC_BAR_PF                    BIT3  // Prefetchable
86 #define B_PCH_LPSS_DMAC_BAR_TYPE                  (BIT2 | BIT1) // Type
87 #define B_PCH_LPSS_DMAC_BAR_MS                    BIT0  // Message Space
88 
89 #define R_PCH_LPSS_DMAC_BAR1                      0x14  // BAR 1
90 #define B_PCH_LPSS_DMAC_BAR1_BA                   0xFFFFF000 // Base Address
91 #define B_PCH_LPSS_DMAC_BAR1_SI                   0x00000FF0 // Size Indicator
92 #define B_PCH_LPSS_DMAC_BAR1_PF                   BIT3  // Prefetchable
93 #define B_PCH_LPSS_DMAC_BAR1_TYPE                 (BIT2 | BIT1) // Type
94 #define B_PCH_LPSS_DMAC_BAR1_MS                   BIT0  // Message Space
95 
96 #define R_PCH_LPSS_DMAC_SSID                      0x2C  // Sub System ID
97 #define B_PCH_LPSS_DMAC_SSID_SID                  0xFFFF0000 // Sub System ID
98 #define B_PCH_LPSS_DMAC_SSID_SVID                 0x0000FFFF // Sub System Vendor ID
99 
100 #define R_PCH_LPSS_DMAC_ERBAR                     0x30  // Expansion ROM BAR
101 #define B_PCH_LPSS_DMAC_ERBAR_BA                  0xFFFFFFFF // Expansion ROM Base Address
102 
103 #define R_PCH_LPSS_DMAC_CAPPTR                    0x34  // Capability Pointer
104 #define B_PCH_LPSS_DMAC_CAPPTR_CPPWR              0xFF  // Capability Pointer Power
105 
106 #define R_PCH_LPSS_DMAC_INTR                      0x3C  // Interrupt
107 #define B_PCH_LPSS_DMAC_INTR_ML                   0xFF000000 // Max Latency
108 #define B_PCH_LPSS_DMAC_INTR_MG                   0x00FF0000
109 #define B_PCH_LPSS_DMAC_INTR_IP                   0x00000F00 // Interrupt Pin
110 #define B_PCH_LPSS_DMAC_INTR_IL                   0x000000FF // Interrupt Line
111 
112 #define R_PCH_LPSS_DMAC_PCAPID                    0x80  // Power Capability ID
113 #define B_PCH_LPSS_DMAC_PCAPID_PS                 0xF8000000 // PME Support
114 #define B_PCH_LPSS_DMAC_PCAPID_VS                 0x00070000 // Version
115 #define B_PCH_LPSS_DMAC_PCAPID_NC                 0x0000FF00 // Next Capability
116 #define B_PCH_LPSS_DMAC_PCAPID_PC                 0x000000FF // Power Capability
117 
118 #define R_PCH_LPSS_DMAC_PCS                       0x84  // PME Control Status
119 #define B_PCH_LPSS_DMAC_PCS_PMESTS                BIT15 // PME Status
120 #define B_PCH_LPSS_DMAC_PCS_PMEEN                 BIT8  // PME Enable
121 #define B_PCH_LPSS_DMAC_PCS_NSS                   BIT3  // No Soft Reset
122 #define B_PCH_LPSS_DMAC_PCS_PS                    (BIT1 | BIT0) // Power State
123 
124 #define R_PCH_LPSS_DMAC_MANID                     0xF8  // Manufacturer ID
125 #define B_PCH_LPSS_DMAC_MANID_MANID               0xFFFFFFFF // Manufacturer ID
126 
127 
128 //
129 // LPSS I2C Module
130 // PCI Config Space Registers
131 //
132 #define PCI_DEVICE_NUMBER_PCH_LPSS_I2C            24
133 #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C0         1
134 #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C1         2
135 #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C2         3
136 #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C3         4
137 #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C4         5
138 #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C5         6
139 #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C6         7
140 
141 #define R_PCH_LPSS_I2C_DEVVENDID                  0x00  // Device ID & Vendor ID
142 #define B_PCH_LPSS_I2C_DEVVENDID_DID              0xFFFF0000 // Device ID
143 #define B_PCH_LPSS_I2C_DEVVENDID_VID              0x0000FFFF // Vendor ID
144 
145 #define R_PCH_LPSS_I2C_STSCMD                     0x04  // Status & Command
146 #define B_PCH_LPSS_I2C_STSCMD_RMA                 BIT29 // RMA
147 #define B_PCH_LPSS_I2C_STSCMD_RCA                 BIT28 // RCA
148 #define B_PCH_LPSS_I2C_STSCMD_CAPLIST             BIT20 // Capability List
149 #define B_PCH_LPSS_I2C_STSCMD_INTRSTS             BIT19 // Interrupt Status
150 #define B_PCH_LPSS_I2C_STSCMD_INTRDIS             BIT10 // Interrupt Disable
151 #define B_PCH_LPSS_I2C_STSCMD_SERREN              BIT8  // SERR# Enable
152 #define B_PCH_LPSS_I2C_STSCMD_BME                 BIT2  // Bus Master Enable
153 #define B_PCH_LPSS_I2C_STSCMD_MSE                 BIT1  // Memory Space Enable
154 
155 #define R_PCH_LPSS_I2C_REVCC                      0x08  // Revision ID & Class Code
156 #define B_PCH_LPSS_I2C_REVCC_CC                   0xFFFFFF00 // Class Code
157 #define B_PCH_LPSS_I2C_REVCC_RID                  0x000000FF // Revision ID
158 
159 #define R_PCH_LPSS_I2C_CLHB                       0x0C
160 #define B_PCH_LPSS_I2C_CLHB_MULFNDEV              BIT23
161 #define B_PCH_LPSS_I2C_CLHB_HT                    0x007F0000 // Header Type
162 #define B_PCH_LPSS_I2C_CLHB_LT                    0x0000FF00 // Latency Timer
163 #define B_PCH_LPSS_I2C_CLHB_CLS                   0x000000FF // Cache Line Size
164 
165 #define R_PCH_LPSS_I2C_BAR                        0x10  // BAR
166 #define B_PCH_LPSS_I2C_BAR_BA                     0xFFFFF000 // Base Address
167 #define V_PCH_LPSS_I2C_BAR_SIZE                   0x1000
168 #define N_PCH_LPSS_I2C_BAR_ALIGNMENT              12
169 #define B_PCH_LPSS_I2C_BAR_SI                     0x00000FF0 // Size Indicator
170 #define B_PCH_LPSS_I2C_BAR_PF                     BIT3  // Prefetchable
171 #define B_PCH_LPSS_I2C_BAR_TYPE                   (BIT2 | BIT1) // Type
172 #define B_PCH_LPSS_I2C_BAR_MS                     BIT0  // Message Space
173 
174 #define R_PCH_LPSS_I2C_BAR1                       0x14  // BAR 1
175 #define B_PCH_LPSS_I2C_BAR1_BA                    0xFFFFF000 // Base Address
176 #define B_PCH_LPSS_I2C_BAR1_SI                    0x00000FF0 // Size Indicator
177 #define B_PCH_LPSS_I2C_BAR1_PF                    BIT3  // Prefetchable
178 #define B_PCH_LPSS_I2C_BAR1_TYPE                  (BIT2 | BIT1) // Type
179 #define B_PCH_LPSS_I2C_BAR1_MS                    BIT0  // Message Space
180 
181 #define R_PCH_LPSS_I2C_SSID                       0x2C  // Sub System ID
182 #define B_PCH_LPSS_I2C_SSID_SID                   0xFFFF0000 // Sub System ID
183 #define B_PCH_LPSS_I2C_SSID_SVID                  0x0000FFFF // Sub System Vendor ID
184 
185 #define R_PCH_LPSS_I2C_ERBAR                      0x30  // Expansion ROM BAR
186 #define B_PCH_LPSS_I2C_ERBAR_BA                   0xFFFFFFFF // Expansion ROM Base Address
187 
188 #define R_PCH_LPSS_I2C_CAPPTR                     0x34  // Capability Pointer
189 #define B_PCH_LPSS_I2C_CAPPTR_CPPWR               0xFF  // Capability Pointer Power
190 
191 #define R_PCH_LPSS_I2C_INTR                       0x3C  // Interrupt
192 #define B_PCH_LPSS_I2C_INTR_ML                    0xFF000000 // Max Latency
193 #define B_PCH_LPSS_I2C_INTR_MG                    0x00FF0000
194 #define B_PCH_LPSS_I2C_INTR_IP                    0x00000F00 // Interrupt Pin
195 #define B_PCH_LPSS_I2C_INTR_IL                    0x000000FF // Interrupt Line
196 
197 #define R_PCH_LPSS_I2C_PCAPID                     0x80  // Power Capability ID
198 #define B_PCH_LPSS_I2C_PCAPID_PS                  0xF8000000 // PME Support
199 #define B_PCH_LPSS_I2C_PCAPID_VS                  0x00070000 // Version
200 #define B_PCH_LPSS_I2C_PCAPID_NC                  0x0000FF00 // Next Capability
201 #define B_PCH_LPSS_I2C_PCAPID_PC                  0x000000FF // Power Capability
202 
203 #define R_PCH_LPSS_I2C_PCS                        0x84  // PME Control Status
204 #define B_PCH_LPSS_I2C_PCS_PMESTS                 BIT15 // PME Status
205 #define B_PCH_LPSS_I2C_PCS_PMEEN                  BIT8  // PME Enable
206 #define B_PCH_LPSS_I2C_PCS_NSS                    BIT3  // No Soft Reset
207 #define B_PCH_LPSS_I2C_PCS_PS                     (BIT1 | BIT0) // Power State
208 
209 #define R_PCH_LPSS_I2C_MANID                      0xF8  // Manufacturer ID
210 #define B_PCH_LPSS_I2C_MANID_MANID                0xFFFFFFFF // Manufacturer ID
211 
212 //
213 // LPSS I2C Module
214 // Memory Space Registers
215 //
216 #define R_PCH_LPSS_I2C_MEM_RESETS                 0x804 // Software Reset
217 #define B_PCH_LPSS_I2C_MEM_RESETS_FUNC            BIT1  // Function Clock Domain Reset
218 #define B_PCH_LPSS_I2C_MEM_RESETS_APB             BIT0  // APB Domain Reset
219 
220 //
221 // LPSS PWM Modules
222 // PCI Config Space Registers
223 //
224 #define PCI_DEVICE_NUMBER_PCH_LPSS_PWM            30
225 #define PCI_FUNCTION_NUMBER_PCH_LPSS_PWM0         1
226 #define PCI_FUNCTION_NUMBER_PCH_LPSS_PWM1         2
227 
228 #define R_PCH_LPSS_PWM_DEVVENDID                  0x00  // Device ID & Vendor ID
229 #define B_PCH_LPSS_PWM_DEVVENDID_DID              0xFFFF0000 // Device ID
230 #define B_PCH_LPSS_PWM_DEVVENDID_VID              0x0000FFFF // Vendor ID
231 
232 #define R_PCH_LPSS_PWM_STSCMD                     0x04  // Status & Command
233 #define B_PCH_LPSS_PWM_STSCMD_RMA                 BIT29 // RMA
234 #define B_PCH_LPSS_PWM_STSCMD_RCA                 BIT28 // RCA
235 #define B_PCH_LPSS_PWM_STSCMD_CAPLIST             BIT20 // Capability List
236 #define B_PCH_LPSS_PWM_STSCMD_INTRSTS             BIT19 // Interrupt Status
237 #define B_PCH_LPSS_PWM_STSCMD_INTRDIS             BIT10 // Interrupt Disable
238 #define B_PCH_LPSS_PWM_STSCMD_SERREN              BIT8  // SERR# Enable
239 #define B_PCH_LPSS_PWM_STSCMD_BME                 BIT2  // Bus Master Enable
240 #define B_PCH_LPSS_PWM_STSCMD_MSE                 BIT1  // Memory Space Enable
241 
242 #define R_PCH_LPSS_PWM_REVCC                      0x08  // Revision ID & Class Code
243 #define B_PCH_LPSS_PWM_REVCC_CC                   0xFFFFFF00 // Class Code
244 #define B_PCH_LPSS_PWM_REVCC_RID                  0x000000FF // Revision ID
245 
246 #define R_PCH_LPSS_PWM_CLHB                       0x0C
247 #define B_PCH_LPSS_PWM_CLHB_MULFNDEV              BIT23
248 #define B_PCH_LPSS_PWM_CLHB_HT                    0x007F0000 // Header Type
249 #define B_PCH_LPSS_PWM_CLHB_LT                    0x0000FF00 // Latency Timer
250 #define B_PCH_LPSS_PWM_CLHB_CLS                   0x000000FF // Cache Line Size
251 
252 #define R_PCH_LPSS_PWM_BAR                        0x10  // BAR
253 #define B_PCH_LPSS_PWM_BAR_BA                     0xFFFFF000 // Base Address
254 #define V_PCH_LPSS_PWM_BAR_SIZE                   0x1000
255 #define N_PCH_LPSS_PWM_BAR_ALIGNMENT              12
256 #define B_PCH_LPSS_PWM_BAR_SI                     0x00000FF0 // Size Indicator
257 #define B_PCH_LPSS_PWM_BAR_PF                     BIT3  // Prefetchable
258 #define B_PCH_LPSS_PWM_BAR_TYPE                   (BIT2 | BIT1) // Type
259 #define B_PCH_LPSS_PWM_BAR_MS                     BIT0  // Message Space
260 
261 #define R_PCH_LPSS_PWM_BAR1                       0x14  // BAR 1
262 #define B_PCH_LPSS_PWM_BAR1_BA                    0xFFFFF000 // Base Address
263 #define B_PCH_LPSS_PWM_BAR1_SI                    0x00000FF0 // Size Indicator
264 #define B_PCH_LPSS_PWM_BAR1_PF                    BIT3  // Prefetchable
265 #define B_PCH_LPSS_PWM_BAR1_TYPE                  (BIT2 | BIT1) // Type
266 #define B_PCH_LPSS_PWM_BAR1_MS                    BIT0  // Message Space
267 
268 #define R_PCH_LPSS_PWM_SSID                       0x2C  // Sub System ID
269 #define B_PCH_LPSS_PWM_SSID_SID                   0xFFFF0000 // Sub System ID
270 #define B_PCH_LPSS_PWM_SSID_SVID                  0x0000FFFF // Sub System Vendor ID
271 
272 #define R_PCH_LPSS_PWM_ERBAR                      0x30  // Expansion ROM BAR
273 #define B_PCH_LPSS_PWM_ERBAR_BA                   0xFFFFFFFF // Expansion ROM Base Address
274 
275 #define R_PCH_LPSS_PWM_CAPPTR                     0x34  // Capability Pointer
276 #define B_PCH_LPSS_PWM_CAPPTR_CPPWR               0xFF  // Capability Pointer Power
277 
278 #define R_PCH_LPSS_PWM_INTR                       0x3C  // Interrupt
279 #define B_PCH_LPSS_PWM_INTR_ML                    0xFF000000 // Max Latency
280 #define B_PCH_LPSS_PWM_INTR_MG                    0x00FF0000
281 #define B_PCH_LPSS_PWM_INTR_IP                    0x00000F00 // Interrupt Pin
282 #define B_PCH_LPSS_PWM_INTR_IL                    0x000000FF // Interrupt Line
283 
284 #define R_PCH_LPSS_PWM_PCAPID                     0x80  // Power Capability ID
285 #define B_PCH_LPSS_PWM_PCAPID_PS                  0xF8000000 // PME Support
286 #define B_PCH_LPSS_PWM_PCAPID_VS                  0x00070000 // Version
287 #define B_PCH_LPSS_PWM_PCAPID_NC                  0x0000FF00 // Next Capability
288 #define B_PCH_LPSS_PWM_PCAPID_PC                  0x000000FF // Power Capability
289 
290 #define R_PCH_LPSS_PWM_PCS                        0x84  // PME Control Status
291 #define B_PCH_LPSS_PWM_PCS_PMESTS                 BIT15 // PME Status
292 #define B_PCH_LPSS_PWM_PCS_PMEEN                  BIT8  // PME Enable
293 #define B_PCH_LPSS_PWM_PCS_NSS                    BIT3  // No Soft Reset
294 #define B_PCH_LPSS_PWM_PCS_PS                     (BIT1 | BIT0) // Power State
295 
296 #define R_PCH_LPSS_PWM_MANID                      0xF8  // Manufacturer ID
297 #define B_PCH_LPSS_PWM_MANID_MANID                0xFFFFFFFF // Manufacturer ID
298 
299 //
300 // LPSS PWM Module
301 // Memory Space Registers
302 //
303 #define R_PCH_LPSS_PWM_MEM_RESETS                 0x804 // Software Reset
304 #define B_PCH_LPSS_PWM_MEM_RESETS_FUNC            BIT1  // Function Clock Domain Reset
305 #define B_PCH_LPSS_PWM_MEM_RESETS_APB             BIT0  // APB Domain Reset
306 
307 //
308 // LPSS HSUART Modules
309 // PCI Config Space Registers
310 //
311 #define PCI_DEVICE_NUMBER_PCH_LPSS_HSUART         30
312 #define PCI_FUNCTION_NUMBER_PCH_LPSS_HSUART0      3
313 #define PCI_FUNCTION_NUMBER_PCH_LPSS_HSUART1      4
314 
315 #define R_PCH_LPSS_HSUART_DEVVENDID               0x00  // Device ID & Vendor ID
316 #define B_PCH_LPSS_HSUART_DEVVENDID_DID           0xFFFF0000 // Device ID
317 #define B_PCH_LPSS_HSUART_DEVVENDID_VID           0x0000FFFF // Vendor ID
318 
319 #define R_PCH_LPSS_HSUART_STSCMD                  0x04  // Status & Command
320 #define B_PCH_LPSS_HSUART_STSCMD_RMA              BIT29 // RMA
321 #define B_PCH_LPSS_HSUART_STSCMD_RCA              BIT28 // RCA
322 #define B_PCH_LPSS_HSUART_STSCMD_CAPLIST          BIT20 // Capability List
323 #define B_PCH_LPSS_HSUART_STSCMD_INTRSTS          BIT19 // Interrupt Status
324 #define B_PCH_LPSS_HSUART_STSCMD_INTRDIS          BIT10 // Interrupt Disable
325 #define B_PCH_LPSS_HSUART_STSCMD_SERREN           BIT8  // SERR# Enable
326 #define B_PCH_LPSS_HSUART_STSCMD_BME              BIT2  // Bus Master Enable
327 #define B_PCH_LPSS_HSUART_STSCMD_MSE              BIT1  // Memory Space Enable
328 
329 #define R_PCH_LPSS_HSUART_REVCC                   0x08  // Revision ID & Class Code
330 #define B_PCH_LPSS_HSUART_REVCC_CC                0xFFFFFF00 // Class Code
331 #define B_PCH_LPSS_HSUART_REVCC_RID               0x000000FF // Revision ID
332 
333 #define R_PCH_LPSS_HSUART_CLHB                    0x0C
334 #define B_PCH_LPSS_HSUART_CLHB_MULFNDEV           BIT23
335 #define B_PCH_LPSS_HSUART_CLHB_HT                 0x007F0000 // Header Type
336 #define B_PCH_LPSS_HSUART_CLHB_LT                 0x0000FF00 // Latency Timer
337 #define B_PCH_LPSS_HSUART_CLHB_CLS                0x000000FF // Cache Line Size
338 
339 #define R_PCH_LPSS_HSUART_BAR                     0x10  // BAR
340 #define B_PCH_LPSS_HSUART_BAR_BA                  0xFFFFF000 // Base Address
341 #define V_PCH_LPSS_HSUART_BAR_SIZE                0x1000
342 #define N_PCH_LPSS_HSUART_BAR_ALIGNMENT           12
343 #define B_PCH_LPSS_HSUART_BAR_SI                  0x00000FF0 // Size Indicator
344 #define B_PCH_LPSS_HSUART_BAR_PF                  BIT3  // Prefetchable
345 #define B_PCH_LPSS_HSUART_BAR_TYPE                (BIT2 | BIT1) // Type
346 #define B_PCH_LPSS_HSUART_BAR_MS                  BIT0  // Message Space
347 
348 #define R_PCH_LPSS_HSUART_BAR1                    0x14  // BAR 1
349 #define B_PCH_LPSS_HSUART_BAR1_BA                 0xFFFFF000 // Base Address
350 #define B_PCH_LPSS_HSUART_BAR1_SI                 0x00000FF0 // Size Indicator
351 #define B_PCH_LPSS_HSUART_BAR1_PF                 BIT3  // Prefetchable
352 #define B_PCH_LPSS_HSUART_BAR1_TYPE               (BIT2 | BIT1) // Type
353 #define B_PCH_LPSS_HSUART_BAR1_MS                 BIT0  // Message Space
354 
355 #define R_PCH_LPSS_HSUART_SSID                    0x2C  // Sub System ID
356 #define B_PCH_LPSS_HSUART_SSID_SID                0xFFFF0000 // Sub System ID
357 #define B_PCH_LPSS_HSUART_SSID_SVID               0x0000FFFF // Sub System Vendor ID
358 
359 #define R_PCH_LPSS_HSUART_ERBAR                   0x30  // Expansion ROM BAR
360 #define B_PCH_LPSS_HSUART_ERBAR_BA                0xFFFFFFFF // Expansion ROM Base Address
361 
362 #define R_PCH_LPSS_HSUART_CAPPTR                  0x34  // Capability Pointer
363 #define B_PCH_LPSS_HSUART_CAPPTR_CPPWR            0xFF  // Capability Pointer Power
364 
365 #define R_PCH_LPSS_HSUART_INTR                    0x3C  // Interrupt
366 #define B_PCH_LPSS_HSUART_INTR_ML                 0xFF000000 // Max Latency
367 #define B_PCH_LPSS_HSUART_INTR_MG                 0x00FF0000
368 #define B_PCH_LPSS_HSUART_INTR_IP                 0x00000F00 // Interrupt Pin
369 #define B_PCH_LPSS_HSUART_INTR_IL                 0x000000FF // Interrupt Line
370 
371 #define R_PCH_LPSS_HSUART_PCAPID                  0x80  // Power Capability ID
372 #define B_PCH_LPSS_HSUART_PCAPID_PS               0xF8000000 // PME Support
373 #define B_PCH_LPSS_HSUART_PCAPID_VS               0x00070000 // Version
374 #define B_PCH_LPSS_HSUART_PCAPID_NC               0x0000FF00 // Next Capability
375 #define B_PCH_LPSS_HSUART_PCAPID_PC               0x000000FF // Power Capability
376 
377 #define R_PCH_LPSS_HSUART_PCS                     0x84  // PME Control Status
378 #define B_PCH_LPSS_HSUART_PCS_PMESTS              BIT15 // PME Status
379 #define B_PCH_LPSS_HSUART_PCS_PMEEN               BIT8  // PME Enable
380 #define B_PCH_LPSS_HSUART_PCS_NSS                 BIT3  // No Soft Reset
381 #define B_PCH_LPSS_HSUART_PCS_PS                  (BIT1 | BIT0) // Power State
382 
383 #define R_PCH_LPSS_HSUART_MANID                   0xF8  // Manufacturer ID
384 #define B_PCH_LPSS_HSUART_MANID_MANID             0xFFFFFFFF // Manufacturer ID
385 
386 //
387 // LPSS HSUART Module
388 // Memory Space Registers
389 //
390 #define R_PCH_LPSS_HSUART_MEM_PCP                 0x800 // Private Clock Parameters
391 #define B_PCH_LPSS_HSUART_MEM_PCP_CLKUPDATE       BIT31 // Clock Divider Update
392 #define B_PCH_LPSS_HSUART_MEM_PCP_NVAL            0x7FFF0000 // N value for the M over N divider
393 #define B_PCH_LPSS_HSUART_MEM_PCP_MVAL            0x0000FFFE // M value for the M over N divider
394 #define B_PCH_LPSS_HSUART_MEM_PCP_CLKEN           BIT0  // Clock Enable
395 
396 #define R_PCH_LPSS_HSUART_MEM_RESETS              0x804 // Software Reset
397 #define B_PCH_LPSS_HSUART_MEM_RESETS_FUNC         BIT1  // Function Clock Domain Reset
398 #define B_PCH_LPSS_HSUART_MEM_RESETS_APB          BIT0  // APB Domain Reset
399 
400 //
401 // LPSS SPI Module
402 // PCI Config Space Registers
403 //
404 #define PCI_DEVICE_NUMBER_PCH_LPSS_SPI            30
405 #define PCI_FUNCTION_NUMBER_PCH_LPSS_SPI          5
406 
407 #define R_PCH_LPSS_SPI_DEVVENDID                  0x00  // Device ID & Vendor ID
408 #define B_PCH_LPSS_SPI_DEVVENDID_DID              0xFFFF0000 // Device ID
409 #define B_PCH_LPSS_SPI_DEVVENDID_VID              0x0000FFFF // Vendor ID
410 
411 #define R_PCH_LPSS_SPI_STSCMD                     0x04  // Status & Command
412 #define B_PCH_LPSS_SPI_STSCMD_RMA                 BIT29 // RMA
413 #define B_PCH_LPSS_SPI_STSCMD_RCA                 BIT28 // RCA
414 #define B_PCH_LPSS_SPI_STSCMD_CAPLIST             BIT20 // Capability List
415 #define B_PCH_LPSS_SPI_STSCMD_INTRSTS             BIT19 // Interrupt Status
416 #define B_PCH_LPSS_SPI_STSCMD_INTRDIS             BIT10 // Interrupt Disable
417 #define B_PCH_LPSS_SPI_STSCMD_SERREN              BIT8  // SERR# Enable
418 #define B_PCH_LPSS_SPI_STSCMD_BME                 BIT2  // Bus Master Enable
419 #define B_PCH_LPSS_SPI_STSCMD_MSE                 BIT1  // Memory Space Enable
420 
421 #define R_PCH_LPSS_SPI_REVCC                      0x08  // Revision ID & Class Code
422 #define B_PCH_LPSS_SPI_REVCC_CC                   0xFFFFFF00 // Class Code
423 #define B_PCH_LPSS_SPI_REVCC_RID                  0x000000FF // Revision ID
424 
425 #define R_PCH_LPSS_SPI_CLHB                       0x0C
426 #define B_PCH_LPSS_SPI_CLHB_MULFNDEV              BIT23
427 #define B_PCH_LPSS_SPI_CLHB_HT                    0x007F0000 // Header Type
428 #define B_PCH_LPSS_SPI_CLHB_LT                    0x0000FF00 // Latency Timer
429 #define B_PCH_LPSS_SPI_CLHB_CLS                   0x000000FF // Cache Line Size
430 
431 #define R_PCH_LPSS_SPI_BAR                        0x10  // BAR
432 #define B_PCH_LPSS_SPI_BAR_BA                     0xFFFFF000 // Base Address
433 #define V_PCH_LPSS_SPI_BAR_SIZE                   0x1000
434 #define N_PCH_LPSS_SPI_BAR_ALIGNMENT              12
435 #define B_PCH_LPSS_SPI_BAR_SI                     0x00000FF0 // Size Indicator
436 #define B_PCH_LPSS_SPI_BAR_PF                     BIT3  // Prefetchable
437 #define B_PCH_LPSS_SPI_BAR_TYPE                   (BIT2 | BIT1) // Type
438 #define B_PCH_LPSS_SPI_BAR_MS                     BIT0  // Message Space
439 
440 #define R_PCH_LPSS_SPI_BAR1                       0x14  // BAR 1
441 #define B_PCH_LPSS_SPI_BAR1_BA                    0xFFFFF000 // Base Address
442 #define B_PCH_LPSS_SPI_BAR1_SI                    0x00000FF0 // Size Indicator
443 #define B_PCH_LPSS_SPI_BAR1_PF                    BIT3  // Prefetchable
444 #define B_PCH_LPSS_SPI_BAR1_TYPE                  (BIT2 | BIT1) // Type
445 #define B_PCH_LPSS_SPI_BAR1_MS                    BIT0  // Message Space
446 
447 #define R_PCH_LPSS_SPI_SSID                       0x2C  // Sub System ID
448 #define B_PCH_LPSS_SPI_SSID_SID                   0xFFFF0000 // Sub System ID
449 #define B_PCH_LPSS_SPI_SSID_SVID                  0x0000FFFF // Sub System Vendor ID
450 
451 #define R_PCH_LPSS_SPI_ERBAR                      0x30  // Expansion ROM BAR
452 #define B_PCH_LPSS_SPI_ERBAR_BA                   0xFFFFFFFF // Expansion ROM Base Address
453 
454 #define R_PCH_LPSS_SPI_CAPPTR                     0x34  // Capability Pointer
455 #define B_PCH_LPSS_SPI_CAPPTR_CPPWR               0xFF  // Capability Pointer Power
456 
457 #define R_PCH_LPSS_SPI_INTR                       0x3C  // Interrupt
458 #define B_PCH_LPSS_SPI_INTR_ML                    0xFF000000 // Max Latency
459 #define B_PCH_LPSS_SPI_INTR_MG                    0x00FF0000
460 #define B_PCH_LPSS_SPI_INTR_IP                    0x00000F00 // Interrupt Pin
461 #define B_PCH_LPSS_SPI_INTR_IL                    0x000000FF // Interrupt Line
462 
463 #define R_PCH_LPSS_SPI_PCAPID                     0x80  // Power Capability ID
464 #define B_PCH_LPSS_SPI_PCAPID_PS                  0xF8000000 // PME Support
465 #define B_PCH_LPSS_SPI_PCAPID_VS                  0x00070000 // Version
466 #define B_PCH_LPSS_SPI_PCAPID_NC                  0x0000FF00 // Next Capability
467 #define B_PCH_LPSS_SPI_PCAPID_PC                  0x000000FF // Power Capability
468 
469 #define R_PCH_LPSS_SPI_PCS                        0x84  // PME Control Status
470 #define B_PCH_LPSS_SPI_PCS_PMESTS                 BIT15 // PME Status
471 #define B_PCH_LPSS_SPI_PCS_PMEEN                  BIT8  // PME Enable
472 #define B_PCH_LPSS_SPI_PCS_NSS                    BIT3  // No Soft Reset
473 #define B_PCH_LPSS_SPI_PCS_PS                     (BIT1 | BIT0) // Power State
474 
475 #define R_PCH_LPSS_SPI_MANID                      0xF8  // Manufacturer ID
476 #define B_PCH_LPSS_SPI_MANID_MANID                0xFFFFFFFF // Manufacturer ID
477 
478 //
479 // LPSS SPI Module
480 // Memory Space Registers
481 //
482 #define R_PCH_LPSS_SPI_MEM_PCP                    0x400 // Private Clock Parameters
483 #define B_PCH_LPSS_SPI_MEM_PCP_CLKUPDATE          BIT31 // Clock Divider Update
484 #define B_PCH_LPSS_SPI_MEM_PCP_NVAL               0x7FFF0000 // N value for the M over N divider
485 #define B_PCH_LPSS_SPI_MEM_PCP_MVAL               0x0000FFFE // M value for the M over N divider
486 #define B_PCH_LPSS_SPI_MEM_PCP_CLKEN              BIT0  // Clock Enable
487 
488 #define R_PCH_LPSS_SPI_MEM_RESETS                 0x404 // Software Reset
489 #define B_PCH_LPSS_SPI_MEM_RESETS_FUNC            BIT1  // Function Clock Domain Reset
490 #define B_PCH_LPSS_SPI_MEM_RESETS_APB             BIT0  // APB Domain Reset
491 
492 #endif
493