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