blob: 62a37ec096de99a503e9f8d9f828aa13066d37c1 [file] [log] [blame]
// THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT
/**
* Copyright (c) 2024 Raspberry Pi Ltd.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
// =============================================================================
// Register block : DMA
// Version : 1
// Bus type : apb
// Description : DMA with separate read and write masters
// =============================================================================
#ifndef _HARDWARE_REGS_DMA_H
#define _HARDWARE_REGS_DMA_H
// =============================================================================
// Register : DMA_CH0_READ_ADDR
// Description : DMA Channel 0 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH0_READ_ADDR_OFFSET _u(0x00000000)
#define DMA_CH0_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH0_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH0_READ_ADDR_MSB _u(31)
#define DMA_CH0_READ_ADDR_LSB _u(0)
#define DMA_CH0_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_WRITE_ADDR
// Description : DMA Channel 0 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH0_WRITE_ADDR_OFFSET _u(0x00000004)
#define DMA_CH0_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH0_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH0_WRITE_ADDR_MSB _u(31)
#define DMA_CH0_WRITE_ADDR_LSB _u(0)
#define DMA_CH0_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_TRANS_COUNT
// Description : DMA Channel 0 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH0_TRANS_COUNT_OFFSET _u(0x00000008)
#define DMA_CH0_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH0_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH0_TRANS_COUNT_MSB _u(31)
#define DMA_CH0_TRANS_COUNT_LSB _u(0)
#define DMA_CH0_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_CTRL_TRIG
// Description : DMA Channel 0 Control and Status
#define DMA_CH0_CTRL_TRIG_OFFSET _u(0x0000000c)
#define DMA_CH0_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH0_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH0_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH0_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH0_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH0_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH0_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH0_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH0_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH0_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH0_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH0_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH0_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH0_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH0_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH0_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH0_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH0_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH0_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH0_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH0_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH0_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH0_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH0_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH0_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH0_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH0_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH0_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH0_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH0_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH0_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH0_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH0_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH0_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH0_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH0_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH0_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH0_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH0_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH0_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH0_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH0_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH0_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH0_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH0_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH0_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH0_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH0_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH0_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH0_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH0_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH0_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH0_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH0_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH0_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH0_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH0_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL1_CTRL
// Description : Alias for channel 0 CTRL register
#define DMA_CH0_AL1_CTRL_OFFSET _u(0x00000010)
#define DMA_CH0_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH0_AL1_CTRL_RESET "-"
#define DMA_CH0_AL1_CTRL_MSB _u(31)
#define DMA_CH0_AL1_CTRL_LSB _u(0)
#define DMA_CH0_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL1_READ_ADDR
// Description : Alias for channel 0 READ_ADDR register
#define DMA_CH0_AL1_READ_ADDR_OFFSET _u(0x00000014)
#define DMA_CH0_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH0_AL1_READ_ADDR_RESET "-"
#define DMA_CH0_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH0_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH0_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL1_WRITE_ADDR
// Description : Alias for channel 0 WRITE_ADDR register
#define DMA_CH0_AL1_WRITE_ADDR_OFFSET _u(0x00000018)
#define DMA_CH0_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH0_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH0_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH0_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH0_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 0 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH0_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000001c)
#define DMA_CH0_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH0_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH0_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH0_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH0_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL2_CTRL
// Description : Alias for channel 0 CTRL register
#define DMA_CH0_AL2_CTRL_OFFSET _u(0x00000020)
#define DMA_CH0_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH0_AL2_CTRL_RESET "-"
#define DMA_CH0_AL2_CTRL_MSB _u(31)
#define DMA_CH0_AL2_CTRL_LSB _u(0)
#define DMA_CH0_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL2_TRANS_COUNT
// Description : Alias for channel 0 TRANS_COUNT register
#define DMA_CH0_AL2_TRANS_COUNT_OFFSET _u(0x00000024)
#define DMA_CH0_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH0_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH0_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH0_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH0_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL2_READ_ADDR
// Description : Alias for channel 0 READ_ADDR register
#define DMA_CH0_AL2_READ_ADDR_OFFSET _u(0x00000028)
#define DMA_CH0_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH0_AL2_READ_ADDR_RESET "-"
#define DMA_CH0_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH0_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH0_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 0 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH0_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000002c)
#define DMA_CH0_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH0_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH0_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH0_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH0_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL3_CTRL
// Description : Alias for channel 0 CTRL register
#define DMA_CH0_AL3_CTRL_OFFSET _u(0x00000030)
#define DMA_CH0_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH0_AL3_CTRL_RESET "-"
#define DMA_CH0_AL3_CTRL_MSB _u(31)
#define DMA_CH0_AL3_CTRL_LSB _u(0)
#define DMA_CH0_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL3_WRITE_ADDR
// Description : Alias for channel 0 WRITE_ADDR register
#define DMA_CH0_AL3_WRITE_ADDR_OFFSET _u(0x00000034)
#define DMA_CH0_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH0_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH0_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH0_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH0_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL3_TRANS_COUNT
// Description : Alias for channel 0 TRANS_COUNT register
#define DMA_CH0_AL3_TRANS_COUNT_OFFSET _u(0x00000038)
#define DMA_CH0_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH0_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH0_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH0_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH0_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH0_AL3_READ_ADDR_TRIG
// Description : Alias for channel 0 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH0_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000003c)
#define DMA_CH0_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH0_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH0_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH0_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH0_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_READ_ADDR
// Description : DMA Channel 1 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH1_READ_ADDR_OFFSET _u(0x00000040)
#define DMA_CH1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH1_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH1_READ_ADDR_MSB _u(31)
#define DMA_CH1_READ_ADDR_LSB _u(0)
#define DMA_CH1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_WRITE_ADDR
// Description : DMA Channel 1 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH1_WRITE_ADDR_OFFSET _u(0x00000044)
#define DMA_CH1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH1_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH1_WRITE_ADDR_MSB _u(31)
#define DMA_CH1_WRITE_ADDR_LSB _u(0)
#define DMA_CH1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_TRANS_COUNT
// Description : DMA Channel 1 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH1_TRANS_COUNT_OFFSET _u(0x00000048)
#define DMA_CH1_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH1_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH1_TRANS_COUNT_MSB _u(31)
#define DMA_CH1_TRANS_COUNT_LSB _u(0)
#define DMA_CH1_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_CTRL_TRIG
// Description : DMA Channel 1 Control and Status
#define DMA_CH1_CTRL_TRIG_OFFSET _u(0x0000004c)
#define DMA_CH1_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH1_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH1_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH1_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH1_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH1_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH1_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH1_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH1_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH1_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH1_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH1_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH1_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH1_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH1_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH1_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH1_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH1_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH1_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH1_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH1_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH1_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH1_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH1_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH1_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH1_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH1_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH1_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH1_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH1_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH1_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH1_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH1_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH1_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH1_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH1_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH1_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH1_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH1_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH1_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH1_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH1_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH1_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH1_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH1_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH1_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH1_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH1_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH1_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH1_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH1_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH1_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH1_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH1_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH1_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH1_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH1_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL1_CTRL
// Description : Alias for channel 1 CTRL register
#define DMA_CH1_AL1_CTRL_OFFSET _u(0x00000050)
#define DMA_CH1_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH1_AL1_CTRL_RESET "-"
#define DMA_CH1_AL1_CTRL_MSB _u(31)
#define DMA_CH1_AL1_CTRL_LSB _u(0)
#define DMA_CH1_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL1_READ_ADDR
// Description : Alias for channel 1 READ_ADDR register
#define DMA_CH1_AL1_READ_ADDR_OFFSET _u(0x00000054)
#define DMA_CH1_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH1_AL1_READ_ADDR_RESET "-"
#define DMA_CH1_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH1_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH1_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL1_WRITE_ADDR
// Description : Alias for channel 1 WRITE_ADDR register
#define DMA_CH1_AL1_WRITE_ADDR_OFFSET _u(0x00000058)
#define DMA_CH1_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH1_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH1_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH1_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH1_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 1 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH1_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000005c)
#define DMA_CH1_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH1_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH1_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH1_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH1_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL2_CTRL
// Description : Alias for channel 1 CTRL register
#define DMA_CH1_AL2_CTRL_OFFSET _u(0x00000060)
#define DMA_CH1_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH1_AL2_CTRL_RESET "-"
#define DMA_CH1_AL2_CTRL_MSB _u(31)
#define DMA_CH1_AL2_CTRL_LSB _u(0)
#define DMA_CH1_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL2_TRANS_COUNT
// Description : Alias for channel 1 TRANS_COUNT register
#define DMA_CH1_AL2_TRANS_COUNT_OFFSET _u(0x00000064)
#define DMA_CH1_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH1_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH1_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH1_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH1_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL2_READ_ADDR
// Description : Alias for channel 1 READ_ADDR register
#define DMA_CH1_AL2_READ_ADDR_OFFSET _u(0x00000068)
#define DMA_CH1_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH1_AL2_READ_ADDR_RESET "-"
#define DMA_CH1_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH1_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH1_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 1 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH1_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000006c)
#define DMA_CH1_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH1_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH1_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH1_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH1_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL3_CTRL
// Description : Alias for channel 1 CTRL register
#define DMA_CH1_AL3_CTRL_OFFSET _u(0x00000070)
#define DMA_CH1_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH1_AL3_CTRL_RESET "-"
#define DMA_CH1_AL3_CTRL_MSB _u(31)
#define DMA_CH1_AL3_CTRL_LSB _u(0)
#define DMA_CH1_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL3_WRITE_ADDR
// Description : Alias for channel 1 WRITE_ADDR register
#define DMA_CH1_AL3_WRITE_ADDR_OFFSET _u(0x00000074)
#define DMA_CH1_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH1_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH1_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH1_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH1_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL3_TRANS_COUNT
// Description : Alias for channel 1 TRANS_COUNT register
#define DMA_CH1_AL3_TRANS_COUNT_OFFSET _u(0x00000078)
#define DMA_CH1_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH1_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH1_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH1_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH1_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH1_AL3_READ_ADDR_TRIG
// Description : Alias for channel 1 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH1_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000007c)
#define DMA_CH1_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH1_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH1_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH1_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH1_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_READ_ADDR
// Description : DMA Channel 2 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH2_READ_ADDR_OFFSET _u(0x00000080)
#define DMA_CH2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH2_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH2_READ_ADDR_MSB _u(31)
#define DMA_CH2_READ_ADDR_LSB _u(0)
#define DMA_CH2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_WRITE_ADDR
// Description : DMA Channel 2 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH2_WRITE_ADDR_OFFSET _u(0x00000084)
#define DMA_CH2_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH2_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH2_WRITE_ADDR_MSB _u(31)
#define DMA_CH2_WRITE_ADDR_LSB _u(0)
#define DMA_CH2_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_TRANS_COUNT
// Description : DMA Channel 2 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH2_TRANS_COUNT_OFFSET _u(0x00000088)
#define DMA_CH2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH2_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH2_TRANS_COUNT_MSB _u(31)
#define DMA_CH2_TRANS_COUNT_LSB _u(0)
#define DMA_CH2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_CTRL_TRIG
// Description : DMA Channel 2 Control and Status
#define DMA_CH2_CTRL_TRIG_OFFSET _u(0x0000008c)
#define DMA_CH2_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH2_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH2_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH2_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH2_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH2_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH2_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH2_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH2_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH2_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH2_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH2_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH2_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH2_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH2_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH2_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH2_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH2_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH2_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH2_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH2_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH2_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH2_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH2_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH2_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH2_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH2_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH2_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH2_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH2_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH2_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH2_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH2_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH2_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH2_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH2_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH2_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH2_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH2_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH2_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH2_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH2_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH2_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH2_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH2_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH2_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH2_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH2_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH2_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH2_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH2_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH2_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH2_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH2_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH2_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH2_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH2_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL1_CTRL
// Description : Alias for channel 2 CTRL register
#define DMA_CH2_AL1_CTRL_OFFSET _u(0x00000090)
#define DMA_CH2_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH2_AL1_CTRL_RESET "-"
#define DMA_CH2_AL1_CTRL_MSB _u(31)
#define DMA_CH2_AL1_CTRL_LSB _u(0)
#define DMA_CH2_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL1_READ_ADDR
// Description : Alias for channel 2 READ_ADDR register
#define DMA_CH2_AL1_READ_ADDR_OFFSET _u(0x00000094)
#define DMA_CH2_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH2_AL1_READ_ADDR_RESET "-"
#define DMA_CH2_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH2_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH2_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL1_WRITE_ADDR
// Description : Alias for channel 2 WRITE_ADDR register
#define DMA_CH2_AL1_WRITE_ADDR_OFFSET _u(0x00000098)
#define DMA_CH2_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH2_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH2_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH2_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH2_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 2 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH2_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000009c)
#define DMA_CH2_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH2_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH2_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH2_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH2_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL2_CTRL
// Description : Alias for channel 2 CTRL register
#define DMA_CH2_AL2_CTRL_OFFSET _u(0x000000a0)
#define DMA_CH2_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH2_AL2_CTRL_RESET "-"
#define DMA_CH2_AL2_CTRL_MSB _u(31)
#define DMA_CH2_AL2_CTRL_LSB _u(0)
#define DMA_CH2_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL2_TRANS_COUNT
// Description : Alias for channel 2 TRANS_COUNT register
#define DMA_CH2_AL2_TRANS_COUNT_OFFSET _u(0x000000a4)
#define DMA_CH2_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH2_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH2_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH2_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH2_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL2_READ_ADDR
// Description : Alias for channel 2 READ_ADDR register
#define DMA_CH2_AL2_READ_ADDR_OFFSET _u(0x000000a8)
#define DMA_CH2_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH2_AL2_READ_ADDR_RESET "-"
#define DMA_CH2_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH2_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH2_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 2 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH2_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000000ac)
#define DMA_CH2_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH2_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH2_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH2_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH2_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL3_CTRL
// Description : Alias for channel 2 CTRL register
#define DMA_CH2_AL3_CTRL_OFFSET _u(0x000000b0)
#define DMA_CH2_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH2_AL3_CTRL_RESET "-"
#define DMA_CH2_AL3_CTRL_MSB _u(31)
#define DMA_CH2_AL3_CTRL_LSB _u(0)
#define DMA_CH2_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL3_WRITE_ADDR
// Description : Alias for channel 2 WRITE_ADDR register
#define DMA_CH2_AL3_WRITE_ADDR_OFFSET _u(0x000000b4)
#define DMA_CH2_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH2_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH2_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH2_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH2_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL3_TRANS_COUNT
// Description : Alias for channel 2 TRANS_COUNT register
#define DMA_CH2_AL3_TRANS_COUNT_OFFSET _u(0x000000b8)
#define DMA_CH2_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH2_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH2_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH2_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH2_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH2_AL3_READ_ADDR_TRIG
// Description : Alias for channel 2 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH2_AL3_READ_ADDR_TRIG_OFFSET _u(0x000000bc)
#define DMA_CH2_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH2_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH2_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH2_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH2_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_READ_ADDR
// Description : DMA Channel 3 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH3_READ_ADDR_OFFSET _u(0x000000c0)
#define DMA_CH3_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH3_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH3_READ_ADDR_MSB _u(31)
#define DMA_CH3_READ_ADDR_LSB _u(0)
#define DMA_CH3_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_WRITE_ADDR
// Description : DMA Channel 3 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH3_WRITE_ADDR_OFFSET _u(0x000000c4)
#define DMA_CH3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH3_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH3_WRITE_ADDR_MSB _u(31)
#define DMA_CH3_WRITE_ADDR_LSB _u(0)
#define DMA_CH3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_TRANS_COUNT
// Description : DMA Channel 3 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH3_TRANS_COUNT_OFFSET _u(0x000000c8)
#define DMA_CH3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH3_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH3_TRANS_COUNT_MSB _u(31)
#define DMA_CH3_TRANS_COUNT_LSB _u(0)
#define DMA_CH3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_CTRL_TRIG
// Description : DMA Channel 3 Control and Status
#define DMA_CH3_CTRL_TRIG_OFFSET _u(0x000000cc)
#define DMA_CH3_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH3_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH3_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH3_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH3_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH3_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH3_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH3_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH3_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH3_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH3_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH3_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH3_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH3_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH3_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH3_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH3_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH3_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH3_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH3_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH3_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH3_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH3_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH3_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH3_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH3_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH3_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH3_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH3_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH3_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH3_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH3_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH3_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH3_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH3_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH3_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH3_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH3_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH3_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH3_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH3_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH3_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH3_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH3_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH3_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH3_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH3_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH3_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH3_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH3_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH3_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH3_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH3_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH3_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH3_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH3_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH3_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL1_CTRL
// Description : Alias for channel 3 CTRL register
#define DMA_CH3_AL1_CTRL_OFFSET _u(0x000000d0)
#define DMA_CH3_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH3_AL1_CTRL_RESET "-"
#define DMA_CH3_AL1_CTRL_MSB _u(31)
#define DMA_CH3_AL1_CTRL_LSB _u(0)
#define DMA_CH3_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL1_READ_ADDR
// Description : Alias for channel 3 READ_ADDR register
#define DMA_CH3_AL1_READ_ADDR_OFFSET _u(0x000000d4)
#define DMA_CH3_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH3_AL1_READ_ADDR_RESET "-"
#define DMA_CH3_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH3_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH3_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL1_WRITE_ADDR
// Description : Alias for channel 3 WRITE_ADDR register
#define DMA_CH3_AL1_WRITE_ADDR_OFFSET _u(0x000000d8)
#define DMA_CH3_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH3_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH3_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH3_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH3_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 3 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH3_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000000dc)
#define DMA_CH3_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH3_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH3_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH3_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH3_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL2_CTRL
// Description : Alias for channel 3 CTRL register
#define DMA_CH3_AL2_CTRL_OFFSET _u(0x000000e0)
#define DMA_CH3_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH3_AL2_CTRL_RESET "-"
#define DMA_CH3_AL2_CTRL_MSB _u(31)
#define DMA_CH3_AL2_CTRL_LSB _u(0)
#define DMA_CH3_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL2_TRANS_COUNT
// Description : Alias for channel 3 TRANS_COUNT register
#define DMA_CH3_AL2_TRANS_COUNT_OFFSET _u(0x000000e4)
#define DMA_CH3_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH3_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH3_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH3_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH3_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL2_READ_ADDR
// Description : Alias for channel 3 READ_ADDR register
#define DMA_CH3_AL2_READ_ADDR_OFFSET _u(0x000000e8)
#define DMA_CH3_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH3_AL2_READ_ADDR_RESET "-"
#define DMA_CH3_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH3_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH3_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 3 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH3_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000000ec)
#define DMA_CH3_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH3_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH3_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH3_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH3_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL3_CTRL
// Description : Alias for channel 3 CTRL register
#define DMA_CH3_AL3_CTRL_OFFSET _u(0x000000f0)
#define DMA_CH3_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH3_AL3_CTRL_RESET "-"
#define DMA_CH3_AL3_CTRL_MSB _u(31)
#define DMA_CH3_AL3_CTRL_LSB _u(0)
#define DMA_CH3_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL3_WRITE_ADDR
// Description : Alias for channel 3 WRITE_ADDR register
#define DMA_CH3_AL3_WRITE_ADDR_OFFSET _u(0x000000f4)
#define DMA_CH3_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH3_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH3_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH3_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH3_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL3_TRANS_COUNT
// Description : Alias for channel 3 TRANS_COUNT register
#define DMA_CH3_AL3_TRANS_COUNT_OFFSET _u(0x000000f8)
#define DMA_CH3_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH3_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH3_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH3_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH3_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH3_AL3_READ_ADDR_TRIG
// Description : Alias for channel 3 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH3_AL3_READ_ADDR_TRIG_OFFSET _u(0x000000fc)
#define DMA_CH3_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH3_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH3_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH3_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH3_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_READ_ADDR
// Description : DMA Channel 4 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH4_READ_ADDR_OFFSET _u(0x00000100)
#define DMA_CH4_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH4_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH4_READ_ADDR_MSB _u(31)
#define DMA_CH4_READ_ADDR_LSB _u(0)
#define DMA_CH4_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_WRITE_ADDR
// Description : DMA Channel 4 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH4_WRITE_ADDR_OFFSET _u(0x00000104)
#define DMA_CH4_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH4_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH4_WRITE_ADDR_MSB _u(31)
#define DMA_CH4_WRITE_ADDR_LSB _u(0)
#define DMA_CH4_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_TRANS_COUNT
// Description : DMA Channel 4 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH4_TRANS_COUNT_OFFSET _u(0x00000108)
#define DMA_CH4_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH4_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH4_TRANS_COUNT_MSB _u(31)
#define DMA_CH4_TRANS_COUNT_LSB _u(0)
#define DMA_CH4_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_CTRL_TRIG
// Description : DMA Channel 4 Control and Status
#define DMA_CH4_CTRL_TRIG_OFFSET _u(0x0000010c)
#define DMA_CH4_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH4_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH4_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH4_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH4_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH4_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH4_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH4_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH4_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH4_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH4_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH4_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH4_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH4_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH4_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH4_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH4_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH4_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH4_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH4_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH4_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH4_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH4_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH4_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH4_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH4_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH4_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH4_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH4_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH4_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH4_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH4_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH4_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH4_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH4_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH4_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH4_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH4_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH4_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH4_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH4_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH4_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH4_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH4_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH4_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH4_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH4_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH4_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH4_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH4_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH4_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH4_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH4_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH4_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH4_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH4_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH4_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL1_CTRL
// Description : Alias for channel 4 CTRL register
#define DMA_CH4_AL1_CTRL_OFFSET _u(0x00000110)
#define DMA_CH4_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH4_AL1_CTRL_RESET "-"
#define DMA_CH4_AL1_CTRL_MSB _u(31)
#define DMA_CH4_AL1_CTRL_LSB _u(0)
#define DMA_CH4_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL1_READ_ADDR
// Description : Alias for channel 4 READ_ADDR register
#define DMA_CH4_AL1_READ_ADDR_OFFSET _u(0x00000114)
#define DMA_CH4_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH4_AL1_READ_ADDR_RESET "-"
#define DMA_CH4_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH4_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH4_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL1_WRITE_ADDR
// Description : Alias for channel 4 WRITE_ADDR register
#define DMA_CH4_AL1_WRITE_ADDR_OFFSET _u(0x00000118)
#define DMA_CH4_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH4_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH4_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH4_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH4_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 4 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH4_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000011c)
#define DMA_CH4_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH4_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH4_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH4_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH4_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL2_CTRL
// Description : Alias for channel 4 CTRL register
#define DMA_CH4_AL2_CTRL_OFFSET _u(0x00000120)
#define DMA_CH4_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH4_AL2_CTRL_RESET "-"
#define DMA_CH4_AL2_CTRL_MSB _u(31)
#define DMA_CH4_AL2_CTRL_LSB _u(0)
#define DMA_CH4_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL2_TRANS_COUNT
// Description : Alias for channel 4 TRANS_COUNT register
#define DMA_CH4_AL2_TRANS_COUNT_OFFSET _u(0x00000124)
#define DMA_CH4_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH4_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH4_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH4_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH4_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL2_READ_ADDR
// Description : Alias for channel 4 READ_ADDR register
#define DMA_CH4_AL2_READ_ADDR_OFFSET _u(0x00000128)
#define DMA_CH4_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH4_AL2_READ_ADDR_RESET "-"
#define DMA_CH4_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH4_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH4_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 4 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH4_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000012c)
#define DMA_CH4_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH4_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH4_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH4_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH4_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL3_CTRL
// Description : Alias for channel 4 CTRL register
#define DMA_CH4_AL3_CTRL_OFFSET _u(0x00000130)
#define DMA_CH4_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH4_AL3_CTRL_RESET "-"
#define DMA_CH4_AL3_CTRL_MSB _u(31)
#define DMA_CH4_AL3_CTRL_LSB _u(0)
#define DMA_CH4_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL3_WRITE_ADDR
// Description : Alias for channel 4 WRITE_ADDR register
#define DMA_CH4_AL3_WRITE_ADDR_OFFSET _u(0x00000134)
#define DMA_CH4_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH4_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH4_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH4_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH4_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL3_TRANS_COUNT
// Description : Alias for channel 4 TRANS_COUNT register
#define DMA_CH4_AL3_TRANS_COUNT_OFFSET _u(0x00000138)
#define DMA_CH4_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH4_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH4_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH4_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH4_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH4_AL3_READ_ADDR_TRIG
// Description : Alias for channel 4 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH4_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000013c)
#define DMA_CH4_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH4_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH4_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH4_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH4_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_READ_ADDR
// Description : DMA Channel 5 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH5_READ_ADDR_OFFSET _u(0x00000140)
#define DMA_CH5_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH5_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH5_READ_ADDR_MSB _u(31)
#define DMA_CH5_READ_ADDR_LSB _u(0)
#define DMA_CH5_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_WRITE_ADDR
// Description : DMA Channel 5 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH5_WRITE_ADDR_OFFSET _u(0x00000144)
#define DMA_CH5_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH5_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH5_WRITE_ADDR_MSB _u(31)
#define DMA_CH5_WRITE_ADDR_LSB _u(0)
#define DMA_CH5_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_TRANS_COUNT
// Description : DMA Channel 5 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH5_TRANS_COUNT_OFFSET _u(0x00000148)
#define DMA_CH5_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH5_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH5_TRANS_COUNT_MSB _u(31)
#define DMA_CH5_TRANS_COUNT_LSB _u(0)
#define DMA_CH5_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_CTRL_TRIG
// Description : DMA Channel 5 Control and Status
#define DMA_CH5_CTRL_TRIG_OFFSET _u(0x0000014c)
#define DMA_CH5_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH5_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH5_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH5_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH5_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH5_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH5_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH5_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH5_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH5_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH5_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH5_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH5_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH5_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH5_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH5_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH5_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH5_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH5_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH5_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH5_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH5_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH5_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH5_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH5_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH5_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH5_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH5_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH5_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH5_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH5_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH5_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH5_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH5_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH5_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH5_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH5_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH5_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH5_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH5_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH5_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH5_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH5_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH5_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH5_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH5_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH5_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH5_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH5_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH5_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH5_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH5_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH5_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH5_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH5_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH5_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH5_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL1_CTRL
// Description : Alias for channel 5 CTRL register
#define DMA_CH5_AL1_CTRL_OFFSET _u(0x00000150)
#define DMA_CH5_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH5_AL1_CTRL_RESET "-"
#define DMA_CH5_AL1_CTRL_MSB _u(31)
#define DMA_CH5_AL1_CTRL_LSB _u(0)
#define DMA_CH5_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL1_READ_ADDR
// Description : Alias for channel 5 READ_ADDR register
#define DMA_CH5_AL1_READ_ADDR_OFFSET _u(0x00000154)
#define DMA_CH5_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH5_AL1_READ_ADDR_RESET "-"
#define DMA_CH5_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH5_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH5_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL1_WRITE_ADDR
// Description : Alias for channel 5 WRITE_ADDR register
#define DMA_CH5_AL1_WRITE_ADDR_OFFSET _u(0x00000158)
#define DMA_CH5_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH5_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH5_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH5_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH5_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 5 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH5_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000015c)
#define DMA_CH5_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH5_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH5_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH5_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH5_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL2_CTRL
// Description : Alias for channel 5 CTRL register
#define DMA_CH5_AL2_CTRL_OFFSET _u(0x00000160)
#define DMA_CH5_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH5_AL2_CTRL_RESET "-"
#define DMA_CH5_AL2_CTRL_MSB _u(31)
#define DMA_CH5_AL2_CTRL_LSB _u(0)
#define DMA_CH5_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL2_TRANS_COUNT
// Description : Alias for channel 5 TRANS_COUNT register
#define DMA_CH5_AL2_TRANS_COUNT_OFFSET _u(0x00000164)
#define DMA_CH5_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH5_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH5_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH5_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH5_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL2_READ_ADDR
// Description : Alias for channel 5 READ_ADDR register
#define DMA_CH5_AL2_READ_ADDR_OFFSET _u(0x00000168)
#define DMA_CH5_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH5_AL2_READ_ADDR_RESET "-"
#define DMA_CH5_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH5_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH5_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 5 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH5_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000016c)
#define DMA_CH5_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH5_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH5_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH5_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH5_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL3_CTRL
// Description : Alias for channel 5 CTRL register
#define DMA_CH5_AL3_CTRL_OFFSET _u(0x00000170)
#define DMA_CH5_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH5_AL3_CTRL_RESET "-"
#define DMA_CH5_AL3_CTRL_MSB _u(31)
#define DMA_CH5_AL3_CTRL_LSB _u(0)
#define DMA_CH5_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL3_WRITE_ADDR
// Description : Alias for channel 5 WRITE_ADDR register
#define DMA_CH5_AL3_WRITE_ADDR_OFFSET _u(0x00000174)
#define DMA_CH5_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH5_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH5_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH5_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH5_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL3_TRANS_COUNT
// Description : Alias for channel 5 TRANS_COUNT register
#define DMA_CH5_AL3_TRANS_COUNT_OFFSET _u(0x00000178)
#define DMA_CH5_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH5_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH5_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH5_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH5_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH5_AL3_READ_ADDR_TRIG
// Description : Alias for channel 5 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH5_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000017c)
#define DMA_CH5_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH5_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH5_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH5_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH5_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_READ_ADDR
// Description : DMA Channel 6 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH6_READ_ADDR_OFFSET _u(0x00000180)
#define DMA_CH6_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH6_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH6_READ_ADDR_MSB _u(31)
#define DMA_CH6_READ_ADDR_LSB _u(0)
#define DMA_CH6_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_WRITE_ADDR
// Description : DMA Channel 6 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH6_WRITE_ADDR_OFFSET _u(0x00000184)
#define DMA_CH6_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH6_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH6_WRITE_ADDR_MSB _u(31)
#define DMA_CH6_WRITE_ADDR_LSB _u(0)
#define DMA_CH6_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_TRANS_COUNT
// Description : DMA Channel 6 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH6_TRANS_COUNT_OFFSET _u(0x00000188)
#define DMA_CH6_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH6_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH6_TRANS_COUNT_MSB _u(31)
#define DMA_CH6_TRANS_COUNT_LSB _u(0)
#define DMA_CH6_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_CTRL_TRIG
// Description : DMA Channel 6 Control and Status
#define DMA_CH6_CTRL_TRIG_OFFSET _u(0x0000018c)
#define DMA_CH6_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH6_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH6_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH6_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH6_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH6_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH6_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH6_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH6_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH6_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH6_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH6_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH6_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH6_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH6_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH6_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH6_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH6_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH6_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH6_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH6_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH6_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH6_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH6_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH6_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH6_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH6_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH6_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH6_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH6_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH6_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH6_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH6_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH6_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH6_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH6_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH6_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH6_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH6_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH6_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH6_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH6_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH6_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH6_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH6_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH6_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH6_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH6_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH6_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH6_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH6_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH6_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH6_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH6_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH6_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH6_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH6_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL1_CTRL
// Description : Alias for channel 6 CTRL register
#define DMA_CH6_AL1_CTRL_OFFSET _u(0x00000190)
#define DMA_CH6_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH6_AL1_CTRL_RESET "-"
#define DMA_CH6_AL1_CTRL_MSB _u(31)
#define DMA_CH6_AL1_CTRL_LSB _u(0)
#define DMA_CH6_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL1_READ_ADDR
// Description : Alias for channel 6 READ_ADDR register
#define DMA_CH6_AL1_READ_ADDR_OFFSET _u(0x00000194)
#define DMA_CH6_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH6_AL1_READ_ADDR_RESET "-"
#define DMA_CH6_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH6_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH6_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL1_WRITE_ADDR
// Description : Alias for channel 6 WRITE_ADDR register
#define DMA_CH6_AL1_WRITE_ADDR_OFFSET _u(0x00000198)
#define DMA_CH6_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH6_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH6_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH6_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH6_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 6 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH6_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000019c)
#define DMA_CH6_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH6_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH6_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH6_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH6_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL2_CTRL
// Description : Alias for channel 6 CTRL register
#define DMA_CH6_AL2_CTRL_OFFSET _u(0x000001a0)
#define DMA_CH6_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH6_AL2_CTRL_RESET "-"
#define DMA_CH6_AL2_CTRL_MSB _u(31)
#define DMA_CH6_AL2_CTRL_LSB _u(0)
#define DMA_CH6_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL2_TRANS_COUNT
// Description : Alias for channel 6 TRANS_COUNT register
#define DMA_CH6_AL2_TRANS_COUNT_OFFSET _u(0x000001a4)
#define DMA_CH6_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH6_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH6_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH6_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH6_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL2_READ_ADDR
// Description : Alias for channel 6 READ_ADDR register
#define DMA_CH6_AL2_READ_ADDR_OFFSET _u(0x000001a8)
#define DMA_CH6_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH6_AL2_READ_ADDR_RESET "-"
#define DMA_CH6_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH6_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH6_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 6 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH6_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000001ac)
#define DMA_CH6_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH6_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH6_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH6_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH6_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL3_CTRL
// Description : Alias for channel 6 CTRL register
#define DMA_CH6_AL3_CTRL_OFFSET _u(0x000001b0)
#define DMA_CH6_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH6_AL3_CTRL_RESET "-"
#define DMA_CH6_AL3_CTRL_MSB _u(31)
#define DMA_CH6_AL3_CTRL_LSB _u(0)
#define DMA_CH6_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL3_WRITE_ADDR
// Description : Alias for channel 6 WRITE_ADDR register
#define DMA_CH6_AL3_WRITE_ADDR_OFFSET _u(0x000001b4)
#define DMA_CH6_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH6_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH6_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH6_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH6_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL3_TRANS_COUNT
// Description : Alias for channel 6 TRANS_COUNT register
#define DMA_CH6_AL3_TRANS_COUNT_OFFSET _u(0x000001b8)
#define DMA_CH6_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH6_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH6_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH6_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH6_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH6_AL3_READ_ADDR_TRIG
// Description : Alias for channel 6 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH6_AL3_READ_ADDR_TRIG_OFFSET _u(0x000001bc)
#define DMA_CH6_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH6_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH6_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH6_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH6_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_READ_ADDR
// Description : DMA Channel 7 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH7_READ_ADDR_OFFSET _u(0x000001c0)
#define DMA_CH7_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH7_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH7_READ_ADDR_MSB _u(31)
#define DMA_CH7_READ_ADDR_LSB _u(0)
#define DMA_CH7_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_WRITE_ADDR
// Description : DMA Channel 7 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH7_WRITE_ADDR_OFFSET _u(0x000001c4)
#define DMA_CH7_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH7_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH7_WRITE_ADDR_MSB _u(31)
#define DMA_CH7_WRITE_ADDR_LSB _u(0)
#define DMA_CH7_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_TRANS_COUNT
// Description : DMA Channel 7 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH7_TRANS_COUNT_OFFSET _u(0x000001c8)
#define DMA_CH7_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH7_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH7_TRANS_COUNT_MSB _u(31)
#define DMA_CH7_TRANS_COUNT_LSB _u(0)
#define DMA_CH7_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_CTRL_TRIG
// Description : DMA Channel 7 Control and Status
#define DMA_CH7_CTRL_TRIG_OFFSET _u(0x000001cc)
#define DMA_CH7_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH7_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH7_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH7_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH7_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH7_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH7_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH7_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH7_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH7_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH7_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH7_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH7_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH7_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH7_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH7_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH7_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH7_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH7_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH7_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH7_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH7_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH7_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH7_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH7_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH7_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH7_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH7_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH7_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH7_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH7_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH7_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH7_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH7_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH7_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH7_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH7_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH7_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH7_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH7_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH7_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH7_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH7_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH7_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH7_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH7_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH7_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH7_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH7_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH7_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH7_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH7_CTRL_TRIG_EN
// Description : DMA Channel Enable.
// When 1, the channel will respond to triggering events, which
// will cause it to become BUSY and start transferring data. When
// 0, the channel will ignore triggers, stop issuing transfers,
// and pause the current transfer sequence (i.e. BUSY will remain
// high if already high)
#define DMA_CH7_CTRL_TRIG_EN_RESET _u(0x0)
#define DMA_CH7_CTRL_TRIG_EN_BITS _u(0x00000001)
#define DMA_CH7_CTRL_TRIG_EN_MSB _u(0)
#define DMA_CH7_CTRL_TRIG_EN_LSB _u(0)
#define DMA_CH7_CTRL_TRIG_EN_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL1_CTRL
// Description : Alias for channel 7 CTRL register
#define DMA_CH7_AL1_CTRL_OFFSET _u(0x000001d0)
#define DMA_CH7_AL1_CTRL_BITS _u(0xffffffff)
#define DMA_CH7_AL1_CTRL_RESET "-"
#define DMA_CH7_AL1_CTRL_MSB _u(31)
#define DMA_CH7_AL1_CTRL_LSB _u(0)
#define DMA_CH7_AL1_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL1_READ_ADDR
// Description : Alias for channel 7 READ_ADDR register
#define DMA_CH7_AL1_READ_ADDR_OFFSET _u(0x000001d4)
#define DMA_CH7_AL1_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH7_AL1_READ_ADDR_RESET "-"
#define DMA_CH7_AL1_READ_ADDR_MSB _u(31)
#define DMA_CH7_AL1_READ_ADDR_LSB _u(0)
#define DMA_CH7_AL1_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL1_WRITE_ADDR
// Description : Alias for channel 7 WRITE_ADDR register
#define DMA_CH7_AL1_WRITE_ADDR_OFFSET _u(0x000001d8)
#define DMA_CH7_AL1_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH7_AL1_WRITE_ADDR_RESET "-"
#define DMA_CH7_AL1_WRITE_ADDR_MSB _u(31)
#define DMA_CH7_AL1_WRITE_ADDR_LSB _u(0)
#define DMA_CH7_AL1_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL1_TRANS_COUNT_TRIG
// Description : Alias for channel 7 TRANS_COUNT register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH7_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000001dc)
#define DMA_CH7_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff)
#define DMA_CH7_AL1_TRANS_COUNT_TRIG_RESET "-"
#define DMA_CH7_AL1_TRANS_COUNT_TRIG_MSB _u(31)
#define DMA_CH7_AL1_TRANS_COUNT_TRIG_LSB _u(0)
#define DMA_CH7_AL1_TRANS_COUNT_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL2_CTRL
// Description : Alias for channel 7 CTRL register
#define DMA_CH7_AL2_CTRL_OFFSET _u(0x000001e0)
#define DMA_CH7_AL2_CTRL_BITS _u(0xffffffff)
#define DMA_CH7_AL2_CTRL_RESET "-"
#define DMA_CH7_AL2_CTRL_MSB _u(31)
#define DMA_CH7_AL2_CTRL_LSB _u(0)
#define DMA_CH7_AL2_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL2_TRANS_COUNT
// Description : Alias for channel 7 TRANS_COUNT register
#define DMA_CH7_AL2_TRANS_COUNT_OFFSET _u(0x000001e4)
#define DMA_CH7_AL2_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH7_AL2_TRANS_COUNT_RESET "-"
#define DMA_CH7_AL2_TRANS_COUNT_MSB _u(31)
#define DMA_CH7_AL2_TRANS_COUNT_LSB _u(0)
#define DMA_CH7_AL2_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL2_READ_ADDR
// Description : Alias for channel 7 READ_ADDR register
#define DMA_CH7_AL2_READ_ADDR_OFFSET _u(0x000001e8)
#define DMA_CH7_AL2_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH7_AL2_READ_ADDR_RESET "-"
#define DMA_CH7_AL2_READ_ADDR_MSB _u(31)
#define DMA_CH7_AL2_READ_ADDR_LSB _u(0)
#define DMA_CH7_AL2_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL2_WRITE_ADDR_TRIG
// Description : Alias for channel 7 WRITE_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH7_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000001ec)
#define DMA_CH7_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH7_AL2_WRITE_ADDR_TRIG_RESET "-"
#define DMA_CH7_AL2_WRITE_ADDR_TRIG_MSB _u(31)
#define DMA_CH7_AL2_WRITE_ADDR_TRIG_LSB _u(0)
#define DMA_CH7_AL2_WRITE_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL3_CTRL
// Description : Alias for channel 7 CTRL register
#define DMA_CH7_AL3_CTRL_OFFSET _u(0x000001f0)
#define DMA_CH7_AL3_CTRL_BITS _u(0xffffffff)
#define DMA_CH7_AL3_CTRL_RESET "-"
#define DMA_CH7_AL3_CTRL_MSB _u(31)
#define DMA_CH7_AL3_CTRL_LSB _u(0)
#define DMA_CH7_AL3_CTRL_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL3_WRITE_ADDR
// Description : Alias for channel 7 WRITE_ADDR register
#define DMA_CH7_AL3_WRITE_ADDR_OFFSET _u(0x000001f4)
#define DMA_CH7_AL3_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH7_AL3_WRITE_ADDR_RESET "-"
#define DMA_CH7_AL3_WRITE_ADDR_MSB _u(31)
#define DMA_CH7_AL3_WRITE_ADDR_LSB _u(0)
#define DMA_CH7_AL3_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL3_TRANS_COUNT
// Description : Alias for channel 7 TRANS_COUNT register
#define DMA_CH7_AL3_TRANS_COUNT_OFFSET _u(0x000001f8)
#define DMA_CH7_AL3_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH7_AL3_TRANS_COUNT_RESET "-"
#define DMA_CH7_AL3_TRANS_COUNT_MSB _u(31)
#define DMA_CH7_AL3_TRANS_COUNT_LSB _u(0)
#define DMA_CH7_AL3_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH7_AL3_READ_ADDR_TRIG
// Description : Alias for channel 7 READ_ADDR register
// This is a trigger register (0xc). Writing a nonzero value will
// reload the channel counter and start the channel.
#define DMA_CH7_AL3_READ_ADDR_TRIG_OFFSET _u(0x000001fc)
#define DMA_CH7_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff)
#define DMA_CH7_AL3_READ_ADDR_TRIG_RESET "-"
#define DMA_CH7_AL3_READ_ADDR_TRIG_MSB _u(31)
#define DMA_CH7_AL3_READ_ADDR_TRIG_LSB _u(0)
#define DMA_CH7_AL3_READ_ADDR_TRIG_ACCESS "RW"
// =============================================================================
// Register : DMA_CH8_READ_ADDR
// Description : DMA Channel 8 Read Address pointer
// This register updates automatically each time a read completes.
// The current value is the next address to be read by this
// channel.
#define DMA_CH8_READ_ADDR_OFFSET _u(0x00000200)
#define DMA_CH8_READ_ADDR_BITS _u(0xffffffff)
#define DMA_CH8_READ_ADDR_RESET _u(0x00000000)
#define DMA_CH8_READ_ADDR_MSB _u(31)
#define DMA_CH8_READ_ADDR_LSB _u(0)
#define DMA_CH8_READ_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH8_WRITE_ADDR
// Description : DMA Channel 8 Write Address pointer
// This register updates automatically each time a write
// completes. The current value is the next address to be written
// by this channel.
#define DMA_CH8_WRITE_ADDR_OFFSET _u(0x00000204)
#define DMA_CH8_WRITE_ADDR_BITS _u(0xffffffff)
#define DMA_CH8_WRITE_ADDR_RESET _u(0x00000000)
#define DMA_CH8_WRITE_ADDR_MSB _u(31)
#define DMA_CH8_WRITE_ADDR_LSB _u(0)
#define DMA_CH8_WRITE_ADDR_ACCESS "RW"
// =============================================================================
// Register : DMA_CH8_TRANS_COUNT
// Description : DMA Channel 8 Transfer Count
// Program the number of bus transfers a channel will perform
// before halting. Note that, if transfers are larger than one
// byte in size, this is not equal to the number of bytes
// transferred (see CTRL_DATA_SIZE).
//
// When the channel is active, reading this register shows the
// number of transfers remaining, updating automatically each time
// a write transfer completes.
//
// Writing this register sets the RELOAD value for the transfer
// counter. Each time this channel is triggered, the RELOAD value
// is copied into the live transfer counter. The channel can be
// started multiple times, and will perform the same number of
// transfers each time, as programmed by most recent write.
//
// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT
// is used as a trigger, the written value is used immediately as
// the length of the new transfer sequence, as well as being
// written to RELOAD.
#define DMA_CH8_TRANS_COUNT_OFFSET _u(0x00000208)
#define DMA_CH8_TRANS_COUNT_BITS _u(0xffffffff)
#define DMA_CH8_TRANS_COUNT_RESET _u(0x00000000)
#define DMA_CH8_TRANS_COUNT_MSB _u(31)
#define DMA_CH8_TRANS_COUNT_LSB _u(0)
#define DMA_CH8_TRANS_COUNT_ACCESS "RW"
// =============================================================================
// Register : DMA_CH8_CTRL_TRIG
// Description : DMA Channel 8 Control and Status
#define DMA_CH8_CTRL_TRIG_OFFSET _u(0x0000020c)
#define DMA_CH8_CTRL_TRIG_BITS _u(0xe1ffffff)
#define DMA_CH8_CTRL_TRIG_RESET _u(0x00000000)
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_AHB_ERROR
// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel
// halts when it encounters any bus error, and always raises its
// channel IRQ flag.
#define DMA_CH8_CTRL_TRIG_AHB_ERROR_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000)
#define DMA_CH8_CTRL_TRIG_AHB_ERROR_MSB _u(31)
#define DMA_CH8_CTRL_TRIG_AHB_ERROR_LSB _u(31)
#define DMA_CH8_CTRL_TRIG_AHB_ERROR_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_READ_ERROR
// Description : If 1, the channel received a read bus error. Write one to
// clear.
// READ_ADDR shows the approximate address where the bus error was
// encountered (will not be earlier, or more than 3 transfers
// later)
#define DMA_CH8_CTRL_TRIG_READ_ERROR_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000)
#define DMA_CH8_CTRL_TRIG_READ_ERROR_MSB _u(30)
#define DMA_CH8_CTRL_TRIG_READ_ERROR_LSB _u(30)
#define DMA_CH8_CTRL_TRIG_READ_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_WRITE_ERROR
// Description : If 1, the channel received a write bus error. Write one to
// clear.
// WRITE_ADDR shows the approximate address where the bus error
// was encountered (will not be earlier, or more than 5 transfers
// later)
#define DMA_CH8_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000)
#define DMA_CH8_CTRL_TRIG_WRITE_ERROR_MSB _u(29)
#define DMA_CH8_CTRL_TRIG_WRITE_ERROR_LSB _u(29)
#define DMA_CH8_CTRL_TRIG_WRITE_ERROR_ACCESS "WC"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_BUSY
// Description : This flag goes high when the channel starts a new transfer
// sequence, and low when the last transfer of that sequence
// completes. Clearing EN while BUSY is high pauses the channel,
// and BUSY will stay high while paused.
//
// To terminate a sequence early (and clear the BUSY flag), see
// CHAN_ABORT.
#define DMA_CH8_CTRL_TRIG_BUSY_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_BUSY_BITS _u(0x01000000)
#define DMA_CH8_CTRL_TRIG_BUSY_MSB _u(24)
#define DMA_CH8_CTRL_TRIG_BUSY_LSB _u(24)
#define DMA_CH8_CTRL_TRIG_BUSY_ACCESS "RO"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_SNIFF_EN
// Description : If 1, this channel's data transfers are visible to the sniff
// hardware, and each transfer will advance the state of the
// checksum. This only applies if the sniff hardware is enabled,
// and has this channel selected.
//
// This allows checksum to be enabled or disabled on a per-
// control- block basis.
#define DMA_CH8_CTRL_TRIG_SNIFF_EN_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000)
#define DMA_CH8_CTRL_TRIG_SNIFF_EN_MSB _u(23)
#define DMA_CH8_CTRL_TRIG_SNIFF_EN_LSB _u(23)
#define DMA_CH8_CTRL_TRIG_SNIFF_EN_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_BSWAP
// Description : Apply byte-swap transformation to DMA data.
// For byte data, this has no effect. For halfword data, the two
// bytes of each halfword are swapped. For word data, the four
// bytes of each word are swapped to reverse order.
#define DMA_CH8_CTRL_TRIG_BSWAP_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_BSWAP_BITS _u(0x00400000)
#define DMA_CH8_CTRL_TRIG_BSWAP_MSB _u(22)
#define DMA_CH8_CTRL_TRIG_BSWAP_LSB _u(22)
#define DMA_CH8_CTRL_TRIG_BSWAP_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_IRQ_QUIET
// Description : In QUIET mode, the channel does not generate IRQs at the end of
// every transfer block. Instead, an IRQ is raised when NULL is
// written to a trigger register, indicating the end of a control
// block chain.
//
// This reduces the number of interrupts to be serviced by the CPU
// when transferring a DMA chain of many small control blocks.
#define DMA_CH8_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000)
#define DMA_CH8_CTRL_TRIG_IRQ_QUIET_MSB _u(21)
#define DMA_CH8_CTRL_TRIG_IRQ_QUIET_LSB _u(21)
#define DMA_CH8_CTRL_TRIG_IRQ_QUIET_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_TREQ_SEL
// Description : Select a Transfer Request signal.
// The channel uses the transfer request signal to pace its data
// transfer rate. Sources for TREQ signals are internal (TIMERS)
// or external (DREQ, a Data Request from the system).
// 0x0 to 0x3a -> select DREQ n as TREQ
// 0x3b -> Select Timer 0 as TREQ
// 0x3c -> Select Timer 1 as TREQ
// 0x3d -> Select Timer 2 as TREQ (Optional)
// 0x3e -> Select Timer 3 as TREQ (Optional)
// 0x3f -> Permanent request, for unpaced transfers.
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_RESET _u(0x00)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_MSB _u(20)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_LSB _u(15)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_ACCESS "RW"
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e)
#define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f)
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_CHAIN_TO
// Description : When this channel completes, it will trigger the channel
// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this
// channel)_.
#define DMA_CH8_CTRL_TRIG_CHAIN_TO_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800)
#define DMA_CH8_CTRL_TRIG_CHAIN_TO_MSB _u(14)
#define DMA_CH8_CTRL_TRIG_CHAIN_TO_LSB _u(11)
#define DMA_CH8_CTRL_TRIG_CHAIN_TO_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_RING_SEL
// Description : Select whether RING_SIZE applies to read or write addresses.
// If 0, read addresses are wrapped on a (1 << RING_SIZE)
// boundary. If 1, write addresses are wrapped.
#define DMA_CH8_CTRL_TRIG_RING_SEL_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_RING_SEL_BITS _u(0x00000400)
#define DMA_CH8_CTRL_TRIG_RING_SEL_MSB _u(10)
#define DMA_CH8_CTRL_TRIG_RING_SEL_LSB _u(10)
#define DMA_CH8_CTRL_TRIG_RING_SEL_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_RING_SIZE
// Description : Size of address wrap region. If 0, don't wrap. For values n >
// 0, only the lower n bits of the address will change. This wraps
// the address on a (1 << n) byte boundary, facilitating access to
// naturally-aligned ring buffers.
//
// Ring sizes between 2 and 32768 bytes are possible. This can
// apply to either read or write addresses, based on value of
// RING_SEL.
// 0x0 -> RING_NONE
#define DMA_CH8_CTRL_TRIG_RING_SIZE_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0)
#define DMA_CH8_CTRL_TRIG_RING_SIZE_MSB _u(9)
#define DMA_CH8_CTRL_TRIG_RING_SIZE_LSB _u(6)
#define DMA_CH8_CTRL_TRIG_RING_SIZE_ACCESS "RW"
#define DMA_CH8_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0)
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_INCR_WRITE
// Description : If 1, the write address increments with each transfer. If 0,
// each write is directed to the same, initial address.
//
// Generally this should be disabled for memory-to-peripheral
// transfers.
#define DMA_CH8_CTRL_TRIG_INCR_WRITE_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020)
#define DMA_CH8_CTRL_TRIG_INCR_WRITE_MSB _u(5)
#define DMA_CH8_CTRL_TRIG_INCR_WRITE_LSB _u(5)
#define DMA_CH8_CTRL_TRIG_INCR_WRITE_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_INCR_READ
// Description : If 1, the read address increments with each transfer. If 0,
// each read is directed to the same, initial address.
//
// Generally this should be disabled for peripheral-to-memory
// transfers.
#define DMA_CH8_CTRL_TRIG_INCR_READ_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_INCR_READ_BITS _u(0x00000010)
#define DMA_CH8_CTRL_TRIG_INCR_READ_MSB _u(4)
#define DMA_CH8_CTRL_TRIG_INCR_READ_LSB _u(4)
#define DMA_CH8_CTRL_TRIG_INCR_READ_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_DATA_SIZE
// Description : Set the size of each bus transfer (byte/halfword/word).
// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)
// with each transfer.
// 0x0 -> SIZE_BYTE
// 0x1 -> SIZE_HALFWORD
// 0x2 -> SIZE_WORD
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c)
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_MSB _u(3)
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_LSB _u(2)
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_ACCESS "RW"
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0)
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1)
#define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2)
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_HIGH_PRIORITY
// Description : HIGH_PRIORITY gives a channel preferential treatment in issue
// scheduling: in each scheduling round, all high priority
// channels are considered first, and then only a single low
// priority channel, before returning to the high priority
// channels.
//
// This only affects the order in which the DMA schedules
// channels. The DMA's bus priority is not changed. If the DMA is
// not saturated then a low priority channel will see no loss of
// throughput.
#define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0)
#define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002)
#define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1)
#define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1)
#define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW"
// -----------------------------------------------------------------------------
// Field : DMA_CH8_CTRL_TRIG_EN
// Description : DMA Channel Enable.
//