1 /******************************************************************************
2 *  Filename:       hw_spi_h
3 ******************************************************************************
4 *  Copyright (c) 2021 Texas Instruments Incorporated. All rights reserved.
5 *
6 *  Redistribution and use in source and binary forms, with or without
7 *  modification, are permitted provided that the following conditions are met:
8 *
9 *  1) Redistributions of source code must retain the above copyright notice,
10 *     this list of conditions and the following disclaimer.
11 *
12 *  2) Redistributions in binary form must reproduce the above copyright notice,
13 *     this list of conditions and the following disclaimer in the documentation
14 *     and/or other materials provided with the distribution.
15 *
16 *  3) Neither the name of the copyright holder nor the names of its contributors
17 *     may be used to endorse or promote products derived from this software
18 *     without specific prior written permission.
19 *
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 *  POSSIBILITY OF SUCH DAMAGE.
31 ******************************************************************************/
32 
33 #ifndef __HW_SPI_H__
34 #define __HW_SPI_H__
35 
36 //*****************************************************************************
37 //
38 // This section defines the register offsets of
39 // SPI component
40 //
41 //*****************************************************************************
42 // Module Description
43 #define SPI_O_DESC                                                  0x00000000U
44 
45 // Interrupt mask
46 #define SPI_O_IMASK                                                 0x00000044U
47 
48 // Raw interrupt status
49 #define SPI_O_RIS                                                   0x00000048U
50 
51 // Masked interrupt status
52 #define SPI_O_MIS                                                   0x0000004CU
53 
54 // Interrupt set
55 #define SPI_O_ISET                                                  0x00000050U
56 
57 // Interrupt clear
58 #define SPI_O_ICLR                                                  0x00000054U
59 
60 // Interrupt mask set
61 #define SPI_O_IMSET                                                 0x00000058U
62 
63 // Interrupt mask clear
64 #define SPI_O_IMCLR                                                 0x0000005CU
65 
66 // Emulation
67 #define SPI_O_EMU                                                   0x00000060U
68 
69 // Control 0
70 #define SPI_O_CTL0                                                  0x00000100U
71 
72 // Control 1
73 #define SPI_O_CTL1                                                  0x00000104U
74 
75 // Clock configuration 0
76 #define SPI_O_CLKCFG0                                               0x00000108U
77 
78 // Clock configuration 1
79 #define SPI_O_CLKCFG1                                               0x0000010CU
80 
81 // Interrupt FIFO Level Select
82 #define SPI_O_IFLS                                                  0x00000110U
83 
84 // DMA control
85 #define SPI_O_DMACR                                                 0x00000114U
86 
87 // Receive CRC
88 #define SPI_O_RXCRC                                                 0x00000118U
89 
90 // Transmit CRC
91 #define SPI_O_TXCRC                                                 0x0000011CU
92 
93 // Header write for 32bits
94 #define SPI_O_TXFHDR32                                              0x00000120U
95 
96 // Header write for 24bits
97 #define SPI_O_TXFHDR24                                              0x00000124U
98 
99 // Header write for 16bits
100 #define SPI_O_TXFHDR16                                              0x00000128U
101 
102 // Header write for 8bits
103 #define SPI_O_TXFHDR8                                               0x0000012CU
104 
105 // Atomic header control
106 #define SPI_O_TXFHDRC                                               0x00000130U
107 
108 // Receive data
109 #define SPI_O_RXDATA                                                0x00000140U
110 
111 // Transmit data
112 #define SPI_O_TXDATA                                                0x00000150U
113 
114 // Status
115 #define SPI_O_STA                                                   0x00000160U
116 
117 //*****************************************************************************
118 //
119 // Register: SPI_O_DESC
120 //
121 //*****************************************************************************
122 // Field: [31:16] MODID
123 //
124 // Module identifier used to uniquely identify this IP.
125 #define SPI_DESC_MODID_W                                                    16U
126 #define SPI_DESC_MODID_M                                            0xFFFF0000U
127 #define SPI_DESC_MODID_S                                                    16U
128 
129 // Field: [15:12] STDIPOFF
130 //
131 // Standard IP MMR block offset. Standard IP MMRs are the set of from
132 // aggregated IRQ registers till DTB.
133 //
134 // 0: Standard IP MMRs do not exist
135 //
136 // 0x1-0xF: Standard IP MMRs begin at offset of (64*STDIPOFF from the base IP
137 // address)
138 #define SPI_DESC_STDIPOFF_W                                                  4U
139 #define SPI_DESC_STDIPOFF_M                                         0x0000F000U
140 #define SPI_DESC_STDIPOFF_S                                                 12U
141 
142 // Field:  [11:8] INSTIDX
143 //
144 // IP Instance ID number. If multiple instances of IP exist in the device, this
145 // field can identify the instance number (0-15).
146 #define SPI_DESC_INSTIDX_W                                                   4U
147 #define SPI_DESC_INSTIDX_M                                          0x00000F00U
148 #define SPI_DESC_INSTIDX_S                                                   8U
149 
150 // Field:   [7:4] MAJREV
151 //
152 // Major revision of IP (0-15).
153 #define SPI_DESC_MAJREV_W                                                    4U
154 #define SPI_DESC_MAJREV_M                                           0x000000F0U
155 #define SPI_DESC_MAJREV_S                                                    4U
156 
157 // Field:   [3:0] MINREV
158 //
159 // Minor revision of IP (0-15).
160 #define SPI_DESC_MINREV_W                                                    4U
161 #define SPI_DESC_MINREV_M                                           0x0000000FU
162 #define SPI_DESC_MINREV_S                                                    0U
163 
164 //*****************************************************************************
165 //
166 // Register: SPI_O_IMASK
167 //
168 //*****************************************************************************
169 // Field:     [8] DMATX
170 //
171 // DMA Done TX event mask.
172 // ENUMs:
173 // SET                      Set Interrupt Mask
174 // CLR                      Clear Interrupt Mask
175 #define SPI_IMASK_DMATX                                             0x00000100U
176 #define SPI_IMASK_DMATX_M                                           0x00000100U
177 #define SPI_IMASK_DMATX_S                                                    8U
178 #define SPI_IMASK_DMATX_SET                                         0x00000100U
179 #define SPI_IMASK_DMATX_CLR                                         0x00000000U
180 
181 // Field:     [7] DMARX
182 //
183 // DMA Done RX event mask.
184 // ENUMs:
185 // SET                      Set Interrrupt Mask
186 // CLR                      Clear Interrupt Mask
187 #define SPI_IMASK_DMARX                                             0x00000080U
188 #define SPI_IMASK_DMARX_M                                           0x00000080U
189 #define SPI_IMASK_DMARX_S                                                    7U
190 #define SPI_IMASK_DMARX_SET                                         0x00000080U
191 #define SPI_IMASK_DMARX_CLR                                         0x00000000U
192 
193 // Field:     [6] IDLE
194 //
195 // SPI Idle event mask.
196 // ENUMs:
197 // SET                      Set Interrrupt Mask
198 // CLR                      Clear Interrupt Mask
199 #define SPI_IMASK_IDLE                                              0x00000040U
200 #define SPI_IMASK_IDLE_M                                            0x00000040U
201 #define SPI_IMASK_IDLE_S                                                     6U
202 #define SPI_IMASK_IDLE_SET                                          0x00000040U
203 #define SPI_IMASK_IDLE_CLR                                          0x00000000U
204 
205 // Field:     [5] TXEMPTY
206 //
207 // Transmit FIFO Empty event mask.
208 // ENUMs:
209 // SET                      Set Interrrupt Mask
210 // CLR                      Clear Interrupt Mask
211 #define SPI_IMASK_TXEMPTY                                           0x00000020U
212 #define SPI_IMASK_TXEMPTY_M                                         0x00000020U
213 #define SPI_IMASK_TXEMPTY_S                                                  5U
214 #define SPI_IMASK_TXEMPTY_SET                                       0x00000020U
215 #define SPI_IMASK_TXEMPTY_CLR                                       0x00000000U
216 
217 // Field:     [4] TX
218 //
219 // Transmit FIFO event mask.
220 // ENUMs:
221 // SET                      Set Interrrupt Mask
222 // CLR                      Clear Interrupt Mask
223 #define SPI_IMASK_TX                                                0x00000010U
224 #define SPI_IMASK_TX_M                                              0x00000010U
225 #define SPI_IMASK_TX_S                                                       4U
226 #define SPI_IMASK_TX_SET                                            0x00000010U
227 #define SPI_IMASK_TX_CLR                                            0x00000000U
228 
229 // Field:     [3] RX
230 //
231 // Receive FIFO event.
232 // ENUMs:
233 // SET                      Set Interrrupt Mask
234 // CLR                      Clear Interrupt Mask
235 #define SPI_IMASK_RX                                                0x00000008U
236 #define SPI_IMASK_RX_M                                              0x00000008U
237 #define SPI_IMASK_RX_S                                                       3U
238 #define SPI_IMASK_RX_SET                                            0x00000008U
239 #define SPI_IMASK_RX_CLR                                            0x00000000U
240 
241 // Field:     [2] RTOUT
242 //
243 //  SPI Receive Time-Out event mask.
244 // ENUMs:
245 // SET                      Set Interrrupt Mask
246 // CLR                      Clear Interrupt Mask
247 #define SPI_IMASK_RTOUT                                             0x00000004U
248 #define SPI_IMASK_RTOUT_M                                           0x00000004U
249 #define SPI_IMASK_RTOUT_S                                                    2U
250 #define SPI_IMASK_RTOUT_SET                                         0x00000004U
251 #define SPI_IMASK_RTOUT_CLR                                         0x00000000U
252 
253 // Field:     [1] PER
254 //
255 // Parity error event mask.
256 // ENUMs:
257 // SET                      Set Interrrupt Mask
258 // CLR                      Clear Interrupt Mask
259 #define SPI_IMASK_PER                                               0x00000002U
260 #define SPI_IMASK_PER_M                                             0x00000002U
261 #define SPI_IMASK_PER_S                                                      1U
262 #define SPI_IMASK_PER_SET                                           0x00000002U
263 #define SPI_IMASK_PER_CLR                                           0x00000000U
264 
265 // Field:     [0] RXOVF
266 //
267 // RXFIFO overflow event mask.
268 // ENUMs:
269 // SET                      Set Interrrupt Mask
270 // CLR                      Clear Interrupt Mask
271 #define SPI_IMASK_RXOVF                                             0x00000001U
272 #define SPI_IMASK_RXOVF_M                                           0x00000001U
273 #define SPI_IMASK_RXOVF_S                                                    0U
274 #define SPI_IMASK_RXOVF_SET                                         0x00000001U
275 #define SPI_IMASK_RXOVF_CLR                                         0x00000000U
276 
277 //*****************************************************************************
278 //
279 // Register: SPI_O_RIS
280 //
281 //*****************************************************************************
282 // Field:     [8] DMATX
283 //
284 // DMA Done event for TX. This interrupt is set if the TX DMA channel sends the
285 // DONE signal. This allows the handling of the TX DMA event inside SPI.
286 // ENUMs:
287 // SET                      Interrupt occurred
288 // CLR                      Interrupt did not occur
289 #define SPI_RIS_DMATX                                               0x00000100U
290 #define SPI_RIS_DMATX_M                                             0x00000100U
291 #define SPI_RIS_DMATX_S                                                      8U
292 #define SPI_RIS_DMATX_SET                                           0x00000100U
293 #define SPI_RIS_DMATX_CLR                                           0x00000000U
294 
295 // Field:     [7] DMARX
296 //
297 // DMA Done event for RX. This interrupt is set if the RX DMA channel sends the
298 // DONE signal. This allows handling of the DMA RX event inside SPI.
299 // ENUMs:
300 // SET                      Interrupt occurred
301 // CLR                      Interrupt did not occur
302 #define SPI_RIS_DMARX                                               0x00000080U
303 #define SPI_RIS_DMARX_M                                             0x00000080U
304 #define SPI_RIS_DMARX_S                                                      7U
305 #define SPI_RIS_DMARX_SET                                           0x00000080U
306 #define SPI_RIS_DMARX_CLR                                           0x00000000U
307 
308 // Field:     [6] IDLE
309 //
310 // SPI has completed transfers and moved to IDLE mode. This bit is set when
311 // STA.BUSY goes low.
312 // ENUMs:
313 // SET                      Interrupt occurred
314 // CLR                      Interrupt did not occur
315 #define SPI_RIS_IDLE                                                0x00000040U
316 #define SPI_RIS_IDLE_M                                              0x00000040U
317 #define SPI_RIS_IDLE_S                                                       6U
318 #define SPI_RIS_IDLE_SET                                            0x00000040U
319 #define SPI_RIS_IDLE_CLR                                            0x00000000U
320 
321 // Field:     [5] TXEMPTY
322 //
323 // Transmit FIFO Empty interrupt mask. This interrupt is set when all data in
324 // the Transmit FIFO has been moved to the shift register.
325 // ENUMs:
326 // SET                      Interrupt occurred
327 // CLR                      Interrupt did not occur
328 #define SPI_RIS_TXEMPTY                                             0x00000020U
329 #define SPI_RIS_TXEMPTY_M                                           0x00000020U
330 #define SPI_RIS_TXEMPTY_S                                                    5U
331 #define SPI_RIS_TXEMPTY_SET                                         0x00000020U
332 #define SPI_RIS_TXEMPTY_CLR                                         0x00000000U
333 
334 // Field:     [4] TX
335 //
336 // Transmit FIFO event. This interrupt is set if the selected Transmit FIFO
337 // level has been reached.
338 // ENUMs:
339 // SET                      Interrupt occurred
340 // CLR                      Interrupt did not occur
341 #define SPI_RIS_TX                                                  0x00000010U
342 #define SPI_RIS_TX_M                                                0x00000010U
343 #define SPI_RIS_TX_S                                                         4U
344 #define SPI_RIS_TX_SET                                              0x00000010U
345 #define SPI_RIS_TX_CLR                                              0x00000000U
346 
347 // Field:     [3] RX
348 //
349 // Receive FIFO event. This interrupt is set if the selected Receive FIFO level
350 // has been reached
351 // ENUMs:
352 // SET                      Interrupt occurred
353 // CLR                      Interrupt did not occur
354 #define SPI_RIS_RX                                                  0x00000008U
355 #define SPI_RIS_RX_M                                                0x00000008U
356 #define SPI_RIS_RX_S                                                         3U
357 #define SPI_RIS_RX_SET                                              0x00000008U
358 #define SPI_RIS_RX_CLR                                              0x00000000U
359 
360 // Field:     [2] RTOUT
361 //
362 // SPI Receive Time-Out event. This interrupt is set if no activity is detected
363 // on the input clock line within the time period dictated by CTL1.RTOUT value.
364 // This is applicable only in peripheral mode.
365 // ENUMs:
366 // SET                      Interrupt occurred
367 // CLR                      Interrupt did not occur
368 #define SPI_RIS_RTOUT                                               0x00000004U
369 #define SPI_RIS_RTOUT_M                                             0x00000004U
370 #define SPI_RIS_RTOUT_S                                                      2U
371 #define SPI_RIS_RTOUT_SET                                           0x00000004U
372 #define SPI_RIS_RTOUT_CLR                                           0x00000000U
373 
374 // Field:     [1] PER
375 //
376 // Parity error event. This bit is set if a Parity error has been detected
377 // ENUMs:
378 // SET                      Interrupt occurred
379 // CLR                      Interrupt did not occur
380 #define SPI_RIS_PER                                                 0x00000002U
381 #define SPI_RIS_PER_M                                               0x00000002U
382 #define SPI_RIS_PER_S                                                        1U
383 #define SPI_RIS_PER_SET                                             0x00000002U
384 #define SPI_RIS_PER_CLR                                             0x00000000U
385 
386 // Field:     [0] RXOVF
387 //
388 // RXFIFO overflow event. This interrupt is set if an RX FIFO overflow has been
389 // detected.
390 // ENUMs:
391 // SET                      Interrupt occurred
392 // CLR                      Interrupt did not occur
393 #define SPI_RIS_RXOVF                                               0x00000001U
394 #define SPI_RIS_RXOVF_M                                             0x00000001U
395 #define SPI_RIS_RXOVF_S                                                      0U
396 #define SPI_RIS_RXOVF_SET                                           0x00000001U
397 #define SPI_RIS_RXOVF_CLR                                           0x00000000U
398 
399 //*****************************************************************************
400 //
401 // Register: SPI_O_MIS
402 //
403 //*****************************************************************************
404 // Field:     [8] DMATX
405 //
406 // Masked DMA Done event for TX.
407 // ENUMs:
408 // SET                      Interrupt occurred
409 // CLR                      Interrupt did not occur
410 #define SPI_MIS_DMATX                                               0x00000100U
411 #define SPI_MIS_DMATX_M                                             0x00000100U
412 #define SPI_MIS_DMATX_S                                                      8U
413 #define SPI_MIS_DMATX_SET                                           0x00000100U
414 #define SPI_MIS_DMATX_CLR                                           0x00000000U
415 
416 // Field:     [7] DMARX
417 //
418 // Masked DMA Done event for RX.
419 // ENUMs:
420 // SET                      Interrupt occurred
421 // CLR                      Interrupt did not occur
422 #define SPI_MIS_DMARX                                               0x00000080U
423 #define SPI_MIS_DMARX_M                                             0x00000080U
424 #define SPI_MIS_DMARX_S                                                      7U
425 #define SPI_MIS_DMARX_SET                                           0x00000080U
426 #define SPI_MIS_DMARX_CLR                                           0x00000000U
427 
428 // Field:     [6] IDLE
429 //
430 // Masked SPI IDLE event.
431 // ENUMs:
432 // SET                      Interrupt occurred
433 // CLR                      Interrupt did not occur
434 #define SPI_MIS_IDLE                                                0x00000040U
435 #define SPI_MIS_IDLE_M                                              0x00000040U
436 #define SPI_MIS_IDLE_S                                                       6U
437 #define SPI_MIS_IDLE_SET                                            0x00000040U
438 #define SPI_MIS_IDLE_CLR                                            0x00000000U
439 
440 // Field:     [5] TXEMPTY
441 //
442 // Masked Transmit FIFO Empty event.
443 // ENUMs:
444 // SET                      Interrupt occurred
445 // CLR                      Interrupt did not occur
446 #define SPI_MIS_TXEMPTY                                             0x00000020U
447 #define SPI_MIS_TXEMPTY_M                                           0x00000020U
448 #define SPI_MIS_TXEMPTY_S                                                    5U
449 #define SPI_MIS_TXEMPTY_SET                                         0x00000020U
450 #define SPI_MIS_TXEMPTY_CLR                                         0x00000000U
451 
452 // Field:     [4] TX
453 //
454 // Masked Transmit FIFO event.
455 // ENUMs:
456 // SET                      Interrupt occurred
457 // CLR                      Interrupt did not occur
458 #define SPI_MIS_TX                                                  0x00000010U
459 #define SPI_MIS_TX_M                                                0x00000010U
460 #define SPI_MIS_TX_S                                                         4U
461 #define SPI_MIS_TX_SET                                              0x00000010U
462 #define SPI_MIS_TX_CLR                                              0x00000000U
463 
464 // Field:     [3] RX
465 //
466 // Masked Receive FIFO event.
467 // ENUMs:
468 // SET                      Interrupt occurred
469 // CLR                      Interrupt did not occur
470 #define SPI_MIS_RX                                                  0x00000008U
471 #define SPI_MIS_RX_M                                                0x00000008U
472 #define SPI_MIS_RX_S                                                         3U
473 #define SPI_MIS_RX_SET                                              0x00000008U
474 #define SPI_MIS_RX_CLR                                              0x00000000U
475 
476 // Field:     [2] RTOUT
477 //
478 // Masked SPI Receive Time-Out event.
479 // ENUMs:
480 // SET                      Interrupt occurred
481 // CLR                      Interrupt did not occur
482 #define SPI_MIS_RTOUT                                               0x00000004U
483 #define SPI_MIS_RTOUT_M                                             0x00000004U
484 #define SPI_MIS_RTOUT_S                                                      2U
485 #define SPI_MIS_RTOUT_SET                                           0x00000004U
486 #define SPI_MIS_RTOUT_CLR                                           0x00000000U
487 
488 // Field:     [1] PER
489 //
490 // Masked Parity error event.
491 // ENUMs:
492 // SET                      Interrupt occurred
493 // CLR                      Interrupt did not occur
494 #define SPI_MIS_PER                                                 0x00000002U
495 #define SPI_MIS_PER_M                                               0x00000002U
496 #define SPI_MIS_PER_S                                                        1U
497 #define SPI_MIS_PER_SET                                             0x00000002U
498 #define SPI_MIS_PER_CLR                                             0x00000000U
499 
500 // Field:     [0] RXOVF
501 //
502 // Masked RXFIFO overflow event.
503 // ENUMs:
504 // SET                      Interrupt occurred
505 // CLR                      Interrupt did not occur
506 #define SPI_MIS_RXOVF                                               0x00000001U
507 #define SPI_MIS_RXOVF_M                                             0x00000001U
508 #define SPI_MIS_RXOVF_S                                                      0U
509 #define SPI_MIS_RXOVF_SET                                           0x00000001U
510 #define SPI_MIS_RXOVF_CLR                                           0x00000000U
511 
512 //*****************************************************************************
513 //
514 // Register: SPI_O_ISET
515 //
516 //*****************************************************************************
517 // Field:     [8] DMATX
518 //
519 // Set DMA Done event for TX.
520 // ENUMs:
521 // SET                      Set Interrupt
522 // NOEFF                    Writing 0 has no effect
523 #define SPI_ISET_DMATX                                              0x00000100U
524 #define SPI_ISET_DMATX_M                                            0x00000100U
525 #define SPI_ISET_DMATX_S                                                     8U
526 #define SPI_ISET_DMATX_SET                                          0x00000100U
527 #define SPI_ISET_DMATX_NOEFF                                        0x00000000U
528 
529 // Field:     [7] DMARX
530 //
531 // Set DMA Done event for RX.
532 // ENUMs:
533 // SET                      Set Interrupt
534 // NOEFF                    Writing 0 has no effect
535 #define SPI_ISET_DMARX                                              0x00000080U
536 #define SPI_ISET_DMARX_M                                            0x00000080U
537 #define SPI_ISET_DMARX_S                                                     7U
538 #define SPI_ISET_DMARX_SET                                          0x00000080U
539 #define SPI_ISET_DMARX_NOEFF                                        0x00000000U
540 
541 // Field:     [6] IDLE
542 //
543 // Set SPI IDLE event.
544 // ENUMs:
545 // SET                      Set Interrupt
546 // NOEFF                    Writing 0 has no effect
547 #define SPI_ISET_IDLE                                               0x00000040U
548 #define SPI_ISET_IDLE_M                                             0x00000040U
549 #define SPI_ISET_IDLE_S                                                      6U
550 #define SPI_ISET_IDLE_SET                                           0x00000040U
551 #define SPI_ISET_IDLE_NOEFF                                         0x00000000U
552 
553 // Field:     [5] TXEMPTY
554 //
555 // Set Transmit FIFO Empty event.
556 // ENUMs:
557 // SET                      Set Interrupt
558 // NOEFF                    Writing 0 has no effect
559 #define SPI_ISET_TXEMPTY                                            0x00000020U
560 #define SPI_ISET_TXEMPTY_M                                          0x00000020U
561 #define SPI_ISET_TXEMPTY_S                                                   5U
562 #define SPI_ISET_TXEMPTY_SET                                        0x00000020U
563 #define SPI_ISET_TXEMPTY_NOEFF                                      0x00000000U
564 
565 // Field:     [4] TX
566 //
567 // Set Transmit FIFO event.
568 // ENUMs:
569 // SET                      Set Interrupt
570 // NOEFF                    Writing 0 has no effect
571 #define SPI_ISET_TX                                                 0x00000010U
572 #define SPI_ISET_TX_M                                               0x00000010U
573 #define SPI_ISET_TX_S                                                        4U
574 #define SPI_ISET_TX_SET                                             0x00000010U
575 #define SPI_ISET_TX_NOEFF                                           0x00000000U
576 
577 // Field:     [3] RX
578 //
579 // Set Receive FIFO event.
580 // ENUMs:
581 // SET                      Set Interrupt
582 // NOEFF                    Writing 0 has no effect
583 #define SPI_ISET_RX                                                 0x00000008U
584 #define SPI_ISET_RX_M                                               0x00000008U
585 #define SPI_ISET_RX_S                                                        3U
586 #define SPI_ISET_RX_SET                                             0x00000008U
587 #define SPI_ISET_RX_NOEFF                                           0x00000000U
588 
589 // Field:     [2] RTOUT
590 //
591 // Set SPI Receive Time-Out Event.
592 // ENUMs:
593 // SET                      Set Interrupt Mask
594 // NOEFF                    Writing 0 has no effect
595 #define SPI_ISET_RTOUT                                              0x00000004U
596 #define SPI_ISET_RTOUT_M                                            0x00000004U
597 #define SPI_ISET_RTOUT_S                                                     2U
598 #define SPI_ISET_RTOUT_SET                                          0x00000004U
599 #define SPI_ISET_RTOUT_NOEFF                                        0x00000000U
600 
601 // Field:     [1] PER
602 //
603 // Set Parity error event.
604 // ENUMs:
605 // SET                      Set Interrupt
606 // NOEFF                    Writing 0 has no effect
607 #define SPI_ISET_PER                                                0x00000002U
608 #define SPI_ISET_PER_M                                              0x00000002U
609 #define SPI_ISET_PER_S                                                       1U
610 #define SPI_ISET_PER_SET                                            0x00000002U
611 #define SPI_ISET_PER_NOEFF                                          0x00000000U
612 
613 // Field:     [0] RXOVF
614 //
615 // Set RXFIFO overflow event.
616 // ENUMs:
617 // SET                      Set Interrupt
618 // NOEFF                    Writing 0 has no effect
619 #define SPI_ISET_RXOVF                                              0x00000001U
620 #define SPI_ISET_RXOVF_M                                            0x00000001U
621 #define SPI_ISET_RXOVF_S                                                     0U
622 #define SPI_ISET_RXOVF_SET                                          0x00000001U
623 #define SPI_ISET_RXOVF_NOEFF                                        0x00000000U
624 
625 //*****************************************************************************
626 //
627 // Register: SPI_O_ICLR
628 //
629 //*****************************************************************************
630 // Field:     [8] DMATX
631 //
632 // Clear DMA Done event for TX.
633 // ENUMs:
634 // CLR                      Clear Interrupt
635 // NOEFF                    Writing 0 has no effect
636 #define SPI_ICLR_DMATX                                              0x00000100U
637 #define SPI_ICLR_DMATX_M                                            0x00000100U
638 #define SPI_ICLR_DMATX_S                                                     8U
639 #define SPI_ICLR_DMATX_CLR                                          0x00000100U
640 #define SPI_ICLR_DMATX_NOEFF                                        0x00000000U
641 
642 // Field:     [7] DMARX
643 //
644 // Clear DMA Done event for RX.
645 // ENUMs:
646 // CLR                      Clear Interrupt
647 // NOEFF                    Writing 0 has no effect
648 #define SPI_ICLR_DMARX                                              0x00000080U
649 #define SPI_ICLR_DMARX_M                                            0x00000080U
650 #define SPI_ICLR_DMARX_S                                                     7U
651 #define SPI_ICLR_DMARX_CLR                                          0x00000080U
652 #define SPI_ICLR_DMARX_NOEFF                                        0x00000000U
653 
654 // Field:     [6] IDLE
655 //
656 // Clear SPI IDLE event.
657 // ENUMs:
658 // CLR                      Clear Interrupt
659 // NOEFF                    Writing 0 has no effect
660 #define SPI_ICLR_IDLE                                               0x00000040U
661 #define SPI_ICLR_IDLE_M                                             0x00000040U
662 #define SPI_ICLR_IDLE_S                                                      6U
663 #define SPI_ICLR_IDLE_CLR                                           0x00000040U
664 #define SPI_ICLR_IDLE_NOEFF                                         0x00000000U
665 
666 // Field:     [5] TXEMPTY
667 //
668 // Clear Transmit FIFO Empty event.
669 // ENUMs:
670 // CLR                      Clear Interrupt
671 // NOEFF                    Writing 0 has no effect
672 #define SPI_ICLR_TXEMPTY                                            0x00000020U
673 #define SPI_ICLR_TXEMPTY_M                                          0x00000020U
674 #define SPI_ICLR_TXEMPTY_S                                                   5U
675 #define SPI_ICLR_TXEMPTY_CLR                                        0x00000020U
676 #define SPI_ICLR_TXEMPTY_NOEFF                                      0x00000000U
677 
678 // Field:     [4] TX
679 //
680 // Clear Transmit FIFO event.
681 // ENUMs:
682 // CLR                      Clear Interrupt
683 // NOEFF                    Writing 0 has no effect
684 #define SPI_ICLR_TX                                                 0x00000010U
685 #define SPI_ICLR_TX_M                                               0x00000010U
686 #define SPI_ICLR_TX_S                                                        4U
687 #define SPI_ICLR_TX_CLR                                             0x00000010U
688 #define SPI_ICLR_TX_NOEFF                                           0x00000000U
689 
690 // Field:     [3] RX
691 //
692 // Clear Receive FIFO event.
693 // ENUMs:
694 // CLR                      Clear Interrupt
695 // NOEFF                    Writing 0 has no effect
696 #define SPI_ICLR_RX                                                 0x00000008U
697 #define SPI_ICLR_RX_M                                               0x00000008U
698 #define SPI_ICLR_RX_S                                                        3U
699 #define SPI_ICLR_RX_CLR                                             0x00000008U
700 #define SPI_ICLR_RX_NOEFF                                           0x00000000U
701 
702 // Field:     [2] RTOUT
703 //
704 // Clear SPI Receive Time-Out Event.
705 // ENUMs:
706 // CLR                      Set Interrupt Mask
707 // NOEFF                    Writing 0 has no effect
708 #define SPI_ICLR_RTOUT                                              0x00000004U
709 #define SPI_ICLR_RTOUT_M                                            0x00000004U
710 #define SPI_ICLR_RTOUT_S                                                     2U
711 #define SPI_ICLR_RTOUT_CLR                                          0x00000004U
712 #define SPI_ICLR_RTOUT_NOEFF                                        0x00000000U
713 
714 // Field:     [1] PER
715 //
716 // Clear Parity error event.
717 // ENUMs:
718 // CLR                      Clear Interrupt
719 // NOEFF                    Writing 0 has no effect
720 #define SPI_ICLR_PER                                                0x00000002U
721 #define SPI_ICLR_PER_M                                              0x00000002U
722 #define SPI_ICLR_PER_S                                                       1U
723 #define SPI_ICLR_PER_CLR                                            0x00000002U
724 #define SPI_ICLR_PER_NOEFF                                          0x00000000U
725 
726 // Field:     [0] RXOVF
727 //
728 // Clear RXFIFO overflow event.
729 // ENUMs:
730 // CLR                      Clear Interrupt
731 // NOEFF                    Writing 0 has no effect
732 #define SPI_ICLR_RXOVF                                              0x00000001U
733 #define SPI_ICLR_RXOVF_M                                            0x00000001U
734 #define SPI_ICLR_RXOVF_S                                                     0U
735 #define SPI_ICLR_RXOVF_CLR                                          0x00000001U
736 #define SPI_ICLR_RXOVF_NOEFF                                        0x00000000U
737 
738 //*****************************************************************************
739 //
740 // Register: SPI_O_IMSET
741 //
742 //*****************************************************************************
743 // Field:     [8] DMATX
744 //
745 // Set DMA Done for TX event mask
746 // ENUMs:
747 // SET                      Set interrupt mask
748 // NOEFF                    Writing 0 has no effect
749 #define SPI_IMSET_DMATX                                             0x00000100U
750 #define SPI_IMSET_DMATX_M                                           0x00000100U
751 #define SPI_IMSET_DMATX_S                                                    8U
752 #define SPI_IMSET_DMATX_SET                                         0x00000100U
753 #define SPI_IMSET_DMATX_NOEFF                                       0x00000000U
754 
755 // Field:     [7] DMARX
756 //
757 // Set DMA Done for RX event mask
758 // ENUMs:
759 // SET                      Set interrupt mask
760 // NOEFF                    Writing 0 has no effect
761 #define SPI_IMSET_DMARX                                             0x00000080U
762 #define SPI_IMSET_DMARX_M                                           0x00000080U
763 #define SPI_IMSET_DMARX_S                                                    7U
764 #define SPI_IMSET_DMARX_SET                                         0x00000080U
765 #define SPI_IMSET_DMARX_NOEFF                                       0x00000000U
766 
767 // Field:     [6] IDLE
768 //
769 // Set SPI IDLE event mask
770 // ENUMs:
771 // SET                      Set interrupt mask
772 // NOEFF                    Writing 0 has no effect
773 #define SPI_IMSET_IDLE                                              0x00000040U
774 #define SPI_IMSET_IDLE_M                                            0x00000040U
775 #define SPI_IMSET_IDLE_S                                                     6U
776 #define SPI_IMSET_IDLE_SET                                          0x00000040U
777 #define SPI_IMSET_IDLE_NOEFF                                        0x00000000U
778 
779 // Field:     [5] TXEMPTY
780 //
781 // Set Transmit FIFO Empty event mask
782 // ENUMs:
783 // SET                      Set interrupt mask
784 // NOEFF                    Writing 0 has no effect
785 #define SPI_IMSET_TXEMPTY                                           0x00000020U
786 #define SPI_IMSET_TXEMPTY_M                                         0x00000020U
787 #define SPI_IMSET_TXEMPTY_S                                                  5U
788 #define SPI_IMSET_TXEMPTY_SET                                       0x00000020U
789 #define SPI_IMSET_TXEMPTY_NOEFF                                     0x00000000U
790 
791 // Field:     [4] TX
792 //
793 // Set Transmit FIFO event mask
794 // ENUMs:
795 // SET                      Set interrupt mask
796 // NOEFF                    Writing 0 has no effect
797 #define SPI_IMSET_TX                                                0x00000010U
798 #define SPI_IMSET_TX_M                                              0x00000010U
799 #define SPI_IMSET_TX_S                                                       4U
800 #define SPI_IMSET_TX_SET                                            0x00000010U
801 #define SPI_IMSET_TX_NOEFF                                          0x00000000U
802 
803 // Field:     [3] RX
804 //
805 // Set Receive FIFO event mask
806 // ENUMs:
807 // SET                      Set interrupt mask
808 // NOEFF                    Writing 0 has no effect
809 #define SPI_IMSET_RX                                                0x00000008U
810 #define SPI_IMSET_RX_M                                              0x00000008U
811 #define SPI_IMSET_RX_S                                                       3U
812 #define SPI_IMSET_RX_SET                                            0x00000008U
813 #define SPI_IMSET_RX_NOEFF                                          0x00000000U
814 
815 // Field:     [2] RTOUT
816 //
817 // Set SPI Receive Time-Out event mask
818 // ENUMs:
819 // SET                      Set interrupt mask
820 // NOEFF                    Writing 0 has no effect
821 #define SPI_IMSET_RTOUT                                             0x00000004U
822 #define SPI_IMSET_RTOUT_M                                           0x00000004U
823 #define SPI_IMSET_RTOUT_S                                                    2U
824 #define SPI_IMSET_RTOUT_SET                                         0x00000004U
825 #define SPI_IMSET_RTOUT_NOEFF                                       0x00000000U
826 
827 // Field:     [1] PER
828 //
829 // Set Parity error event mask
830 // ENUMs:
831 // SET                      Set interrupt mask
832 // NOEFF                    Writing 0 has no effect
833 #define SPI_IMSET_PER                                               0x00000002U
834 #define SPI_IMSET_PER_M                                             0x00000002U
835 #define SPI_IMSET_PER_S                                                      1U
836 #define SPI_IMSET_PER_SET                                           0x00000002U
837 #define SPI_IMSET_PER_NOEFF                                         0x00000000U
838 
839 // Field:     [0] RXOVF
840 //
841 // Set RXFIFO overflow event mask
842 // ENUMs:
843 // SET                      Set interrupt mask
844 // NOEFF                    Writing 0 has no effect
845 #define SPI_IMSET_RXOVF                                             0x00000001U
846 #define SPI_IMSET_RXOVF_M                                           0x00000001U
847 #define SPI_IMSET_RXOVF_S                                                    0U
848 #define SPI_IMSET_RXOVF_SET                                         0x00000001U
849 #define SPI_IMSET_RXOVF_NOEFF                                       0x00000000U
850 
851 //*****************************************************************************
852 //
853 // Register: SPI_O_IMCLR
854 //
855 //*****************************************************************************
856 // Field:     [8] DMATX
857 //
858 // Clear DMA Done for TX event mask
859 // ENUMs:
860 // CLR                      Clear interrupt mask
861 // NOEFF                    Writing 0 has no effect
862 #define SPI_IMCLR_DMATX                                             0x00000100U
863 #define SPI_IMCLR_DMATX_M                                           0x00000100U
864 #define SPI_IMCLR_DMATX_S                                                    8U
865 #define SPI_IMCLR_DMATX_CLR                                         0x00000100U
866 #define SPI_IMCLR_DMATX_NOEFF                                       0x00000000U
867 
868 // Field:     [7] DMARX
869 //
870 // Clear DMA Done for RX event mask
871 // ENUMs:
872 // CLR                      Clear interrupt mask
873 // NOEFF                    Writing 0 has no effect
874 #define SPI_IMCLR_DMARX                                             0x00000080U
875 #define SPI_IMCLR_DMARX_M                                           0x00000080U
876 #define SPI_IMCLR_DMARX_S                                                    7U
877 #define SPI_IMCLR_DMARX_CLR                                         0x00000080U
878 #define SPI_IMCLR_DMARX_NOEFF                                       0x00000000U
879 
880 // Field:     [6] IDLE
881 //
882 // Clear SPI IDLE event mask
883 // ENUMs:
884 // CLR                      Clear interrupt mask
885 // NOEFF                    Writing 0 has no effect
886 #define SPI_IMCLR_IDLE                                              0x00000040U
887 #define SPI_IMCLR_IDLE_M                                            0x00000040U
888 #define SPI_IMCLR_IDLE_S                                                     6U
889 #define SPI_IMCLR_IDLE_CLR                                          0x00000040U
890 #define SPI_IMCLR_IDLE_NOEFF                                        0x00000000U
891 
892 // Field:     [5] TXEMPTY
893 //
894 // Clear Transmit FIFO Empty event mask
895 // ENUMs:
896 // CLR                      Clear interrupt mask
897 // NOEFF                    Writing 0 has no effect
898 #define SPI_IMCLR_TXEMPTY                                           0x00000020U
899 #define SPI_IMCLR_TXEMPTY_M                                         0x00000020U
900 #define SPI_IMCLR_TXEMPTY_S                                                  5U
901 #define SPI_IMCLR_TXEMPTY_CLR                                       0x00000020U
902 #define SPI_IMCLR_TXEMPTY_NOEFF                                     0x00000000U
903 
904 // Field:     [4] TX
905 //
906 // Clear Transmit FIFO event mask
907 // ENUMs:
908 // CLR                      Clear interrupt mask
909 // NOEFF                    Writing 0 has no effect
910 #define SPI_IMCLR_TX                                                0x00000010U
911 #define SPI_IMCLR_TX_M                                              0x00000010U
912 #define SPI_IMCLR_TX_S                                                       4U
913 #define SPI_IMCLR_TX_CLR                                            0x00000010U
914 #define SPI_IMCLR_TX_NOEFF                                          0x00000000U
915 
916 // Field:     [3] RX
917 //
918 // Clear Receive FIFO event mask
919 // ENUMs:
920 // CLR                      Clear interrupt mask
921 // NOEFF                    Writing 0 has no effect
922 #define SPI_IMCLR_RX                                                0x00000008U
923 #define SPI_IMCLR_RX_M                                              0x00000008U
924 #define SPI_IMCLR_RX_S                                                       3U
925 #define SPI_IMCLR_RX_CLR                                            0x00000008U
926 #define SPI_IMCLR_RX_NOEFF                                          0x00000000U
927 
928 // Field:     [2] RTOUT
929 //
930 // Clear SPI Receive Time-Out event mask
931 // ENUMs:
932 // CLR                      Clear interrupt mask
933 // NOEFF                    Writing 0 has no effect
934 #define SPI_IMCLR_RTOUT                                             0x00000004U
935 #define SPI_IMCLR_RTOUT_M                                           0x00000004U
936 #define SPI_IMCLR_RTOUT_S                                                    2U
937 #define SPI_IMCLR_RTOUT_CLR                                         0x00000004U
938 #define SPI_IMCLR_RTOUT_NOEFF                                       0x00000000U
939 
940 // Field:     [1] PER
941 //
942 // Clear Parity error event mask
943 // ENUMs:
944 // CLR                      Clear interrupt mask
945 // NOEFF                    Writing 0 has no effect
946 #define SPI_IMCLR_PER                                               0x00000002U
947 #define SPI_IMCLR_PER_M                                             0x00000002U
948 #define SPI_IMCLR_PER_S                                                      1U
949 #define SPI_IMCLR_PER_CLR                                           0x00000002U
950 #define SPI_IMCLR_PER_NOEFF                                         0x00000000U
951 
952 // Field:     [0] RXOVF
953 //
954 // Clear RXFIFO overflow event mask
955 // ENUMs:
956 // CLR                      Clear interrupt mask
957 // NOEFF                    Writing 0 has no effect
958 #define SPI_IMCLR_RXOVF                                             0x00000001U
959 #define SPI_IMCLR_RXOVF_M                                           0x00000001U
960 #define SPI_IMCLR_RXOVF_S                                                    0U
961 #define SPI_IMCLR_RXOVF_CLR                                         0x00000001U
962 #define SPI_IMCLR_RXOVF_NOEFF                                       0x00000000U
963 
964 //*****************************************************************************
965 //
966 // Register: SPI_O_EMU
967 //
968 //*****************************************************************************
969 // Field:     [0] HALT
970 //
971 // Halt control
972 // ENUMs:
973 // STOP                      Freeze option. The IP freezes functionality when
974 //                          the core halted input is asserted, and resumes
975 //                          when it is deasserted. The freeze can either be
976 //                          immediate or after the IP has reached a
977 //                          boundary (end of word boundary, based on DSS
978 //                          configuration) from where it can resume without
979 //                          corruption.
980 // RUN                      Free run option. The IP ignores the state of the
981 //                          core halted input.
982 #define SPI_EMU_HALT                                                0x00000001U
983 #define SPI_EMU_HALT_M                                              0x00000001U
984 #define SPI_EMU_HALT_S                                                       0U
985 #define SPI_EMU_HALT_STOP                                           0x00000001U
986 #define SPI_EMU_HALT_RUN                                            0x00000000U
987 
988 //*****************************************************************************
989 //
990 // Register: SPI_O_CTL0
991 //
992 //*****************************************************************************
993 // Field:    [17] IDLEPOCI
994 //
995 // The Idle value of POCI - when TXFIFO is empty and before data is written
996 // into TXFIFO - can be controlled by this field.
997 // ENUMs:
998 // IDLE_ONE                 POCI outputs idle value of '1'
999 // IDLE_ZERO                POCI output idle value of '0'
1000 #define SPI_CTL0_IDLEPOCI                                           0x00020000U
1001 #define SPI_CTL0_IDLEPOCI_M                                         0x00020000U
1002 #define SPI_CTL0_IDLEPOCI_S                                                 17U
1003 #define SPI_CTL0_IDLEPOCI_IDLE_ONE                                  0x00020000U
1004 #define SPI_CTL0_IDLEPOCI_IDLE_ZERO                                 0x00000000U
1005 
1006 // Field:    [16] GPCRCEN
1007 //
1008 // General purpose CRC enable. This bit enables transmit side CRC unit for
1009 // general purpose use by software when SPI is disabled (CTL1.EN = 0). This bit
1010 // must be 0 when SPI is enabled.
1011 // ENUMs:
1012 // EN                       Transmit side CRC unit is available for general
1013 //                          purpose software use
1014 // DIS                      Transmit side CRC unit is not available for
1015 //                          general purpose software use
1016 #define SPI_CTL0_GPCRCEN                                            0x00010000U
1017 #define SPI_CTL0_GPCRCEN_M                                          0x00010000U
1018 #define SPI_CTL0_GPCRCEN_S                                                  16U
1019 #define SPI_CTL0_GPCRCEN_EN                                         0x00010000U
1020 #define SPI_CTL0_GPCRCEN_DIS                                        0x00000000U
1021 
1022 // Field:    [15] CRCPOLY
1023 //
1024 // CRC polynomial selection.
1025 // ENUMs:
1026 // SIZE16BIT                Selects 16-bit CCITT CRC polynomial
1027 // SIZE8BIT                 Selects 8-bit CCITT CRC polynomial
1028 #define SPI_CTL0_CRCPOLY                                            0x00008000U
1029 #define SPI_CTL0_CRCPOLY_M                                          0x00008000U
1030 #define SPI_CTL0_CRCPOLY_S                                                  15U
1031 #define SPI_CTL0_CRCPOLY_SIZE16BIT                                  0x00008000U
1032 #define SPI_CTL0_CRCPOLY_SIZE8BIT                                   0x00000000U
1033 
1034 // Field:    [14] AUTOCRC
1035 //
1036 // Auto insert CRC
1037 // ENUMs:
1038 // EN                       Insert CRC into TXFIFO upon TXFIFO underflow
1039 // DIS                      Do not insert CRC into TXFIFO upon TXFIFO
1040 //                          underflow
1041 #define SPI_CTL0_AUTOCRC                                            0x00004000U
1042 #define SPI_CTL0_AUTOCRC_M                                          0x00004000U
1043 #define SPI_CTL0_AUTOCRC_S                                                  14U
1044 #define SPI_CTL0_AUTOCRC_EN                                         0x00004000U
1045 #define SPI_CTL0_AUTOCRC_DIS                                        0x00000000U
1046 
1047 // Field:    [13] CRCEND
1048 //
1049 // CRC16 Endianness
1050 // ENUMs:
1051 // CRC_END_LSB              Auto-insertion of CRC16 is least-significant byte
1052 //                          first
1053 // CRC_END_MSB              Auto-insertion of CRC16 is most-significant byte
1054 //                          first
1055 #define SPI_CTL0_CRCEND                                             0x00002000U
1056 #define SPI_CTL0_CRCEND_M                                           0x00002000U
1057 #define SPI_CTL0_CRCEND_S                                                   13U
1058 #define SPI_CTL0_CRCEND_CRC_END_LSB                                 0x00002000U
1059 #define SPI_CTL0_CRCEND_CRC_END_MSB                                 0x00000000U
1060 
1061 // Field:    [12] CSCLR
1062 //
1063 // Clear shift register counter on CS inactive.
1064 // This bit is relevant only in the peripheral mode, when CTL1.MS=0.
1065 // ENUMs:
1066 // EN                       Enable automatic clear of shift register when CS
1067 //                          goes inactive.
1068 // DIS                      Disable automatic clear of shift register when CS
1069 //                          goes inactive.
1070 #define SPI_CTL0_CSCLR                                              0x00001000U
1071 #define SPI_CTL0_CSCLR_M                                            0x00001000U
1072 #define SPI_CTL0_CSCLR_S                                                    12U
1073 #define SPI_CTL0_CSCLR_EN                                           0x00001000U
1074 #define SPI_CTL0_CSCLR_DIS                                          0x00000000U
1075 
1076 // Field:    [11] FIFORST
1077 //
1078 // This bit is used to reset transmit and receive FIFO pointers. This bit is
1079 // auto cleared once the FIFO pointer reset operation is completed.
1080 // ENUMs:
1081 // RST_TRIG                 Trigger FIFO pointers reset when written to 1.
1082 // RST_DONE                 FIFO pointers reset completed when 0 is read
1083 #define SPI_CTL0_FIFORST                                            0x00000800U
1084 #define SPI_CTL0_FIFORST_M                                          0x00000800U
1085 #define SPI_CTL0_FIFORST_S                                                  11U
1086 #define SPI_CTL0_FIFORST_RST_TRIG                                   0x00000800U
1087 #define SPI_CTL0_FIFORST_RST_DONE                                   0x00000000U
1088 
1089 // Field:    [10] HWCSN
1090 //
1091 // Hardware controlled chip select (CS) value. When set CS is zero till TX FIFO
1092 // is empty, as in -
1093 // a.	CS is de-asserted
1094 // b.	All data bytes are transmitted
1095 // c.	CS is asserted
1096 // ENUMs:
1097 // EN                       HWCSN Enable
1098 // DIS                      HWCSN Disable
1099 #define SPI_CTL0_HWCSN                                              0x00000400U
1100 #define SPI_CTL0_HWCSN_M                                            0x00000400U
1101 #define SPI_CTL0_HWCSN_S                                                    10U
1102 #define SPI_CTL0_HWCSN_EN                                           0x00000400U
1103 #define SPI_CTL0_HWCSN_DIS                                          0x00000000U
1104 
1105 // Field:     [9] SPH
1106 //
1107 // SCLK phase (Motorola SPI frame format only).
1108 // This bit selects the clock edge that captures data and enables it to change
1109 // state.
1110 // It has the most impact on the first bit transmitted by either permitting or
1111 // not permitting a clock transition before the first data capture clock edge.
1112 // ENUMs:
1113 // SECOND                   Data is captured on the second clock edge
1114 //                          transition.
1115 // FIRST                    Data is captured on the first clock edge
1116 //                          transition.
1117 #define SPI_CTL0_SPH                                                0x00000200U
1118 #define SPI_CTL0_SPH_M                                              0x00000200U
1119 #define SPI_CTL0_SPH_S                                                       9U
1120 #define SPI_CTL0_SPH_SECOND                                         0x00000200U
1121 #define SPI_CTL0_SPH_FIRST                                          0x00000000U
1122 
1123 // Field:     [8] SPO
1124 //
1125 // SCLK polarity (Motorola SPI frame format only).
1126 // ENUMs:
1127 // HI                       SPI produces a steady state HI value on the SCLK
1128 // LO                       SPI produces a steady state LO value on the SCLK
1129 #define SPI_CTL0_SPO                                                0x00000100U
1130 #define SPI_CTL0_SPO_M                                              0x00000100U
1131 #define SPI_CTL0_SPO_S                                                       8U
1132 #define SPI_CTL0_SPO_HI                                             0x00000100U
1133 #define SPI_CTL0_SPO_LO                                             0x00000000U
1134 
1135 // Field:   [6:5] FRF
1136 //
1137 // Frame format select
1138 // ENUMs:
1139 // MICROWIRE                MICROWIRE frame format
1140 // TI_SYNC                  TI synchronous serial frame format
1141 // MOTOROLA_4WIRE           Motorola SPI frame format (4-wire mode)
1142 // MOTOROLA_3WIRE           Motorola SPI frame format (3-wire mode)
1143 #define SPI_CTL0_FRF_W                                                       2U
1144 #define SPI_CTL0_FRF_M                                              0x00000060U
1145 #define SPI_CTL0_FRF_S                                                       5U
1146 #define SPI_CTL0_FRF_MICROWIRE                                      0x00000060U
1147 #define SPI_CTL0_FRF_TI_SYNC                                        0x00000040U
1148 #define SPI_CTL0_FRF_MOTOROLA_4WIRE                                 0x00000020U
1149 #define SPI_CTL0_FRF_MOTOROLA_3WIRE                                 0x00000000U
1150 
1151 // Field:   [3:0] DSS
1152 //
1153 // Data size select. The applicable DSS values for controller mode operation
1154 // are 0x3 to 0xF and for peripheral mode operation are 0x6 to 0xF. DSS values
1155 // 0x0 to 0x2 are reserved and must not be used.
1156 // ENUMs:
1157 // BITS_16                  16-bits data size
1158 // BITS_15                  15-bits data size
1159 // BITS_14                  14-bits data size
1160 // BITS_13                  13-bits data size
1161 // BITS_12                  12-bits data size
1162 // BITS_11                  11-bits data size
1163 // BITS_10                  10-bits data size
1164 // BITS_9                   9-bits data size
1165 // BITS_8                   8-bits data size
1166 // BITS_7                   7-bits data size
1167 // BITS_6                   6-bits data size
1168 // BITS_5                   5-bits data size
1169 // BITS_4                   4-bits data size
1170 #define SPI_CTL0_DSS_W                                                       4U
1171 #define SPI_CTL0_DSS_M                                              0x0000000FU
1172 #define SPI_CTL0_DSS_S                                                       0U
1173 #define SPI_CTL0_DSS_BITS_16                                        0x0000000FU
1174 #define SPI_CTL0_DSS_BITS_15                                        0x0000000EU
1175 #define SPI_CTL0_DSS_BITS_14                                        0x0000000DU
1176 #define SPI_CTL0_DSS_BITS_13                                        0x0000000CU
1177 #define SPI_CTL0_DSS_BITS_12                                        0x0000000BU
1178 #define SPI_CTL0_DSS_BITS_11                                        0x0000000AU
1179 #define SPI_CTL0_DSS_BITS_10                                        0x00000009U
1180 #define SPI_CTL0_DSS_BITS_9                                         0x00000008U
1181 #define SPI_CTL0_DSS_BITS_8                                         0x00000007U
1182 #define SPI_CTL0_DSS_BITS_7                                         0x00000006U
1183 #define SPI_CTL0_DSS_BITS_6                                         0x00000005U
1184 #define SPI_CTL0_DSS_BITS_5                                         0x00000004U
1185 #define SPI_CTL0_DSS_BITS_4                                         0x00000003U
1186 
1187 //*****************************************************************************
1188 //
1189 // Register: SPI_O_CTL1
1190 //
1191 //*****************************************************************************
1192 // Field: [29:24] RTOUT
1193 //
1194 // Receive Timeout (only for Peripheral mode)
1195 // Defines the number of  CLKSVT clock cycles after which the Receive Timeout
1196 // flag RIS.RTOUT is set.
1197 // A value of 0 disables this function.
1198 #define SPI_CTL1_RTOUT_W                                                     6U
1199 #define SPI_CTL1_RTOUT_M                                            0x3F000000U
1200 #define SPI_CTL1_RTOUT_S                                                    24U
1201 
1202 // Field: [23:16] REPTX
1203 //
1204 // Counter to repeat last transfer (only in controller mode)
1205 // 0: repeat last transfer is disabled.
1206 // x: repeat the last transfer with the provided value.
1207 // The transfer will be started with writing a data into the TX FIFO. Sending
1208 // the data will be repeated REPTX number of times, so the data will be
1209 // transferred x+1 times in total.
1210 // It can be used to clean a transfer or to pull a certain amount of data by a
1211 // peripheral.
1212 // ENUMs:
1213 // DIS                      REPTX disable
1214 #define SPI_CTL1_REPTX_W                                                     8U
1215 #define SPI_CTL1_REPTX_M                                            0x00FF0000U
1216 #define SPI_CTL1_REPTX_S                                                    16U
1217 #define SPI_CTL1_REPTX_DIS                                          0x00000000U
1218 
1219 // Field: [15:12] CDMODE
1220 //
1221 // Command Data Mode. This bit field value determines the behavior of C/D or CS
1222 // signal when CDEN = 1. CS pin held low indicates command phase and CS pin
1223 // held high indicates data phase.
1224 // When CDMODE = 0x0, the CS pin is always held high during transfer indicating
1225 // data phase only operation (manual mode).
1226 // When CDMODE = 0xF, the CS pin is always held low during transfer indicating
1227 // command phase only operation (manual mode).
1228 // When CDMODE = 0x1 to 0xE, the CS pin is held low for the number of bytes
1229 // indicated by CDMODE value for the command phase and held high for the
1230 // remaining transfers in the data phase (automatic mode).
1231 // When CDMODE is set to value 0x1 to 0xE, reading CDMODE during operation
1232 // indicates the remaining bytes to be transferred in the command phase.
1233 // ENUMs:
1234 // COMMAND                  Manual mode: Command
1235 // DATA                     Manual mode: Data
1236 #define SPI_CTL1_CDMODE_W                                                    4U
1237 #define SPI_CTL1_CDMODE_M                                           0x0000F000U
1238 #define SPI_CTL1_CDMODE_S                                                   12U
1239 #define SPI_CTL1_CDMODE_COMMAND                                     0x0000F000U
1240 #define SPI_CTL1_CDMODE_DATA                                        0x00000000U
1241 
1242 // Field:    [11] CDEN
1243 //
1244 // Command/Data mode enable. This feature is applicable only in controller mode
1245 // and for 8-bit transfers (CTL0.DSS = 7). The chip select pin is used for
1246 // command/data signaling in Motorola SPI frame format (3-wire) operation.
1247 // ENUMs:
1248 // EN                       C/D Mode Enable
1249 // DIS                      C/D Mode Disable
1250 #define SPI_CTL1_CDEN                                               0x00000800U
1251 #define SPI_CTL1_CDEN_M                                             0x00000800U
1252 #define SPI_CTL1_CDEN_S                                                     11U
1253 #define SPI_CTL1_CDEN_EN                                            0x00000800U
1254 #define SPI_CTL1_CDEN_DIS                                           0x00000000U
1255 
1256 // Field:     [7] PBS
1257 //
1258 // Parity bit select
1259 // ENUMs:
1260 // BIT1                     Bit 1 is used for Parity, Bit 0 is ignored
1261 // BIT0                     Bit 0 is used for Parity
1262 #define SPI_CTL1_PBS                                                0x00000080U
1263 #define SPI_CTL1_PBS_M                                              0x00000080U
1264 #define SPI_CTL1_PBS_S                                                       7U
1265 #define SPI_CTL1_PBS_BIT1                                           0x00000080U
1266 #define SPI_CTL1_PBS_BIT0                                           0x00000000U
1267 
1268 // Field:     [6] PES
1269 //
1270 // Even parity select.
1271 // ENUMs:
1272 // EVEN                     Even Parity mode
1273 // ODD                      Odd Parity mode
1274 #define SPI_CTL1_PES                                                0x00000040U
1275 #define SPI_CTL1_PES_M                                              0x00000040U
1276 #define SPI_CTL1_PES_S                                                       6U
1277 #define SPI_CTL1_PES_EVEN                                           0x00000040U
1278 #define SPI_CTL1_PES_ODD                                            0x00000000U
1279 
1280 // Field:     [5] PEN
1281 //
1282 // Parity enable. If enabled the last bit will be used as parity to evaluate
1283 // the correct reception of the previous bits.
1284 // In case of parity mismatch the parity error flag RIS.PER will be set. This
1285 // feature is available only in SPI controller mode.
1286 // ENUMs:
1287 // EN                       Enable Parity function
1288 // DIS                      Disable Parity function
1289 #define SPI_CTL1_PEN                                                0x00000020U
1290 #define SPI_CTL1_PEN_M                                              0x00000020U
1291 #define SPI_CTL1_PEN_S                                                       5U
1292 #define SPI_CTL1_PEN_EN                                             0x00000020U
1293 #define SPI_CTL1_PEN_DIS                                            0x00000000U
1294 
1295 // Field:     [4] MSB
1296 //
1297 // MSB first select. Controls the direction of receive and transmit shift
1298 // register. MSB first configuration (MSB = 1) must be selected when CRC
1299 // feature is used for SPI communication.
1300 // ENUMs:
1301 // MSB                      MSB first
1302 // LSB                      LSB first
1303 #define SPI_CTL1_MSB                                                0x00000010U
1304 #define SPI_CTL1_MSB_M                                              0x00000010U
1305 #define SPI_CTL1_MSB_S                                                       4U
1306 #define SPI_CTL1_MSB_MSB                                            0x00000010U
1307 #define SPI_CTL1_MSB_LSB                                            0x00000000U
1308 
1309 // Field:     [3] POD
1310 //
1311 // Peripheral data output disable.
1312 // This bit is relevant only in the peripheral mode, MS=1. In
1313 // multiple-peripheral systems, it is possible for a SPI controller to
1314 // broadcast a message to all peripherals in the system while ensuring that
1315 // only one peripheral drives data onto its serial output line. In such systems
1316 // the POCI lines from multiple peripherals could be tied together. To operate
1317 // in such systems, this bit field can be set if the SPI peripheral is not
1318 // supposed to drive the POCI output.
1319 // ENUMs:
1320 // EN                       SPI cannot drive the POCI output in peripheral
1321 //                          mode.
1322 // DIS                      SPI can drive the POCI output in peripheral mode.
1323 #define SPI_CTL1_POD                                                0x00000008U
1324 #define SPI_CTL1_POD_M                                              0x00000008U
1325 #define SPI_CTL1_POD_S                                                       3U
1326 #define SPI_CTL1_POD_EN                                             0x00000008U
1327 #define SPI_CTL1_POD_DIS                                            0x00000000U
1328 
1329 // Field:     [2] MS
1330 //
1331 // Controller or peripheral mode select. This bit can be modified only when SPI
1332 // is disabled, CTL1.EN=0.
1333 // ENUMs:
1334 // CONTROLLER               Select Controller mode
1335 // PERIPHERAL               Select Peripheral mode
1336 #define SPI_CTL1_MS                                                 0x00000004U
1337 #define SPI_CTL1_MS_M                                               0x00000004U
1338 #define SPI_CTL1_MS_S                                                        2U
1339 #define SPI_CTL1_MS_CONTROLLER                                      0x00000004U
1340 #define SPI_CTL1_MS_PERIPHERAL                                      0x00000000U
1341 
1342 // Field:     [1] LBM
1343 //
1344 // Loop back mode control
1345 // ENUMs:
1346 // EN                       Enable loopback mode. Output of transmit serial
1347 //                          shifter is connected to input of receive serial
1348 //                          shifter internally.
1349 // DIS                      Disable loopback mode. Normal serial port
1350 //                          operation enabled.
1351 #define SPI_CTL1_LBM                                                0x00000002U
1352 #define SPI_CTL1_LBM_M                                              0x00000002U
1353 #define SPI_CTL1_LBM_S                                                       1U
1354 #define SPI_CTL1_LBM_EN                                             0x00000002U
1355 #define SPI_CTL1_LBM_DIS                                            0x00000000U
1356 
1357 // Field:     [0] EN
1358 //
1359 // SPI enable.
1360 // NOTE: This bit field must be set to 1 using a separate write access, after
1361 // the other bit fields have been configured.
1362 // ENUMs:
1363 // EN                       SPI Enabled and released for operation.
1364 // DIS                      SPI is disabled
1365 #define SPI_CTL1_EN                                                 0x00000001U
1366 #define SPI_CTL1_EN_M                                               0x00000001U
1367 #define SPI_CTL1_EN_S                                                        0U
1368 #define SPI_CTL1_EN_EN                                              0x00000001U
1369 #define SPI_CTL1_EN_DIS                                             0x00000000U
1370 
1371 //*****************************************************************************
1372 //
1373 // Register: SPI_O_CLKCFG0
1374 //
1375 //*****************************************************************************
1376 // Field:   [2:0] PRESC
1377 //
1378 // Prescaler configuration
1379 // ENUMs:
1380 // DIV_BY_8                 Divide clock source by 8
1381 // DIV_BY_7                 Divide clock source by 7
1382 // DIV_BY_6                 Divide clock source by 6
1383 // DIV_BY_5                 Divide clock source by 5
1384 // DIV_BY_4                 Divide clock source by 4
1385 // DIV_BY_3                 Divide clock source by 3
1386 // DIV_BY_2                 Divide clock source by 2
1387 // DIV_BY_1                 Do not divide clock source
1388 #define SPI_CLKCFG0_PRESC_W                                                  3U
1389 #define SPI_CLKCFG0_PRESC_M                                         0x00000007U
1390 #define SPI_CLKCFG0_PRESC_S                                                  0U
1391 #define SPI_CLKCFG0_PRESC_DIV_BY_8                                  0x00000007U
1392 #define SPI_CLKCFG0_PRESC_DIV_BY_7                                  0x00000006U
1393 #define SPI_CLKCFG0_PRESC_DIV_BY_6                                  0x00000005U
1394 #define SPI_CLKCFG0_PRESC_DIV_BY_5                                  0x00000004U
1395 #define SPI_CLKCFG0_PRESC_DIV_BY_4                                  0x00000003U
1396 #define SPI_CLKCFG0_PRESC_DIV_BY_3                                  0x00000002U
1397 #define SPI_CLKCFG0_PRESC_DIV_BY_2                                  0x00000001U
1398 #define SPI_CLKCFG0_PRESC_DIV_BY_1                                  0x00000000U
1399 
1400 //*****************************************************************************
1401 //
1402 // Register: SPI_O_CLKCFG1
1403 //
1404 //*****************************************************************************
1405 // Field: [19:16] DSAMPLE
1406 //
1407 // Delayed sampling. In controller mode the data on the POCI pin will be
1408 // delayed sampled by the defined CLKSVT clock cycles. DSAMPLE values can range
1409 // from 0 to SCR+1. Typically, values of 1 or 2 would suffice.
1410 #define SPI_CLKCFG1_DSAMPLE_W                                                4U
1411 #define SPI_CLKCFG1_DSAMPLE_M                                       0x000F0000U
1412 #define SPI_CLKCFG1_DSAMPLE_S                                               16U
1413 
1414 // Field:   [9:0] SCR
1415 //
1416 // Serial clock divider. This is used to generate the transmit and receive bit
1417 // rate of the SPI.
1418 // The SPI bit rate: (SPI functional clock frequency)/((SCR+1)*PRESC). SCR
1419 // value can be from 0 to 1023.
1420 #define SPI_CLKCFG1_SCR_W                                                   10U
1421 #define SPI_CLKCFG1_SCR_M                                           0x000003FFU
1422 #define SPI_CLKCFG1_SCR_S                                                    0U
1423 
1424 //*****************************************************************************
1425 //
1426 // Register: SPI_O_IFLS
1427 //
1428 //*****************************************************************************
1429 // Field:  [10:8] RXSEL
1430 //
1431 // Receive FIFO Level Select. The trigger points for the receive interrupt are
1432 // as follows:
1433 // ENUMs:
1434 // LEVEL_1                  Trigger when RX FIFO contains >= 1 byte
1435 // LVL_RES6                 Reserved
1436 // LVL_FULL                 RX FIFO is full
1437 // LVL_RES4                 Reserved
1438 // LVL_3_4                  RX FIFO >= 3/4 full
1439 // LVL_1_2                  RX FIFO >= 1/2 full (default)
1440 // LVL_1_4                  RX FIFO >= 1/4 full
1441 // LVL_OFF                  Reserved
1442 #define SPI_IFLS_RXSEL_W                                                     3U
1443 #define SPI_IFLS_RXSEL_M                                            0x00000700U
1444 #define SPI_IFLS_RXSEL_S                                                     8U
1445 #define SPI_IFLS_RXSEL_LEVEL_1                                      0x00000700U
1446 #define SPI_IFLS_RXSEL_LVL_RES6                                     0x00000600U
1447 #define SPI_IFLS_RXSEL_LVL_FULL                                     0x00000500U
1448 #define SPI_IFLS_RXSEL_LVL_RES4                                     0x00000400U
1449 #define SPI_IFLS_RXSEL_LVL_3_4                                      0x00000300U
1450 #define SPI_IFLS_RXSEL_LVL_1_2                                      0x00000200U
1451 #define SPI_IFLS_RXSEL_LVL_1_4                                      0x00000100U
1452 #define SPI_IFLS_RXSEL_LVL_OFF                                      0x00000000U
1453 
1454 // Field:   [2:0] TXSEL
1455 //
1456 // Transmit FIFO Level Select. The trigger points for the transmit interrupt
1457 // are as follows:
1458 // ENUMs:
1459 // LEVEL_1                  Trigger when TX FIFO has >= 1 byte free
1460 // LVL_RES6                 Reserved
1461 // LVL_EMPTY                TX FIFO is empty
1462 // LVL_RES4                 Reserved
1463 // LVL_1_4                  TX FIFO <= 1/4 empty
1464 // LVL_1_2                  TX FIFO <= 1/2 empty (default)
1465 // LVL_3_4                  TX FIFO <= 3/4 empty
1466 // LVL_OFF                  Reserved
1467 #define SPI_IFLS_TXSEL_W                                                     3U
1468 #define SPI_IFLS_TXSEL_M                                            0x00000007U
1469 #define SPI_IFLS_TXSEL_S                                                     0U
1470 #define SPI_IFLS_TXSEL_LEVEL_1                                      0x00000007U
1471 #define SPI_IFLS_TXSEL_LVL_RES6                                     0x00000006U
1472 #define SPI_IFLS_TXSEL_LVL_EMPTY                                    0x00000005U
1473 #define SPI_IFLS_TXSEL_LVL_RES4                                     0x00000004U
1474 #define SPI_IFLS_TXSEL_LVL_1_4                                      0x00000003U
1475 #define SPI_IFLS_TXSEL_LVL_1_2                                      0x00000002U
1476 #define SPI_IFLS_TXSEL_LVL_3_4                                      0x00000001U
1477 #define SPI_IFLS_TXSEL_LVL_OFF                                      0x00000000U
1478 
1479 //*****************************************************************************
1480 //
1481 // Register: SPI_O_DMACR
1482 //
1483 //*****************************************************************************
1484 // Field:     [8] TXEN
1485 //
1486 // Transmit DMA enable. If this bit is set to 1, DMA for the transmit FIFO is
1487 // enabled.
1488 // ENUMs:
1489 // EN                       Enable TX DMA
1490 // DIS                      Disable TX DMA
1491 #define SPI_DMACR_TXEN                                              0x00000100U
1492 #define SPI_DMACR_TXEN_M                                            0x00000100U
1493 #define SPI_DMACR_TXEN_S                                                     8U
1494 #define SPI_DMACR_TXEN_EN                                           0x00000100U
1495 #define SPI_DMACR_TXEN_DIS                                          0x00000000U
1496 
1497 // Field:     [0] RXEN
1498 //
1499 // Receive DMA enable. If this bit is set to 1, DMA for the receive FIFO is
1500 // enabled.
1501 // ENUMs:
1502 // EN                       Enable RX DMA
1503 // DIS                      Disable RX DMA
1504 #define SPI_DMACR_RXEN                                              0x00000001U
1505 #define SPI_DMACR_RXEN_M                                            0x00000001U
1506 #define SPI_DMACR_RXEN_S                                                     0U
1507 #define SPI_DMACR_RXEN_EN                                           0x00000001U
1508 #define SPI_DMACR_RXEN_DIS                                          0x00000000U
1509 
1510 //*****************************************************************************
1511 //
1512 // Register: SPI_O_RXCRC
1513 //
1514 //*****************************************************************************
1515 // Field:  [15:0] DATA
1516 //
1517 // CRC value
1518 // SW should read RXCRC register at the end of data transmission to
1519 // reinitialize the seed value to all ones
1520 #define SPI_RXCRC_DATA_W                                                    16U
1521 #define SPI_RXCRC_DATA_M                                            0x0000FFFFU
1522 #define SPI_RXCRC_DATA_S                                                     0U
1523 
1524 //*****************************************************************************
1525 //
1526 // Register: SPI_O_TXCRC
1527 //
1528 //*****************************************************************************
1529 // Field:    [31] AUTOCRCINS
1530 //
1531 // Status to indicate if Auto CRC has been inserted into TXFIFO.
1532 // This is applicable only if CTL0.AUTOCRC enable bit is set.
1533 // SW should read TXCRC register to clear auto inserted CRC at the end of the
1534 // transfer.
1535 // ENUMs:
1536 // INS                      Auto CRC inserted
1537 // NOTINS                   Auto CRC not yet inserted
1538 #define SPI_TXCRC_AUTOCRCINS                                        0x80000000U
1539 #define SPI_TXCRC_AUTOCRCINS_M                                      0x80000000U
1540 #define SPI_TXCRC_AUTOCRCINS_S                                              31U
1541 #define SPI_TXCRC_AUTOCRCINS_INS                                    0x80000000U
1542 #define SPI_TXCRC_AUTOCRCINS_NOTINS                                 0x00000000U
1543 
1544 // Field:  [15:0] DATA
1545 //
1546 // CRC value
1547 #define SPI_TXCRC_DATA_W                                                    16U
1548 #define SPI_TXCRC_DATA_M                                            0x0000FFFFU
1549 #define SPI_TXCRC_DATA_S                                                     0U
1550 
1551 //*****************************************************************************
1552 //
1553 // Register: SPI_O_TXFHDR32
1554 //
1555 //*****************************************************************************
1556 // Field:  [31:0] DATA
1557 //
1558 // This field can be used to write four bytes of header data into the TXFIFO
1559 #define SPI_TXFHDR32_DATA_W                                                 32U
1560 #define SPI_TXFHDR32_DATA_M                                         0xFFFFFFFFU
1561 #define SPI_TXFHDR32_DATA_S                                                  0U
1562 
1563 //*****************************************************************************
1564 //
1565 // Register: SPI_O_TXFHDR24
1566 //
1567 //*****************************************************************************
1568 // Field:  [31:0] DATA
1569 //
1570 // This field can be used to write three bytes of header data into the TXFIFO.
1571 #define SPI_TXFHDR24_DATA_W                                                 32U
1572 #define SPI_TXFHDR24_DATA_M                                         0xFFFFFFFFU
1573 #define SPI_TXFHDR24_DATA_S                                                  0U
1574 
1575 //*****************************************************************************
1576 //
1577 // Register: SPI_O_TXFHDR16
1578 //
1579 //*****************************************************************************
1580 // Field:  [31:0] DATA
1581 //
1582 // This field can be used to write two bytes of header data into the TXFIFO.
1583 #define SPI_TXFHDR16_DATA_W                                                 32U
1584 #define SPI_TXFHDR16_DATA_M                                         0xFFFFFFFFU
1585 #define SPI_TXFHDR16_DATA_S                                                  0U
1586 
1587 //*****************************************************************************
1588 //
1589 // Register: SPI_O_TXFHDR8
1590 //
1591 //*****************************************************************************
1592 // Field:  [31:0] DATA
1593 //
1594 // This field can be used to write one byte of header data into the TXFIFO.
1595 #define SPI_TXFHDR8_DATA_W                                                  32U
1596 #define SPI_TXFHDR8_DATA_M                                          0xFFFFFFFFU
1597 #define SPI_TXFHDR8_DATA_S                                                   0U
1598 
1599 //*****************************************************************************
1600 //
1601 // Register: SPI_O_TXFHDRC
1602 //
1603 //*****************************************************************************
1604 // Field:     [3] CSGATE
1605 //
1606 // Chip Select Gating control register. If this bit is set, header update
1607 // register writes are blocked when chip select (CS) is active low, and HDRIGN
1608 // bit is set.
1609 // This bit resets to 0.
1610 // ENUMs:
1611 // BLK                      Header update register writes are blocked when CS
1612 //                          is active (low)
1613 // UNBLK                    The first header update register write is not
1614 //                          blocked based on CS active status (low).
1615 //                          If no header update
1616 //                          occurred when CS was high (inactive), the first
1617 //                          header update is allowed when CS is low
1618 //                          (active), and the HDRCMT bit is set. The use
1619 //                          case is for the external controller to ensure
1620 //                          that the SCLK is not driven during this header
1621 //                          update.
1622 //                          If the header is already
1623 //                          updated when CS is high and inactive, HDRCMT is
1624 //                          set immediately when CS drops to active low
1625 //                          state, and header writes when CS is low are
1626 //                          ignored even if this UNBLK bit is set.
1627 #define SPI_TXFHDRC_CSGATE                                          0x00000008U
1628 #define SPI_TXFHDRC_CSGATE_M                                        0x00000008U
1629 #define SPI_TXFHDRC_CSGATE_S                                                 3U
1630 #define SPI_TXFHDRC_CSGATE_BLK                                      0x00000008U
1631 #define SPI_TXFHDRC_CSGATE_UNBLK                                    0x00000000U
1632 
1633 // Field:     [2] HDRCMT
1634 //
1635 // Header Committed field. This bit is set when the HDREN bit is set and CS is
1636 // sampled low. This bit remains 0 otherwise. When set, this bit can be written
1637 // to a value of 0 to clear.
1638 // ENUMs:
1639 // SET                      Header update is committed
1640 // CLR                      Header update is not committed
1641 #define SPI_TXFHDRC_HDRCMT                                          0x00000004U
1642 #define SPI_TXFHDRC_HDRCMT_M                                        0x00000004U
1643 #define SPI_TXFHDRC_HDRCMT_S                                                 2U
1644 #define SPI_TXFHDRC_HDRCMT_SET                                      0x00000004U
1645 #define SPI_TXFHDRC_HDRCMT_CLR                                      0x00000000U
1646 
1647 // Field:     [1] HDRIGN
1648 //
1649 // Header Ignored field. When CSGATE is set to BLK, this bit is set when the
1650 // last Header update register TXFHDRn is written when CS is low or HDRCMT is
1651 // already set. When CSGATE is set to UNBLK, this bit is set only when the
1652 // header update register is written when HDRCMT is already set. This bit
1653 // remains 0 otherwise. When set, this bit can be written to a value of 0 to
1654 // clear.
1655 // ENUMs:
1656 // SET                      Header update is ignored
1657 // CLR                      Header update is not ignored
1658 #define SPI_TXFHDRC_HDRIGN                                          0x00000002U
1659 #define SPI_TXFHDRC_HDRIGN_M                                        0x00000002U
1660 #define SPI_TXFHDRC_HDRIGN_S                                                 1U
1661 #define SPI_TXFHDRC_HDRIGN_SET                                      0x00000002U
1662 #define SPI_TXFHDRC_HDRIGN_CLR                                      0x00000000U
1663 
1664 // Field:     [0] HDREN
1665 //
1666 // Header enable field. When CSGATE is set to BLK, this bit has to be set by
1667 // software to enable atomic header feature. When CSGATE is set to UNBLK, this
1668 // field is set automatically whenever a write to header update registers
1669 // TXFHDRn occurs.
1670 // ENUMs:
1671 // EN                       Atomic header update feature enable
1672 // DIS                      Atomic header update feature disable
1673 #define SPI_TXFHDRC_HDREN                                           0x00000001U
1674 #define SPI_TXFHDRC_HDREN_M                                         0x00000001U
1675 #define SPI_TXFHDRC_HDREN_S                                                  0U
1676 #define SPI_TXFHDRC_HDREN_EN                                        0x00000001U
1677 #define SPI_TXFHDRC_HDREN_DIS                                       0x00000000U
1678 
1679 //*****************************************************************************
1680 //
1681 // Register: SPI_O_RXDATA
1682 //
1683 //*****************************************************************************
1684 // Field:  [15:0] DATA
1685 //
1686 // Received Data. When read, the entry in the receive FIFO, pointed to by the
1687 // current FIFO read pointer is accessed. As data values are read by the
1688 // receive logic from the incoming data frame, they are placed into the entry
1689 // in the receive FIFO, pointed to by the current RX FIFO write pointer.
1690 // Received data less than 16 bits is automatically right-justified in the
1691 // receive buffer.
1692 #define SPI_RXDATA_DATA_W                                                   16U
1693 #define SPI_RXDATA_DATA_M                                           0x0000FFFFU
1694 #define SPI_RXDATA_DATA_S                                                    0U
1695 
1696 //*****************************************************************************
1697 //
1698 // Register: SPI_O_TXDATA
1699 //
1700 //*****************************************************************************
1701 // Field:  [15:0] DATA
1702 //
1703 // Transmit Data. When read, the last entry in the transmit FIFO, pointed to by
1704 // the current FIFO write pointer is accessed.
1705 // When written, the entry in the TX FIFO pointed to by the write pointer, is
1706 // written to. Data values are read from the transmit FIFO by the transmit
1707 // logic. It is loaded into the transmit serial shifter, then serially shifted
1708 // out onto the output pin at the programmed bit rate.
1709 // When a data size of less than 16 bits is selected, the user must
1710 // right-justify data written to the transmit FIFO. The transmit logic ignores
1711 // the unused bits.
1712 #define SPI_TXDATA_DATA_W                                                   16U
1713 #define SPI_TXDATA_DATA_M                                           0x0000FFFFU
1714 #define SPI_TXDATA_DATA_S                                                    0U
1715 
1716 //*****************************************************************************
1717 //
1718 // Register: SPI_O_STA
1719 //
1720 //*****************************************************************************
1721 // Field:  [13:8] TXFIFOLVL
1722 //
1723 // Indicates how many locations of TXFIFO are currently filled with data
1724 #define SPI_STA_TXFIFOLVL_W                                                  6U
1725 #define SPI_STA_TXFIFOLVL_M                                         0x00003F00U
1726 #define SPI_STA_TXFIFOLVL_S                                                  8U
1727 
1728 // Field:     [6] TXDONE
1729 //
1730 // Transmit done. Indicates whether the last bit has left the Shift register
1731 // after a transmission
1732 // ENUMs:
1733 // TX_DONE                  Last bit has been shifted out, and the
1734 //                          transmission is done
1735 // TX_ONGOING               Last bit has not yet left the Shift register, and
1736 //                          the transmission is ongoing.
1737 #define SPI_STA_TXDONE                                              0x00000040U
1738 #define SPI_STA_TXDONE_M                                            0x00000040U
1739 #define SPI_STA_TXDONE_S                                                     6U
1740 #define SPI_STA_TXDONE_TX_DONE                                      0x00000040U
1741 #define SPI_STA_TXDONE_TX_ONGOING                                   0x00000000U
1742 
1743 // Field:     [5] CSD
1744 //
1745 // Detection of CS deassertion in the middle of a data frame transmission
1746 // results in this error being set. This feature is only available in the
1747 // peripheral mode.
1748 // ENUMs:
1749 // ERR                      An error is generated when CS posedge
1750 //                          (deassertion) is detected before the entire
1751 //                          data frame is transmitted.
1752 // NOERR                    No CS posedge is detected before the entire data
1753 //                          frame has been transmitted.
1754 #define SPI_STA_CSD                                                 0x00000020U
1755 #define SPI_STA_CSD_M                                               0x00000020U
1756 #define SPI_STA_CSD_S                                                        5U
1757 #define SPI_STA_CSD_ERR                                             0x00000020U
1758 #define SPI_STA_CSD_NOERR                                           0x00000000U
1759 
1760 // Field:     [4] BUSY
1761 //
1762 // SPI Busy status
1763 // ENUMs:
1764 // ACTIVE                   SPI is currently transmitting and/or receiving
1765 //                          data, or transmit FIFO is not empty.
1766 // IDLE                     SPI is in idle mode.
1767 #define SPI_STA_BUSY                                                0x00000010U
1768 #define SPI_STA_BUSY_M                                              0x00000010U
1769 #define SPI_STA_BUSY_S                                                       4U
1770 #define SPI_STA_BUSY_ACTIVE                                         0x00000010U
1771 #define SPI_STA_BUSY_IDLE                                           0x00000000U
1772 
1773 // Field:     [3] RNF
1774 //
1775 // Receive FIFO not full status.
1776 // ENUMs:
1777 // NOT_FULL                 Receive FIFO is not full.
1778 // FULL                     Receive FIFO is full.
1779 #define SPI_STA_RNF                                                 0x00000008U
1780 #define SPI_STA_RNF_M                                               0x00000008U
1781 #define SPI_STA_RNF_S                                                        3U
1782 #define SPI_STA_RNF_NOT_FULL                                        0x00000008U
1783 #define SPI_STA_RNF_FULL                                            0x00000000U
1784 
1785 // Field:     [2] RFE
1786 //
1787 // Receive FIFO empty status.
1788 // ENUMs:
1789 // EMPTY                    Receive FIFO is empty.
1790 // NOT_EMPTY                Receive FIFO is not empty.
1791 #define SPI_STA_RFE                                                 0x00000004U
1792 #define SPI_STA_RFE_M                                               0x00000004U
1793 #define SPI_STA_RFE_S                                                        2U
1794 #define SPI_STA_RFE_EMPTY                                           0x00000004U
1795 #define SPI_STA_RFE_NOT_EMPTY                                       0x00000000U
1796 
1797 // Field:     [1] TNF
1798 //
1799 // Transmit FIFO not full status.
1800 // ENUMs:
1801 // NOT_FULL                 Transmit FIFO is not full.
1802 // FULL                     Transmit FIFO is full.
1803 #define SPI_STA_TNF                                                 0x00000002U
1804 #define SPI_STA_TNF_M                                               0x00000002U
1805 #define SPI_STA_TNF_S                                                        1U
1806 #define SPI_STA_TNF_NOT_FULL                                        0x00000002U
1807 #define SPI_STA_TNF_FULL                                            0x00000000U
1808 
1809 // Field:     [0] TFE
1810 //
1811 // Transmit FIFO empty status.
1812 // ENUMs:
1813 // EMPTY                    Transmit FIFO is empty.
1814 // NOT_EMPTY                Transmit FIFO is not empty.
1815 #define SPI_STA_TFE                                                 0x00000001U
1816 #define SPI_STA_TFE_M                                               0x00000001U
1817 #define SPI_STA_TFE_S                                                        0U
1818 #define SPI_STA_TFE_EMPTY                                           0x00000001U
1819 #define SPI_STA_TFE_NOT_EMPTY                                       0x00000000U
1820 
1821 
1822 #endif // __SPI__
1823