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