MCUSW
Loading...
Searching...
No Matches
Spi_Cfg.h
Go to the documentation of this file.
1/*
2*
3* Copyright (c) 2024 Texas Instruments Incorporated
4*
5* All rights reserved not granted herein.
6*
7* Limited License.
8*
9* Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10* license under copyrights and patents it now or hereafter owns or controls to make,
11* have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12* terms herein. With respect to the foregoing patent license, such license is granted
13* solely to the extent that any such patent is necessary to Utilize the software alone.
14* The patent license shall not apply to any combinations which include this software,
15* other than combinations with devices manufactured by or for TI ("TI Devices").
16* No hardware patent is licensed hereunder.
17*
18* Redistributions must preserve existing copyright notices and reproduce this license
19* (including the above copyright notice and the disclaimer and (if applicable) source
20* code license limitations below) in the documentation and/or other materials provided
21* with the distribution
22*
23* Redistribution and use in binary form, without modification, are permitted provided
24* that the following conditions are met:
25*
26* * No reverse engineering, decompilation, or disassembly of this software is
27* permitted with respect to any software provided in binary form.
28*
29* * any redistribution and use are licensed by TI for use only with TI Devices.
30*
31* * Nothing shall obligate TI to provide you with source code for the software
32* licensed and provided to you in object code.
33*
34* If software source code is provided to you, modification and redistribution of the
35* source code are permitted provided that the following conditions are met:
36*
37* * any redistribution and use of the source code, including any resulting derivative
38* works, are licensed by TI for use only with TI Devices.
39*
40* * any redistribution and use of any object code compiled from the source code
41* and any resulting derivative works, are licensed by TI for use only with TI Devices.
42*
43* Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44*
45* may be used to endorse or promote products derived from this software without
46* specific prior written permission.
47*
48* DISCLAIMER.
49*
50* THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53* IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59* OF THE POSSIBILITY OF SUCH DAMAGE.
60*
61*/
62
70 /*****************************************************************************
71 Project : j721e_spi
72 Date : 2024-10-22 14:02:42
73 SW Ver : 9.0.1
74 Module Rele Ver : AUTOSAR 4.3.1 0
75
76 This file is generated by EB Tresos
77 Do not modify this file, otherwise the software may behave in unexpected way.
78 ******************************************************************************/
79
87#ifndef SPI_CFG_H_
88#define SPI_CFG_H_
89
90/* ========================================================================== */
91/* Include Files */
92/* ========================================================================== */
93#include "Os.h"
94#include "Dem.h"
95#include "Det.h"
96#include "Spi_Cbk.h"
97
98#ifdef __cplusplus
99extern "C" {
100#endif
101
107#define SPI_VARIANT_POST_BUILD (STD_ON)
108
117#define SPI_ISR_VOID (0x00U)
119#define SPI_ISR_CAT1 (0x01U)
121#define SPI_ISR_CAT2 (0x02U)
122/* @} */
123
130#define SPI_CHANNELBUFFERS (SPI_IB_EB)
131
133#define SPI_IB_MAX_LENGTH (64U)
134
136#define SPI_DEV_ERROR_DETECT (STD_ON)
137
139#define SPI_JOB_LOG (STD_OFF)
140
142#define SPI_MAX_JOB_LOG (100U)
143
144
145
146
147
148
149
150
151
152
153
154
156#define SPI_MAX_HW_DMA_UNIT (0U)
157
159#define SPI_DMA_ENABLE (STD_OFF)
160
161/*
162 * Scalability levels
163 */
165#define SPI_LEVEL_0 (0U)
167#define SPI_LEVEL_1 (1U)
169#define SPI_LEVEL_2 (2U)
170
172#define SPI_SUPPORT_CONCURRENT_SYNC_TRANSMIT (STD_OFF)
173
175#define SPI_SCALEABILITY (SPI_LEVEL_2)
176
178#define SPI_VERSION_INFO_API (STD_ON)
179
181#define SPI_HW_STATUS_API (STD_ON)
182
184#define SPI_CANCEL_API (STD_ON)
185
186/*
187 * All below macros are used for static memory allocation and can be changed to
188 * match the usecase requirements.
189 */
191#define SPI_MAX_CHANNELS_PER_JOB (1U)
192
194#define SPI_MAX_JOBS_PER_SEQ (1U)
195
197#define SPI_MAX_CHANNELS (1U)
198
200#define SPI_MAX_JOBS (1U)
201
203#define SPI_MAX_SEQ (1U)
204
209#define SPI_MAX_HW_UNIT (8U)
210
214#define SPI_MAX_EXT_DEV (11U)
215
216/*
217 All below macros are used for enabling the ISR for a particular hardware.
218 */
219
222#define SPI_UNIT_MCU_MCSPI0_ACTIVE (STD_ON)
223
226#define SPI_UNIT_MCU_MCSPI1_ACTIVE (STD_ON)
227
230#define SPI_UNIT_MCU_MCSPI2_ACTIVE (STD_ON)
231
234#define SPI_UNIT_MCSPI0_ACTIVE (STD_ON)
235
238#define SPI_UNIT_MCSPI1_ACTIVE (STD_ON)
239
242#define SPI_UNIT_MCSPI2_ACTIVE (STD_ON)
243
246#define SPI_UNIT_MCSPI3_ACTIVE (STD_ON)
247
248
251#define SPI_UNIT_MCSPI4_ACTIVE (STD_ON)
252
255#define SPI_UNIT_MCSPI5_ACTIVE (STD_OFF)
256
259#define SPI_UNIT_MCSPI6_ACTIVE (STD_OFF)
260
263#define SPI_UNIT_MCSPI7_ACTIVE (STD_OFF)
264
265
266
267
268
269
270
271
272
273
274
275
276
278#define SPI_ISR_TYPE (SPI_ISR_CAT1)
279
281#define SPI_OS_COUNTER_ID ((CounterType)OsCounter_0)
282
288#define SPI_TIMEOUT_DURATION (32000U)
289
291#define SPI_REGISTER_READBACK_API (STD_ON)
292
294#define SPI_SAFETY_API (STD_ON)
295
297#define SpiConf_SpiChannel_SpiChannel_0 (0U)
298
300#define SpiConf_SpiExternalDevice_CS0 (SPI_CS0)
301
302
304#define SpiConf_SpiJob_SpiJob_0 (0U)
305
307#define SpiConf_SpiSequence_SpiSequence_0 (0U)
308
309
311#define SpiConf_SpiExternalDevice_HwUnitId0 (CSIB0)
313#define SpiConf_SpiExternalDevice_HwUnitId1 (CSIB1)
315#define SpiConf_SpiExternalDevice_HwUnitId2 (CSIB2)
317#define SpiConf_SpiExternalDevice_HwUnitId3 (CSIB3)
319#define SpiConf_SpiExternalDevice_HwUnitId4 (CSIB4)
321#define SpiConf_SpiExternalDevice_HwUnitId5 (CSIB5)
323#define SpiConf_SpiExternalDevice_HwUnitId6 (CSIB6)
325#define SpiConf_SpiExternalDevice_HwUnitId7 (CSIB7)
326
327
335#ifndef SPI_E_HARDWARE_ERROR
337#define SPI_E_HARDWARE_ERROR (DemConf_DemEventParameter_SPI_E_HARDWARE_ERROR)
338#endif
344#define SPI_UNIT_MCU_MCSPI0 ((Spi_HWUnitType) CSIB0)
346#define SPI_UNIT_MCU_MCSPI1 ((Spi_HWUnitType) CSIB1)
348#define SPI_UNIT_MCU_MCSPI2 ((Spi_HWUnitType) CSIB2)
350#define SPI_UNIT_MCSPI0 ((Spi_HWUnitType) CSIB3)
352#define SPI_UNIT_MCSPI1 ((Spi_HWUnitType) CSIB4)
354#define SPI_UNIT_MCSPI2 ((Spi_HWUnitType) CSIB5)
356#define SPI_UNIT_MCSPI3 ((Spi_HWUnitType) CSIB6)
358#define SPI_UNIT_MCSPI4 ((Spi_HWUnitType) CSIB7)
360#define SPI_UNIT_MCSPI5 ((Spi_HWUnitType) CSIB8)
362#define SPI_UNIT_MCSPI6 ((Spi_HWUnitType) CSIB9)
364#define SPI_UNIT_MCSPI7 ((Spi_HWUnitType) CSIB10)
365/* @} */
366
371#define SPI_HW_UNIT_CNT (11U)
372
373extern const uint32 Spi_HwUnitBaseAddr[SPI_HW_UNIT_CNT];
374
375/* @} */
376
377/* ========================================================================== */
378/* Structures and Enums */
379/* ========================================================================== */
380
381
382
383
388typedef enum
389{
390 CSIB0 = 0U,
392 CSIB1,
394 CSIB2,
396 CSIB3,
398 CSIB4,
400 CSIB5,
402 CSIB6,
404 CSIB7,
406 CSIB8,
408 CSIB9,
410 CSIB10,
413
415extern void SpiApp_wbInvCache(uint8 *buf, uint16 len);
417extern void SpiApp_wbCache(uint8 *buf, uint16 len);
419extern void SpiApp_invCache(uint8 *buf, uint16 len);
420
421
422
424extern const struct Spi_ConfigType_s SpiDriver;
425
426
427/* ========================================================================== */
428/* Function Declarations */
429/* ========================================================================== */
436FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcuMcspi0TxRx(void);
437
439FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcuMcspi1TxRx(void);
440
442FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcuMcspi2TxRx(void);
443
445FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcspi0TxRx(void);
446
448FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcspi1TxRx(void);
449
451FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcspi2TxRx(void);
452
454FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcspi3TxRx(void);
455
457FUNC(void, SPI_CODE_FAST) Spi_IrqUnitMcspi4TxRx(void);
458
459
460
461
462
463#ifdef __cplusplus
464}
465#endif
466
467#endif /* #ifndef SPI_CFG_H_ */
468
469/* @} */
void Spi_IrqUnitMcspi4TxRx(void)
SPI MCSPI4 ISR.
void Spi_IrqUnitMcspi1TxRx(void)
SPI MCSPI1 ISR.
void Spi_IrqUnitMcuMcspi0TxRx(void)
SPI Hwunit ISR.
void Spi_IrqUnitMcuMcspi1TxRx(void)
SPI MCU_MCSPI1 ISR.
const uint32 Spi_HwUnitBaseAddr[SPI_HW_UNIT_CNT]
void SpiApp_wbCache(uint8 *buf, uint16 len)
Cache write-back function.
const struct Spi_ConfigType_s SpiDriver
SPI Configuration struct declaration.
void Spi_IrqUnitMcspi3TxRx(void)
SPI MCSPI3 ISR.
Spi_HwUnitType
This type defines a range of HW SPI Hardware microcontroller peripheral allocated to this Job.
Definition Spi_Cfg.h:389
void Spi_IrqUnitMcspi0TxRx(void)
SPI MCSPI0 ISR.
void Spi_IrqUnitMcuMcspi2TxRx(void)
SPI MCU_MCSPI2 ISR.
void SpiApp_wbInvCache(uint8 *buf, uint16 len)
Cache write-back invalidate function.
void SpiApp_invCache(uint8 *buf, uint16 len)
Cache invalidate function.
#define SPI_HW_UNIT_CNT
Total HW units - used for array allocation. This should be +1 of the max unit number.
Definition Spi_Cfg.h:371
void Spi_IrqUnitMcspi2TxRx(void)
SPI MCSPI2 ISR.
@ CSIB5
Definition Spi_Cfg.h:400
@ CSIB8
Definition Spi_Cfg.h:406
@ CSIB0
Definition Spi_Cfg.h:390
@ CSIB4
Definition Spi_Cfg.h:398
@ CSIB9
Definition Spi_Cfg.h:408
@ CSIB2
Definition Spi_Cfg.h:394
@ CSIB1
Definition Spi_Cfg.h:392
@ CSIB3
Definition Spi_Cfg.h:396
@ CSIB6
Definition Spi_Cfg.h:402
@ CSIB10
Definition Spi_Cfg.h:410
@ CSIB7
Definition Spi_Cfg.h:404