SPIMSP432E4DMA.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software 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,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
130 #ifndef ti_drivers_spi_SPIMSP432E4DMA__include
131 #define ti_drivers_spi_SPIMSP432E4DMA__include
132 
133 #ifdef __cplusplus
134 extern "C" {
135 #endif
136 
137 #include <stdbool.h>
138 #include <stdint.h>
139 
140 #include <ti/devices/msp432e4/inc/msp432.h>
141 
142 #include <ti/devices/msp432e4/driverlib/pin_map.h>
143 
145 #include <ti/drivers/dpl/HwiP.h>
146 #include <ti/drivers/dpl/SemaphoreP.h>
148 #include <ti/drivers/SPI.h>
149 
153 #define SPIMSP432E4_PA2_SSI0CLK GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTA, 2, GPIO_PA2_SSI0CLK)
154 
158 #define SPIMSP432E4_PA3_SSI0FSS GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTA, 3, GPIO_PA3_SSI0FSS)
159 
163 #define SPIMSP432E4_PA4_SSI0XDAT0 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTA, 4, GPIO_PA4_SSI0XDAT0)
164 
168 #define SPIMSP432E4_PA5_SSI0XDAT1 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTA, 5, GPIO_PA5_SSI0XDAT1)
169 
173 #define SPIMSP432E4_PB5_SSI1CLK GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTB, 5, GPIO_PB5_SSI1CLK)
174 
178 #define SPIMSP432E4_PB4_SSI0FSS GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTB, 4, GPIO_PB4_SSI1FSS)
179 
183 #define SPIMSP432E4_PE4_SSI1XDAT0 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTE, 4, GPIO_PE4_SSI1XDAT0)
184 
188 #define SPIMSP432E4_PE5_SSI1XDAT1 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTE, 5, GPIO_PE5_SSI1XDAT1)
189 
193 #define SPIMSP432E4_PD3_SSI2CLK GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTD, 3, GPIO_PD3_SSI2CLK)
194 
198 #define SPIMSP432E4_PG7_SSI2CLK GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTG, 7, GPIO_PG7_SSI2CLK)
199 
203 #define SPIMSP432E4_PD2_SSI2FSS GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTD, 2, GPIO_PD2_SSI2FSS)
204 
208 #define SPIMSP432E4_PG6_SSI2FSS GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTG, 6, GPIO_PG6_SSI2FSS)
209 
213 #define SPIMSP432E4_PD1_SSI2XDAT0 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTD, 1, GPIO_PD1_SSI2XDAT0)
214 
218 #define SPIMSP432E4_PG5_SSI2XDAT0 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTG, 5, GPIO_PG5_SSI2XDAT0)
219 
223 #define SPIMSP432E4_PD0_SSI2XDAT1 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTD, 0, GPIO_PD0_SSI2XDAT1)
224 
228 #define SPIMSP432E4_PG4_SSI2XDAT1 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTG, 4, GPIO_PG4_SSI2XDAT1)
229 
233 #define SPIMSP432E4_PQ0_SSI3CLK GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTQ, 0, GPIO_PQ0_SSI3CLK)
234 
238 #define SPIMSP432E4_PF3_SSI3CLK GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTF, 3, GPIO_PF3_SSI3CLK)
239 
243 #define SPIMSP432E4_PQ1_SSI3FSS GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTQ, 1, GPIO_PQ1_SSI3FSS)
244 
248 #define SPIMSP432E4_PF2_SSI3FSS GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTF, 2, GPIO_PF2_SSI3FSS)
249 
253 #define SPIMSP432E4_PQ2_SSI3XDAT0 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTQ, 2, GPIO_PQ2_SSI3XDAT0)
254 
258 #define SPIMSP432E4_PF1_SSI3XDAT0 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTF, 1, GPIO_PF1_SSI3XDAT0)
259 
263 #define SPIMSP432E4_PQ3_SSI3XDAT1 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTQ, 3, GPIO_PQ3_SSI3XDAT1)
264 
268 #define SPIMSP432E4_PF0_SSI3XDAT1 GPIOMSP432E4_pinConfigMask(GPIOMSP432E4_PORTF, 0, GPIO_PF0_SSI3XDAT1)
269 
270 
281 /* Add SPIMSP432E4DMA_STATUS_* macros here */
282 
295 /* Add SPIMSP432E4DMA_CMD_* macros here */
296 
299 /* SPI function table pointer */
301 
343 typedef struct SPIMSP432E4DMA_HWAttrs {
345  uint32_t baseAddr;
347  uint32_t intNum;
349  uint32_t intPriority;
350 
352  uint16_t *scratchBufPtr;
355 
357  uint32_t rxDmaChannel;
359  uint32_t txDmaChannel;
360 
363 
365  uint32_t clkPinMask;
367  uint32_t fssPinMask;
369  uint32_t xdat0PinMask;
371  uint32_t xdat1PinMask;
373 
379 typedef struct SPIMSP432E4DMA_Object {
380  HwiP_Handle hwiHandle;
381  SemaphoreP_Handle transferComplete;
385 
388  uint32_t bitRate;
389  uint32_t dataSize;
390  uint32_t transferTimeout;
391 
394 
396  bool isOpen;
397  uint8_t format;
399 
400 #ifdef __cplusplus
401 }
402 #endif
403 
404 #endif /* ti_drivers_spi_SPIMSP432E4DMA__include */
SPIMSP432E4DMA Object.
Definition: SPIMSP432E4DMA.h:379
uint32_t intNum
Definition: SPIMSP432E4DMA.h:347
uint32_t txDmaChannel
Definition: SPIMSP432E4DMA.h:359
SPI_Transaction * transaction
Definition: SPIMSP432E4DMA.h:383
uint32_t transferTimeout
Definition: SPIMSP432E4DMA.h:390
UDMAMSP432E4 Global configuration.
Definition: UDMAMSP432E4.h:151
SPI driver interface.
void(* SPI_CallbackFxn)(SPI_Handle handle, SPI_Transaction *transaction)
The definition of a callback function used by the SPI driver when used in SPI_MODE_CALLBACK.
Definition: SPI.h:561
enum SPI_Mode_ SPI_Mode
Definitions for various SPI modes of operation.
uint32_t xdat1PinMask
Definition: SPIMSP432E4DMA.h:371
A SPI_Transaction data structure is used with SPI_transfer(). It indicates how many SPI_FrameFormat f...
Definition: SPI.h:543
uDMA driver implementation for MSP432E4.
uint16_t minDmaTransferSize
Definition: SPIMSP432E4DMA.h:362
SPIMSP432E4DMA Hardware attributes.
Definition: SPIMSP432E4DMA.h:343
bool cancelInProgress
Definition: SPIMSP432E4DMA.h:395
uint32_t baseAddr
Definition: SPIMSP432E4DMA.h:345
UDMAMSP432E4_Handle dmaHandle
Definition: SPIMSP432E4DMA.h:384
uint32_t dataSize
Definition: SPIMSP432E4DMA.h:389
uint16_t defaultTxBufValue
Definition: SPIMSP432E4DMA.h:354
SPI_Mode spiMode
Definition: SPIMSP432E4DMA.h:392
size_t currentXferAmt
Definition: SPIMSP432E4DMA.h:387
uint32_t intPriority
Definition: SPIMSP432E4DMA.h:349
uint32_t xdat0PinMask
Definition: SPIMSP432E4DMA.h:369
uint32_t bitRate
Definition: SPIMSP432E4DMA.h:388
enum SPI_TransferMode_ SPI_TransferMode
SPI transfer mode determines the whether the SPI controller operates synchronously or asynchronously...
The definition of a SPI function table that contains the required set of functions to control a speci...
Definition: SPI.h:675
struct SPIMSP432E4DMA_Object SPIMSP432E4DMA_Object
SPIMSP432E4DMA Object.
SemaphoreP_Handle transferComplete
Definition: SPIMSP432E4DMA.h:381
uint32_t rxDmaChannel
Definition: SPIMSP432E4DMA.h:357
MSP432E4 GPIO driver.
HwiP_Handle hwiHandle
Definition: SPIMSP432E4DMA.h:380
uint16_t * scratchBufPtr
Definition: SPIMSP432E4DMA.h:352
uint32_t fssPinMask
Definition: SPIMSP432E4DMA.h:367
uint32_t clkPinMask
Definition: SPIMSP432E4DMA.h:365
SPI_CallbackFxn transferCallbackFxn
Definition: SPIMSP432E4DMA.h:382
const SPI_FxnTable SPIMSP432E4DMA_fxnTable
SPI_TransferMode transferMode
Definition: SPIMSP432E4DMA.h:393
size_t amtDataXferred
Definition: SPIMSP432E4DMA.h:386
bool isOpen
Definition: SPIMSP432E4DMA.h:396
struct SPIMSP432E4DMA_HWAttrs SPIMSP432E4DMA_HWAttrs
SPIMSP432E4DMA Hardware attributes.
uint8_t format
Definition: SPIMSP432E4DMA.h:397
Copyright 2017, Texas Instruments Incorporated