* arch/arm/src/samd2l2/hardware/saml_dmac.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
* "Atmel SAM L21E / SAM L21G / SAM L21J Smart ARM-Based Microcontroller
* Datasheet", Atmel-42385C-SAML21_Datasheet_Preliminary-03/20/15
*/
#ifndef __ARCH_ARM_SRC_SAMD2L2_HARDWARE_SAML_DMAC_H
#define __ARCH_ARM_SRC_SAMD2L2_HARDWARE_SAML_DMAC_H
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include "chip.h"
#ifdef CONFIG_ARCH_FAMILY_SAML21
* Pre-processor Definitions
****************************************************************************/
#define SAM_DMAC_CTRL_OFFSET 0x0000
#define SAM_DMAC_CRCCTRL_OFFSET 0x0002
#define SAM_DMAC_CRCDATAIN_OFFSET 0x0004
#define SAM_DMAC_CRCCHKSUM_OFFSET 0x0008
#define SAM_DMAC_CRCSTATUS_OFFSET 0x000c
#define SAM_DMAC_DBGCTRL_OFFSET 0x000d
#define SAM_DMAC_QOSCTRL_OFFSET 0x000e
#define SAM_DMAC_SWTRIGCTRL_OFFSET 0x0010
#define SAM_DMAC_PRICTRL0_OFFSET 0x0014
#define SAM_DMAC_INTPEND_OFFSET 0x0020
#define SAM_DMAC_INTSTATUS_OFFSET 0x0024
#define SAM_DMAC_BUSYCH_OFFSET 0x0028
#define SAM_DMAC_PENDCH_OFFSET 0x002c
#define SAM_DMAC_ACTIVE_OFFSET 0x0030
#define SAM_DMAC_BASEADDR_OFFSET 0x0034
#define SAM_DMAC_WRBADDR_OFFSET 0x0038
#define SAM_DMAC_CHID_OFFSET 0x003f
#define SAM_DMAC_CHCTRLA_OFFSET 0x0040
#define SAM_DMAC_CHCTRLB_OFFSET 0x0044
#define SAM_DMAC_CHINTENCLR_OFFSET 0x004c
#define SAM_DMAC_CHINTENSET_OFFSET 0x004d
#define SAM_DMAC_CHINTFLAG_OFFSET 0x004e
#define SAM_DMAC_CHSTATUS_OFFSET 0x004f
#define SAM_LPSRAM_BTCTRL_OFFSET 0x0000
#define SAM_LPSRAM_BTCNT_OFFSET 0x0002
#define SAM_LPSRAM_SRCADDR_OFFSET 0x0004
#define SAM_LPSRAM_DSTADDR_OFFSET 0x0008
#define SAM_LPSRAM_DESCADDR_OFFSET 0x000c
#define SAM_DMAC_CTRL (SAM_DMAC_BASE+SAM_DMAC_CTRL_OFFSET)
#define SAM_DMAC_CRCCTRL (SAM_DMAC_BASE+SAM_DMAC_CRCCTRL_OFFSET)
#define SAM_DMAC_CRCDATAIN (SAM_DMAC_BASE+SAM_DMAC_CRCDATAIN_OFFSET)
#define SAM_DMAC_CRCCHKSUM (SAM_DMAC_BASE+SAM_DMAC_CRCCHKSUM_OFFSET)
#define SAM_DMAC_CRCSTATUS (SAM_DMAC_BASE+SAM_DMAC_CRCSTATUS_OFFSET)
#define SAM_DMAC_DBGCTRL (SAM_DMAC_BASE+SAM_DMAC_DBGCTRL_OFFSET)
#define SAM_DMAC_QOSCTRL (SAM_DMAC_BASE+SAM_DMAC_QOSCTRL_OFFSET)
#define SAM_DMAC_SWTRIGCTRL (SAM_DMAC_BASE+SAM_DMAC_SWTRIGCTRL_OFFSET)
#define SAM_DMAC_PRICTRL0 (SAM_DMAC_BASE+SAM_DMAC_PRICTRL0_OFFSET)
#define SAM_DMAC_INTPEND (SAM_DMAC_BASE+SAM_DMAC_INTPEND_OFFSET)
#define SAM_DMAC_INTSTATUS (SAM_DMAC_BASE+SAM_DMAC_INTSTATUS_OFFSET)
#define SAM_DMAC_BUSYCH (SAM_DMAC_BASE+SAM_DMAC_BUSYCH_OFFSET)
#define SAM_DMAC_PENDCH (SAM_DMAC_BASE+SAM_DMAC_PENDCH_OFFSET)
#define SAM_DMAC_ACTIVE (SAM_DMAC_BASE+SAM_DMAC_ACTIVE_OFFSET)
#define SAM_DMAC_BASEADDR (SAM_DMAC_BASE+SAM_DMAC_BASEADDR_OFFSET)
#define SAM_DMAC_WRBADDR (SAM_DMAC_BASE+SAM_DMAC_WRBADDR_OFFSET)
#define SAM_DMAC_CHID (SAM_DMAC_BASE+SAM_DMAC_CHID_OFFSET)
#define SAM_DMAC_CHCTRLA (SAM_DMAC_BASE+SAM_DMAC_CHCTRLA_OFFSET)
#define SAM_DMAC_CHCTRLB (SAM_DMAC_BASE+SAM_DMAC_CHCTRLB_OFFSET)
#define SAM_DMAC_CHINTENCLR (SAM_DMAC_BASE+SAM_DMAC_CHINTENCLR_OFFSET)
#define SAM_DMAC_CHINTENSET (SAM_DMAC_BASE+SAM_DMAC_CHINTENSET_OFFSET)
#define SAM_DMAC_CHINTFLAG (SAM_DMAC_BASE+SAM_DMAC_CHINTFLAG_OFFSET)
#define SAM_DMAC_CHSTATUS (SAM_DMAC_BASE+SAM_DMAC_CHSTATUS_OFFSET)
#define DMAC_CTRL_SWRST (1 << 0)
#define DMAC_CTRL_DMAENABLE (1 << 1)
#define DMAC_CTRL_CRCENABLE (1 << 2)
#define DMAC_CTRL_LVLEN0 (1 << 8)
#define DMAC_CTRL_LVLEN1 (1 << 9)
#define DMAC_CTRL_LVLEN2 (1 << 10)
#define DMAC_CRCCTRL_CRCBEATSIZE_SHIFT (0)
#define DMAC_CRCCTRL_CRCBEATSIZE_MASK (3 < DMAC_CRCCTRL_CRCBEATSIZE_SHIFT)
# define DMAC_CRCCTRL_CRCBEATSIZE_BYTE (0 < DMAC_CRCCTRL_CRCBEATSIZE_SHIFT)
# define DMAC_CRCCTRL_CRCBEATSIZE_HWORD (1 < DMAC_CRCCTRL_CRCBEATSIZE_SHIFT)
# define DMAC_CRCCTRL_CRCBEATSIZE_WORD (2 < DMAC_CRCCTRL_CRCBEATSIZE_SHIFT)
#define DMAC_CRCCTRL_CRCPOLY_SHIFT (2)
#define DMAC_CRCCTRL_CRCPOLY_MASK (3 < DMAC_CRCCTRL_CRCPOLY_SHIFT)
# define DMAC_CRCCTRL_CRCPOLY_CRC16 (0 < DMAC_CRCCTRL_CRCPOLY_SHIFT)
# define DMAC_CRCCTRL_CRCPOLY_CRC32 (1 < DMAC_CRCCTRL_CRCPOLY_SHIFT)
#define DMAC_CRCCTRL_CRCSRC_SHIFT (8)
#define DMAC_CRCCTRL_CRCSRC_MASK (0x3f < DMAC_CRCCTRL_CRCSRC_SHIFT)
# define DMAC_CRCCTRL_CRCSRC_NOACTION (0 < DMAC_CRCCTRL_CRCSRC_SHIFT)
# define DMAC_CRCCTRL_CRCSRC_IO (1 < DMAC_CRCCTRL_CRCSRC_SHIFT)
# define DMAC_CRCCTRL_CRCSRC_CHAN(n) (((uint32_t)(n) + 0x20) < DMAC_CRCCTRL_CRCSRC_SHIFT)
#define DMAC_CRCSTATUS_CRCBUSY (1 << 0)
#define DMAC_CRCSTATUS_CRCZERO (1 << 1)
#define DMAC_DBGCTRL_DBGRUN (1 << 0)
#define DMAC_QOSCTRL_WRBQOS_SHIFT (0)
#define DMAC_QOSCTRL_WRBQOS_MASK (3 << DMAC_QOSCTRL_WRBQOS_SHIFT)
# define DMAC_QOSCTRL_WRBQOS_DISABLE (0 << DMAC_QOSCTRL_WRBQOS_SHIFT)
# define DMAC_QOSCTRL_WRBQOS_LOW (1 << DMAC_QOSCTRL_WRBQOS_SHIFT)
# define DMAC_QOSCTRL_WRBQOS_MEDIUM (2 << DMAC_QOSCTRL_WRBQOS_SHIFT)
# define DMAC_QOSCTRL_WRBQOS_HIGH (3 << DMAC_QOSCTRL_WRBQOS_SHIFT)
#define DMAC_QOSCTRL_FQOS_SHIFT (2)
#define DMAC_QOSCTRL_FQOS_MASK (3 << DMAC_QOSCTRL_FQOS_SHIFT)
# define DMAC_QOSCTRL_FQOS_DISABLE (0 << DMAC_QOSCTRL_FQOS_SHIFT)
# define DMAC_QOSCTRL_FQOS_LOW (1 << DMAC_QOSCTRL_FQOS_SHIFT)
# define DMAC_QOSCTRL_FQOS_MEDIUM (2 << DMAC_QOSCTRL_FQOS_SHIFT)
# define DMAC_QOSCTRL_FQOS_HIGH (3 << DMAC_QOSCTRL_FQOS_SHIFT)
#define DMAC_QOSCTRL_DQOS_SHIFT (4)
#define DMAC_QOSCTRL_DQOS_MASK (3 << DMAC_QOSCTRL_DQOS_SHIFT)
# define DMAC_QOSCTRL_DQOS_DISABLE (0 << DMAC_QOSCTRL_DQOS_SHIFT)
# define DMAC_QOSCTRL_DQOS_LOW (1 << DMAC_QOSCTRL_DQOS_SHIFT)
# define DMAC_QOSCTRL_DQOS_MEDIUM (2 << DMAC_QOSCTRL_DQOS_SHIFT)
# define DMAC_QOSCTRL_DQOS_HIGH (3 << DMAC_QOSCTRL_DQOS_SHIFT)
* Interrupt Status Register, Busy Channels Register, and Pending Channels
* Register
*/
#define DMAC_CHAN(n) (1 << (n))
#define DMAC_PRICTRL0_LVLPRI0_SHIFT (0)
#define DMAC_PRICTRL0_LVLPRI0_MASK (15 << DMAC_PRICTRL0_LVLPRI0_SHIFT)
# define DMAC_PRICTRL0_LVLPRI0(n) ((uint32_t)(n) << DMAC_PRICTRL0_LVLPRI0_SHIFT)
#define DMAC_PRICTRL0_RRLVLEN0 (1 << 7)
#define DMAC_PRICTRL0_LVLPRI1_SHIFT (8)
#define DMAC_PRICTRL0_LVLPRI1_MASK (15 << DMAC_PRICTRL0_LVLPRI1_SHIFT)
# define DMAC_PRICTRL0_LVLPRI1(n) ((uint32_t)(n) << DMAC_PRICTRL0_LVLPRI1_SHIFT)
#define DMAC_PRICTRL0_RRLVLEN1 (1 << 15)
#define DMAC_PRICTRL0_LVLPRI2_SHIFT (16)
#define DMAC_PRICTRL0_LVLPRI2_MASK (7 << DMAC_PRICTRL0_LVLPRI2_SHIFT)
# define DMAC_PRICTRL0_LVLPRI2(n) ((uint32_t)(n) << DMAC_PRICTRL0_LVLPRI2_SHIFT)
#define DMAC_PRICTRL0_RRLVLEN2 (1 << 23)
#define DMAC_INTPEND_ID_SHIFT (0)
#define DMAC_INTPEND_ID_MASK (15 << DMAC_INTPEND_ID_SHIFT)
#define DMAC_INTPEND_TERR (1 << 8)
#define DMAC_INTPEND_TCMPL (1 << 9)
#define DMAC_INTPEND_SUSP (1 << 10)
#define DMAC_INTPEND_FERR (1 << 13)
#define DMAC_INTPEND_BUSY (1 << 14)
#define DMAC_INTPEND_PEND (1 << 15)
#define DMAC_ACTIVE_LVLEX0 (1 << 0)
#define DMAC_ACTIVE_LVLEX1 (1 << 1)
#define DMAC_ACTIVE_LVLEX2 (1 << 2)
#define DMAC_ACTIVE_ID_SHIFT (8)
#define DMAC_ACTIVE_ID_MASK (15 << DMAC_ACTIVE_ID_SHIFT)
#define DMAC_ACTIVE_ABUSY (1 << 15)
#define DMAC_ACTIVE_BTCNT_SHIFT (16)
#define DMAC_ACTIVE_BTCNT_MASK (0xffff << DMAC_ACTIVE_BTCNT_SHIFT)
#define DMAC_CHID_MASK 0x0f
#define DMAC_CHCTRLA_SWRST (1 << 0)
#define DMAC_CHCTRLA_ENABLE (1 << 1)
#define DMAC_CHCTRLA_RUNSTDBY (1 << 6)
#define DMAC_CHCTRLB_EVACT_SHIFT (0)
#define DMAC_CHCTRLB_EVACT_MASK (7 << DMAC_CHCTRLB_EVACT_SHIFT)
# define DMAC_CHCTRLB_EVACT_NOACT (0 << DMAC_CHCTRLB_EVACT_SHIFT)
# define DMAC_CHCTRLB_EVACT_TRIG (1 << DMAC_CHCTRLB_EVACT_SHIFT)
* trigger */
# define DMAC_CHCTRLB_EVACT_CTRIG (2 << DMAC_CHCTRLB_EVACT_SHIFT)
# define DMAC_CHCTRLB_EVACT_CBLOCK (3 << DMAC_CHCTRLB_EVACT_SHIFT)
# define DMAC_CHCTRLB_EVACT_SUSPEND (4 << DMAC_CHCTRLB_EVACT_SHIFT)
# define DMAC_CHCTRLB_EVACT_RESUME (5 << DMAC_CHCTRLB_EVACT_SHIFT)
# define DMAC_CHCTRLB_EVACT_SSKIP (6 << DMAC_CHCTRLB_EVACT_SHIFT)
#define DMAC_CHCTRLB_EVIE (1 << 3)
#define DMAC_CHCTRLB_EVOE (1 << 4)
#define DMAC_CHCTRLB_LVL_SHIFT (5)
#define DMAC_CHCTRLB_LVL_MASK (3 << DMAC_CHCTRLB_LVL_SHIFT)
# define DMAC_CHCTRLB_LVL(n) ((uint32_t)(n) << DMAC_CHCTRLB_LVL_SHIFT)
# define DMAC_CHCTRLB_LVL_LVL0 (0 << DMAC_CHCTRLB_LVL_SHIFT)
# define DMAC_CHCTRLB_LVL_LVL1 (1 << DMAC_CHCTRLB_LVL_SHIFT)
# define DMAC_CHCTRLB_LVL_LVL2 (2 << DMAC_CHCTRLB_LVL_SHIFT)
# define DMAC_CHCTRLB_LVL_LVL3 (3 << DMAC_CHCTRLB_LVL_SHIFT)
#define DMAC_CHCTRLB_TRIGSRC_SHIFT (8)
#define DMAC_CHCTRLB_TRIGSRC_MASK (0x3f << DMAC_CHCTRLB_TRIGSRC_SHIFT)
# define DMAC_CHCTRLB_TRIGSRC(n) ((uint32_t)(n) << DMAC_CHCTRLB_TRIGSRC_SHIFT)
#define DMAC_CHCTRLB_TRIGACT_SHIFT (22)
#define DMAC_CHCTRLB_TRIGACT_MASK (3 << DMAC_CHCTRLB_TRIGACT_SHIFT)
# define DMAC_CHCTRLB_TRIGACT_BLOCK (0 << DMAC_CHCTRLB_TRIGACT_SHIFT)
# define DMAC_CHCTRLB_TRIGACT_BEAT (2 << DMAC_CHCTRLB_TRIGACT_SHIFT)
# define DMAC_CHCTRLB_TRIGACT_TRANSACT (3 << DMAC_CHCTRLB_TRIGACT_SHIFT)
#define DMAC_CHCTRLB_CMD_SHIFT (24)
#define DMAC_CHCTRLB_CMD_MASK (3 << DMAC_CHCTRLB_CMD_SHIFT)
# define DMAC_CHCTRLB_CMD_NOACTION (0 << DMAC_CHCTRLB_CMD_SHIFT)
# define DMAC_CHCTRLB_CMD_SUSPEND (1 << DMAC_CHCTRLB_CMD_SHIFT)
# define DMAC_CHCTRLB_CMD_RESUME (2 << DMAC_CHCTRLB_CMD_SHIFT)
#define DMAC_TRIGSRC_DISABLE (0)
#define DMAC_TRIGSRC_SERCOM0_RX (1)
#define DMAC_TRIGSRC_SERCOM0_TX (2)
#define DMAC_TRIGSRC_SERCOM1_RX (3)
#define DMAC_TRIGSRC_SERCOM1_TX (4)
#define DMAC_TRIGSRC_SERCOM2_RX (5)
#define DMAC_TRIGSRC_SERCOM2_TX (6)
#define DMAC_TRIGSRC_SERCOM3_RX (7)
#define DMAC_TRIGSRC_SERCOM3_TX (8)
#define DMAC_TRIGSRC_SERCOM4_RX (9)
#define DMAC_TRIGSRC_SERCOM4_TX (10)
#define DMAC_TRIGSRC_TCC0_OVF (11)
#define DMAC_TRIGSRC_TCC0_MC0 (12)
#define DMAC_TRIGSRC_TCC0_MC1 (13)
#define DMAC_TRIGSRC_TCC0_MC2 (14)
#define DMAC_TRIGSRC_TCC0_MC3 (15)
#define DMAC_TRIGSRC_TCC1_OVF (16)
#define DMAC_TRIGSRC_TCC1_MC0 (17)
#define DMAC_TRIGSRC_TCC1_MC1 (18)
#define DMAC_TRIGSRC_TCC2_OVF (19)
#define DMAC_TRIGSRC_TCC2_MC0 (20)
#define DMAC_TRIGSRC_TCC2_MC1 (21)
#define DMAC_TRIGSRC_TC0_OVF (22)
#define DMAC_TRIGSRC_TC0_MC0 (23)
#define DMAC_TRIGSRC_TC0 MC1 (24)
#define DMAC_TRIGSRC_TC1_OVF (25)
#define DMAC_TRIGSRC_TC1_MC0 (26)
#define DMAC_TRIGSRC_TC1_MC1 (27)
#define DMAC_TRIGSRC_TC2_OVF (28)
#define DMAC_TRIGSRC_TC2_MC0 (29)
#define DMAC_TRIGSRC_TC2_MC1 (30)
#define DMAC_TRIGSRC_TC3_OVF (31)
#define DMAC_TRIGSRC_TC3_MC0 (32)
#define DMAC_TRIGSRC_TC3_MC1 (33)
#define DMAC_TRIGSRC_TC4_OVF (34)
#define DMAC_TRIGSRC_TC4_MC0 (35)
#define DMAC_TRIGSRC_TC4_MC1 (36)
#define DMAC_TRIGSRC_ADC_RESRDY (37)
#define DMAC_TRIGSRC_DAC0_EMPTY (38)
#define DMAC_TRIGSRC_DAC1_EMPTY (39)
#define DMAC_TRIGSRC_AES_WR (44)
#define DMAC_TRIGSRC_AES_RD (45)
* Channel Interrupt Enable Set Register, and Channel Interrupt Flag
* Status and Clear Register
*/
#define DMAC_INT_TERR (1 << 0)
#define DMAC_INT_TCMPL (1 << 1)
#define DMAC_INT_SUSP (1 << 2)
#define DMAC_INT_ALL (0x07)
#define DMAC_CHSTATUS_PEND (1 << 0)
#define DMAC_CHSTATUS_BUSY (1 << 1)
#define DMAC_CHSTATUS_FERR (1 << 2)
#define LPSRAM_BTCTRL_VALID (1 << 0)
#define LPSRAM_BTCTRL_EVOSEL_SHIFT (1)
#define LPSRAM_BTCTRL_EVOSEL_MASK (3 << LPSRAM_BTCTRL_EVOSEL_SHIFT)
# define LPSRAM_BTCTRL_EVOSEL_DISABLE (0 << LPSRAM_BTCTRL_EVOSEL_SHIFT)
# define LPSRAM_BTCTRL_EVOSEL_BLOCK (1 << LPSRAM_BTCTRL_EVOSEL_SHIFT)
# define LPSRAM_BTCTRL_EVOSEL_BEAT (3 << LPSRAM_BTCTRL_EVOSEL_SHIFT)
#define LPSRAM_BTCTRL_BLOCKACT_SHIFT (3)
#define LPSRAM_BTCTRL_BLOCKACT_MASK (3 << LPSRAM_BTCTRL_BLOCKACT_SHIFT)
# define LPSRAM_BTCTRL_BLOCKACT_NOACT (0 << LPSRAM_BTCTRL_BLOCKACT_SHIFT)
# define LPSRAM_BTCTRL_BLOCKACT_INT (1 << LPSRAM_BTCTRL_BLOCKACT_SHIFT)
# define LPSRAM_BTCTRL_BLOCKACT_SUSPEND (2 << LPSRAM_BTCTRL_BLOCKACT_SHIFT)
# define LPSRAM_BTCTRL_BLOCKACT_BOTH (3 << LPSRAM_BTCTRL_BLOCKACT_SHIFT)
#define LPSRAM_BTCTRL_BEATSIZE_SHIFT (8)
#define LPSRAM_BTCTRL_BEATSIZE_MASK (3 << LPSRAM_BTCTRL_BEATSIZE_SHIFT)
# define LPSRAM_BTCTRL_BEATSIZE_BYTE (0 << LPSRAM_BTCTRL_BEATSIZE_SHIFT)
# define LPSRAM_BTCTRL_BEATSIZE_HWORD (1 << LPSRAM_BTCTRL_BEATSIZE_SHIFT)
# define LPSRAM_BTCTRL_BEATSIZE_WORD (2 << LPSRAM_BTCTRL_BEATSIZE_SHIFT)
#define LPSRAM_BTCTRL_SRCINC (1 << 10)
#define LPSRAM_BTCTRL_DSTINC (1 << 11)
#define LPSRAM_BTCTRL_STEPSEL (1 << 12)
#define LPSRAM_BTCTRL_STEPSIZE_SHIFT (13)
#define LPSRAM_BTCTRL_STEPSIZE_MASK (7 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X1 (0 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X2 (1 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X4 (2 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X8 (3 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X16 (4 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X32 (5 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X64 (6 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
# define LPSRAM_BTCTRL_STEPSIZE_X128 (7 << LPSRAM_BTCTRL_STEPSIZE_SHIFT)
* Public Types
****************************************************************************/
struct dma_desc_s
{
uint16_t btctrl;
uint16_t btcnt;
uint32_t srcaddr;
uint32_t dstaddr;
uint32_t descaddr;
};
* Public Data
****************************************************************************/
* Public Functions Prototypes
****************************************************************************/
#endif
#endif