2 * Copyright (c) 2015-2020 Arm Limited. All rights reserved.
4 * SPDX-License-Identifier: Apache-2.0
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * -----------------------------------------------------------------------------
22 * Project: CMSIS-Driver Validation
23 * Title: Serial Peripheral Interface Bus (SPI) driver validation
26 * -----------------------------------------------------------------------------
29 #ifndef DV_SPI_CONFIG_H_
30 #define DV_SPI_CONFIG_H_
32 //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
35 // <i> Serial Peripheral Interface Bus (SPI) driver validation configuration
36 // <o0> Driver_SPI# <0-255>
37 // <i> Choose the Driver_SPI# instance to test.
38 // <i> For example to test Driver_SPI0 select 0.
40 // <i> Test Mode, SPI Server and Tests configuration.
42 // <i> Select test mode: Loopback or SPI Server.
43 // <i> For Loopback test mode connect the MISO and MOSI lines directly.
44 // <i> Loopback test mode is used for basic driver functionality testing before using SPI Server test mode.
45 // <i> For SPI Server test mode connect: MISO, MOSI, SCK, SS and GND lines to the same lines on the SPI Server.
46 // <i> SPI Server test mode is used for extensive driver functionality testing.
50 // <i> SPI Server configuration.
51 // <i> Specifies the communication settings at which Driver Validation communicates with the SPI Server.
52 // <i> These settings must be same as settings configured and used by the SPI Server.
54 // <i> Select mode of driving Slave Select line.
55 // <1=> Software Controlled
56 // <2=> Hardware Controlled
57 // <o3> Clock / Frame Format
58 // <i> Select clock / frame format setting used by the SPI Server.
59 // <0=> Clock Polarity 0, Clock Phase 0
60 // <1=> Clock Polarity 0, Clock Phase 1
61 // <2=> Clock Polarity 1, Clock Phase 0
62 // <3=> Clock Polarity 1, Clock Phase 1
63 // <4=> Texas Instruments Frame Format
64 // <5=> National Semiconductor Microwire Frame Format
65 // <o4> Data Bits <8=> 8 <16=> 16
66 // <i> Select data bit setting used by the SPI Server.
67 // <o5> Bit Order <0=> MSB to LSB <1=> LSB to MSB
68 // <i> Select bit order setting used by the SPI Server.
69 // <o6> Bus Speed <10000-1000000000>
70 // <i> Select bus speed setting (in bps) used by the SPI Server.
73 // <i> Tests configuration
74 // <h> Default settings
75 // <i> Default settings used for tests.
77 // <i> Select default mode of driving Slave Select line in tests.
78 // <i> This setting is used for all tests except the Data Exchange: Mode tests.
80 // <1=> Software Controlled
81 // <2=> Hardware Controlled
82 // <o9> Clock / Frame Format
83 // <i> Select default clock / frame format setting for tests.
84 // <i> This setting is used for all tests except the Data Exchange: Clock / Frame Format tests.
85 // <0=> Clock Polarity 0, Clock Phase 0
86 // <1=> Clock Polarity 0, Clock Phase 1
87 // <2=> Clock Polarity 1, Clock Phase 0
88 // <3=> Clock Polarity 1, Clock Phase 1
89 // <4=> Texas Instruments Frame Format
90 // <5=> National Semiconductor Microwire Frame Format
91 // <o10> Data Bits <8=> 8 <16=> 16
92 // <i> Select default data bits setting for tests.
93 // <i> This setting is used for all tests except the Data Exchange: Data Bits tests.
94 // <o11> Bit Order <0=> MSB to LSB <1=> LSB to MSB
95 // <i> Select default bit order setting for tests.
96 // <i> This setting is used for all tests except the Data Exchange: Bit Order tests.
97 // <o12> Bus Speed <10000-1000000000>
98 // <i> Select default bus speed setting for tests.
99 // <i> This setting is used for all tests except the Data Exchange: Bus Speed tests.
100 // <o13> Number of Items <1-1024>
101 // <i> Select default number of data items for tests.
102 // <i> This setting is used for all tests except the Data Exchange: Other: SPI_Number_Of_Items tests.
105 // <i> Bus speed tests configuration.
106 // <o14> Minimum Bus Speed <10000-1000000000>
107 // <i> Select minimum bus speed setting (in bps).
108 // <i> This setting is used only in SPI_Bus_Speed_Min test function.
109 // <o15> Maximum Bus Speed <10000-1000000000>
110 // <i> Select maximum bus speed setting (in bps).
111 // <i> This setting is used only in SPI_Bus_Speed_Max test function.
113 // <h> Number of Items
114 // <i> Number of items test configuration.
115 // <i> This setting is used only in SPI_Number_Of_Items test function.
116 // <i> (Value 0 means setting is not used)
117 // <o16> Number of Items 1 <0-1024>
118 // <o17> Number of Items 2 <0-1024>
119 // <o18> Number of Items 3 <0-1024>
120 // <o19> Number of Items 4 <0-1024>
121 // <o20> Number of Items 5 <0-1024>
126 // <i> Enable / disable tests.
127 // <e22> Driver Management
128 // <i> Enable / disable driver management tests (functions: GetVersion, GetCapabilities, Initialize, Uninitialize, PowerControl).
129 // <q23> SPI_GetVersion
130 // <i> Enable / disable GetVersion function tests.
131 // <q24> SPI_GetCapabilities
132 // <i> Enable / disable GetCapabilities function tests.
133 // <q25> SPI_Initialize_Uninitialize
134 // <i> Enable / disable Initialize and Uninitialize functions tests.
135 // <q26> SPI_PowerControl
136 // <i> Enable / disable PowerControl function tests.
138 // <e27> Data Exchange
139 // <i> Enable / disable data exchange tests (functions: Send, Receive, Transfer, GetDataCount, Control, GetStatus, SignalEvent).
141 // <i> Enable / disable SPI mode and Slave Select mode tests.
142 // <i> (for Loopback test mode only Master mode with Slave Select not used test is supported!)
143 // <q29> SPI_Mode_Master_SS_Unused
144 // <i> Enable / disable data exchange in Master mode with Slave Select not used test.
145 // <q30> SPI_Mode_Master_SS_Sw_Ctrl
146 // <i> Enable / disable data exchange in Master mode with Slave Select Software Controlled test.
147 // <q31> SPI_Mode_Master_SS_Hw_Ctrl_Out
148 // <i> Enable / disable data exchange in Master mode with Slave Select Hardware Controlled Output test.
149 // <q32> SPI_Mode_Master_SS_Hw_Mon_In
150 // <i> Enable / disable data exchange in Master mode with Slave Select Hardware Monitored Input test.
151 // <q33> SPI_Mode_Slave_SS_Hw_Mon
152 // <i> Enable / disable data exchange in Slave mode with Slave Select Hardware Monitored test.
153 // <q34> SPI_Mode_Slave_SS_Sw_Ctrl
154 // <i> Enable / disable data exchange in Slave mode with Slave Select Software Controlled test.
156 // <e35> Clock / Frame Format
157 // <i> Enable / disable clock / frame format tests.
158 // <i> (all of these tests are supported only in SPI Server test mode!)
159 // <q36> SPI_Format_Clock_Pol0_Pha0
160 // <i> Enable / disable data exchange with clock format: Polarity 0 / Phase 0 test.
161 // <q37> SPI_Format_Clock_Pol0_Pha1
162 // <i> Enable / disable data exchange with clock format: Polarity 0 / Phase 1 test.
163 // <q38> SPI_Format_Clock_Pol1_Pha0
164 // <i> Enable / disable data exchange with clock format: Polarity 1 / Phase 0 test.
165 // <q39> SPI_Format_Clock_Pol1_Pha1
166 // <i> Enable / disable data exchange with clock format: Polarity 1 / Phase 1 test.
167 // <q40> SPI_Format_Frame_TI
168 // <i> Enable / disable data exchange with Texas Instruments frame format test.
169 // <q41> SPI_Format_Frame_Microwire
170 // <i> Enable / disable data exchange with National Semiconductor Microwire frame format test.
173 // <i> Enable / disable data bits tests.
174 // <i> (for Loopback test mode only: 8, 16, 24, and 32 data bit tests are supported!)
175 // <o43.0> SPI_Data_Bits_1
176 // <i> Enable / disable data exchange with 1 bit per frame test.
177 // <o43.1> SPI_Data_Bits_2
178 // <i> Enable / disable data exchange with 2 bits per frame test.
179 // <o43.2> SPI_Data_Bits_3
180 // <i> Enable / disable data exchange with 3 bits per frame test.
181 // <o43.3> SPI_Data_Bits_4
182 // <i> Enable / disable data exchange with 4 bits per frame test.
183 // <o43.4> SPI_Data_Bits_5
184 // <i> Enable / disable data exchange with 5 bits per frame test.
185 // <o43.5> SPI_Data_Bits_6
186 // <i> Enable / disable data exchange with 6 bits per frame test.
187 // <o43.6> SPI_Data_Bits_7
188 // <i> Enable / disable data exchange with 7 bits per frame test.
189 // <o43.7> SPI_Data_Bits_8
190 // <i> Enable / disable data exchange with 8 bits per frame test.
191 // <o43.8> SPI_Data_Bits_9
192 // <i> Enable / disable data exchange with 9 bits per frame test.
193 // <o43.9> SPI_Data_Bits_10
194 // <i> Enable / disable data exchange with 10 bits per frame test.
195 // <o43.10> SPI_Data_Bits_11
196 // <i> Enable / disable data exchange with 11 bits per frame test.
197 // <o43.11> SPI_Data_Bits_12
198 // <i> Enable / disable data exchange with 12 bits per frame test.
199 // <o43.12> SPI_Data_Bits_13
200 // <i> Enable / disable data exchange with 13 bits per frame test.
201 // <o43.13> SPI_Data_Bits_14
202 // <i> Enable / disable data exchange with 14 bits per frame test.
203 // <o43.14> SPI_Data_Bits_15
204 // <i> Enable / disable data exchange with 15 bits per frame test.
205 // <o43.15> SPI_Data_Bits_16
206 // <i> Enable / disable data exchange with 16 bits per frame test.
207 // <o43.16> SPI_Data_Bits_17
208 // <i> Enable / disable data exchange with 17 bits per frame test.
209 // <o43.17> SPI_Data_Bits_18
210 // <i> Enable / disable data exchange with 18 bits per frame test.
211 // <o43.18> SPI_Data_Bits_19
212 // <i> Enable / disable data exchange with 19 bits per frame test.
213 // <o43.19> SPI_Data_Bits_20
214 // <i> Enable / disable data exchange with 20 bits per frame test.
215 // <o43.20> SPI_Data_Bits_21
216 // <i> Enable / disable data exchange with 21 bits per frame test.
217 // <o43.21> SPI_Data_Bits_22
218 // <i> Enable / disable data exchange with 22 bits per frame test.
219 // <o43.22> SPI_Data_Bits_23
220 // <i> Enable / disable data exchange with 23 bits per frame test.
221 // <o43.23> SPI_Data_Bits_24
222 // <i> Enable / disable data exchange with 24 bits per frame test.
223 // <o43.24> SPI_Data_Bits_25
224 // <i> Enable / disable data exchange with 25 bits per frame test.
225 // <o43.25> SPI_Data_Bits_26
226 // <i> Enable / disable data exchange with 26 bits per frame test.
227 // <o43.26> SPI_Data_Bits_27
228 // <i> Enable / disable data exchange with 27 bits per frame test.
229 // <o43.27> SPI_Data_Bits_28
230 // <i> Enable / disable data exchange with 28 bits per frame test.
231 // <o43.28> SPI_Data_Bits_29
232 // <i> Enable / disable data exchange with 29 bits per frame test.
233 // <o43.29> SPI_Data_Bits_30
234 // <i> Enable / disable data exchange with 30 bits per frame test.
235 // <o43.30> SPI_Data_Bits_31
236 // <i> Enable / disable data exchange with 31 bits per frame test.
237 // <o43.31> SPI_Data_Bits_32
238 // <i> Enable / disable data exchange with 32 bits per frame test.
241 // <i> Enable / disable bit order tests.
242 // <i> (all of these tests are supported only in SPI Server test mode!)
243 // <q45> SPI_Bit_Order_MSB_LSB
244 // <i> Enable / disable data exchange with bit order from MSB to LSB test.
245 // <q46> SPI_Bit_Order_LSB_MSB
246 // <i> Enable / disable data exchange with bit order from LSB to MSB test.
249 // <i> Enable / disable bus speeds tests.
250 // <q48> SPI_Bus_Speed_Min
251 // <i> Enable / disable data exchange at minimum supported bus speed test.
252 // <q49> SPI_Bus_Speed_Max
253 // <i> Enable / disable data exchange at maximum supported bus speed test.
256 // <i> Enable / disable other tests.
257 // <q51> SPI_Number_Of_Items
258 // <i> Enable / disable data exchange with different number of data items test.
259 // <q52> SPI_GetDataCount
260 // <i> Enable / disable GetDataCount count changing during data exchange test.
262 // <i> Enable / disable data exchange Abort test.
266 // <i> Enable / disable error event signaling tests (function: SignalEvent).
267 // <i> (all of these tests are supported only in SPI Server test mode!)
268 // <q55> SPI_DataLost
269 // <i> Enable / disable ARM_SPI_EVENT_DATA_LOST event generation test.
270 // <q56> SPI_ModeFault
271 // <i> Enable / disable ARM_SPI_EVENT_MODE_FAULT event generation test.
277 #define SPI_CFG_TEST_MODE 1
278 #define SPI_CFG_SRV_SS_MODE 1
279 #define SPI_CFG_SRV_FORMAT 0
280 #define SPI_CFG_SRV_DATA_BITS 8
281 #define SPI_CFG_SRV_BIT_ORDER 0
282 #define SPI_CFG_SRV_BUS_SPEED 1000000
283 #define SPI_CFG_SRV_CMD_TOUT 100
284 #define SPI_CFG_DEF_SS_MODE 1
285 #define SPI_CFG_DEF_FORMAT 0
286 #define SPI_CFG_DEF_DATA_BITS 8
287 #define SPI_CFG_DEF_BIT_ORDER 0
288 #define SPI_CFG_DEF_BUS_SPEED 1000000
289 #define SPI_CFG_DEF_NUM 512
290 #define SPI_CFG_MIN_BUS_SPEED 1000000
291 #define SPI_CFG_MAX_BUS_SPEED 10000000
292 #define SPI_CFG_NUM1 1
293 #define SPI_CFG_NUM2 31
294 #define SPI_CFG_NUM3 65
295 #define SPI_CFG_NUM4 1023
296 #define SPI_CFG_NUM5 1024
297 #define SPI_CFG_XFER_TIMEOUT 100
298 #define SPI_TG_DRIVER_MANAGEMENT_EN 1
299 #define SPI_TC_GET_VERSION_EN 1
300 #define SPI_TC_GET_CAPABILITIES_EN 1
301 #define SPI_TC_INIT_UNINIT_EN 1
302 #define SPI_TC_POWER_CONTROL_EN 1
303 #define SPI_TG_DATA_EXCHANGE_EN 1
304 #define SPI_TG_MODE_EN 1
305 #define SPI_TC_MASTER_UNUSED_EN 1
306 #define SPI_TC_MASTER_SW_EN 1
307 #define SPI_TC_MASTER_HW_OUT_EN 1
308 #define SPI_TC_MASTER_HW_IN_EN 1
309 #define SPI_TC_SLAVE_HW_EN 1
310 #define SPI_TC_SLAVE_SW_EN 1
311 #define SPI_TG_FORMAT_EN 1
312 #define SPI_TC_FORMAT_POL0_PHA0_EN 1
313 #define SPI_TC_FORMAT_POL0_PHA1_EN 1
314 #define SPI_TC_FORMAT_POL1_PHA0_EN 1
315 #define SPI_TC_FORMAT_POL1_PHA1_EN 1
316 #define SPI_TC_FORMAT_TI_EN 1
317 #define SPI_TC_FORMAT_MICROWIRE_EN 0
318 #define SPI_TG_DATA_BIT_EN 1
319 #define SPI_TC_DATA_BIT_EN_MASK 0x00008080
320 #define SPI_TG_BIT_ORDER_EN 1
321 #define SPI_TC_BIT_ORDER_MSB_LSB_EN 1
322 #define SPI_TC_BIT_ORDER_LSB_MSB_EN 1
323 #define SPI_TG_BUS_SPEED_EN 1
324 #define SPI_TC_BUS_SPEED_MIN_EN 1
325 #define SPI_TC_BUS_SPEED_MAX_EN 1
326 #define SPI_TG_OTHER_EN 1
327 #define SPI_TC_NUMBER_OF_ITEMS_EN 1
328 #define SPI_TC_GET_DATA_COUNT_EN 1
329 #define SPI_TC_ABORT_EN 1
330 #define SPI_TG_ERROR_EVENT_EN 1
331 #define SPI_TC_DATA_LOST_EN 1
332 #define SPI_TC_MODE_FAULT_EN 1
334 #endif /* DV_SPI_CONFIG_H_ */