/** @file
|
Register names for PCH Smbus Device.
|
|
Conventions:
|
|
- Register definition format:
|
Prefix_[GenerationName]_[ComponentName]_SubsystemName_RegisterSpace_RegisterName
|
- Prefix:
|
Definitions beginning with "R_" are registers
|
Definitions beginning with "B_" are bits within registers
|
Definitions beginning with "V_" are meaningful values within the bits
|
Definitions beginning with "S_" are register size
|
Definitions beginning with "N_" are the bit position
|
- [GenerationName]:
|
Three letter acronym of the generation is used .
|
Register name without GenerationName applies to all generations.
|
- [ComponentName]:
|
This field indicates the component name that the register belongs to (e.g. PCH, SA etc.)
|
Register name without ComponentName applies to all components.
|
Register that is specific to -H denoted by "_PCH_H_" in component name.
|
Register that is specific to -LP denoted by "_PCH_LP_" in component name.
|
- SubsystemName:
|
This field indicates the subsystem name of the component that the register belongs to
|
(e.g. PCIE, USB, SATA, GPIO, PMC etc.).
|
- RegisterSpace:
|
MEM - MMIO space register of subsystem.
|
IO - IO space register of subsystem.
|
PCR - Private configuration register of subsystem.
|
CFG - PCI configuration space register of subsystem.
|
- RegisterName:
|
Full register name.
|
|
Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#ifndef _PCH_REGS_SMBUS_H_
|
#define _PCH_REGS_SMBUS_H_
|
|
//
|
// SMBus Controller Registers (D31:F4)
|
//
|
#define PCI_DEVICE_NUMBER_PCH_SMBUS 31
|
#define PCI_FUNCTION_NUMBER_PCH_SMBUS 4
|
#define R_SMBUS_CFG_BASE 0x20
|
#define V_SMBUS_CFG_BASE_SIZE (1 << 5)
|
#define B_SMBUS_CFG_BASE_BAR 0x0000FFE0
|
#define R_SMBUS_CFG_HOSTC 0x40
|
#define B_SMBUS_CFG_HOSTC_SPDWD BIT4
|
#define B_SMBUS_CFG_HOSTC_SSRESET BIT3
|
#define B_SMBUS_CFG_HOSTC_I2C_EN BIT2
|
#define B_SMBUS_CFG_HOSTC_SMI_EN BIT1
|
#define B_SMBUS_CFG_HOSTC_HST_EN BIT0
|
#define R_SMBUS_CFG_TCOBASE 0x50
|
#define B_SMBUS_CFG_TCOBASE_BAR 0x0000FFE0
|
#define R_SMBUS_CFG_TCOCTL 0x54
|
#define B_SMBUS_CFG_TCOCTL_TCO_BASE_EN BIT8
|
#define B_SMBUS_CFG_TCOCTL_TCO_BASE_LOCK BIT0
|
#define R_SMBUS_CFG_64 0x64
|
#define R_SMBUS_CFG_80 0x80
|
|
//
|
// SMBus I/O Registers
|
//
|
#define R_SMBUS_IO_HSTS 0x00 ///< Host Status Register R/W
|
#define B_SMBUS_IO_HBSY 0x01
|
#define B_SMBUS_IO_INTR 0x02
|
#define B_SMBUS_IO_DERR 0x04
|
#define B_SMBUS_IO_BERR 0x08
|
#define B_SMBUS_IO_FAIL 0x10
|
#define B_SMBUS_IO_SMBALERT_STS 0x20
|
#define B_SMBUS_IO_IUS 0x40
|
#define B_SMBUS_IO_BYTE_DONE_STS 0x80
|
#define B_SMBUS_IO_ERROR (B_SMBUS_IO_DERR | B_SMBUS_IO_BERR | B_SMBUS_IO_FAIL)
|
#define B_SMBUS_IO_HSTS_ALL 0xFF
|
#define R_SMBUS_IO_HCTL 0x02 ///< Host Control Register R/W
|
#define B_SMBUS_IO_INTREN 0x01
|
#define B_SMBUS_IO_KILL 0x02
|
#define B_SMBUS_IO_SMB_CMD 0x1C
|
#define V_SMBUS_IO_SMB_CMD_QUICK 0x00
|
#define V_SMBUS_IO_SMB_CMD_BYTE 0x04
|
#define V_SMBUS_IO_SMB_CMD_BYTE_DATA 0x08
|
#define V_SMBUS_IO_SMB_CMD_WORD_DATA 0x0C
|
#define V_SMBUS_IO_SMB_CMD_PROCESS_CALL 0x10
|
#define V_SMBUS_IO_SMB_CMD_BLOCK 0x14
|
#define V_SMBUS_IO_SMB_CMD_IIC_READ 0x18
|
#define V_SMBUS_IO_SMB_CMD_BLOCK_PROCESS 0x1C
|
#define B_SMBUS_IO_LAST_BYTE 0x20
|
#define B_SMBUS_IO_START 0x40
|
#define B_SMBUS_IO_PEC_EN 0x80
|
#define R_SMBUS_IO_HCMD 0x03 ///< Host Command Register R/W
|
#define R_SMBUS_IO_TSA 0x04 ///< Transmit Slave Address Register R/W
|
#define B_SMBUS_IO_RW_SEL 0x01
|
#define B_SMBUS_IO_READ 0x01 // RW
|
#define B_SMBUS_IO_WRITE 0x00 // RW
|
#define B_SMBUS_IO_ADDRESS 0xFE
|
#define R_SMBUS_IO_HD0 0x05 ///< Data 0 Register R/W
|
#define R_SMBUS_IO_HD1 0x06 ///< Data 1 Register R/W
|
#define R_SMBUS_IO_HBD 0x07 ///< Host Block Data Register R/W
|
#define R_SMBUS_IO_PEC 0x08 ///< Packet Error Check Data Register R/W
|
#define R_SMBUS_IO_RSA 0x09 ///< Receive Slave Address Register R/W
|
#define B_SMBUS_IO_SLAVE_ADDR 0x7F
|
#define R_SMBUS_IO_SD 0x0A ///< Receive Slave Data Register R/W
|
#define R_SMBUS_IO_AUXS 0x0C ///< Auxiliary Status Register R/WC
|
#define B_SMBUS_IO_CRCE 0x01
|
#define B_SMBUS_IO_STCO 0x02 ///< SMBus TCO Mode
|
#define R_SMBUS_IO_AUXC 0x0D ///< Auxiliary Control Register R/W
|
#define B_SMBUS_IO_AAC 0x01
|
#define B_SMBUS_IO_E32B 0x02
|
#define R_SMBUS_IO_SMLC 0x0E ///< SMLINK Pin Control Register R/W
|
#define B_SMBUS_IO_SMLINK0_CUR_STS 0x01
|
#define B_SMBUS_IO_SMLINK1_CUR_STS 0x02
|
#define B_SMBUS_IO_SMLINK_CLK_CTL 0x04
|
#define R_SMBUS_IO_SMBC 0x0F ///< SMBus Pin Control Register R/W
|
#define B_SMBUS_IO_SMBCLK_CUR_STS 0x01
|
#define B_SMBUS_IO_SMBDATA_CUR_STS 0x02
|
#define B_SMBUS_IO_SMBCLK_CTL 0x04
|
#define R_SMBUS_IO_SSTS 0x10 ///< Slave Status Register R/WC
|
#define B_SMBUS_IO_HOST_NOTIFY_STS 0x01
|
#define R_SMBUS_IO_SCMD 0x11 ///< Slave Command Register R/W
|
#define B_SMBUS_IO_HOST_NOTIFY_INTREN 0x01
|
#define B_SMBUS_IO_HOST_NOTIFY_WKEN 0x02
|
#define B_SMBUS_IO_SMBALERT_DIS 0x04
|
#define R_SMBUS_IO_NDA 0x14 ///< Notify Device Address Register RO
|
#define B_SMBUS_IO_DEVICE_ADDRESS 0xFE
|
#define R_SMBUS_IO_NDLB 0x16 ///< Notify Data Low Byte Register RO
|
#define R_SMBUS_IO_NDHB 0x17 ///< Notify Data High Byte Register RO
|
|
//
|
// SMBus Private Config Registers
|
// (PID:SMB)
|
//
|
#define R_SMBUS_PCR_TCOCFG 0x00 ///< TCO Configuration register
|
#define B_SMBUS_PCR_TCOCFG_IE BIT7 ///< TCO IRQ Enable
|
#define B_SMBUS_PCR_TCOCFG_IS (BIT2 | BIT1 | BIT0) ///< TCO IRQ Select
|
#define V_SMBUS_PCR_TCOCFG_IRQ_9 0x00
|
#define V_SMBUS_PCR_TCOCFG_IRQ_10 0x01
|
#define V_SMBUS_PCR_TCOCFG_IRQ_11 0x02
|
#define V_SMBUS_PCR_TCOCFG_IRQ_20 0x04 ///< only if APIC enabled
|
#define V_SMBUS_PCR_TCOCFG_IRQ_21 0x05 ///< only if APIC enabled
|
#define V_SMBUS_PCR_TCOCFG_IRQ_22 0x06 ///< only if APIC enabled
|
#define V_SMBUS_PCR_TCOCFG_IRQ_23 0x07 ///< only if APIC enabled
|
#define R_SMBUS_PCR_SMBTM 0x04 ///< SMBus Test Mode
|
#define B_SMBUS_PCR_SMBTM_SMBCT BIT1 ///< SMBus Counter
|
#define B_SMBUS_PCR_SMBTM_SMBDG BIT0 ///< SMBus Deglitch
|
#define R_SMBUS_PCR_SCTM 0x08 ///< Short Counter Test Mode
|
#define B_SMBUS_PCR_SCTM_SSU BIT31 ///< Simulation Speed-Up
|
#define R_SMBUS_PCR_GC 0x0C ///< General Control
|
#define B_SMBUS_PCR_GC_FD BIT0 ///< Function Disable
|
#endif
|