1 /* 2 * Copyright (c) 2017-2020 Arm Limited. All rights reserved. 3 * 4 * Licensed under the Apache License Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing software 11 * distributed under the License is distributed on an "AS IS" BASIS 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /** 18 * \file device_definition.h 19 * \brief The structure definitions in this file are exported based on the 20 * peripheral definitions from device_cfg.h. 21 * This file is meant to be used as a helper for baremetal 22 * applications and/or as an example of how to configure the generic 23 * driver structures. 24 */ 25 26 #ifndef __MUSCA_B1_DEVICE_DEFINITION_H__ 27 #define __MUSCA_B1_DEVICE_DEFINITION_H__ 28 29 #include "device_cfg.h" 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 /* ======= Peripheral configuration structure declarations ======= */ 36 37 /* ARM SCC driver structures */ 38 #ifdef MUSCA_B1_SCC_S 39 #include "musca_b1_scc_drv.h" 40 extern struct musca_b1_scc_dev_t MUSCA_B1_SCC_DEV_S; 41 #endif 42 43 /* ARM PPC driver structures */ 44 #ifdef AHB_PPC0_S 45 #include "ppc_sse200_drv.h" 46 extern struct ppc_sse200_dev_t AHB_PPC0_DEV_S; 47 #endif 48 49 #ifdef AHB_PPCEXP0_S 50 #include "ppc_sse200_drv.h" 51 extern struct ppc_sse200_dev_t AHB_PPCEXP0_DEV_S; 52 #endif 53 54 #ifdef AHB_PPCEXP1_S 55 #include "ppc_sse200_drv.h" 56 extern struct ppc_sse200_dev_t AHB_PPCEXP1_DEV_S; 57 #endif 58 59 #ifdef AHB_PPCEXP2_S 60 #include "ppc_sse200_drv.h" 61 extern struct ppc_sse200_dev_t AHB_PPCEXP2_DEV_S; 62 #endif 63 64 #ifdef AHB_PPCEXP3_S 65 #include "ppc_sse200_drv.h" 66 extern struct ppc_sse200_dev_t AHB_PPCEXP3_DEV_S; 67 #endif 68 69 #ifdef APB_PPC0_S 70 #include "ppc_sse200_drv.h" 71 extern struct ppc_sse200_dev_t APB_PPC0_DEV_S; 72 #endif 73 74 #ifdef APB_PPC1_S 75 #include "ppc_sse200_drv.h" 76 extern struct ppc_sse200_dev_t APB_PPC1_DEV_S; 77 #endif 78 79 #ifdef APB_PPCEXP0_S 80 #include "ppc_sse200_drv.h" 81 extern struct ppc_sse200_dev_t APB_PPCEXP0_DEV_S; 82 #endif 83 84 #ifdef APB_PPCEXP1_S 85 #include "ppc_sse200_drv.h" 86 extern struct ppc_sse200_dev_t APB_PPCEXP1_DEV_S; 87 #endif 88 89 #ifdef APB_PPCEXP2_S 90 #include "ppc_sse200_drv.h" 91 extern struct ppc_sse200_dev_t APB_PPCEXP2_DEV_S; 92 #endif 93 94 #ifdef APB_PPCEXP3_S 95 #include "ppc_sse200_drv.h" 96 extern struct ppc_sse200_dev_t APB_PPCEXP3_DEV_S; 97 #endif 98 99 /* ARM MPC SIE 200 driver structures */ 100 #ifdef MPC_ISRAM0_S 101 #include "mpc_sie200_drv.h" 102 extern struct mpc_sie200_dev_t MPC_ISRAM0_DEV_S; 103 #endif 104 #ifdef MPC_ISRAM1_S 105 #include "mpc_sie200_drv.h" 106 extern struct mpc_sie200_dev_t MPC_ISRAM1_DEV_S; 107 #endif 108 #ifdef MPC_ISRAM2_S 109 #include "mpc_sie200_drv.h" 110 extern struct mpc_sie200_dev_t MPC_ISRAM2_DEV_S; 111 #endif 112 #ifdef MPC_ISRAM3_S 113 #include "mpc_sie200_drv.h" 114 extern struct mpc_sie200_dev_t MPC_ISRAM3_DEV_S; 115 #endif 116 #ifdef MPC_CODE_SRAM_S 117 #include "mpc_sie200_drv.h" 118 extern struct mpc_sie200_dev_t MPC_CODE_SRAM_DEV_S; 119 #endif 120 #ifdef MPC_QSPI_S 121 #include "mpc_sie200_drv.h" 122 extern struct mpc_sie200_dev_t MPC_QSPI_DEV_S; 123 #endif 124 #ifdef MPC_EFLASH0_S 125 #include "mpc_sie200_drv.h" 126 extern struct mpc_sie200_dev_t MPC_EFLASH0_DEV_S; 127 #endif 128 #ifdef MPC_EFLASH1_S 129 #include "mpc_sie200_drv.h" 130 extern struct mpc_sie200_dev_t MPC_EFLASH1_DEV_S; 131 #endif 132 133 /** CMSDK GPIO driver structures */ 134 #ifdef GPIO0_CMSDK_S 135 #include "gpio_cmsdk_drv.h" 136 extern struct gpio_cmsdk_dev_t GPIO0_CMSDK_DEV_S; 137 #endif 138 139 /** CMSDK Timer driver structures */ 140 #ifdef CMSDK_TIMER0_S 141 #include "timer_cmsdk_drv.h" 142 extern struct timer_cmsdk_dev_t CMSDK_TIMER0_DEV_S; 143 #endif 144 #ifdef CMSDK_TIMER0_NS 145 #include "timer_cmsdk_drv.h" 146 extern struct timer_cmsdk_dev_t CMSDK_TIMER0_DEV_NS; 147 #endif 148 149 #ifdef CMSDK_TIMER1_S 150 #include "timer_cmsdk_drv.h" 151 extern struct timer_cmsdk_dev_t CMSDK_TIMER1_DEV_S; 152 #endif 153 #ifdef CMSDK_TIMER1_NS 154 #include "timer_cmsdk_drv.h" 155 extern struct timer_cmsdk_dev_t CMSDK_TIMER1_DEV_NS; 156 #endif 157 158 /** ARM UART PL011 driver structures */ 159 #ifdef UART0_PL011_S 160 #include "uart_pl011_drv.h" 161 extern struct uart_pl011_dev_t UART0_PL011_DEV_S; 162 #endif 163 #ifdef UART0_PL011_NS 164 #include "uart_pl011_drv.h" 165 extern struct uart_pl011_dev_t UART0_PL011_DEV_NS; 166 #endif 167 #ifdef UART1_PL011_S 168 #include "uart_pl011_drv.h" 169 extern struct uart_pl011_dev_t UART1_PL011_DEV_S; 170 #endif 171 #ifdef UART1_PL011_NS 172 #include "uart_pl011_drv.h" 173 extern struct uart_pl011_dev_t UART1_PL011_DEV_NS; 174 #endif 175 176 #ifdef GFC100_EFLASH0_S 177 #include "gfc100_eflash_drv.h" 178 extern struct gfc100_eflash_dev_t GFC100_EFLASH0_DEV_S; 179 #endif 180 #ifdef GFC100_EFLASH1_S 181 #include "gfc100_eflash_drv.h" 182 extern struct gfc100_eflash_dev_t GFC100_EFLASH1_DEV_S; 183 #endif 184 185 /* QSPI Flash Controller driver structures */ 186 #ifdef QSPI_IP6514E_S 187 #include "qspi_ip6514e_drv.h" 188 extern struct qspi_ip6514e_dev_t QSPI_DEV_S; 189 #endif 190 191 #ifdef QSPI_IP6514E_NS 192 #include "qspi_ip6514e_drv.h" 193 extern struct qspi_ip6514e_dev_t QSPI_DEV_NS; 194 #endif 195 196 /* SE MHU */ 197 #ifdef SE_MHU_SENDER_S 198 #include "mhu_v2_x.h" 199 extern struct mhu_v2_x_dev_t SE_MHU_SENDER_DEV_S; 200 #endif 201 #ifdef SE_MHU_SENDER_NS 202 #include "mhu_v2_x.h" 203 extern struct mhu_v2_x_dev_t SE_MHU_SENDER_DEV_NS; 204 #endif 205 206 #ifdef SE_MHU_RECEIVER_S 207 #include "mhu_v2_x.h" 208 extern struct mhu_v2_x_dev_t SE_MHU_RECEIVER_DEV_S; 209 #endif 210 #ifdef SE_MHU_RECEIVER_NS 211 #include "mhu_v2_x.h" 212 extern struct mhu_v2_x_dev_t SE_MHU_RECEIVER_DEV_NS; 213 #endif 214 215 /* ======= External peripheral configuration structure declarations ======= */ 216 217 /* MT25QL Flash memory library structures */ 218 #if (defined(MT25QL_S) && defined(QSPI_IP6514E_S)) 219 #include "mt25ql_flash_lib.h" 220 extern struct mt25ql_dev_t MT25QL_DEV_S; 221 #endif 222 #if (defined(MT25QL_NS) && defined(QSPI_IP6514E_NS)) 223 #include "mt25ql_flash_lib.h" 224 extern struct mt25ql_dev_t MT25QL_DEV_NS; 225 #endif 226 227 #ifdef __cplusplus 228 } 229 #endif 230 231 #endif /* __MUSCA_B1_DEVICE_DEFINITION_H__ */ 232