/** @file
  Register names for PCH private chipset register
  Conventions:
  Prefixes:
  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 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.
  Registers / bits that are specific to PCH-H denoted by "_H_" in register/bit names.
  Registers / bits that are specific to PCH-LP denoted by "_LP_" in register/bit names.
  e.g., "_PCH_H_", "_PCH_LP_"
  Registers / bits names without _H_ or _LP_ apply for both H and LP.
  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.

  @copyright
  Copyright 2013 - 2021 Intel Corporation. <BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent
**/

#ifndef _PCH_REGS_PCR_H_
#define _PCH_REGS_PCR_H_

///
/// Definition for PCR base address (defined in PchReservedResources.h)
///
//#define PCH_PCR_BASE_ADDRESS            0xFD000000
//#define PCH_PCR_MMIO_SIZE               0x01000000
/**
  Definition for PCR address
  The PCR address is used to the PCR MMIO programming
**/
#define PCH_PCR_ADDRESS(Pid, Offset)                        (PCH_PCR_BASE_ADDRESS | ((UINT8) (Pid) << 16) | (UINT16) (Offset))
#define PCH_PCR_ADDRESS_BASE(PcrBaseAddress, Pid, Offset)   ((UINTN) (PcrBaseAddress) | ((UINT8) (Pid) << 16) | (UINT16) (Offset))

/**
  Definition for SBI PID
  The PCH_SBI_PID defines the PID for PCR MMIO programming and PCH SBI programming as well.
**/

#define  PID_BROADCAST1                         0xFF
#define  PID_BROADCAST2                         0xFE
//Rsv                                = 0xFD-0xF0,
#define  PID_DMI                                0xEF
#define  PID_ESPISPI                            0xEE
#define  PID_ICLK                               0xED
#define  PID_MODPHY4                            0xEB
#define  PID_MODPHY5                            0x10
#define  PID_MODPHY1                            0xE9
#define  PID_PMC                                0xE8
//Rsv                                = 0xE7,
#define  PID_XHCI                               0xE6
#define  PID_OTG                                0xE5
#define  PID_SPE                                0xE4       // Reserved in SKL PCH LP
#define  PID_SPD                                0xE3       // Reserved in SKL PCH LP
#define  PID_SPC                                0xE2
#define  PID_SPB                                0xE1
#define  PID_SPA                                0xE0
#define  PID_UPSX8                              0x06
#define  PID_UPSX16                             0x07
#define  PID_TAP2IOSFSB1                        0xDF
#define  PID_TRSB                               0xDD
#define  PID_ICC                                0xDC
#define  PID_GBE                                0xDB
//Rsv                                = 0xDA,
#define  PID_SATA                               0xD9
#define  PID_SSATA                              0x0F
#define  PID_LDO                                0x14
//Rsv                                = 0xD8,
#define  PID_DSP                                0xD7
//Rsv                                = 0xD6,
#define  PID_FUSE                               0xD5
#define  PID_FSPROX0                            0xD4
#define  PID_DRNG                               0xD2
//Rsv                                = 0xD1,
#define  PID_FIA                                0xCF
#define  PID_FIAWM26                            0x13
//Rsv                                = 0xCE-0xCC,
#define  PID_USB2                               0xCA
//Rsv                                = 0xC8
#define  PID_LPC                                0xC7
#define  PID_SMB                                0xC6
#define  PID_P2S                                0xC5
#define  PID_ITSS                               0xC4
#define  PID_RTC_HOST                           0xC3
//Rsv                                 = 0xC2-0xC1,
#define  PID_PSF5                               0x8F
#define  PID_PSF6                               0x70
#define  PID_PSF7                               0x01
#define  PID_PSF8                               0x29
#define  PID_PSF9                               0x21
#define  PID_PSF10                              0x36
#define  PID_PSF4                               0xBD
#define  PID_PSF3                               0xBC
#define  PID_PSF2                               0xBB
#define  PID_PSF1                               0xBA
#define  PID_HOTHARM                            0xB9
#define  PID_DCI                                0xB8
#define  PID_DFXAGG                             0xB7
#define  PID_NPK                                0xB6
//Rsv                                = 0xB5-0xB1,
#define  PID_MMP0                               0xB0
#define  PID_GPIOCOM0                           0xAF
#define  PID_GPIOCOM1                           0xAE
#define  PID_GPIOCOM2                           0xAD
#define  PID_GPIOCOM3                           0xAC
#define  PID_GPIOCOM4                           0xAB
#define  PID_GPIOCOM5                           0x11
#define  PID_MODPHY2                            0xA9
#define  PID_MODPHY3                            0xA8
//Rsv                                = 0xA7-0xA6,
#define  PID_PNCRC                              0xA5
#define  PID_PNCRB                              0xA4
#define  PID_PNCRA                              0xA3
#define  PID_PNCR0                              0xA2
#define  PID_CSME15                             0x9F // SMS2
#define  PID_CSME14                             0x9E // SMS1
#define  PID_CSME13                             0x9D // PMT
#define  PID_CSME12                             0x9C // PTIO
#define  PID_CSME11                             0x9B // PECI
#define  PID_CSME9                              0x99 // SMT6
#define  PID_CSME8                              0x98 // SMT5
#define  PID_CSME7                              0x97 // SMT4
#define  PID_CSME6                              0x96 // SMT3
#define  PID_CSME5                              0x95 // SMT2
#define  PID_CSME4                              0x94 // SMT1 (SMBus Message Transport 1)
#define  PID_CSME3                              0x93 // FSC
#define  PID_CSME2                              0x92 // USB-R SAI
#define  PID_CSME0                              0x90 // CSE
#define  PID_CSME_PSF                           0x8F // ME PSF
//Rsv                                 = 0x88-0x30,
//#define PID_EVA                              0x2F-0x00
#define  PID_CSMERTC                           0x8E
#define  PID_IEUART                            0x80
#define  PID_IEHOTHAM                          0x7F
#define  PID_IEPMT                             0x7E
#define  PID_IESSTPECI                         0x7D
#define  PID_IEFSC                             0x7C
#define  PID_IESMT5                            0x7B
#define  PID_IESMT4                            0x7A
#define  PID_IESMT3                            0x79
#define  PID_IESMT2                            0x78
#define  PID_IESMT1                            0x77
#define  PID_IESMT0                            0x76
#define  PID_IEUSBR                            0x74
#define  PID_IEPTIO                            0x73
#define  PID_IEIOSFGASKET                      0x72
#define  PID_IEPSF                             0x70
#define  PID_FPK                               0x0A
#define  PID_MP0KR                             0x3C
#define  PID_MP1KR                             0x3E
#define  PID_RUAUX                             0x0B
#define  PID_RUMAIN                            0x3B
#define  PID_EC                                0x20
#define  PID_CPM2                              0x38
#define  PID_CPM1                              0x37
#define  PID_CPM0                              0x0C
#define  PID_VSPTHERM                          0x25
#define  PID_VSPP2SB                           0x24
#define  PID_VSPFPK                            0x22
#define  PID_VSPCPM2                           0x35
#define  PID_VSPCPM1                           0x34
#define  PID_VSPCPM0                           0x33
#define  PID_MSMROM                            0x08
#define  PID_PSTH                              0x89

typedef  UINT8                            PCH_SBI_PID;


#endif
