1 /*
2  * Copyright (c) 2019-2023 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_sie_drv.h"
149 extern struct mpc_sie_dev_t MPC_ISRAM0_DEV_S;
150 #endif
151 
152 #ifdef MPC_ISRAM1_S
153 #include "mpc_sie_drv.h"
154 extern struct mpc_sie_dev_t MPC_ISRAM1_DEV_S;
155 #endif
156 
157 #ifdef MPC_ISRAM2_S
158 #include "mpc_sie_drv.h"
159 extern struct mpc_sie_dev_t MPC_ISRAM2_DEV_S;
160 #endif
161 
162 #ifdef MPC_ISRAM3_S
163 #include "mpc_sie_drv.h"
164 extern struct mpc_sie_dev_t MPC_ISRAM3_DEV_S;
165 #endif
166 
167 #ifdef MPC_BRAM_S
168 #include "mpc_sie_drv.h"
169 extern struct mpc_sie_dev_t MPC_BRAM_DEV_S;
170 #endif
171 
172 #ifdef MPC_QSPI_S
173 #include "mpc_sie_drv.h"
174 extern struct mpc_sie_dev_t MPC_QSPI_DEV_S;
175 #endif
176 
177 #ifdef MPC_DDR4_S
178 #include "mpc_sie_drv.h"
179 extern struct mpc_sie_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