1 /******************************************************************************* 2 * Copyright 2019-2021 Microchip FPGA Embedded Systems Solutions. 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 * MPFS HAL Embedded Software 7 * 8 */ 9 10 /******************************************************************************* 11 * @file mss_scb_nwc_regs.h 12 * @author Microchip-FPGA Embedded Systems Solutions 13 * @brief SCB registers and associated structures relating to the NWC 14 * 15 */ 16 17 18 #ifndef MSS_DDR_SGMII_MSS_SCB_NWC_REGS_H_ 19 #define MSS_DDR_SGMII_MSS_SCB_NWC_REGS_H_ 20 21 #include "mpfs_hal/mss_hal.h" 22 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 #ifndef __I 29 #define __I const volatile 30 #endif 31 #ifndef __IO 32 #define __IO volatile 33 #endif 34 #ifndef __O 35 #define __O volatile 36 #endif 37 38 /*------------ NWC PLL definition -----------*/ 39 typedef struct 40 { 41 __IO uint32_t SOFT_RESET; /*!< Offset: 0x0 */ 42 __IO uint32_t PLL_CTRL; /*!< Offset: 0x4 */ 43 __IO uint32_t PLL_REF_FB; /*!< Offset: 0x8 */ 44 __IO uint32_t PLL_FRACN; /*!< Offset: 0xc */ 45 __IO uint32_t PLL_DIV_0_1; /*!< Offset: 0x10 */ 46 __IO uint32_t PLL_DIV_2_3; /*!< Offset: 0x14 */ 47 __IO uint32_t PLL_CTRL2; /*!< Offset: 0x18 */ 48 __IO uint32_t PLL_CAL; /*!< Offset: 0x1c */ 49 __IO uint32_t PLL_PHADJ; /*!< Offset: 0x20 */ 50 __IO uint32_t SSCG_REG_0; /*!< Offset: 0x24 */ 51 __IO uint32_t SSCG_REG_1; /*!< Offset: 0x28 */ 52 __IO uint32_t SSCG_REG_2; /*!< Offset: 0x2c */ 53 __IO uint32_t SSCG_REG_3; /*!< Offset: 0x30 */ 54 } PLL_TypeDef; 55 56 /*------------ NWC PLL MUX definition -----------*/ 57 58 typedef struct 59 { 60 __IO uint32_t SOFT_RESET; /*!< Offset: 0x0 */ 61 __IO uint32_t BCLKMUX; /*!< Offset: 0x4 */ 62 __IO uint32_t PLL_CKMUX; /*!< Offset: 0x8 */ 63 __IO uint32_t MSSCLKMUX; /*!< Offset: 0xc */ 64 __IO uint32_t SPARE0; /*!< Offset: 0x10 */ 65 __IO uint32_t FMETER_ADDR; /*!< Offset: 0x14 */ 66 __IO uint32_t FMETER_DATAW; /*!< Offset: 0x18 */ 67 __IO uint32_t FMETER_DATAR; /*!< Offset: 0x1c */ 68 __IO uint32_t TEST_CTRL; /*!< Offset: 0x20 */ 69 } IOSCB_CFM_MSS; 70 71 typedef struct 72 { 73 __IO uint32_t SOFT_RESET; /*!< Offset: 0x0 */ 74 __IO uint32_t RFCKMUX; /*!< Offset: 0x4 */ 75 __IO uint32_t SGMII_CLKMUX; /*!< Offset: 0x8 */ 76 __IO uint32_t SPARE0; /*!< Offset: 0xc */ 77 __IO uint32_t CLK_XCVR; /*!< Offset: 0x10 */ 78 __IO uint32_t TEST_CTRL; /*!< Offset: 0x14 */ 79 } IOSCB_CFM_SGMII; 80 81 82 typedef struct 83 { 84 __IO uint32_t SOFT_RESET_IOCALIB; /*!< Offset: 0x00 */ 85 __IO uint32_t IOC_REG0; /*!< Offset: 0x04 */ 86 __I uint32_t IOC_REG1; /*!< Offset: 0x08 */ 87 __I uint32_t IOC_REG2; /*!< Offset: 0x0c */ 88 __I uint32_t IOC_REG3; /*!< Offset: 0x10 */ 89 __I uint32_t IOC_REG4; /*!< Offset: 0x14 */ 90 __I uint32_t IOC_REG5; /*!< Offset: 0x18 */ 91 __IO uint32_t IOC_REG6; /*!< Offset: 0x1c */ 92 } IOSCB_IO_CALIB_STRUCT; 93 94 95 #define MSS_SCB_MSS_PLL_BASE (0x3E001000U) /*!< ( MSS_SCB_MSS_PLL_BASE ) Base Address */ 96 #define MSS_SCB_DDR_PLL_BASE (0x3E010000U) /*!< ( MSS_SCB_DDR_PLL_BASE ) Base Address */ 97 #define MSS_SCB_SGMII_PLL_BASE (0x3E080000U) /*!< ( MSS_SCB_SGMII_PLL_BASE ) Base Address */ 98 99 #define MSS_SCB_MSS_MUX_BASE (0x3E002000U) /*!< ( MSS_SCB_MSS_MUX_BASE ) Base Address */ 100 #define MSS_SCB_SGMII_MUX_BASE (0x3E200000U) /*!< ( MSS_SCB_SGMII_PLL_BASE ) Base Address */ 101 102 #define IOSCB_IO_CALIB_SGMII_BASE (0x3E800000U) /*!< ( IOSCB_IO_CALIB_SGMII_BASE ) Base Address */ 103 #define IOSCB_IO_CALIB_DDR_BASE (0x3E040000U) /*!< ( IOSCB_IO_CALIB_SGMII_BASE ) Base Address */ 104 105 106 extern PLL_TypeDef * const MSS_SCB_MSS_PLL; 107 extern PLL_TypeDef * const MSS_SCB_DDR_PLL; 108 extern PLL_TypeDef * const MSS_SCB_SGMII_PLL; 109 extern IOSCB_CFM_MSS * const MSS_SCB_CFM_MSS_MUX; 110 extern IOSCB_CFM_SGMII * const MSS_SCB_CFM_SGMII_MUX; 111 extern IOSCB_IO_CALIB_STRUCT * const IOSCB_IO_CALIB_SGMII; 112 extern IOSCB_IO_CALIB_STRUCT * const IOSCB_IO_CALIB_DDR; 113 114 115 #ifdef __cplusplus 116 } 117 #endif 118 119 #endif /* MSS_DDR_SGMII_MSS_SCB_NWC_REGS_H_ */ 120