]> begriffs open source - cmsis-driver-validation/blob - Config/DV_SPI_Config.h
Set release date
[cmsis-driver-validation] / Config / DV_SPI_Config.h
1 /*
2  * Copyright (c) 2015-2020 Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
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
9  *
10  * www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  *
18  * -----------------------------------------------------------------------------
19  *
20  * $Revision:   V1.0.0
21  *
22  * Project:     CMSIS-Driver Validation
23  * Title:       Serial Peripheral Interface Bus (SPI) driver validation 
24  *              configuration file
25  *
26  * -----------------------------------------------------------------------------
27  */
28
29 #ifndef DV_SPI_CONFIG_H_
30 #define DV_SPI_CONFIG_H_
31
32 //-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
33
34 // <h> SPI
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.
39 //   <h> Configuration
40 //     <i> Test Mode, SPI Server and Tests configuration.
41 //     <o1.0> Test Mode
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.
47 //       <0=> Loopback
48 //       <1=> SPI Server
49 //     <h> SPI Server
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.
53 //       <o2> Slave Select
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.
71 //     </h>
72 //     <h> Tests
73 //       <i> Tests configuration
74 //       <h> Default settings
75 //         <i> Default settings used for tests.
76 //         <o8> Slave Select
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.
79 //           <0=> Not used
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.
103 //       </h>
104 //       <h> Bus Speed
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.
112 //       </h>
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>
122 //       </h>
123 //     </h>
124 //   </h>
125 //   <h> Tests
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.
137 //     </e>
138 //     <e27> Data Exchange
139 //       <i> Enable / disable data exchange tests (functions: Send, Receive, Transfer, GetDataCount, Control, GetStatus, SignalEvent).
140 //       <e28> Mode
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.
155 //       </e>
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.
171 //       </e>
172 //       <e42> Data Bits
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.
239 //       </e>
240 //       <e44> Bit Order
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.
247 //       </e>
248 //       <e47> Bus Speed
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.
254 //       </e>
255 //       <e50> Other
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.
261 //         <q53> SPI_Abort
262 //           <i> Enable / disable data exchange Abort test.
263 //       </e>
264 //     </e>
265 //     <e54> Error Event
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.
272 //     </e>
273 //   </h>
274 // </h>
275
276 #define DRV_SPI                         0
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
333
334 #endif /* DV_SPI_CONFIG_H_ */