added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
144:ef7eb2e8f9f7
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /*
<> 144:ef7eb2e8f9f7 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
<> 144:ef7eb2e8f9f7 3 * All rights reserved.
<> 144:ef7eb2e8f9f7 4 *
<> 144:ef7eb2e8f9f7 5 * Redistribution and use in source and binary forms, with or without modification,
<> 144:ef7eb2e8f9f7 6 * are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 7 *
<> 144:ef7eb2e8f9f7 8 * o Redistributions of source code must retain the above copyright notice, this list
<> 144:ef7eb2e8f9f7 9 * of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 10 *
<> 144:ef7eb2e8f9f7 11 * o Redistributions in binary form must reproduce the above copyright notice, this
<> 144:ef7eb2e8f9f7 12 * list of conditions and the following disclaimer in the documentation and/or
<> 144:ef7eb2e8f9f7 13 * other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 14 *
<> 144:ef7eb2e8f9f7 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
<> 144:ef7eb2e8f9f7 16 * contributors may be used to endorse or promote products derived from this
<> 144:ef7eb2e8f9f7 17 * software without specific prior written permission.
<> 144:ef7eb2e8f9f7 18 *
<> 144:ef7eb2e8f9f7 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
<> 144:ef7eb2e8f9f7 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
<> 144:ef7eb2e8f9f7 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 144:ef7eb2e8f9f7 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
<> 144:ef7eb2e8f9f7 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
<> 144:ef7eb2e8f9f7 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
<> 144:ef7eb2e8f9f7 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
<> 144:ef7eb2e8f9f7 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
<> 144:ef7eb2e8f9f7 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
<> 144:ef7eb2e8f9f7 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 29 */
<> 144:ef7eb2e8f9f7 30 #ifndef _FSL_DSPI_EDMA_H_
<> 144:ef7eb2e8f9f7 31 #define _FSL_DSPI_EDMA_H_
<> 144:ef7eb2e8f9f7 32
<> 144:ef7eb2e8f9f7 33 #include "fsl_dspi.h"
<> 144:ef7eb2e8f9f7 34 #include "fsl_edma.h"
<> 144:ef7eb2e8f9f7 35 /*!
<> 144:ef7eb2e8f9f7 36 * @addtogroup dspi_edma_driver
<> 144:ef7eb2e8f9f7 37 * @{
<> 144:ef7eb2e8f9f7 38 */
<> 144:ef7eb2e8f9f7 39
<> 144:ef7eb2e8f9f7 40 /*! @file */
<> 144:ef7eb2e8f9f7 41
<> 144:ef7eb2e8f9f7 42 /***********************************************************************************************************************
<> 144:ef7eb2e8f9f7 43 * Definitions
<> 144:ef7eb2e8f9f7 44 **********************************************************************************************************************/
<> 144:ef7eb2e8f9f7 45
<> 144:ef7eb2e8f9f7 46 /*!
<> 144:ef7eb2e8f9f7 47 * @brief Forward declaration of the DSPI eDMA master handle typedefs.
<> 144:ef7eb2e8f9f7 48 */
<> 144:ef7eb2e8f9f7 49 typedef struct _dspi_master_edma_handle dspi_master_edma_handle_t;
<> 144:ef7eb2e8f9f7 50
<> 144:ef7eb2e8f9f7 51 /*!
<> 144:ef7eb2e8f9f7 52 * @brief Forward declaration of the DSPI eDMA slave handle typedefs.
<> 144:ef7eb2e8f9f7 53 */
<> 144:ef7eb2e8f9f7 54 typedef struct _dspi_slave_edma_handle dspi_slave_edma_handle_t;
<> 144:ef7eb2e8f9f7 55
<> 144:ef7eb2e8f9f7 56 /*!
<> 144:ef7eb2e8f9f7 57 * @brief Completion callback function pointer type.
<> 144:ef7eb2e8f9f7 58 *
<> 144:ef7eb2e8f9f7 59 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 60 * @param handle Pointer to the handle for the DSPI master.
<> 144:ef7eb2e8f9f7 61 * @param status Success or error code describing whether the transfer completed.
<> 144:ef7eb2e8f9f7 62 * @param userData Arbitrary pointer-dataSized value passed from the application.
<> 144:ef7eb2e8f9f7 63 */
<> 144:ef7eb2e8f9f7 64 typedef void (*dspi_master_edma_transfer_callback_t)(SPI_Type *base,
<> 144:ef7eb2e8f9f7 65 dspi_master_edma_handle_t *handle,
<> 144:ef7eb2e8f9f7 66 status_t status,
<> 144:ef7eb2e8f9f7 67 void *userData);
<> 144:ef7eb2e8f9f7 68 /*!
<> 144:ef7eb2e8f9f7 69 * @brief Completion callback function pointer type.
<> 144:ef7eb2e8f9f7 70 *
<> 144:ef7eb2e8f9f7 71 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 72 * @param handle Pointer to the handle for the DSPI slave.
<> 144:ef7eb2e8f9f7 73 * @param status Success or error code describing whether the transfer completed.
<> 144:ef7eb2e8f9f7 74 * @param userData Arbitrary pointer-dataSized value passed from the application.
<> 144:ef7eb2e8f9f7 75 */
<> 144:ef7eb2e8f9f7 76 typedef void (*dspi_slave_edma_transfer_callback_t)(SPI_Type *base,
<> 144:ef7eb2e8f9f7 77 dspi_slave_edma_handle_t *handle,
<> 144:ef7eb2e8f9f7 78 status_t status,
<> 144:ef7eb2e8f9f7 79 void *userData);
<> 144:ef7eb2e8f9f7 80
<> 144:ef7eb2e8f9f7 81 /*! @brief DSPI master eDMA transfer handle structure used for transactional API. */
<> 144:ef7eb2e8f9f7 82 struct _dspi_master_edma_handle
<> 144:ef7eb2e8f9f7 83 {
<> 144:ef7eb2e8f9f7 84 uint32_t bitsPerFrame; /*!< Desired number of bits per frame. */
<> 144:ef7eb2e8f9f7 85 volatile uint32_t command; /*!< Desired data command. */
<> 144:ef7eb2e8f9f7 86 volatile uint32_t lastCommand; /*!< Desired last data command. */
<> 144:ef7eb2e8f9f7 87
<> 144:ef7eb2e8f9f7 88 uint8_t fifoSize; /*!< FIFO dataSize. */
<> 144:ef7eb2e8f9f7 89
<> 144:ef7eb2e8f9f7 90 volatile bool isPcsActiveAfterTransfer; /*!< Is PCS signal keep active after the last frame transfer.*/
<> 144:ef7eb2e8f9f7 91 volatile bool isThereExtraByte; /*!< Is there extra byte.*/
<> 144:ef7eb2e8f9f7 92
<> 144:ef7eb2e8f9f7 93 uint8_t *volatile txData; /*!< Send buffer. */
<> 144:ef7eb2e8f9f7 94 uint8_t *volatile rxData; /*!< Receive buffer. */
<> 144:ef7eb2e8f9f7 95 volatile size_t remainingSendByteCount; /*!< Number of bytes remaining to send.*/
<> 144:ef7eb2e8f9f7 96 volatile size_t remainingReceiveByteCount; /*!< Number of bytes remaining to receive.*/
<> 144:ef7eb2e8f9f7 97 size_t totalByteCount; /*!< Number of transfer bytes*/
<> 144:ef7eb2e8f9f7 98
<> 144:ef7eb2e8f9f7 99 uint32_t rxBuffIfNull; /*!< Used if there is not rxData for DMA purpose.*/
<> 144:ef7eb2e8f9f7 100 uint32_t txBuffIfNull; /*!< Used if there is not txData for DMA purpose.*/
<> 144:ef7eb2e8f9f7 101
<> 144:ef7eb2e8f9f7 102 volatile uint8_t state; /*!< DSPI transfer state , _dspi_transfer_state.*/
<> 144:ef7eb2e8f9f7 103
<> 144:ef7eb2e8f9f7 104 dspi_master_edma_transfer_callback_t callback; /*!< Completion callback. */
<> 144:ef7eb2e8f9f7 105 void *userData; /*!< Callback user data. */
<> 144:ef7eb2e8f9f7 106
<> 144:ef7eb2e8f9f7 107 edma_handle_t *edmaRxRegToRxDataHandle; /*!<edma_handle_t handle point used for RxReg to RxData buff*/
<> 144:ef7eb2e8f9f7 108 edma_handle_t *edmaTxDataToIntermediaryHandle; /*!<edma_handle_t handle point used for TxData to Intermediary*/
<> 144:ef7eb2e8f9f7 109 edma_handle_t *edmaIntermediaryToTxRegHandle; /*!<edma_handle_t handle point used for Intermediary to TxReg*/
<> 144:ef7eb2e8f9f7 110
<> 144:ef7eb2e8f9f7 111 edma_tcd_t dspiSoftwareTCD[2]; /*!<SoftwareTCD , internal used*/
<> 144:ef7eb2e8f9f7 112 };
<> 144:ef7eb2e8f9f7 113
<> 144:ef7eb2e8f9f7 114 /*! @brief DSPI slave eDMA transfer handle structure used for transactional API.*/
<> 144:ef7eb2e8f9f7 115 struct _dspi_slave_edma_handle
<> 144:ef7eb2e8f9f7 116 {
<> 144:ef7eb2e8f9f7 117 uint32_t bitsPerFrame; /*!< Desired number of bits per frame. */
<> 144:ef7eb2e8f9f7 118 volatile bool isThereExtraByte; /*!< Is there extra byte.*/
<> 144:ef7eb2e8f9f7 119
<> 144:ef7eb2e8f9f7 120 uint8_t *volatile txData; /*!< Send buffer. */
<> 144:ef7eb2e8f9f7 121 uint8_t *volatile rxData; /*!< Receive buffer. */
<> 144:ef7eb2e8f9f7 122 volatile size_t remainingSendByteCount; /*!< Number of bytes remaining to send.*/
<> 144:ef7eb2e8f9f7 123 volatile size_t remainingReceiveByteCount; /*!< Number of bytes remaining to receive.*/
<> 144:ef7eb2e8f9f7 124 size_t totalByteCount; /*!< Number of transfer bytes*/
<> 144:ef7eb2e8f9f7 125
<> 144:ef7eb2e8f9f7 126 uint32_t rxBuffIfNull; /*!< Used if there is not rxData for DMA purpose.*/
<> 144:ef7eb2e8f9f7 127 uint32_t txBuffIfNull; /*!< Used if there is not txData for DMA purpose.*/
<> 144:ef7eb2e8f9f7 128 uint32_t txLastData; /*!< Used if there is an extra byte when 16bits per frame for DMA purpose.*/
<> 144:ef7eb2e8f9f7 129
<> 144:ef7eb2e8f9f7 130 volatile uint8_t state; /*!< DSPI transfer state.*/
<> 144:ef7eb2e8f9f7 131
<> 144:ef7eb2e8f9f7 132 uint32_t errorCount; /*!< Error count for slave transfer.*/
<> 144:ef7eb2e8f9f7 133
<> 144:ef7eb2e8f9f7 134 dspi_slave_edma_transfer_callback_t callback; /*!< Completion callback. */
<> 144:ef7eb2e8f9f7 135 void *userData; /*!< Callback user data. */
<> 144:ef7eb2e8f9f7 136
<> 144:ef7eb2e8f9f7 137 edma_handle_t *edmaRxRegToRxDataHandle; /*!<edma_handle_t handle point used for RxReg to RxData buff*/
<> 144:ef7eb2e8f9f7 138 edma_handle_t *edmaTxDataToTxRegHandle; /*!<edma_handle_t handle point used for TxData to TxReg*/
<> 144:ef7eb2e8f9f7 139
<> 144:ef7eb2e8f9f7 140 edma_tcd_t dspiSoftwareTCD[2]; /*!<SoftwareTCD , internal used*/
<> 144:ef7eb2e8f9f7 141 };
<> 144:ef7eb2e8f9f7 142
<> 144:ef7eb2e8f9f7 143 /***********************************************************************************************************************
<> 144:ef7eb2e8f9f7 144 * API
<> 144:ef7eb2e8f9f7 145 **********************************************************************************************************************/
<> 144:ef7eb2e8f9f7 146 #if defined(__cplusplus)
<> 144:ef7eb2e8f9f7 147 extern "C" {
<> 144:ef7eb2e8f9f7 148 #endif /*_cplusplus*/
<> 144:ef7eb2e8f9f7 149
<> 144:ef7eb2e8f9f7 150 /*Transactional APIs*/
<> 144:ef7eb2e8f9f7 151
<> 144:ef7eb2e8f9f7 152 /*!
<> 144:ef7eb2e8f9f7 153 * @brief Initializes the DSPI master eDMA handle.
<> 144:ef7eb2e8f9f7 154 *
<> 144:ef7eb2e8f9f7 155 * This function initializes the DSPI eDMA handle which can be used for other DSPI transactional APIs. Usually, for a
<> 144:ef7eb2e8f9f7 156 * specified DSPI instance, user need only call this API once to get the initialized handle.
<> 144:ef7eb2e8f9f7 157 *
<> 144:ef7eb2e8f9f7 158 * Note that DSPI eDMA has separated (RX and TX as two sources) or shared (RX and TX are the same source) DMA request source.
<> 144:ef7eb2e8f9f7 159 * (1)For the separated DMA request source, enable and set the RX DMAMUX source for edmaRxRegToRxDataHandle and
<> 144:ef7eb2e8f9f7 160 * TX DMAMUX source for edmaIntermediaryToTxRegHandle.
<> 144:ef7eb2e8f9f7 161 * (2)For the shared DMA request source, enable and set the RX/RX DMAMUX source for the edmaRxRegToRxDataHandle.
<> 144:ef7eb2e8f9f7 162 *
<> 144:ef7eb2e8f9f7 163 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 164 * @param handle DSPI handle pointer to dspi_master_edma_handle_t.
<> 144:ef7eb2e8f9f7 165 * @param callback DSPI callback.
<> 144:ef7eb2e8f9f7 166 * @param userData callback function parameter.
<> 144:ef7eb2e8f9f7 167 * @param edmaRxRegToRxDataHandle edmaRxRegToRxDataHandle pointer to edma_handle_t.
<> 144:ef7eb2e8f9f7 168 * @param edmaTxDataToIntermediaryHandle edmaTxDataToIntermediaryHandle pointer to edma_handle_t.
<> 144:ef7eb2e8f9f7 169 * @param edmaIntermediaryToTxRegHandle edmaIntermediaryToTxRegHandle pointer to edma_handle_t.
<> 144:ef7eb2e8f9f7 170 */
<> 144:ef7eb2e8f9f7 171 void DSPI_MasterTransferCreateHandleEDMA(SPI_Type *base,
<> 144:ef7eb2e8f9f7 172 dspi_master_edma_handle_t *handle,
<> 144:ef7eb2e8f9f7 173 dspi_master_edma_transfer_callback_t callback,
<> 144:ef7eb2e8f9f7 174 void *userData,
<> 144:ef7eb2e8f9f7 175 edma_handle_t *edmaRxRegToRxDataHandle,
<> 144:ef7eb2e8f9f7 176 edma_handle_t *edmaTxDataToIntermediaryHandle,
<> 144:ef7eb2e8f9f7 177 edma_handle_t *edmaIntermediaryToTxRegHandle);
<> 144:ef7eb2e8f9f7 178
<> 144:ef7eb2e8f9f7 179 /*!
<> 144:ef7eb2e8f9f7 180 * @brief DSPI master transfer data using eDMA.
<> 144:ef7eb2e8f9f7 181 *
<> 144:ef7eb2e8f9f7 182 * This function transfer data using eDMA. This is non-blocking function, which returns right away. When all data
<> 144:ef7eb2e8f9f7 183 * have been transfer, the callback function is called.
<> 144:ef7eb2e8f9f7 184 *
<> 144:ef7eb2e8f9f7 185 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 186 * @param handle pointer to dspi_master_edma_handle_t structure which stores the transfer state.
<> 144:ef7eb2e8f9f7 187 * @param transfer pointer to dspi_transfer_t structure.
<> 144:ef7eb2e8f9f7 188 * @return status of status_t.
<> 144:ef7eb2e8f9f7 189 */
<> 144:ef7eb2e8f9f7 190 status_t DSPI_MasterTransferEDMA(SPI_Type *base, dspi_master_edma_handle_t *handle, dspi_transfer_t *transfer);
<> 144:ef7eb2e8f9f7 191
<> 144:ef7eb2e8f9f7 192 /*!
<> 144:ef7eb2e8f9f7 193 * @brief DSPI master aborts a transfer which using eDMA.
<> 144:ef7eb2e8f9f7 194 *
<> 144:ef7eb2e8f9f7 195 * This function aborts a transfer which using eDMA.
<> 144:ef7eb2e8f9f7 196 *
<> 144:ef7eb2e8f9f7 197 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 198 * @param handle pointer to dspi_master_edma_handle_t structure which stores the transfer state.
<> 144:ef7eb2e8f9f7 199 */
<> 144:ef7eb2e8f9f7 200 void DSPI_MasterTransferAbortEDMA(SPI_Type *base, dspi_master_edma_handle_t *handle);
<> 144:ef7eb2e8f9f7 201
<> 144:ef7eb2e8f9f7 202 /*!
<> 144:ef7eb2e8f9f7 203 * @brief Gets the master eDMA transfer count.
<> 144:ef7eb2e8f9f7 204 *
<> 144:ef7eb2e8f9f7 205 * This function get the master eDMA transfer count.
<> 144:ef7eb2e8f9f7 206 *
<> 144:ef7eb2e8f9f7 207 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 208 * @param handle pointer to dspi_master_edma_handle_t structure which stores the transfer state.
<> 144:ef7eb2e8f9f7 209 * @param count Number of bytes transferred so far by the non-blocking transaction.
<> 144:ef7eb2e8f9f7 210 * @return status of status_t.
<> 144:ef7eb2e8f9f7 211 */
<> 144:ef7eb2e8f9f7 212 status_t DSPI_MasterTransferGetCountEDMA(SPI_Type *base, dspi_master_edma_handle_t *handle, size_t *count);
<> 144:ef7eb2e8f9f7 213
<> 144:ef7eb2e8f9f7 214 /*!
<> 144:ef7eb2e8f9f7 215 * @brief Initializes the DSPI slave eDMA handle.
<> 144:ef7eb2e8f9f7 216 *
<> 144:ef7eb2e8f9f7 217 * This function initializes the DSPI eDMA handle which can be used for other DSPI transactional APIs. Usually, for a
<> 144:ef7eb2e8f9f7 218 * specified DSPI instance, call this API once to get the initialized handle.
<> 144:ef7eb2e8f9f7 219 *
<> 144:ef7eb2e8f9f7 220 * Note that DSPI eDMA has separated (RN and TX in 2 sources) or shared (RX and TX are the same source) DMA request source.
<> 144:ef7eb2e8f9f7 221 * (1)For the separated DMA request source, enable and set the RX DMAMUX source for edmaRxRegToRxDataHandle and
<> 144:ef7eb2e8f9f7 222 * TX DMAMUX source for edmaTxDataToTxRegHandle.
<> 144:ef7eb2e8f9f7 223 * (2)For the shared DMA request source, enable and set the RX/RX DMAMUX source for the edmaRxRegToRxDataHandle.
<> 144:ef7eb2e8f9f7 224 *
<> 144:ef7eb2e8f9f7 225 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 226 * @param handle DSPI handle pointer to dspi_slave_edma_handle_t.
<> 144:ef7eb2e8f9f7 227 * @param callback DSPI callback.
<> 144:ef7eb2e8f9f7 228 * @param userData callback function parameter.
<> 144:ef7eb2e8f9f7 229 * @param edmaRxRegToRxDataHandle edmaRxRegToRxDataHandle pointer to edma_handle_t.
<> 144:ef7eb2e8f9f7 230 * @param edmaTxDataToTxRegHandle edmaTxDataToTxRegHandle pointer to edma_handle_t.
<> 144:ef7eb2e8f9f7 231 */
<> 144:ef7eb2e8f9f7 232 void DSPI_SlaveTransferCreateHandleEDMA(SPI_Type *base,
<> 144:ef7eb2e8f9f7 233 dspi_slave_edma_handle_t *handle,
<> 144:ef7eb2e8f9f7 234 dspi_slave_edma_transfer_callback_t callback,
<> 144:ef7eb2e8f9f7 235 void *userData,
<> 144:ef7eb2e8f9f7 236 edma_handle_t *edmaRxRegToRxDataHandle,
<> 144:ef7eb2e8f9f7 237 edma_handle_t *edmaTxDataToTxRegHandle);
<> 144:ef7eb2e8f9f7 238
<> 144:ef7eb2e8f9f7 239 /*!
<> 144:ef7eb2e8f9f7 240 * @brief DSPI slave transfer data using eDMA.
<> 144:ef7eb2e8f9f7 241 *
<> 144:ef7eb2e8f9f7 242 * This function transfer data using eDMA. This is non-blocking function, which returns right away. When all data
<> 144:ef7eb2e8f9f7 243 * have been transfer, the callback function is called.
<> 144:ef7eb2e8f9f7 244 * Note that slave EDMA transfer cannot support the situation that transfer_size is 1 when the bitsPerFrame is greater
<> 144:ef7eb2e8f9f7 245 * than 8 .
<> 144:ef7eb2e8f9f7 246
<> 144:ef7eb2e8f9f7 247 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 248 * @param handle pointer to dspi_slave_edma_handle_t structure which stores the transfer state.
<> 144:ef7eb2e8f9f7 249 * @param transfer pointer to dspi_transfer_t structure.
<> 144:ef7eb2e8f9f7 250 * @return status of status_t.
<> 144:ef7eb2e8f9f7 251 */
<> 144:ef7eb2e8f9f7 252 status_t DSPI_SlaveTransferEDMA(SPI_Type *base, dspi_slave_edma_handle_t *handle, dspi_transfer_t *transfer);
<> 144:ef7eb2e8f9f7 253
<> 144:ef7eb2e8f9f7 254 /*!
<> 144:ef7eb2e8f9f7 255 * @brief DSPI slave aborts a transfer which using eDMA.
<> 144:ef7eb2e8f9f7 256 *
<> 144:ef7eb2e8f9f7 257 * This function aborts a transfer which using eDMA.
<> 144:ef7eb2e8f9f7 258 *
<> 144:ef7eb2e8f9f7 259 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 260 * @param handle pointer to dspi_slave_edma_handle_t structure which stores the transfer state.
<> 144:ef7eb2e8f9f7 261 */
<> 144:ef7eb2e8f9f7 262 void DSPI_SlaveTransferAbortEDMA(SPI_Type *base, dspi_slave_edma_handle_t *handle);
<> 144:ef7eb2e8f9f7 263
<> 144:ef7eb2e8f9f7 264 /*!
<> 144:ef7eb2e8f9f7 265 * @brief Gets the slave eDMA transfer count.
<> 144:ef7eb2e8f9f7 266 *
<> 144:ef7eb2e8f9f7 267 * This function gets the slave eDMA transfer count.
<> 144:ef7eb2e8f9f7 268 *
<> 144:ef7eb2e8f9f7 269 * @param base DSPI peripheral base address.
<> 144:ef7eb2e8f9f7 270 * @param handle pointer to dspi_slave_edma_handle_t structure which stores the transfer state.
<> 144:ef7eb2e8f9f7 271 * @param count Number of bytes transferred so far by the non-blocking transaction.
<> 144:ef7eb2e8f9f7 272 * @return status of status_t.
<> 144:ef7eb2e8f9f7 273 */
<> 144:ef7eb2e8f9f7 274 status_t DSPI_SlaveTransferGetCountEDMA(SPI_Type *base, dspi_slave_edma_handle_t *handle, size_t *count);
<> 144:ef7eb2e8f9f7 275
<> 144:ef7eb2e8f9f7 276 #if defined(__cplusplus)
<> 144:ef7eb2e8f9f7 277 }
<> 144:ef7eb2e8f9f7 278 #endif /*_cplusplus*/
<> 144:ef7eb2e8f9f7 279 /*!
<> 144:ef7eb2e8f9f7 280 *@}
<> 144:ef7eb2e8f9f7 281 */
<> 144:ef7eb2e8f9f7 282
<> 144:ef7eb2e8f9f7 283 #endif /*_FSL_DSPI_EDMA_H_*/