1 /* 2 * Arm SCP/MCP Software 3 * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #ifndef MOD_CCN512_H 9 #define MOD_CCN512_H 10 11 #include <internal/ccn512.h> 12 13 #include <fwk_id.h> 14 #include <fwk_macros.h> 15 16 #include <stdint.h> 17 18 /*! 19 * \addtogroup GroupSYNQUACERModule SYNQUACER Product Modules 20 * \{ 21 */ 22 23 /*! 24 * \defgroup GroupCCN512 CCN512 Driver 25 * 26 * \brief CCN512 device driver. 27 * 28 * \details This module implements a device driver for the CCN512 29 * 30 * \{ 31 */ 32 33 /* 34 * \brief CCN512 memory map 35 */ 36 typedef struct { 37 /*! 38 * \cond 39 */ 40 ccn5xx_mn_reg_t MN_ID_34; 41 ccn5xx_dbg_reg_t DEBUG_ID_34; 42 ccn5xx_region_t RESERVED0[6]; 43 ccn5xx_hni_reg_t HNI_ID_13; 44 ccn5xx_hni_reg_t HNI_ID_34; 45 ccn5xx_region_t RESERVED1[6]; 46 ccn5xx_sbsx_reg_t SBSX_ID_3; 47 ccn5xx_sbsx_reg_t SBSX_ID_8; 48 ccn5xx_sbsx_reg_t SBSX_ID_21; 49 ccn5xx_sbsx_reg_t SBSX_ID_26; 50 ccn5xx_region_t RESERVED2[12]; 51 ccn5xx_hnf_reg_t HNF_ID_2; 52 ccn5xx_hnf_reg_t HNF_ID_5; 53 ccn5xx_hnf_reg_t HNF_ID_6; 54 ccn5xx_hnf_reg_t HNF_ID_9; 55 ccn5xx_hnf_reg_t HNF_ID_20; 56 ccn5xx_hnf_reg_t HNF_ID_23; 57 ccn5xx_hnf_reg_t HNF_ID_24; 58 ccn5xx_hnf_reg_t HNF_ID_27; 59 ccn5xx_region_t RESERVED3[24]; 60 ccn5xx_xp_reg_t XP_ID_0; 61 ccn5xx_xp_reg_t XP_ID_1; 62 ccn5xx_xp_reg_t XP_ID_2; 63 ccn5xx_xp_reg_t XP_ID_3; 64 ccn5xx_xp_reg_t XP_ID_4; 65 ccn5xx_xp_reg_t XP_ID_5; 66 ccn5xx_xp_reg_t XP_ID_6; 67 ccn5xx_xp_reg_t XP_ID_7; 68 ccn5xx_xp_reg_t XP_ID_8; 69 ccn5xx_xp_reg_t XP_ID_9; 70 ccn5xx_xp_reg_t XP_ID_10; 71 ccn5xx_xp_reg_t XP_ID_11; 72 ccn5xx_xp_reg_t XP_ID_12; 73 ccn5xx_xp_reg_t XP_ID_13; 74 ccn5xx_xp_reg_t XP_ID_14; 75 ccn5xx_xp_reg_t XP_ID_15; 76 ccn5xx_xp_reg_t XP_ID_16; 77 ccn5xx_xp_reg_t XP_ID_17; 78 ccn5xx_region_t RESERVED4[47]; 79 ccn5xx_rni_reg_t RNI_ID_1; 80 ccn5xx_region_t RESERVED5[2]; 81 ccn5xx_rni_reg_t RNI_ID_4; 82 ccn5xx_region_t RESERVED6[2]; 83 ccn5xx_rni_reg_t RNI_ID_7; 84 ccn5xx_region_t RESERVED7[2]; 85 ccn5xx_rni_reg_t RNI_ID_10; 86 ccn5xx_region_t RESERVED8[8]; 87 ccn5xx_rni_reg_t RNI_ID_19; 88 ccn5xx_region_t RESERVED9[2]; 89 ccn5xx_rni_reg_t RNI_ID_22; 90 ccn5xx_region_t RESERVED10[2]; 91 ccn5xx_rni_reg_t RNI_ID_25; 92 ccn5xx_region_t RESERVED11[2]; 93 ccn5xx_rni_reg_t RNI_ID_28; 94 /*! 95 * \endcond 96 */ 97 } ccn512_reg_t; 98 99 /*! 100 * \brief APIs to configure ccn512. 101 */ 102 struct mod_ccn512_api { 103 /*! 104 * \brief APIs to configure ccn512 105 * 106 * \param none 107 * 108 */ 109 void (*ccn512_exit)(void); 110 }; 111 112 /*! 113 * \brief CCN512 device configuration data. 114 */ 115 struct mod_ccn512_module_config { 116 /*! Base address of the device registers */ 117 ccn512_reg_t *reg_base; 118 }; 119 120 /*! 121 * \} 122 */ 123 124 /*! 125 * \} 126 */ 127 128 #endif /* MOD_CCN512_H */ 129