 |
MAX32665 Peripheral Driver API
Peripheral Driver API for the MAX32665
|
43 #include "mxc_device.h"
46 #include "mxc_errors.h"
int ch
The channel to load the configuration data into.
Definition: dma.h:155
void(* mxc_dma_complete_cb_t)(void *dest)
The callback called on completion of a DMA_MemCpy() transfer.
Definition: dma.h:194
int MXC_DMA_Stop(int ch)
Stop DMA transfer, irrespective of status (complete or in-progress)
The advanced configuration options, these are optional but could be needed in cases where multiple DM...
Definition: dma.h:180
int MXC_DMA_MemCpy(void *dest, void *src, int len, mxc_dma_complete_cb_t callback)
Performs a memcpy, using DMA, optionally asynchronous.
void * source
Pointer to the source address, if applicable.
Definition: dma.h:169
#define MXC_S_DMA_CFG_REQSEL_UART2TX
Definition: dma_regs.h:242
unsigned int burst_size
Number of bytes moved in a single burst.
Definition: dma.h:186
int MXC_DMA_Init(void)
Initialize DMA resources.
#define MXC_S_DMA_CFG_TOSEL_TO4
Definition: dma_regs.h:274
#define MXC_S_DMA_CFG_REQSEL_USBTXEP8
Definition: dma_regs.h:260
#define MXC_S_DMA_CFG_PRI_MEDHIGH
Definition: dma_regs.h:177
mxc_dma_prescale_t
Enumeration for the DMA prescaler.
Definition: dma.h:120
int MXC_DMA_SetCallback(int ch, void(*callback)(int, int))
Set channel interrupt callback.
int MXC_DMA_SetChannelInterruptEn(int ch, bool chdis, bool ctz)
Set channel interrupt.
int MXC_DMA_ChannelEnableInt(int ch, int flags)
Enable channel interrupt.
#define MXC_S_DMA_CFG_TOSEL_TO256
Definition: dma_regs.h:286
int MXC_DMA_ConfigChannel(mxc_dma_config_t config, mxc_dma_srcdst_t srcdst)
Configure the DMA channel.
@ MXC_DMA_REQUEST_UART1TX
Definition: dma.h:100
#define MXC_S_DMA_CFG_REQSEL_MEMTOMEM
Definition: dma_regs.h:186
int len
Number of bytes to transfer.
Definition: dma.h:171
int MXC_DMA_DisableInt(int ch)
Disable channel interrupt.
@ MXC_DMA_REQUEST_USBTXEP11
Definition: dma.h:116
unsigned int reqwait_en
Delay the timeout timer start until after first transfer.
Definition: dma.h:183
@ MXC_DMA_REQUEST_UART0RX
Definition: dma.h:76
#define MXC_S_DMA_CFG_REQSEL_USBTXEP5
Definition: dma_regs.h:254
@ MXC_DMA_REQUEST_USBRXEP2
Definition: dma.h:86
#define MXC_S_DMA_CFG_PSSEL_DIV64K
Definition: dma_regs.h:297
int MXC_DMA_ChannelClearFlags(int ch, int flags)
Clear channel interrupt flags.
#define MXC_S_DMA_CFG_PRI_MEDLOW
Definition: dma_regs.h:179
@ MXC_DMA_TIMEOUT_32_CLK
Definition: dma.h:132
mxc_dma_timeout_t tosel
Number of prescaled clocks seen by the channel before a timeout.
Definition: dma.h:184
@ MXC_DMA_REQUEST_USBRXEP9
Definition: dma.h:93
@ MXC_DMA_TIMEOUT_4_CLK
Definition: dma.h:129
int MXC_DMA_ChannelGetFlags(int ch)
Read channel interrupt flags.
#define MXC_S_DMA_CFG_REQSEL_SPI0RX
Definition: dma_regs.h:206
@ MXC_DMA_TIMEOUT_8_CLK
Definition: dma.h:130
@ MXC_DMA_REQUEST_SPI0TX
Definition: dma.h:96
int MXC_DMA_ReleaseChannel(int ch)
Release DMA channel.
#define MXC_S_DMA_CFG_REQSEL_USBRXEP5
Definition: dma_regs.h:216
@ MXC_DMA_WIDTH_HALFWORD
Definition: dma.h:145
void MXC_DMA_Handler()
Interrupt handler function.
@ MXC_DMA_WIDTH_WORD
Definition: dma.h:146
#define MXC_S_DMA_CFG_TOSEL_TO8
Definition: dma_regs.h:276
int MXC_DMA_SetSrcDst(mxc_dma_srcdst_t srcdst)
Set channel source, destination, and count for the transfer.
@ MXC_DMA_REQUEST_I2C0RX
Definition: dma.h:78
#define MXC_S_DMA_CFG_REQSEL_USBRXEP4
Definition: dma_regs.h:214
int MXC_DMA_Start(int ch)
Start transfer.
@ MXC_DMA_REQUEST_USBRXEP3
Definition: dma.h:87
#define MXC_V_DMA_CFG_SRCWD_WORD
Definition: dma_regs.h:307
@ MXC_DMA_REQUEST_USBRXEP1
Definition: dma.h:85
@ MXC_DMA_REQUEST_SPI1TX
Definition: dma.h:97
#define MXC_S_DMA_CFG_REQSEL_UART0RX
Definition: dma_regs.h:192
#define MXC_S_DMA_CFG_REQSEL_I2C0RX
Definition: dma_regs.h:196
#define MXC_S_DMA_CFG_REQSEL_UART1TX
Definition: dma_regs.h:236
#define MXC_S_DMA_CFG_TOSEL_TO64
Definition: dma_regs.h:282
@ MXC_DMA_REQUEST_USBTXEP8
Definition: dma.h:113
mxc_dma_reqsel_t reqsel
The request select line to be used (mem2mem, peripheral)
Definition: dma.h:156
@ MXC_DMA_REQUEST_USBTXEP1
Definition: dma.h:106
#define MXC_S_DMA_CFG_REQSEL_SPI0TX
Definition: dma_regs.h:244
#define MXC_S_DMA_CFG_TOSEL_TO32
Definition: dma_regs.h:280
@ MXC_DMA_PRIO_HIGH
Definition: dma.h:64
#define MXC_S_DMA_CFG_REQSEL_USBRXEP3
Definition: dma_regs.h:212
@ MXC_DMA_REQUEST_USBRXEP11
Definition: dma.h:95
#define MXC_S_DMA_CFG_REQSEL_USBRXEP9
Definition: dma_regs.h:224
#define MXC_S_DMA_CFG_REQSEL_USBTXEP11
Definition: dma_regs.h:266
@ MXC_DMA_REQUEST_UART2TX
Definition: dma.h:103
mxc_dma_width_t srcwd
The source width (could be dependent on FIFO width)
Definition: dma.h:157
#define MXC_S_DMA_CFG_PRI_LOW
Definition: dma_regs.h:181
#define MXC_S_DMA_CFG_REQSEL_SPI1TX
Definition: dma_regs.h:230
#define MXC_S_DMA_CFG_PSSEL_DIV16M
Definition: dma_regs.h:299
@ MXC_DMA_TIMEOUT_64_CLK
Definition: dma.h:133
@ MXC_DMA_REQUEST_USBRXEP10
Definition: dma.h:94
@ MXC_DMA_WIDTH_BYTE
Definition: dma.h:144
@ MXC_DMA_REQUEST_USBRXEP4
Definition: dma.h:88
#define MXC_S_DMA_CFG_REQSEL_SPI2RX
Definition: dma_regs.h:190
@ MXC_DMA_PRIO_MEDLOW
Definition: dma.h:66
@ MXC_DMA_REQUEST_USBRXEP7
Definition: dma.h:91
#define MXC_S_DMA_CFG_REQSEL_I2C1RX
Definition: dma_regs.h:198
#define MXC_S_DMA_CFG_REQSEL_I2C1TX
Definition: dma_regs.h:240
#define MXC_S_DMA_CFG_REQSEL_USBRXEP11
Definition: dma_regs.h:228
@ MXC_DMA_PRESCALE_DISABLE
Definition: dma.h:121
@ MXC_DMA_PRIO_LOW
Definition: dma.h:67
@ MXC_DMA_PRESCALE_DIV64K
Definition: dma.h:123
mxc_dma_width_t dstwd
The destination width (could be dependent on FIFO width)
Definition: dma.h:158
@ MXC_DMA_REQUEST_USBTXEP6
Definition: dma.h:111
mxc_dma_ch_regs_t * MXC_DMA_GetCHRegs(int ch)
Get a pointer to the DMA channel registers.
#define MXC_S_DMA_CFG_REQSEL_UART2RX
Definition: dma_regs.h:204
@ MXC_DMA_TIMEOUT_16_CLK
Definition: dma.h:131
@ MXC_DMA_REQUEST_USBTXEP4
Definition: dma.h:109
#define MXC_S_DMA_CFG_REQSEL_I2C0TX
Definition: dma_regs.h:238
#define MXC_S_DMA_CFG_REQSEL_USBTXEP9
Definition: dma_regs.h:262
int MXC_DMA_ChannelDisableInt(int ch, int flags)
Disable channel interrupt.
#define MXC_S_DMA_CFG_PSSEL_DIV256
Definition: dma_regs.h:295
#define MXC_V_DMA_CFG_SRCWD_HALFWORD
Definition: dma_regs.h:305
@ MXC_DMA_REQUEST_SPI0RX
Definition: dma.h:73
@ MXC_DMA_PRESCALE_DIV16M
Definition: dma.h:124
@ MXC_DMA_REQUEST_ADC
Definition: dma.h:80
Definition: dma_regs.h:88
int MXC_DMA_AdvConfigChannel(mxc_dma_adv_config_t advConfig)
Configure the DMA channel with more advanced parameters.
@ MXC_DMA_REQUEST_USBRXEP8
Definition: dma.h:92
mxc_dma_timeout_t
Enumeration for the DMA timeout value.
Definition: dma.h:128
#define MXC_S_DMA_CFG_REQSEL_UART0TX
Definition: dma_regs.h:234
#define MXC_S_DMA_CFG_REQSEL_SPI2TX
Definition: dma_regs.h:232
mxc_dma_width_t
DMA transfer data width.
Definition: dma.h:140
int MXC_DMA_SetSrcReload(mxc_dma_srcdst_t srcdstReload)
Set channel reload source, destination, and count for the transfer.
@ MXC_DMA_REQUEST_USBTXEP3
Definition: dma.h:108
int MXC_DMA_EnableInt(int ch)
Enable channel interrupt.
#define MXC_S_DMA_CFG_REQSEL_UART1RX
Definition: dma_regs.h:194
@ MXC_DMA_PRIO_MEDHIGH
Definition: dma.h:65
@ MXC_DMA_REQUEST_I2C1TX
Definition: dma.h:102
#define MXC_S_DMA_CFG_REQSEL_USBTXEP10
Definition: dma_regs.h:264
mxc_dma_reqsel_t
DMA request select.
Definition: dma.h:71
#define MXC_S_DMA_CFG_TOSEL_TO16
Definition: dma_regs.h:278
#define MXC_S_DMA_CFG_PRI_HIGH
Definition: dma_regs.h:175
int MXC_DMA_AcquireChannel(void)
Request DMA channel.
mxc_dma_prescale_t pssel
Prescaler for the timeout timer.
Definition: dma.h:185
#define MXC_S_DMA_CFG_REQSEL_USBTXEP6
Definition: dma_regs.h:256
@ MXC_DMA_REQUEST_UART1RX
Definition: dma.h:77
int MXC_DMA_GetSrcDst(mxc_dma_srcdst_t *srcdst)
Get channel source, destination, and count for transfer.
#define MXC_S_DMA_CFG_REQSEL_I2C2RX
Definition: dma_regs.h:202
mxc_dma_priority_t
Definition: dma.h:63
@ MXC_DMA_REQUEST_USBTXEP5
Definition: dma.h:110
#define MXC_S_DMA_CFG_REQSEL_SPI1RX
Definition: dma_regs.h:188
void * dest
Pointer to the destination address, if applicable.
Definition: dma.h:170
The information needed to complete a DMA transfer.
Definition: dma.h:167
#define MXC_S_DMA_CFG_REQSEL_USBTXEP2
Definition: dma_regs.h:248
#define MXC_S_DMA_CFG_REQSEL_USBRXEP10
Definition: dma_regs.h:226
#define MXC_S_DMA_CFG_REQSEL_USBTXEP3
Definition: dma_regs.h:250
@ MXC_DMA_TIMEOUT_512_CLK
Definition: dma.h:136
@ MXC_DMA_REQUEST_USBRXEP5
Definition: dma.h:89
int srcinc_en
Whether to increment the source address during the transfer.
Definition: dma.h:159
#define MXC_S_DMA_CFG_REQSEL_USBRXEP2
Definition: dma_regs.h:210
#define MXC_S_DMA_CFG_REQSEL_USBRXEP6
Definition: dma_regs.h:218
int MXC_DMA_GetSrcReload(mxc_dma_srcdst_t *srcdstReload)
Get channel reload source, destination, and count for transfer.
@ MXC_DMA_REQUEST_USBTXEP10
Definition: dma.h:115
The basic configuration information to set up a DMA channel and prepare it for transfers.
Definition: dma.h:154
@ MXC_DMA_REQUEST_USBRXEP6
Definition: dma.h:90
@ MXC_DMA_REQUEST_UART0TX
Definition: dma.h:99
@ MXC_DMA_REQUEST_I2C0TX
Definition: dma.h:101
@ MXC_DMA_REQUEST_SPI2TX
Definition: dma.h:98
mxc_dma_priority_t prio
The DMA priority for the channel.
Definition: dma.h:182
#define MXC_S_DMA_CFG_REQSEL_USBTXEP7
Definition: dma_regs.h:258
@ MXC_DMA_REQUEST_MEMTOMEM
Definition: dma.h:72
mxc_dma_srcdst_t(* mxc_dma_trans_chain_t)(mxc_dma_srcdst_t dest)
The callback called on completion of a transfer,.
Definition: dma.h:207
#define MXC_S_DMA_CFG_REQSEL_USBRXEP7
Definition: dma_regs.h:220
int dstinc_en
Whether to increment the source address during the transfer.
Definition: dma.h:160
@ MXC_DMA_TIMEOUT_256_CLK
Definition: dma.h:135
@ MXC_DMA_REQUEST_UART2RX
Definition: dma.h:82
#define MXC_S_DMA_CFG_TOSEL_TO512
Definition: dma_regs.h:288
@ MXC_DMA_REQUEST_USBTXEP7
Definition: dma.h:112
#define MXC_S_DMA_CFG_PSSEL_DIS
Definition: dma_regs.h:293
#define MXC_S_DMA_CFG_REQSEL_USBRXEP1
Definition: dma_regs.h:208
@ MXC_DMA_REQUEST_USBTXEP9
Definition: dma.h:114
@ MXC_DMA_REQUEST_SPI2RX
Definition: dma.h:75
#define MXC_S_DMA_CFG_REQSEL_USBTXEP4
Definition: dma_regs.h:252
#define MXC_S_DMA_CFG_REQSEL_USBRXEP8
Definition: dma_regs.h:222
#define MXC_S_DMA_CFG_TOSEL_TO128
Definition: dma_regs.h:284
#define MXC_S_DMA_CFG_REQSEL_USBTXEP1
Definition: dma_regs.h:246
#define MXC_V_DMA_CFG_SRCWD_BYTE
Definition: dma_regs.h:303
@ MXC_DMA_REQUEST_SPI1RX
Definition: dma.h:74
@ MXC_DMA_REQUEST_USBTXEP2
Definition: dma.h:107
@ MXC_DMA_REQUEST_I2C1RX
Definition: dma.h:79
@ MXC_DMA_PRESCALE_DIV256
Definition: dma.h:122
@ MXC_DMA_TIMEOUT_128_CLK
Definition: dma.h:134
int MXC_DMA_DoTransfer(mxc_dma_config_t config, mxc_dma_srcdst_t firstSrcDst, mxc_dma_trans_chain_t callback)
Performs a memcpy, using DMA, optionally asynchronous.
#define MXC_S_DMA_CFG_REQSEL_ADC
Definition: dma_regs.h:200