Home | History | Annotate | Download | only in PchRegs
      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