1 /*
2  * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #include "target_cfg.h"
9 #include "cmsis.h"
10 
11 struct platform_data_t tfm_peripheral_gpio0 = {
12         GPIO0_CMSDK_BASE_S,
13         GPIO0_CMSDK_BASE_S + 0xFFF,
14         PPC_SP_MAIN_EXP0,
15         GPIO0_MAIN_PPCEXP0_POS_MASK
16 };
17 
18 struct platform_data_t tfm_peripheral_gpio1 = {
19         GPIO1_CMSDK_BASE_S,
20         GPIO1_CMSDK_BASE_S + 0xFFF,
21         PPC_SP_MAIN_EXP0,
22         GPIO1_MAIN_PPCEXP0_POS_MASK
23 };
24 
25 struct platform_data_t tfm_peripheral_gpio2 = {
26         GPIO2_CMSDK_BASE_S,
27         GPIO2_CMSDK_BASE_S + 0xFFF,
28         PPC_SP_MAIN_EXP0,
29         GPIO2_MAIN_PPCEXP0_POS_MASK
30 };
31 
32 struct platform_data_t tfm_peripheral_gpio3 = {
33         GPIO3_CMSDK_BASE_S,
34         GPIO3_CMSDK_BASE_S + 0xFFF,
35         PPC_SP_MAIN_EXP0,
36         GPIO3_MAIN_PPCEXP0_POS_MASK
37 };
38 
39 struct platform_data_t tfm_peripheral_fmc_cmsdk_gpio0 = {
40         FMC_CMSDK_GPIO_0_BASE_S,
41         FMC_CMSDK_GPIO_0_BASE_S + 0xFFF,
42         PPC_SP_MAIN_EXP1,
43         FMC_GPIO0_MAIN_PPCEXP0_POS_MASK
44 };
45 
46 struct platform_data_t tfm_peripheral_fmc_cmsdk_gpio1 = {
47         FMC_CMSDK_GPIO_1_BASE_S,
48         FMC_CMSDK_GPIO_1_BASE_S + 0xFFF,
49         PPC_SP_MAIN_EXP1,
50         FMC_GPIO1_MAIN_PPCEXP0_POS_MASK
51 };
52 
53 struct platform_data_t tfm_peripheral_fmc_cmsdk_gpio2 = {
54         FMC_CMSDK_GPIO_2_BASE_S,
55         FMC_CMSDK_GPIO_2_BASE_S + 0xFFF,
56         PPC_SP_MAIN_EXP1,
57         FMC_GPIO2_MAIN_PPCEXP0_POS_MASK
58 };
59 
60 struct platform_data_t tfm_peripheral_fmc_cmsdk_gpio3 = {
61         FMC_CMSDK_GPIO_3_BASE_S,
62         FMC_CMSDK_GPIO_3_BASE_S + 0xFFF,
63         PPC_SP_MAIN_EXP1,
64         FMC_AHB_USER_MAIN_PPCEXP0_POS_MASK
65 };
66 
67 struct platform_data_t tfm_peripheral_ethernet = {
68         ETHERNET_BASE_S,
69         ETHERNET_BASE_S + 0xFFFFF,
70         PPC_SP_MAIN_EXP0,
71         USB_AND_ETHERNET_MAIN_PPCEXP0_POS_MASK
72 };
73 
74 struct platform_data_t tfm_peripheral_usb = {
75         USB_BASE_S,
76         USB_BASE_S + 0xFFFFF,
77         PPC_SP_MAIN_EXP0,
78         USB_AND_ETHERNET_MAIN_PPCEXP0_POS_MASK
79 };
80 
81 struct platform_data_t tfm_peripheral_timer0 = {
82         SYSTIMER0_ARMV8_M_BASE_S,
83         SYSTIMER0_ARMV8_M_BASE_S + 0xFFF,
84         PPC_SP_PERIPH0,
85         SYSTEM_TIMER0_PERIPH_PPC0_POS_MASK
86 };
87 
88 struct platform_data_t tfm_peripheral_timer1 = {
89         SYSTIMER1_ARMV8_M_BASE_S,
90         SYSTIMER1_ARMV8_M_BASE_S + 0xFFF,
91         PPC_SP_PERIPH0,
92         SYSTEM_TIMER1_PERIPH_PPC0_POS_MASK
93 };
94 
95 struct platform_data_t tfm_peripheral_timer2 = {
96         SYSTIMER2_ARMV8_M_BASE_S,
97         SYSTIMER2_ARMV8_M_BASE_S + 0xFFF,
98         PPC_SP_PERIPH0,
99         SYSTEM_TIMER2_PERIPH_PPC0_POS_MASK
100 };
101 
102 struct platform_data_t tfm_peripheral_timer3 = {
103         SYSTIMER3_ARMV8_M_BASE_S,
104         SYSTIMER3_ARMV8_M_BASE_S + 0xFFF,
105         PPC_SP_PERIPH0,
106         SYSTEM_TIMER3_PERIPH_PPC0_POS_MASK
107 };
108 
109 struct platform_data_t tfm_peripheral_slowclk = {
110         SLOWCLK_TIMER_CMSDK_BASE_S,
111         SLOWCLK_TIMER_CMSDK_BASE_S + 0xFFF,
112         PPC_SP_PERIPH1,
113         SLOWCLK_TIMER_PERIPH_PPC1_POS_MASK
114 };
115 
116 struct platform_data_t tfm_peripheral_touch_i2c = {
117         FPGA_SBCon_I2C_TOUCH_BASE_S,
118         FPGA_SBCon_I2C_TOUCH_BASE_S + 0xFFF,
119         PPC_SP_PERIPH_EXP1,
120         FPGA_I2C_TOUCH_PERIPH_PPCEXP1_POS_MASK
121 };
122 
123 struct platform_data_t tfm_peripheral_audio_i2c = {
124         FPGA_SBCon_I2C_AUDIO_BASE_S,
125         FPGA_SBCon_I2C_AUDIO_BASE_S + 0xFFF,
126         PPC_SP_PERIPH_EXP1,
127         FPGA_I2C_AUDIO_PERIPH_PPCEXP1_POS_MASK
128 };
129 
130 struct platform_data_t tfm_peripheral_adc_spi = {
131         FPGA_SPI_ADC_BASE_S,
132         FPGA_SPI_ADC_BASE_S + 0xFFF,
133         PPC_SP_PERIPH_EXP1,
134         FPGA_SPI_ADC_PERIPH_PPCEXP1_POS_MASK
135 };
136 
137 struct platform_data_t tfm_peripheral_shield0_spi = {
138         FPGA_SPI_SHIELD0_BASE_S,
139         FPGA_SPI_SHIELD0_BASE_S + 0xFFF,
140         PPC_SP_PERIPH_EXP1,
141         FPGA_SPI_SHIELD0_PERIPH_PPCEXP1_POS_MASK
142 };
143 
144 struct platform_data_t tfm_peripheral_shield1_spi = {
145         FPGA_SPI_SHIELD1_BASE_S,
146         FPGA_SPI_SHIELD1_BASE_S + 0xFFF,
147         PPC_SP_PERIPH_EXP1,
148         FPGA_SPI_SHIELD1_PERIPH_PPCEXP1_POS_MASK
149 };
150 
151 struct platform_data_t tfm_peripheral_shield0_i2c = {
152         SBCon_I2C_SHIELD0_BASE_S,
153         SBCon_I2C_SHIELD0_BASE_S + 0xFFF,
154         PPC_SP_PERIPH_EXP1,
155         SBCon_I2C_SHIELD0_PERIPH_PPCEXP1_POS_MASK
156 };
157 
158 struct platform_data_t tfm_peripheral_shield1_i2c = {
159         SBCon_I2C_SHIELD1_BASE_S,
160         SBCon_I2C_SHIELD1_BASE_S + 0xFFF,
161         PPC_SP_PERIPH_EXP1,
162         SBCon_I2C_SHIELD1_PERIPH_PPCEXP1_POS_MASK
163 };
164 
165 struct platform_data_t tfm_peripheral_ddr4_eeprom_i2c = {
166         FPGA_DDR4_EEPROM_BASE_S,
167         FPGA_DDR4_EEPROM_BASE_S + 0xFFF,
168         PPC_SP_PERIPH_EXP1,
169         FPGA_SBCon_I2C_PERIPH_PPCEXP1_POS_MASK
170 };
171 
172 struct platform_data_t tfm_peripheral_fpga_scc = {
173         FPGA_SCC_BASE_S,
174         FPGA_SCC_BASE_S + 0xFFF,
175         PPC_SP_PERIPH_EXP2,
176         FPGA_SCC_PERIPH_PPCEXP2_POS_MASK
177 };
178 
179 struct platform_data_t tfm_peripheral_fpga_i2s = {
180         FPGA_I2S_BASE_S,
181         FPGA_I2S_BASE_S + 0xFFF,
182         PPC_SP_PERIPH_EXP2,
183         FPGA_I2S_PERIPH_PPCEXP2_POS_MASK
184 };
185 
186 struct platform_data_t tfm_peripheral_fpga_io = {
187         FPGA_IO_BASE_S,
188         FPGA_IO_BASE_S + 0xFFF,
189         PPC_SP_PERIPH_EXP2,
190         FPGA_IO_PERIPH_PPCEXP2_POS_MASK
191 };
192 
193 struct platform_data_t tfm_peripheral_std_uart = {
194         UART0_BASE_NS,
195         UART0_BASE_NS + 0xFFF,
196         PPC_SP_DO_NOT_CONFIGURE,
197         -1
198 };
199 
200 struct platform_data_t tfm_peripheral_uart1 = {
201         UART1_BASE_S,
202         UART1_BASE_S + 0xFFF,
203         PPC_SP_PERIPH_EXP2,
204         UART1_PERIPH_PPCEXP2_POS_MASK
205 };
206 
207 struct platform_data_t tfm_peripheral_uart2 = {
208         UART2_BASE_S,
209         UART2_BASE_S + 0xFFF,
210         PPC_SP_PERIPH_EXP2,
211         UART2_PERIPH_PPCEXP2_POS_MASK
212 };
213 
214 struct platform_data_t tfm_peripheral_uart3 = {
215         UART3_BASE_S,
216         UART3_BASE_S + 0xFFF,
217         PPC_SP_PERIPH_EXP2,
218         UART3_PERIPH_PPCEXP2_POS_MASK
219 };
220 
221 struct platform_data_t tfm_peripheral_uart4 = {
222         UART4_BASE_S,
223         UART4_BASE_S + 0xFFF,
224         PPC_SP_PERIPH_EXP2,
225         UART4_PERIPH_PPCEXP2_POS_MASK
226 };
227 
228 struct platform_data_t tfm_peripheral_uart5 = {
229         UART5_BASE_S,
230         UART5_BASE_S + 0xFFF,
231         PPC_SP_PERIPH_EXP2,
232         UART5_PERIPH_PPCEXP2_POS_MASK
233 };
234 
235 struct platform_data_t tfm_peripheral_clcd = {
236         CLCD_Config_Reg_BASE_S,
237         CLCD_Config_Reg_BASE_S + 0xFFF,
238         PPC_SP_PERIPH_EXP2,
239         CLCD_PERIPH_PPCEXP2_POS_MASK
240 };
241 
242 struct platform_data_t tfm_peripheral_rtc = {
243         RTC_BASE_S,
244         RTC_BASE_S + 0xFFF,
245         PPC_SP_PERIPH_EXP2,
246         RTC_PERIPH_PPCEXP2_POS_MASK
247 };
248