|
SmartSnippets DA1459x SDK
|
Definition of API for the DMA Low Level Driver. More...
Go to the source code of this file.
Data Structures | |
| struct | DMA_setup |
| DMA parameters structure. More... | |
| struct | hw_dma_periph_prio_t |
| DMA peripherals priority structure. More... | |
Typedefs | |
| typedef uint32_t | dma_size_t |
| DMA transfer size type. More... | |
| typedef void(* | hw_dma_transfer_cb) (void *user_data, dma_size_t len) |
| DMA channel transfer callback. More... | |
Enumerations | |
| enum | HW_DMA_CHANNEL { HW_DMA_CHANNEL_0 = 0, HW_DMA_CHANNEL_1 = 1, HW_DMA_CHANNEL_2 = 2, HW_DMA_CHANNEL_3 = 3, HW_DMA_CHANNEL_4 = 4, HW_DMA_CHANNEL_5 = 5, HW_DMA_CHANNEL_INVALID } |
| DMA channel number. More... | |
| enum | HW_DMA_STATE { HW_DMA_STATE_DISABLED = 0x0, HW_DMA_STATE_ENABLED = 0x1 } |
| DMA channel enable/disable. More... | |
| enum | HW_DMA_BW { HW_DMA_BW_BYTE = 0x0, HW_DMA_BW_HALFWORD = 0x2, HW_DMA_BW_WORD = 0x4 } |
| DMA channel bus width transfer. More... | |
| enum | HW_DMA_IRQ_STATE { HW_DMA_IRQ_STATE_DISABLED = 0x0, HW_DMA_IRQ_STATE_ENABLED = 0x8 } |
| DMA channel interrupt enable/disable. More... | |
| enum | HW_DMA_DREQ { HW_DMA_DREQ_START = 0x0, HW_DMA_DREQ_TRIGGERED = DMA_DMA0_CTRL_REG_DREQ_MODE_Msk } |
| DMA request input multiplexer controlled. More... | |
| enum | HW_DMA_BURST_MODE { HW_DMA_BURST_MODE_DISABLED = 0x0, HW_DMA_BURST_MODE_4x = 0x2000, HW_DMA_BURST_MODE_8x = 0x4000 } |
| DMA channel burst mode. More... | |
| enum | HW_DMA_BINC { HW_DMA_BINC_FALSE = 0x0, HW_DMA_BINC_TRUE = DMA_DMA0_CTRL_REG_BINC_Msk } |
| Increment destination address mode. More... | |
| enum | HW_DMA_AINC { HW_DMA_AINC_FALSE = 0x0, HW_DMA_AINC_TRUE = DMA_DMA0_CTRL_REG_AINC_Msk } |
| Increment of source address mode. More... | |
| enum | HW_DMA_MODE { HW_DMA_MODE_NORMAL = 0x0, HW_DMA_MODE_CIRCULAR = DMA_DMA0_CTRL_REG_CIRCULAR_Msk } |
| Channel mode. More... | |
| enum | HW_DMA_PRIO { HW_DMA_PRIO_0 = 0x000, HW_DMA_PRIO_1 = 0x080, HW_DMA_PRIO_2 = 0x100, HW_DMA_PRIO_3 = 0x180, HW_DMA_PRIO_4 = 0x200, HW_DMA_PRIO_5 = 0x280, HW_DMA_PRIO_6 = 0x300, HW_DMA_PRIO_7 = 0x380 } |
| Channel priority. More... | |
| enum | HW_DMA_IDLE { HW_DMA_IDLE_BLOCKING_MODE = 0x000, HW_DMA_IDLE_INTERRUPTING_MODE = DMA_DMA0_CTRL_REG_DMA_IDLE_Msk } |
| DMA idle mode. More... | |
| enum | HW_DMA_INIT { HW_DMA_INIT_AX_BX_AY_BY = 0x0000, HW_DMA_INIT_AX_BX_BY = DMA_DMA0_CTRL_REG_DMA_INIT_Msk } |
| DMA init mode. More... | |
| enum | HW_DMA_TRIG |
| Channel request trigger. More... | |
Functions | |
| void | hw_dma_channel_initialization (DMA_setup *channel_setup) |
| Initialize DMA Channel. More... | |
| void | hw_dma_channel_update_source (HW_DMA_CHANNEL channel, void *addr, dma_size_t length, hw_dma_transfer_cb cb) |
| Update DMA source address and length. More... | |
| void | hw_dma_channel_update_destination (HW_DMA_CHANNEL channel, void *addr, dma_size_t length, hw_dma_transfer_cb cb) |
| Update DMA destination address and length. More... | |
| void | hw_dma_channel_update_int_ix (HW_DMA_CHANNEL channel, uint16_t int_ix) |
| Update DMA interrupt trigger index. More... | |
| void | hw_dma_channel_enable (HW_DMA_CHANNEL channel_number, HW_DMA_STATE dma_on) |
| Enable or disable a DMA channel. More... | |
| void | hw_dma_channel_stop (HW_DMA_CHANNEL channel_number) |
| Stop DMA channel if operation is in progress. More... | |
| dma_size_t | hw_dma_transfered_bytes (HW_DMA_CHANNEL channel_number) |
| Read number of transmitted bytes so far. More... | |
| __STATIC_INLINE void | hw_dma_freeze (void) |
| Freeze DMA. More... | |
| __STATIC_INLINE void | hw_dma_unfreeze (void) |
| Unfreeze DMA. More... | |
| __STATIC_INLINE bool | hw_dma_is_aes_key_protection_enabled (void) |
| Check if the aes key read protection is enabled. More... | |
| __STATIC_INLINE bool | hw_dma_secure_channel_is_free (void) |
| Check if the DMA secure channel is free. If any encryption protection is enabled (OQSPIF or AES), this functionality affects the secure DMA channel. Secure transfer requires this channel to be configured in a specific way. Hence, is strongly advised to avoid using this channel for other purposes. More... | |
| __STATIC_INLINE bool | hw_dma_bus_error_detected (HW_DMA_CHANNEL channel_number) |
| Check if a bus error response has been detected on a specific DMA channel. More... | |
| bool | hw_dma_is_channel_active (HW_DMA_CHANNEL channel_number) |
| Check if the corresponding DMA channel is active. More... | |
| __RETAINED_CODE bool | hw_dma_channel_active (void) |
| Check if any DMA channel is active. More... | |
Definition of API for the DMA Low Level Driver.
Copyright (C) 2015-2023 Renesas Electronics Corporation and/or its affiliates. All rights reserved. Confidential Information.
This software ("Software") is supplied by Renesas Electronics Corporation and/or its affiliates ("Renesas"). Renesas grants you a personal, non-exclusive, non-transferable, revocable, non-sub-licensable right and license to use the Software, solely if used in or together with Renesas products. You may make copies of this Software, provided this copyright notice and disclaimer ("Notice") is included in all such copies. Renesas reserves the right to change or discontinue the Software at any time without notice.
THE SOFTWARE IS PROVIDED "AS IS". RENESAS DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. TO THE MAXIMUM EXTENT PERMITTED UNDER LAW, IN NO EVENT SHALL RENESAS BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE, EVEN IF RENESAS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. USE OF THIS SOFTWARE MAY BE SUBJECT TO TERMS AND CONDITIONS CONTAINED IN AN ADDITIONAL AGREEMENT BETWEEN YOU AND RENESAS. IN CASE OF CONFLICT BETWEEN THE TERMS OF THIS NOTICE AND ANY SUCH ADDITIONAL LICENSE AGREEMENT, THE TERMS OF THE AGREEMENT SHALL TAKE PRECEDENCE. BY CONTINUING TO USE THIS SOFTWARE, YOU AGREE TO THE TERMS OF THIS NOTICE.IF YOU DO NOT AGREE TO THESE TERMS, YOU ARE NOT PERMITTED TO USE THIS SOFTWARE.
1.8.16