/* * Copyright (c) 2021 Microchip Technology Inc. and its subsidiaries. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef _MEC_GLOBAL_CFG_H #define _MEC_GLOBAL_CFG_H #include #include /* * Device and Revision ID 32-bit register * b[7:0] = Revision * b[15:8] = Device Sub-ID * b[31:16] = Device ID * This register can be accesses as bytes or a single 32-bit read from * the EC. Host access byte access via the Host visible configuration * register space at 0x2E/0x2F (default). */ #define MCHP_GCFG_DEV_ID_REG32_OFS 28u #define MCHP_GCFG_DEV_ID_REG_MASK GENMASK(31, 0) #define MCHP_GCFG_REV_ID_POS 0 #define MCHP_GCFG_DID_REV_MASK GENMASK(7, 0) #define MCHP_GCFG_DID_SUB_ID_POS 8 #define MCHP_GCFG_DID_SUB_ID_MASK GENMASK(15, 8) #define MCHP_GCFG_DID_DEV_ID_POS 16 #define MCHP_GCFG_DID_DEV_ID_MASK GENMASK(31, 16) /* Byte[0] at offset 0x1c is the 8-bit revision ID */ #define MCHP_GCFG_REV_A1 2u #define MCHP_GCFG_REV_B0 3u /* * Byte[1] at offset 0x1D is the 8-bit Sub-ID * bits[3:0] = package type * bits[7:4] = chip family */ #define MCHP_GCFG_SUB_ID_OFS 0x1du #define MCHP_GCFG_SUB_ID_PKG_POS 0 #define MCHP_GCFG_SUB_ID_PKG_MASK GENMASK(3, 0) #define MCHP_GCFG_SUB_ID_PKG_UNDEF 0u #define MCHP_GCFG_SUB_ID_PKG_64_PIN 1u #define MCHP_GCFG_SUB_ID_PKG_84_PIN 2u #define MCHP_GCFG_SUB_ID_PKG_128_PIN 3u #define MCHP_GCFG_SUB_ID_PKG_144_PIN 4u #define MCHP_GCFG_SUB_ID_PKG_176_PIN 7u /* chip family field */ #define MCHP_GCFG_SUB_ID_FAM_POS 4u #define MCHP_GCFG_SUB_ID_FAM_MASK GENMASK(7, 4) #define MCHP_GCFG_SUB_ID_FAM_UNDEF 0u #define MCHP_GCFG_SUB_ID_FAM_1 0x10u #define MCHP_GCFG_SUB_ID_FAM_2 0x20u #define MCHP_GCFG_SUB_ID_FAM_3 0x30u #define MCHP_GCFG_SUB_ID_FAM_4 0x40u #define MCHP_GCFG_SUB_ID_FAM_5 0x50u #define MCHP_GCFG_SUB_ID_FAM_6 0x60u #define MCHP_GCFG_SUB_ID_FAM_7 0x70u #define MCHP_GCFG_DEV_ID_LSB_OFS 0x1eu #define MCHP_GCFG_DEV_ID_MSB_OFS 0x1fu #define MCHP_GCFG_DEV_ID_172X 0x0022u #define MCHP_GCFG_DEV_ID_172X_LSB 0x22u #define MCHP_GCFG_DEV_ID_172X_MSB 0x00u /* SZ 144-pin package parts */ #define MCHP_GCFG_DEVID_1723_144 0x00223400u #define MCHP_GCFG_DEVID_1727_144 0x00227400u /* LJ 176-pin package parts */ #define MCHP_GCFG_DID_1721_176 0x00222700u #define MCHP_GCFG_DID_1723_176 0x00223700u #define MCHP_GCFG_DID_1727_176 0x00227700u /* Legacy Device ID value */ #define MCHP_CCFG_LEGACY_DID_REG_OFS 0x20u #define MCHP_GCFG_LEGACY_DEV_ID 0xfeu /* Host access via configuration port (default I/O locations 0x2E/0x2F) */ #define MCHP_HOST_CFG_INDEX_IO_DFLT 0x2eu #define MCHP_HOST_CFG_DATA_IO_DFLT 0x2fu #define MCHP_HOST_CFG_UNLOCK 0x55u #define MCHP_HOST_CFG_LOCK 0xaau /* Logical Device Configuration Indices */ #define MCHP_HOST_CFG_LDN_IDX 7u #define MCHP_HOST_CFG_LD_ACTIVATE_IDX 0x30u #define MCHP_HOST_CFG_LD_BASE_ADDR_IDX 0x34u #define MCHP_HOST_CFG_LD_CFG_SEL_IDX 0xf0u /* Global Configuration Registers */ struct global_cfg_regs { volatile uint8_t RSVD0[2]; volatile uint8_t TEST02; volatile uint8_t RSVD1[4]; volatile uint8_t LOG_DEV_NUM; volatile uint8_t RSVD2[20]; volatile uint32_t DEV_REV_ID; volatile uint8_t LEGACY_DEV_ID; volatile uint8_t RSVD3[14]; }; #endif /* #ifndef _MEC_GLOBAL_CFG_H */