123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486 |
- /*++
- Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved
- SPDX-License-Identifier: BSD-2-Clause-Patent
- Module Name:
- PchRegsLpss.h
- Abstract:
- Register names for VLV Low Input Output (LPSS) module.
- Conventions:
- - Prefixes:
- Definitions beginning with "R_" are registers
- Definitions beginning with "B_" are bits within registers
- Definitions beginning with "V_" are meaningful values of bits within the registers
- Definitions beginning with "S_" are register sizes
- Definitions beginning with "N_" are the bit position
- - In general, PCH registers are denoted by "_PCH_" in register names
- - Registers / bits that are different between PCH generations are denoted by
- "_PCH_<generation_name>_" in register/bit names. e.g., "_PCH_VLV_"
- - Registers / bits that are different between SKUs are denoted by "_<SKU_name>"
- at the end of the register/bit names
- - Registers / bits of new devices introduced in a PCH generation will be just named
- as "_PCH_" without <generation_name> inserted.
- --*/
- #ifndef _PCH_REGS_LPSS_H_
- #define _PCH_REGS_LPSS_H_
- //
- // Low Power Input Output (LPSS) Module Registers
- //
- //
- // LPSS DMAC Modules
- // PCI Config Space Registers
- //
- #define PCI_DEVICE_NUMBER_PCH_LPSS_DMAC0 30
- #define PCI_DEVICE_NUMBER_PCH_LPSS_DMAC1 24
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_DMAC 0
- #define R_PCH_LPSS_DMAC_DEVVENDID 0x00 // Device ID & Vendor ID
- #define B_PCH_LPSS_DMAC_DEVVENDID_DID 0xFFFF0000 // Device ID
- #define B_PCH_LPSS_DMAC_DEVVENDID_VID 0x0000FFFF // Vendor ID
- #define R_PCH_LPSS_DMAC_STSCMD 0x04 // Status & Command
- #define B_PCH_LPSS_DMAC_STSCMD_RMA BIT29 // RMA
- #define B_PCH_LPSS_DMAC_STSCMD_RCA BIT28 // RCA
- #define B_PCH_LPSS_DMAC_STSCMD_CAPLIST BIT20 // Capability List
- #define B_PCH_LPSS_DMAC_STSCMD_INTRSTS BIT19 // Interrupt Status
- #define B_PCH_LPSS_DMAC_STSCMD_INTRDIS BIT10 // Interrupt Disable
- #define B_PCH_LPSS_DMAC_STSCMD_SERREN BIT8 // SERR# Enable
- #define B_PCH_LPSS_DMAC_STSCMD_BME BIT2 // Bus Master Enable
- #define B_PCH_LPSS_DMAC_STSCMD_MSE BIT1 // Memory Space Enable
- #define R_PCH_LPSS_DMAC_REVCC 0x08 // Revision ID & Class Code
- #define B_PCH_LPSS_DMAC_REVCC_CC 0xFFFFFF00 // Class Code
- #define B_PCH_LPSS_DMAC_REVCC_RID 0x000000FF // Revision ID
- #define R_PCH_LPSS_DMAC_CLHB 0x0C
- #define B_PCH_LPSS_DMAC_CLHB_MULFNDEV BIT23
- #define B_PCH_LPSS_DMAC_CLHB_HT 0x007F0000 // Header Type
- #define B_PCH_LPSS_DMAC_CLHB_LT 0x0000FF00 // Latency Timer
- #define B_PCH_LPSS_DMAC_CLHB_CLS 0x000000FF // Cache Line Size
- #define R_PCH_LPSS_DMAC_BAR 0x10 // BAR
- #define B_PCH_LPSS_DMAC_BAR_BA 0xFFFFC000 // Base Address
- #define V_PCH_LPSS_DMAC_BAR_SIZE 0x4000
- #define N_PCH_LPSS_DMAC_BAR_ALIGNMENT 14
- #define B_PCH_LPSS_DMAC_BAR_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_DMAC_BAR_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_DMAC_BAR_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_DMAC_BAR_MS BIT0 // Message Space
- #define R_PCH_LPSS_DMAC_BAR1 0x14 // BAR 1
- #define B_PCH_LPSS_DMAC_BAR1_BA 0xFFFFF000 // Base Address
- #define B_PCH_LPSS_DMAC_BAR1_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_DMAC_BAR1_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_DMAC_BAR1_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_DMAC_BAR1_MS BIT0 // Message Space
- #define R_PCH_LPSS_DMAC_SSID 0x2C // Sub System ID
- #define B_PCH_LPSS_DMAC_SSID_SID 0xFFFF0000 // Sub System ID
- #define B_PCH_LPSS_DMAC_SSID_SVID 0x0000FFFF // Sub System Vendor ID
- #define R_PCH_LPSS_DMAC_ERBAR 0x30 // Expansion ROM BAR
- #define B_PCH_LPSS_DMAC_ERBAR_BA 0xFFFFFFFF // Expansion ROM Base Address
- #define R_PCH_LPSS_DMAC_CAPPTR 0x34 // Capability Pointer
- #define B_PCH_LPSS_DMAC_CAPPTR_CPPWR 0xFF // Capability Pointer Power
- #define R_PCH_LPSS_DMAC_INTR 0x3C // Interrupt
- #define B_PCH_LPSS_DMAC_INTR_ML 0xFF000000 // Max Latency
- #define B_PCH_LPSS_DMAC_INTR_MG 0x00FF0000
- #define B_PCH_LPSS_DMAC_INTR_IP 0x00000F00 // Interrupt Pin
- #define B_PCH_LPSS_DMAC_INTR_IL 0x000000FF // Interrupt Line
- #define R_PCH_LPSS_DMAC_PCAPID 0x80 // Power Capability ID
- #define B_PCH_LPSS_DMAC_PCAPID_PS 0xF8000000 // PME Support
- #define B_PCH_LPSS_DMAC_PCAPID_VS 0x00070000 // Version
- #define B_PCH_LPSS_DMAC_PCAPID_NC 0x0000FF00 // Next Capability
- #define B_PCH_LPSS_DMAC_PCAPID_PC 0x000000FF // Power Capability
- #define R_PCH_LPSS_DMAC_PCS 0x84 // PME Control Status
- #define B_PCH_LPSS_DMAC_PCS_PMESTS BIT15 // PME Status
- #define B_PCH_LPSS_DMAC_PCS_PMEEN BIT8 // PME Enable
- #define B_PCH_LPSS_DMAC_PCS_NSS BIT3 // No Soft Reset
- #define B_PCH_LPSS_DMAC_PCS_PS (BIT1 | BIT0) // Power State
- #define R_PCH_LPSS_DMAC_MANID 0xF8 // Manufacturer ID
- #define B_PCH_LPSS_DMAC_MANID_MANID 0xFFFFFFFF // Manufacturer ID
- //
- // LPSS I2C Module
- // PCI Config Space Registers
- //
- #define PCI_DEVICE_NUMBER_PCH_LPSS_I2C 24
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C0 1
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C1 2
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C2 3
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C3 4
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C4 5
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C5 6
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_I2C6 7
- #define R_PCH_LPSS_I2C_DEVVENDID 0x00 // Device ID & Vendor ID
- #define B_PCH_LPSS_I2C_DEVVENDID_DID 0xFFFF0000 // Device ID
- #define B_PCH_LPSS_I2C_DEVVENDID_VID 0x0000FFFF // Vendor ID
- #define R_PCH_LPSS_I2C_STSCMD 0x04 // Status & Command
- #define B_PCH_LPSS_I2C_STSCMD_RMA BIT29 // RMA
- #define B_PCH_LPSS_I2C_STSCMD_RCA BIT28 // RCA
- #define B_PCH_LPSS_I2C_STSCMD_CAPLIST BIT20 // Capability List
- #define B_PCH_LPSS_I2C_STSCMD_INTRSTS BIT19 // Interrupt Status
- #define B_PCH_LPSS_I2C_STSCMD_INTRDIS BIT10 // Interrupt Disable
- #define B_PCH_LPSS_I2C_STSCMD_SERREN BIT8 // SERR# Enable
- #define B_PCH_LPSS_I2C_STSCMD_BME BIT2 // Bus Master Enable
- #define B_PCH_LPSS_I2C_STSCMD_MSE BIT1 // Memory Space Enable
- #define R_PCH_LPSS_I2C_REVCC 0x08 // Revision ID & Class Code
- #define B_PCH_LPSS_I2C_REVCC_CC 0xFFFFFF00 // Class Code
- #define B_PCH_LPSS_I2C_REVCC_RID 0x000000FF // Revision ID
- #define R_PCH_LPSS_I2C_CLHB 0x0C
- #define B_PCH_LPSS_I2C_CLHB_MULFNDEV BIT23
- #define B_PCH_LPSS_I2C_CLHB_HT 0x007F0000 // Header Type
- #define B_PCH_LPSS_I2C_CLHB_LT 0x0000FF00 // Latency Timer
- #define B_PCH_LPSS_I2C_CLHB_CLS 0x000000FF // Cache Line Size
- #define R_PCH_LPSS_I2C_BAR 0x10 // BAR
- #define B_PCH_LPSS_I2C_BAR_BA 0xFFFFF000 // Base Address
- #define V_PCH_LPSS_I2C_BAR_SIZE 0x1000
- #define N_PCH_LPSS_I2C_BAR_ALIGNMENT 12
- #define B_PCH_LPSS_I2C_BAR_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_I2C_BAR_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_I2C_BAR_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_I2C_BAR_MS BIT0 // Message Space
- #define R_PCH_LPSS_I2C_BAR1 0x14 // BAR 1
- #define B_PCH_LPSS_I2C_BAR1_BA 0xFFFFF000 // Base Address
- #define B_PCH_LPSS_I2C_BAR1_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_I2C_BAR1_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_I2C_BAR1_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_I2C_BAR1_MS BIT0 // Message Space
- #define R_PCH_LPSS_I2C_SSID 0x2C // Sub System ID
- #define B_PCH_LPSS_I2C_SSID_SID 0xFFFF0000 // Sub System ID
- #define B_PCH_LPSS_I2C_SSID_SVID 0x0000FFFF // Sub System Vendor ID
- #define R_PCH_LPSS_I2C_ERBAR 0x30 // Expansion ROM BAR
- #define B_PCH_LPSS_I2C_ERBAR_BA 0xFFFFFFFF // Expansion ROM Base Address
- #define R_PCH_LPSS_I2C_CAPPTR 0x34 // Capability Pointer
- #define B_PCH_LPSS_I2C_CAPPTR_CPPWR 0xFF // Capability Pointer Power
- #define R_PCH_LPSS_I2C_INTR 0x3C // Interrupt
- #define B_PCH_LPSS_I2C_INTR_ML 0xFF000000 // Max Latency
- #define B_PCH_LPSS_I2C_INTR_MG 0x00FF0000
- #define B_PCH_LPSS_I2C_INTR_IP 0x00000F00 // Interrupt Pin
- #define B_PCH_LPSS_I2C_INTR_IL 0x000000FF // Interrupt Line
- #define R_PCH_LPSS_I2C_PCAPID 0x80 // Power Capability ID
- #define B_PCH_LPSS_I2C_PCAPID_PS 0xF8000000 // PME Support
- #define B_PCH_LPSS_I2C_PCAPID_VS 0x00070000 // Version
- #define B_PCH_LPSS_I2C_PCAPID_NC 0x0000FF00 // Next Capability
- #define B_PCH_LPSS_I2C_PCAPID_PC 0x000000FF // Power Capability
- #define R_PCH_LPSS_I2C_PCS 0x84 // PME Control Status
- #define B_PCH_LPSS_I2C_PCS_PMESTS BIT15 // PME Status
- #define B_PCH_LPSS_I2C_PCS_PMEEN BIT8 // PME Enable
- #define B_PCH_LPSS_I2C_PCS_NSS BIT3 // No Soft Reset
- #define B_PCH_LPSS_I2C_PCS_PS (BIT1 | BIT0) // Power State
- #define R_PCH_LPSS_I2C_MANID 0xF8 // Manufacturer ID
- #define B_PCH_LPSS_I2C_MANID_MANID 0xFFFFFFFF // Manufacturer ID
- //
- // LPSS I2C Module
- // Memory Space Registers
- //
- #define R_PCH_LPSS_I2C_MEM_RESETS 0x804 // Software Reset
- #define B_PCH_LPSS_I2C_MEM_RESETS_FUNC BIT1 // Function Clock Domain Reset
- #define B_PCH_LPSS_I2C_MEM_RESETS_APB BIT0 // APB Domain Reset
- //
- // LPSS PWM Modules
- // PCI Config Space Registers
- //
- #define PCI_DEVICE_NUMBER_PCH_LPSS_PWM 30
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_PWM0 1
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_PWM1 2
- #define R_PCH_LPSS_PWM_DEVVENDID 0x00 // Device ID & Vendor ID
- #define B_PCH_LPSS_PWM_DEVVENDID_DID 0xFFFF0000 // Device ID
- #define B_PCH_LPSS_PWM_DEVVENDID_VID 0x0000FFFF // Vendor ID
- #define R_PCH_LPSS_PWM_STSCMD 0x04 // Status & Command
- #define B_PCH_LPSS_PWM_STSCMD_RMA BIT29 // RMA
- #define B_PCH_LPSS_PWM_STSCMD_RCA BIT28 // RCA
- #define B_PCH_LPSS_PWM_STSCMD_CAPLIST BIT20 // Capability List
- #define B_PCH_LPSS_PWM_STSCMD_INTRSTS BIT19 // Interrupt Status
- #define B_PCH_LPSS_PWM_STSCMD_INTRDIS BIT10 // Interrupt Disable
- #define B_PCH_LPSS_PWM_STSCMD_SERREN BIT8 // SERR# Enable
- #define B_PCH_LPSS_PWM_STSCMD_BME BIT2 // Bus Master Enable
- #define B_PCH_LPSS_PWM_STSCMD_MSE BIT1 // Memory Space Enable
- #define R_PCH_LPSS_PWM_REVCC 0x08 // Revision ID & Class Code
- #define B_PCH_LPSS_PWM_REVCC_CC 0xFFFFFF00 // Class Code
- #define B_PCH_LPSS_PWM_REVCC_RID 0x000000FF // Revision ID
- #define R_PCH_LPSS_PWM_CLHB 0x0C
- #define B_PCH_LPSS_PWM_CLHB_MULFNDEV BIT23
- #define B_PCH_LPSS_PWM_CLHB_HT 0x007F0000 // Header Type
- #define B_PCH_LPSS_PWM_CLHB_LT 0x0000FF00 // Latency Timer
- #define B_PCH_LPSS_PWM_CLHB_CLS 0x000000FF // Cache Line Size
- #define R_PCH_LPSS_PWM_BAR 0x10 // BAR
- #define B_PCH_LPSS_PWM_BAR_BA 0xFFFFF000 // Base Address
- #define V_PCH_LPSS_PWM_BAR_SIZE 0x1000
- #define N_PCH_LPSS_PWM_BAR_ALIGNMENT 12
- #define B_PCH_LPSS_PWM_BAR_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_PWM_BAR_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_PWM_BAR_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_PWM_BAR_MS BIT0 // Message Space
- #define R_PCH_LPSS_PWM_BAR1 0x14 // BAR 1
- #define B_PCH_LPSS_PWM_BAR1_BA 0xFFFFF000 // Base Address
- #define B_PCH_LPSS_PWM_BAR1_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_PWM_BAR1_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_PWM_BAR1_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_PWM_BAR1_MS BIT0 // Message Space
- #define R_PCH_LPSS_PWM_SSID 0x2C // Sub System ID
- #define B_PCH_LPSS_PWM_SSID_SID 0xFFFF0000 // Sub System ID
- #define B_PCH_LPSS_PWM_SSID_SVID 0x0000FFFF // Sub System Vendor ID
- #define R_PCH_LPSS_PWM_ERBAR 0x30 // Expansion ROM BAR
- #define B_PCH_LPSS_PWM_ERBAR_BA 0xFFFFFFFF // Expansion ROM Base Address
- #define R_PCH_LPSS_PWM_CAPPTR 0x34 // Capability Pointer
- #define B_PCH_LPSS_PWM_CAPPTR_CPPWR 0xFF // Capability Pointer Power
- #define R_PCH_LPSS_PWM_INTR 0x3C // Interrupt
- #define B_PCH_LPSS_PWM_INTR_ML 0xFF000000 // Max Latency
- #define B_PCH_LPSS_PWM_INTR_MG 0x00FF0000
- #define B_PCH_LPSS_PWM_INTR_IP 0x00000F00 // Interrupt Pin
- #define B_PCH_LPSS_PWM_INTR_IL 0x000000FF // Interrupt Line
- #define R_PCH_LPSS_PWM_PCAPID 0x80 // Power Capability ID
- #define B_PCH_LPSS_PWM_PCAPID_PS 0xF8000000 // PME Support
- #define B_PCH_LPSS_PWM_PCAPID_VS 0x00070000 // Version
- #define B_PCH_LPSS_PWM_PCAPID_NC 0x0000FF00 // Next Capability
- #define B_PCH_LPSS_PWM_PCAPID_PC 0x000000FF // Power Capability
- #define R_PCH_LPSS_PWM_PCS 0x84 // PME Control Status
- #define B_PCH_LPSS_PWM_PCS_PMESTS BIT15 // PME Status
- #define B_PCH_LPSS_PWM_PCS_PMEEN BIT8 // PME Enable
- #define B_PCH_LPSS_PWM_PCS_NSS BIT3 // No Soft Reset
- #define B_PCH_LPSS_PWM_PCS_PS (BIT1 | BIT0) // Power State
- #define R_PCH_LPSS_PWM_MANID 0xF8 // Manufacturer ID
- #define B_PCH_LPSS_PWM_MANID_MANID 0xFFFFFFFF // Manufacturer ID
- //
- // LPSS PWM Module
- // Memory Space Registers
- //
- #define R_PCH_LPSS_PWM_MEM_RESETS 0x804 // Software Reset
- #define B_PCH_LPSS_PWM_MEM_RESETS_FUNC BIT1 // Function Clock Domain Reset
- #define B_PCH_LPSS_PWM_MEM_RESETS_APB BIT0 // APB Domain Reset
- //
- // LPSS HSUART Modules
- // PCI Config Space Registers
- //
- #define PCI_DEVICE_NUMBER_PCH_LPSS_HSUART 30
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_HSUART0 3
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_HSUART1 4
- #define R_PCH_LPSS_HSUART_DEVVENDID 0x00 // Device ID & Vendor ID
- #define B_PCH_LPSS_HSUART_DEVVENDID_DID 0xFFFF0000 // Device ID
- #define B_PCH_LPSS_HSUART_DEVVENDID_VID 0x0000FFFF // Vendor ID
- #define R_PCH_LPSS_HSUART_STSCMD 0x04 // Status & Command
- #define B_PCH_LPSS_HSUART_STSCMD_RMA BIT29 // RMA
- #define B_PCH_LPSS_HSUART_STSCMD_RCA BIT28 // RCA
- #define B_PCH_LPSS_HSUART_STSCMD_CAPLIST BIT20 // Capability List
- #define B_PCH_LPSS_HSUART_STSCMD_INTRSTS BIT19 // Interrupt Status
- #define B_PCH_LPSS_HSUART_STSCMD_INTRDIS BIT10 // Interrupt Disable
- #define B_PCH_LPSS_HSUART_STSCMD_SERREN BIT8 // SERR# Enable
- #define B_PCH_LPSS_HSUART_STSCMD_BME BIT2 // Bus Master Enable
- #define B_PCH_LPSS_HSUART_STSCMD_MSE BIT1 // Memory Space Enable
- #define R_PCH_LPSS_HSUART_REVCC 0x08 // Revision ID & Class Code
- #define B_PCH_LPSS_HSUART_REVCC_CC 0xFFFFFF00 // Class Code
- #define B_PCH_LPSS_HSUART_REVCC_RID 0x000000FF // Revision ID
- #define R_PCH_LPSS_HSUART_CLHB 0x0C
- #define B_PCH_LPSS_HSUART_CLHB_MULFNDEV BIT23
- #define B_PCH_LPSS_HSUART_CLHB_HT 0x007F0000 // Header Type
- #define B_PCH_LPSS_HSUART_CLHB_LT 0x0000FF00 // Latency Timer
- #define B_PCH_LPSS_HSUART_CLHB_CLS 0x000000FF // Cache Line Size
- #define R_PCH_LPSS_HSUART_BAR 0x10 // BAR
- #define B_PCH_LPSS_HSUART_BAR_BA 0xFFFFF000 // Base Address
- #define V_PCH_LPSS_HSUART_BAR_SIZE 0x1000
- #define N_PCH_LPSS_HSUART_BAR_ALIGNMENT 12
- #define B_PCH_LPSS_HSUART_BAR_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_HSUART_BAR_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_HSUART_BAR_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_HSUART_BAR_MS BIT0 // Message Space
- #define R_PCH_LPSS_HSUART_BAR1 0x14 // BAR 1
- #define B_PCH_LPSS_HSUART_BAR1_BA 0xFFFFF000 // Base Address
- #define B_PCH_LPSS_HSUART_BAR1_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_HSUART_BAR1_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_HSUART_BAR1_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_HSUART_BAR1_MS BIT0 // Message Space
- #define R_PCH_LPSS_HSUART_SSID 0x2C // Sub System ID
- #define B_PCH_LPSS_HSUART_SSID_SID 0xFFFF0000 // Sub System ID
- #define B_PCH_LPSS_HSUART_SSID_SVID 0x0000FFFF // Sub System Vendor ID
- #define R_PCH_LPSS_HSUART_ERBAR 0x30 // Expansion ROM BAR
- #define B_PCH_LPSS_HSUART_ERBAR_BA 0xFFFFFFFF // Expansion ROM Base Address
- #define R_PCH_LPSS_HSUART_CAPPTR 0x34 // Capability Pointer
- #define B_PCH_LPSS_HSUART_CAPPTR_CPPWR 0xFF // Capability Pointer Power
- #define R_PCH_LPSS_HSUART_INTR 0x3C // Interrupt
- #define B_PCH_LPSS_HSUART_INTR_ML 0xFF000000 // Max Latency
- #define B_PCH_LPSS_HSUART_INTR_MG 0x00FF0000
- #define B_PCH_LPSS_HSUART_INTR_IP 0x00000F00 // Interrupt Pin
- #define B_PCH_LPSS_HSUART_INTR_IL 0x000000FF // Interrupt Line
- #define R_PCH_LPSS_HSUART_PCAPID 0x80 // Power Capability ID
- #define B_PCH_LPSS_HSUART_PCAPID_PS 0xF8000000 // PME Support
- #define B_PCH_LPSS_HSUART_PCAPID_VS 0x00070000 // Version
- #define B_PCH_LPSS_HSUART_PCAPID_NC 0x0000FF00 // Next Capability
- #define B_PCH_LPSS_HSUART_PCAPID_PC 0x000000FF // Power Capability
- #define R_PCH_LPSS_HSUART_PCS 0x84 // PME Control Status
- #define B_PCH_LPSS_HSUART_PCS_PMESTS BIT15 // PME Status
- #define B_PCH_LPSS_HSUART_PCS_PMEEN BIT8 // PME Enable
- #define B_PCH_LPSS_HSUART_PCS_NSS BIT3 // No Soft Reset
- #define B_PCH_LPSS_HSUART_PCS_PS (BIT1 | BIT0) // Power State
- #define R_PCH_LPSS_HSUART_MANID 0xF8 // Manufacturer ID
- #define B_PCH_LPSS_HSUART_MANID_MANID 0xFFFFFFFF // Manufacturer ID
- //
- // LPSS HSUART Module
- // Memory Space Registers
- //
- #define R_PCH_LPSS_HSUART_MEM_PCP 0x800 // Private Clock Parameters
- #define B_PCH_LPSS_HSUART_MEM_PCP_CLKUPDATE BIT31 // Clock Divider Update
- #define B_PCH_LPSS_HSUART_MEM_PCP_NVAL 0x7FFF0000 // N value for the M over N divider
- #define B_PCH_LPSS_HSUART_MEM_PCP_MVAL 0x0000FFFE // M value for the M over N divider
- #define B_PCH_LPSS_HSUART_MEM_PCP_CLKEN BIT0 // Clock Enable
- #define R_PCH_LPSS_HSUART_MEM_RESETS 0x804 // Software Reset
- #define B_PCH_LPSS_HSUART_MEM_RESETS_FUNC BIT1 // Function Clock Domain Reset
- #define B_PCH_LPSS_HSUART_MEM_RESETS_APB BIT0 // APB Domain Reset
- //
- // LPSS SPI Module
- // PCI Config Space Registers
- //
- #define PCI_DEVICE_NUMBER_PCH_LPSS_SPI 30
- #define PCI_FUNCTION_NUMBER_PCH_LPSS_SPI 5
- #define R_PCH_LPSS_SPI_DEVVENDID 0x00 // Device ID & Vendor ID
- #define B_PCH_LPSS_SPI_DEVVENDID_DID 0xFFFF0000 // Device ID
- #define B_PCH_LPSS_SPI_DEVVENDID_VID 0x0000FFFF // Vendor ID
- #define R_PCH_LPSS_SPI_STSCMD 0x04 // Status & Command
- #define B_PCH_LPSS_SPI_STSCMD_RMA BIT29 // RMA
- #define B_PCH_LPSS_SPI_STSCMD_RCA BIT28 // RCA
- #define B_PCH_LPSS_SPI_STSCMD_CAPLIST BIT20 // Capability List
- #define B_PCH_LPSS_SPI_STSCMD_INTRSTS BIT19 // Interrupt Status
- #define B_PCH_LPSS_SPI_STSCMD_INTRDIS BIT10 // Interrupt Disable
- #define B_PCH_LPSS_SPI_STSCMD_SERREN BIT8 // SERR# Enable
- #define B_PCH_LPSS_SPI_STSCMD_BME BIT2 // Bus Master Enable
- #define B_PCH_LPSS_SPI_STSCMD_MSE BIT1 // Memory Space Enable
- #define R_PCH_LPSS_SPI_REVCC 0x08 // Revision ID & Class Code
- #define B_PCH_LPSS_SPI_REVCC_CC 0xFFFFFF00 // Class Code
- #define B_PCH_LPSS_SPI_REVCC_RID 0x000000FF // Revision ID
- #define R_PCH_LPSS_SPI_CLHB 0x0C
- #define B_PCH_LPSS_SPI_CLHB_MULFNDEV BIT23
- #define B_PCH_LPSS_SPI_CLHB_HT 0x007F0000 // Header Type
- #define B_PCH_LPSS_SPI_CLHB_LT 0x0000FF00 // Latency Timer
- #define B_PCH_LPSS_SPI_CLHB_CLS 0x000000FF // Cache Line Size
- #define R_PCH_LPSS_SPI_BAR 0x10 // BAR
- #define B_PCH_LPSS_SPI_BAR_BA 0xFFFFF000 // Base Address
- #define V_PCH_LPSS_SPI_BAR_SIZE 0x1000
- #define N_PCH_LPSS_SPI_BAR_ALIGNMENT 12
- #define B_PCH_LPSS_SPI_BAR_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_SPI_BAR_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_SPI_BAR_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_SPI_BAR_MS BIT0 // Message Space
- #define R_PCH_LPSS_SPI_BAR1 0x14 // BAR 1
- #define B_PCH_LPSS_SPI_BAR1_BA 0xFFFFF000 // Base Address
- #define B_PCH_LPSS_SPI_BAR1_SI 0x00000FF0 // Size Indicator
- #define B_PCH_LPSS_SPI_BAR1_PF BIT3 // Prefetchable
- #define B_PCH_LPSS_SPI_BAR1_TYPE (BIT2 | BIT1) // Type
- #define B_PCH_LPSS_SPI_BAR1_MS BIT0 // Message Space
- #define R_PCH_LPSS_SPI_SSID 0x2C // Sub System ID
- #define B_PCH_LPSS_SPI_SSID_SID 0xFFFF0000 // Sub System ID
- #define B_PCH_LPSS_SPI_SSID_SVID 0x0000FFFF // Sub System Vendor ID
- #define R_PCH_LPSS_SPI_ERBAR 0x30 // Expansion ROM BAR
- #define B_PCH_LPSS_SPI_ERBAR_BA 0xFFFFFFFF // Expansion ROM Base Address
- #define R_PCH_LPSS_SPI_CAPPTR 0x34 // Capability Pointer
- #define B_PCH_LPSS_SPI_CAPPTR_CPPWR 0xFF // Capability Pointer Power
- #define R_PCH_LPSS_SPI_INTR 0x3C // Interrupt
- #define B_PCH_LPSS_SPI_INTR_ML 0xFF000000 // Max Latency
- #define B_PCH_LPSS_SPI_INTR_MG 0x00FF0000
- #define B_PCH_LPSS_SPI_INTR_IP 0x00000F00 // Interrupt Pin
- #define B_PCH_LPSS_SPI_INTR_IL 0x000000FF // Interrupt Line
- #define R_PCH_LPSS_SPI_PCAPID 0x80 // Power Capability ID
- #define B_PCH_LPSS_SPI_PCAPID_PS 0xF8000000 // PME Support
- #define B_PCH_LPSS_SPI_PCAPID_VS 0x00070000 // Version
- #define B_PCH_LPSS_SPI_PCAPID_NC 0x0000FF00 // Next Capability
- #define B_PCH_LPSS_SPI_PCAPID_PC 0x000000FF // Power Capability
- #define R_PCH_LPSS_SPI_PCS 0x84 // PME Control Status
- #define B_PCH_LPSS_SPI_PCS_PMESTS BIT15 // PME Status
- #define B_PCH_LPSS_SPI_PCS_PMEEN BIT8 // PME Enable
- #define B_PCH_LPSS_SPI_PCS_NSS BIT3 // No Soft Reset
- #define B_PCH_LPSS_SPI_PCS_PS (BIT1 | BIT0) // Power State
- #define R_PCH_LPSS_SPI_MANID 0xF8 // Manufacturer ID
- #define B_PCH_LPSS_SPI_MANID_MANID 0xFFFFFFFF // Manufacturer ID
- //
- // LPSS SPI Module
- // Memory Space Registers
- //
- #define R_PCH_LPSS_SPI_MEM_PCP 0x400 // Private Clock Parameters
- #define B_PCH_LPSS_SPI_MEM_PCP_CLKUPDATE BIT31 // Clock Divider Update
- #define B_PCH_LPSS_SPI_MEM_PCP_NVAL 0x7FFF0000 // N value for the M over N divider
- #define B_PCH_LPSS_SPI_MEM_PCP_MVAL 0x0000FFFE // M value for the M over N divider
- #define B_PCH_LPSS_SPI_MEM_PCP_CLKEN BIT0 // Clock Enable
- #define R_PCH_LPSS_SPI_MEM_RESETS 0x404 // Software Reset
- #define B_PCH_LPSS_SPI_MEM_RESETS_FUNC BIT1 // Function Clock Domain Reset
- #define B_PCH_LPSS_SPI_MEM_RESETS_APB BIT0 // APB Domain Reset
- #endif
|