20
20
/*! @brief Typedef for master interrupt handler. */
21
21
typedef void (* dspi_master_isr_t )(SPI_Type * base , dspi_master_handle_t * handle );
22
22
23
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
23
24
/*! @brief Typedef for slave interrupt handler. */
24
25
typedef void (* dspi_slave_isr_t )(SPI_Type * base , dspi_slave_handle_t * handle );
26
+ #endif
25
27
26
28
/*******************************************************************************
27
29
* Prototypes
@@ -53,18 +55,22 @@ static void DSPI_MasterTransferFillUpTxFifo(SPI_Type *base, dspi_master_handle_t
53
55
*/
54
56
static void DSPI_MasterTransferComplete (SPI_Type * base , dspi_master_handle_t * handle );
55
57
58
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
56
59
/*!
57
60
* @brief Slave fill up the TX FIFO with data.
58
61
* This is not a public API.
59
62
*/
60
63
static void DSPI_SlaveTransferFillUpTxFifo (SPI_Type * base , dspi_slave_handle_t * handle );
64
+ #endif
61
65
66
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
62
67
/*!
63
68
* @brief Slave finish up a transfer.
64
69
* It would call back if there is callback function and set the state to idle.
65
70
* This is not a public API.
66
71
*/
67
72
static void DSPI_SlaveTransferComplete (SPI_Type * base , dspi_slave_handle_t * handle );
73
+ #endif
68
74
69
75
/*!
70
76
* @brief DSPI common interrupt handler.
@@ -111,8 +117,10 @@ static void *g_dspiHandle[ARRAY_SIZE(s_dspiBases)];
111
117
/*! @brief Pointer to master IRQ handler for each instance. */
112
118
static dspi_master_isr_t s_dspiMasterIsr ;
113
119
120
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
114
121
/*! @brief Pointer to slave IRQ handler for each instance. */
115
122
static dspi_slave_isr_t s_dspiSlaveIsr ;
123
+ #endif
116
124
117
125
/* @brief Dummy data for each instance. This data is used when user's tx buffer is NULL*/
118
126
volatile uint8_t g_dspiDummyData [ARRAY_SIZE (s_dspiBases )] = {0 };
@@ -285,6 +293,7 @@ void DSPI_MasterGetDefaultConfig(dspi_master_config_t *masterConfig)
285
293
masterConfig -> samplePoint = kDSPI_SckToSin0Clock ;
286
294
}
287
295
296
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
288
297
/*!
289
298
* brief DSPI slave configuration.
290
299
*
@@ -342,7 +351,9 @@ void DSPI_SlaveInit(SPI_Type *base, const dspi_slave_config_t *slaveConfig)
342
351
343
352
DSPI_StartTransfer (base );
344
353
}
354
+ #endif
345
355
356
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
346
357
/*!
347
358
* brief Sets the dspi_slave_config_t structure to a default value.
348
359
*
@@ -373,6 +384,7 @@ void DSPI_SlaveGetDefaultConfig(dspi_slave_config_t *slaveConfig)
373
384
slaveConfig -> enableModifiedTimingFormat = false;
374
385
slaveConfig -> samplePoint = kDSPI_SckToSin0Clock ;
375
386
}
387
+ #endif
376
388
377
389
/*!
378
390
* brief De-initializes the DSPI peripheral. Call this API to disable the DSPI clock.
@@ -787,6 +799,7 @@ void DSPI_MasterWriteCommandDataBlocking(SPI_Type *base, uint32_t data)
787
799
}
788
800
}
789
801
802
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
790
803
/*!
791
804
* brief Writes data into the data buffer in slave mode, waits till data was transmitted, and returns.
792
805
*
@@ -815,6 +828,7 @@ void DSPI_SlaveWriteDataBlocking(SPI_Type *base, uint32_t data)
815
828
{
816
829
}
817
830
}
831
+ #endif
818
832
819
833
/*!
820
834
* brief Enables the DSPI interrupts.
@@ -1707,6 +1721,7 @@ void DSPI_MasterTransferHandleIRQ(SPI_Type *base, dspi_master_handle_t *handle)
1707
1721
}
1708
1722
1709
1723
/*Transactional APIs -- Slave*/
1724
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
1710
1725
/*!
1711
1726
* brief Initializes the DSPI slave handle.
1712
1727
*
@@ -1733,7 +1748,9 @@ void DSPI_SlaveTransferCreateHandle(SPI_Type *base,
1733
1748
handle -> callback = callback ;
1734
1749
handle -> userData = userData ;
1735
1750
}
1751
+ #endif
1736
1752
1753
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
1737
1754
/*!
1738
1755
* brief DSPI slave transfers data using an interrupt.
1739
1756
*
@@ -1800,11 +1817,13 @@ status_t DSPI_SlaveTransferNonBlocking(SPI_Type *base, dspi_slave_handle_t *hand
1800
1817
/* RX FIFO overflow request enable */
1801
1818
DSPI_EnableInterrupts (base , (uint32_t )kDSPI_RxFifoOverflowInterruptEnable );
1802
1819
}
1820
+ #if !(defined(FSL_FEATURE_FLEXCAN_HAS_NO_RSER_TFUF_SUPPORT ) && FSL_FEATURE_FLEXCAN_HAS_NO_RSER_TFUF_SUPPORT )
1803
1821
if (NULL != handle -> txData )
1804
1822
{
1805
1823
/* TX FIFO underflow request enable */
1806
1824
DSPI_EnableInterrupts (base , (uint32_t )kDSPI_TxFifoUnderflowInterruptEnable );
1807
1825
}
1826
+ #endif
1808
1827
1809
1828
DSPI_StartTransfer (base );
1810
1829
@@ -1813,7 +1832,9 @@ status_t DSPI_SlaveTransferNonBlocking(SPI_Type *base, dspi_slave_handle_t *hand
1813
1832
1814
1833
return kStatus_Success ;
1815
1834
}
1835
+ #endif
1816
1836
1837
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
1817
1838
/*!
1818
1839
* brief Gets the slave transfer count.
1819
1840
*
@@ -1843,7 +1864,9 @@ status_t DSPI_SlaveTransferGetCount(SPI_Type *base, dspi_slave_handle_t *handle,
1843
1864
* count = handle -> totalByteCount - handle -> remainingReceiveByteCount ;
1844
1865
return kStatus_Success ;
1845
1866
}
1867
+ #endif
1846
1868
1869
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
1847
1870
static void DSPI_SlaveTransferFillUpTxFifo (SPI_Type * base , dspi_slave_handle_t * handle )
1848
1871
{
1849
1872
assert (NULL != handle );
@@ -1931,15 +1954,21 @@ static void DSPI_SlaveTransferFillUpTxFifo(SPI_Type *base, dspi_slave_handle_t *
1931
1954
DSPI_ClearStatusFlags (base , (uint32_t )kDSPI_TxFifoFillRequestFlag );
1932
1955
}
1933
1956
}
1957
+ #endif
1934
1958
1959
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
1935
1960
static void DSPI_SlaveTransferComplete (SPI_Type * base , dspi_slave_handle_t * handle )
1936
1961
{
1937
1962
assert (NULL != handle );
1938
1963
1939
1964
/* Disable interrupt requests */
1940
1965
DSPI_DisableInterrupts (
1941
- base , ((uint32_t )kDSPI_TxFifoUnderflowInterruptEnable | (uint32_t )kDSPI_TxFifoFillRequestInterruptEnable |
1942
- (uint32_t )kDSPI_RxFifoOverflowInterruptEnable | (uint32_t )kDSPI_RxFifoDrainRequestInterruptEnable ));
1966
+ base , (
1967
+ #if !(defined (FSL_FEATURE_FLEXCAN_HAS_NO_RSER_TFUF_SUPPORT ) && FSL_FEATURE_FLEXCAN_HAS_NO_RSER_TFUF_SUPPORT )
1968
+ (uint32_t )kDSPI_TxFifoUnderflowInterruptEnable |
1969
+ #endif
1970
+ (uint32_t )kDSPI_TxFifoFillRequestInterruptEnable |
1971
+ (uint32_t )kDSPI_RxFifoOverflowInterruptEnable | (uint32_t )kDSPI_RxFifoDrainRequestInterruptEnable ));
1943
1972
1944
1973
/* The transfer is complete. */
1945
1974
handle -> txData = NULL ;
@@ -1964,7 +1993,9 @@ static void DSPI_SlaveTransferComplete(SPI_Type *base, dspi_slave_handle_t *hand
1964
1993
handle -> callback (base , handle , status , handle -> userData );
1965
1994
}
1966
1995
}
1996
+ #endif
1967
1997
1998
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
1968
1999
/*!
1969
2000
* brief DSPI slave aborts a transfer using an interrupt.
1970
2001
*
@@ -1981,14 +2012,20 @@ void DSPI_SlaveTransferAbort(SPI_Type *base, dspi_slave_handle_t *handle)
1981
2012
1982
2013
/* Disable interrupt requests */
1983
2014
DSPI_DisableInterrupts (
1984
- base , ((uint32_t )kDSPI_TxFifoUnderflowInterruptEnable | (uint32_t )kDSPI_TxFifoFillRequestInterruptEnable |
2015
+ base , (
2016
+ #if !(defined (FSL_FEATURE_FLEXCAN_HAS_NO_RSER_TFUF_SUPPORT ) && FSL_FEATURE_FLEXCAN_HAS_NO_RSER_TFUF_SUPPORT )
2017
+ (uint32_t )kDSPI_TxFifoUnderflowInterruptEnable |
2018
+ #endif
2019
+ (uint32_t )kDSPI_TxFifoFillRequestInterruptEnable |
1985
2020
(uint32_t )kDSPI_RxFifoOverflowInterruptEnable | (uint32_t )kDSPI_RxFifoDrainRequestInterruptEnable ));
1986
2021
1987
2022
handle -> state = (uint8_t )kDSPI_Idle ;
1988
2023
handle -> remainingSendByteCount = 0 ;
1989
2024
handle -> remainingReceiveByteCount = 0 ;
1990
2025
}
2026
+ #endif
1991
2027
2028
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
1992
2029
/*!
1993
2030
* brief DSPI Master IRQ handler function.
1994
2031
*
@@ -2145,6 +2182,7 @@ void DSPI_SlaveTransferHandleIRQ(SPI_Type *base, dspi_slave_handle_t *handle)
2145
2182
return ;
2146
2183
}
2147
2184
2185
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SR_TFUF_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SR_TFUF_SUPPORT )
2148
2186
/* Catch tx fifo underflow conditions, service only if tx under flow interrupt enabled */
2149
2187
if (0U != (DSPI_GetStatusFlags (base ) & (uint32_t )kDSPI_TxFifoUnderflowFlag ))
2150
2188
{
@@ -2159,6 +2197,7 @@ void DSPI_SlaveTransferHandleIRQ(SPI_Type *base, dspi_slave_handle_t *handle)
2159
2197
handle -> errorCount ++ ;
2160
2198
}
2161
2199
}
2200
+ #endif
2162
2201
2163
2202
/* Catch rx fifo overflow conditions, service only if rx over flow interrupt enabled */
2164
2203
if (0U != (DSPI_GetStatusFlags (base ) & (uint32_t )kDSPI_RxFifoOverflowFlag ))
@@ -2175,17 +2214,20 @@ void DSPI_SlaveTransferHandleIRQ(SPI_Type *base, dspi_slave_handle_t *handle)
2175
2214
}
2176
2215
}
2177
2216
}
2217
+ #endif
2178
2218
2179
2219
static void DSPI_CommonIRQHandler (SPI_Type * base , void * param )
2180
2220
{
2181
2221
if (DSPI_IsMaster (base ))
2182
2222
{
2183
2223
s_dspiMasterIsr (base , (dspi_master_handle_t * )param );
2184
2224
}
2225
+ #if !(defined(FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT ) && FSL_FEATURE_DSPI_HAS_NO_SLAVE_SUPPORT )
2185
2226
else
2186
2227
{
2187
2228
s_dspiSlaveIsr (base , (dspi_slave_handle_t * )param );
2188
2229
}
2230
+ #endif
2189
2231
SDK_ISR_EXIT_BARRIER ;
2190
2232
}
2191
2233
0 commit comments