1 /* 2 * Copyright (c) 2019 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 __DEVICE_DEFINITION_H__ 27 #define __DEVICE_DEFINITION_H__ 28 29 #include "device_cfg.h" 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 /* ======= Defines peripheral configuration structures ======= */ 36 /* UART CMSDK driver structures */ 37 #ifdef UART0_CMSDK_S 38 #include "uart_cmsdk_drv.h" 39 extern struct uart_cmsdk_dev_t ARM_UART0_DEV_S; 40 #endif 41 #ifdef UART0_CMSDK_NS 42 #include "uart_cmsdk_drv.h" 43 extern struct uart_cmsdk_dev_t ARM_UART0_DEV_NS; 44 #endif 45 46 #ifdef UART1_CMSDK_S 47 #include "uart_cmsdk_drv.h" 48 extern struct uart_cmsdk_dev_t ARM_UART1_DEV_S; 49 #endif 50 #ifdef UART1_CMSDK_NS 51 #include "uart_cmsdk_drv.h" 52 extern struct uart_cmsdk_dev_t ARM_UART1_DEV_NS; 53 #endif 54 55 #ifdef UART2_CMSDK_S 56 #include "uart_cmsdk_drv.h" 57 extern struct uart_cmsdk_dev_t ARM_UART2_DEV_S; 58 #endif 59 #ifdef UART2_CMSDK_NS 60 #include "uart_cmsdk_drv.h" 61 extern struct uart_cmsdk_dev_t ARM_UART2_DEV_NS; 62 #endif 63 64 #ifdef UART3_CMSDK_S 65 #include "uart_cmsdk_drv.h" 66 extern struct uart_cmsdk_dev_t ARM_UART3_DEV_S; 67 #endif 68 #ifdef UART3_CMSDK_NS 69 #include "uart_cmsdk_drv.h" 70 extern struct uart_cmsdk_dev_t ARM_UART3_DEV_NS; 71 #endif 72 73 #ifdef UART4_CMSDK_S 74 #include "uart_cmsdk_drv.h" 75 extern struct uart_cmsdk_dev_t ARM_UART4_DEV_S; 76 #endif 77 #ifdef UART4_CMSDK_NS 78 #include "uart_cmsdk_drv.h" 79 extern struct uart_cmsdk_dev_t ARM_UART4_DEV_NS; 80 #endif 81 82 #ifdef UART5_CMSDK_S 83 #include "uart_cmsdk_drv.h" 84 extern struct uart_cmsdk_dev_t ARM_UART5_DEV_S; 85 #endif 86 #ifdef UART5_CMSDK_NS 87 #include "uart_cmsdk_drv.h" 88 extern struct uart_cmsdk_dev_t ARM_UART5_DEV_NS; 89 #endif 90 91 /* ARM PPC driver structures */ 92 #ifdef AHB_PPC0_S 93 #include "ppc_sse200_drv.h" 94 extern struct ppc_sse200_dev_t AHB_PPC0_DEV_S; 95 #endif 96 97 #ifdef AHB_PPCEXP0_S 98 #include "ppc_sse200_drv.h" 99 extern struct ppc_sse200_dev_t AHB_PPCEXP0_DEV_S; 100 #endif 101 102 #ifdef APB_PPC0_S 103 #include "ppc_sse200_drv.h" 104 extern struct ppc_sse200_dev_t APB_PPC0_DEV_S; 105 #endif 106 107 #ifdef APB_PPC1_S 108 #include "ppc_sse200_drv.h" 109 extern struct ppc_sse200_dev_t APB_PPC1_DEV_S; 110 #endif 111 112 #ifdef APB_PPCEXP0_S 113 #include "ppc_sse200_drv.h" 114 extern struct ppc_sse200_dev_t APB_PPCEXP0_DEV_S; 115 #endif 116 117 #ifdef APB_PPCEXP1_S 118 #include "ppc_sse200_drv.h" 119 extern struct ppc_sse200_dev_t APB_PPCEXP1_DEV_S; 120 #endif 121 122 #ifdef APB_PPCEXP2_S 123 #include "ppc_sse200_drv.h" 124 extern struct ppc_sse200_dev_t APB_PPCEXP2_DEV_S; 125 #endif 126 127 /* CMSDK Timer driver structures */ 128 #ifdef CMSDK_TIMER0_S 129 #include "timer_cmsdk_drv.h" 130 extern struct timer_cmsdk_dev_t CMSDK_TIMER0_DEV_S; 131 #endif 132 #ifdef CMSDK_TIMER0_NS 133 #include "timer_cmsdk_drv.h" 134 extern struct timer_cmsdk_dev_t CMSDK_TIMER0_DEV_NS; 135 #endif 136 137 #ifdef CMSDK_TIMER1_S 138 #include "timer_cmsdk_drv.h" 139 extern struct timer_cmsdk_dev_t CMSDK_TIMER1_DEV_S; 140 #endif 141 #ifdef CMSDK_TIMER1_NS 142 #include "timer_cmsdk_drv.h" 143 extern struct timer_cmsdk_dev_t CMSDK_TIMER1_DEV_NS; 144 #endif 145 146 /* ARM MPC SSE 200 driver structures */ 147 #ifdef MPC_ISRAM0_S 148 #include "mpc_sie200_drv.h" 149 extern struct mpc_sie200_dev_t MPC_ISRAM0_DEV_S; 150 #endif 151 152 #ifdef MPC_ISRAM1_S 153 #include "mpc_sie200_drv.h" 154 extern struct mpc_sie200_dev_t MPC_ISRAM1_DEV_S; 155 #endif 156 157 #ifdef MPC_ISRAM2_S 158 #include "mpc_sie200_drv.h" 159 extern struct mpc_sie200_dev_t MPC_ISRAM2_DEV_S; 160 #endif 161 162 #ifdef MPC_ISRAM3_S 163 #include "mpc_sie200_drv.h" 164 extern struct mpc_sie200_dev_t MPC_ISRAM3_DEV_S; 165 #endif 166 167 #ifdef MPC_BRAM_S 168 #include "mpc_sie200_drv.h" 169 extern struct mpc_sie200_dev_t MPC_BRAM_DEV_S; 170 #endif 171 172 #ifdef MPC_QSPI_S 173 #include "mpc_sie200_drv.h" 174 extern struct mpc_sie200_dev_t MPC_QSPI_DEV_S; 175 #endif 176 177 #ifdef MPC_DDR4_S 178 #include "mpc_sie200_drv.h" 179 extern struct mpc_sie200_dev_t MPC_DDR4_DEV_S; 180 #endif 181 182 #ifdef MPS3_IO_S 183 #include "arm_mps3_io_drv.h" 184 extern struct arm_mps3_io_dev_t MPS3_IO_DEV_S; 185 #endif 186 187 #ifdef MPS3_IO_NS 188 #include "arm_mps3_io_drv.h" 189 extern struct arm_mps3_io_dev_t MPS3_IO_DEV_NS; 190 #endif 191 192 #ifdef __cplusplus 193 } 194 #endif 195 196 #endif /* __DEVICE_DEFINITION_H__ */ 197