/* Copyright 2023 Dual Tachyon * https://github.com/DualTachyon * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef HARDWARE_DP32G030_DMA_H #define HARDWARE_DP32G030_DMA_H #if !defined(__ASSEMBLY__) #include #endif /* -------- DMA -------- */ #define DMA_BASE_ADDR 0x40001000U #define DMA_BASE_SIZE 0x00000100U #define DMA_CTR_ADDR (DMA_BASE_ADDR + 0x0000U) #define DMA_CTR (*(volatile uint32_t *)DMA_CTR_ADDR) #define DMA_CTR_DMAEN_SHIFT 0 #define DMA_CTR_DMAEN_WIDTH 1 #define DMA_CTR_DMAEN_MASK (((1U << DMA_CTR_DMAEN_WIDTH) - 1U) << DMA_CTR_DMAEN_SHIFT) #define DMA_CTR_DMAEN_VALUE_DISABLE 0U #define DMA_CTR_DMAEN_BITS_DISABLE (DMA_CTR_DMAEN_VALUE_DISABLE << DMA_CTR_DMAEN_SHIFT) #define DMA_CTR_DMAEN_VALUE_ENABLE 1U #define DMA_CTR_DMAEN_BITS_ENABLE (DMA_CTR_DMAEN_VALUE_ENABLE << DMA_CTR_DMAEN_SHIFT) #define DMA_INTEN_ADDR (DMA_BASE_ADDR + 0x0004U) #define DMA_INTEN (*(volatile uint32_t *)DMA_INTEN_ADDR) #define DMA_INTEN_CH0_TC_INTEN_SHIFT 0 #define DMA_INTEN_CH0_TC_INTEN_WIDTH 1 #define DMA_INTEN_CH0_TC_INTEN_MASK (((1U << DMA_INTEN_CH0_TC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH0_TC_INTEN_SHIFT) #define DMA_INTEN_CH0_TC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH0_TC_INTEN_BITS_DISABLE (DMA_INTEN_CH0_TC_INTEN_VALUE_DISABLE << DMA_INTEN_CH0_TC_INTEN_SHIFT) #define DMA_INTEN_CH0_TC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH0_TC_INTEN_BITS_ENABLE (DMA_INTEN_CH0_TC_INTEN_VALUE_ENABLE << DMA_INTEN_CH0_TC_INTEN_SHIFT) #define DMA_INTEN_CH1_TC_INTEN_SHIFT 1 #define DMA_INTEN_CH1_TC_INTEN_WIDTH 1 #define DMA_INTEN_CH1_TC_INTEN_MASK (((1U << DMA_INTEN_CH1_TC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH1_TC_INTEN_SHIFT) #define DMA_INTEN_CH1_TC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH1_TC_INTEN_BITS_DISABLE (DMA_INTEN_CH1_TC_INTEN_VALUE_DISABLE << DMA_INTEN_CH1_TC_INTEN_SHIFT) #define DMA_INTEN_CH1_TC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH1_TC_INTEN_BITS_ENABLE (DMA_INTEN_CH1_TC_INTEN_VALUE_ENABLE << DMA_INTEN_CH1_TC_INTEN_SHIFT) #define DMA_INTEN_CH2_TC_INTEN_SHIFT 2 #define DMA_INTEN_CH2_TC_INTEN_WIDTH 1 #define DMA_INTEN_CH2_TC_INTEN_MASK (((1U << DMA_INTEN_CH2_TC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH2_TC_INTEN_SHIFT) #define DMA_INTEN_CH2_TC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH2_TC_INTEN_BITS_DISABLE (DMA_INTEN_CH2_TC_INTEN_VALUE_DISABLE << DMA_INTEN_CH2_TC_INTEN_SHIFT) #define DMA_INTEN_CH2_TC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH2_TC_INTEN_BITS_ENABLE (DMA_INTEN_CH2_TC_INTEN_VALUE_ENABLE << DMA_INTEN_CH2_TC_INTEN_SHIFT) #define DMA_INTEN_CH3_TC_INTEN_SHIFT 3 #define DMA_INTEN_CH3_TC_INTEN_WIDTH 1 #define DMA_INTEN_CH3_TC_INTEN_MASK (((1U << DMA_INTEN_CH3_TC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH3_TC_INTEN_SHIFT) #define DMA_INTEN_CH3_TC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH3_TC_INTEN_BITS_DISABLE (DMA_INTEN_CH3_TC_INTEN_VALUE_DISABLE << DMA_INTEN_CH3_TC_INTEN_SHIFT) #define DMA_INTEN_CH3_TC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH3_TC_INTEN_BITS_ENABLE (DMA_INTEN_CH3_TC_INTEN_VALUE_ENABLE << DMA_INTEN_CH3_TC_INTEN_SHIFT) #define DMA_INTEN_CH0_THC_INTEN_SHIFT 8 #define DMA_INTEN_CH0_THC_INTEN_WIDTH 1 #define DMA_INTEN_CH0_THC_INTEN_MASK (((1U << DMA_INTEN_CH0_THC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH0_THC_INTEN_SHIFT) #define DMA_INTEN_CH0_THC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH0_THC_INTEN_BITS_DISABLE (DMA_INTEN_CH0_THC_INTEN_VALUE_DISABLE << DMA_INTEN_CH0_THC_INTEN_SHIFT) #define DMA_INTEN_CH0_THC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH0_THC_INTEN_BITS_ENABLE (DMA_INTEN_CH0_THC_INTEN_VALUE_ENABLE << DMA_INTEN_CH0_THC_INTEN_SHIFT) #define DMA_INTEN_CH1_THC_INTEN_SHIFT 9 #define DMA_INTEN_CH1_THC_INTEN_WIDTH 1 #define DMA_INTEN_CH1_THC_INTEN_MASK (((1U << DMA_INTEN_CH1_THC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH1_THC_INTEN_SHIFT) #define DMA_INTEN_CH1_THC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH1_THC_INTEN_BITS_DISABLE (DMA_INTEN_CH1_THC_INTEN_VALUE_DISABLE << DMA_INTEN_CH1_THC_INTEN_SHIFT) #define DMA_INTEN_CH1_THC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH1_THC_INTEN_BITS_ENABLE (DMA_INTEN_CH1_THC_INTEN_VALUE_ENABLE << DMA_INTEN_CH1_THC_INTEN_SHIFT) #define DMA_INTEN_CH2_THC_INTEN_SHIFT 10 #define DMA_INTEN_CH2_THC_INTEN_WIDTH 1 #define DMA_INTEN_CH2_THC_INTEN_MASK (((1U << DMA_INTEN_CH2_THC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH2_THC_INTEN_SHIFT) #define DMA_INTEN_CH2_THC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH2_THC_INTEN_BITS_DISABLE (DMA_INTEN_CH2_THC_INTEN_VALUE_DISABLE << DMA_INTEN_CH2_THC_INTEN_SHIFT) #define DMA_INTEN_CH2_THC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH2_THC_INTEN_BITS_ENABLE (DMA_INTEN_CH2_THC_INTEN_VALUE_ENABLE << DMA_INTEN_CH2_THC_INTEN_SHIFT) #define DMA_INTEN_CH3_THC_INTEN_SHIFT 11 #define DMA_INTEN_CH3_THC_INTEN_WIDTH 1 #define DMA_INTEN_CH3_THC_INTEN_MASK (((1U << DMA_INTEN_CH3_THC_INTEN_WIDTH) - 1U) << DMA_INTEN_CH3_THC_INTEN_SHIFT) #define DMA_INTEN_CH3_THC_INTEN_VALUE_DISABLE 0U #define DMA_INTEN_CH3_THC_INTEN_BITS_DISABLE (DMA_INTEN_CH3_THC_INTEN_VALUE_DISABLE << DMA_INTEN_CH3_THC_INTEN_SHIFT) #define DMA_INTEN_CH3_THC_INTEN_VALUE_ENABLE 1U #define DMA_INTEN_CH3_THC_INTEN_BITS_ENABLE (DMA_INTEN_CH3_THC_INTEN_VALUE_ENABLE << DMA_INTEN_CH3_THC_INTEN_SHIFT) #define DMA_INTST_ADDR (DMA_BASE_ADDR + 0x0008U) #define DMA_INTST (*(volatile uint32_t *)DMA_INTST_ADDR) #define DMA_INTST_CH0_TC_INTST_SHIFT 0 #define DMA_INTST_CH0_TC_INTST_WIDTH 1 #define DMA_INTST_CH0_TC_INTST_MASK (((1U << DMA_INTST_CH0_TC_INTST_WIDTH) - 1U) << DMA_INTST_CH0_TC_INTST_SHIFT) #define DMA_INTST_CH0_TC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH0_TC_INTST_BITS_NOT_SET (DMA_INTST_CH0_TC_INTST_VALUE_NOT_SET << DMA_INTST_CH0_TC_INTST_SHIFT) #define DMA_INTST_CH0_TC_INTST_VALUE_SET 1U #define DMA_INTST_CH0_TC_INTST_BITS_SET (DMA_INTST_CH0_TC_INTST_VALUE_SET << DMA_INTST_CH0_TC_INTST_SHIFT) #define DMA_INTST_CH1_TC_INTST_SHIFT 1 #define DMA_INTST_CH1_TC_INTST_WIDTH 1 #define DMA_INTST_CH1_TC_INTST_MASK (((1U << DMA_INTST_CH1_TC_INTST_WIDTH) - 1U) << DMA_INTST_CH1_TC_INTST_SHIFT) #define DMA_INTST_CH1_TC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH1_TC_INTST_BITS_NOT_SET (DMA_INTST_CH1_TC_INTST_VALUE_NOT_SET << DMA_INTST_CH1_TC_INTST_SHIFT) #define DMA_INTST_CH1_TC_INTST_VALUE_SET 1U #define DMA_INTST_CH1_TC_INTST_BITS_SET (DMA_INTST_CH1_TC_INTST_VALUE_SET << DMA_INTST_CH1_TC_INTST_SHIFT) #define DMA_INTST_CH2_TC_INTST_SHIFT 2 #define DMA_INTST_CH2_TC_INTST_WIDTH 1 #define DMA_INTST_CH2_TC_INTST_MASK (((1U << DMA_INTST_CH2_TC_INTST_WIDTH) - 1U) << DMA_INTST_CH2_TC_INTST_SHIFT) #define DMA_INTST_CH2_TC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH2_TC_INTST_BITS_NOT_SET (DMA_INTST_CH2_TC_INTST_VALUE_NOT_SET << DMA_INTST_CH2_TC_INTST_SHIFT) #define DMA_INTST_CH2_TC_INTST_VALUE_SET 1U #define DMA_INTST_CH2_TC_INTST_BITS_SET (DMA_INTST_CH2_TC_INTST_VALUE_SET << DMA_INTST_CH2_TC_INTST_SHIFT) #define DMA_INTST_CH3_TC_INTST_SHIFT 3 #define DMA_INTST_CH3_TC_INTST_WIDTH 1 #define DMA_INTST_CH3_TC_INTST_MASK (((1U << DMA_INTST_CH3_TC_INTST_WIDTH) - 1U) << DMA_INTST_CH3_TC_INTST_SHIFT) #define DMA_INTST_CH3_TC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH3_TC_INTST_BITS_NOT_SET (DMA_INTST_CH3_TC_INTST_VALUE_NOT_SET << DMA_INTST_CH3_TC_INTST_SHIFT) #define DMA_INTST_CH3_TC_INTST_VALUE_SET 1U #define DMA_INTST_CH3_TC_INTST_BITS_SET (DMA_INTST_CH3_TC_INTST_VALUE_SET << DMA_INTST_CH3_TC_INTST_SHIFT) #define DMA_INTST_CH0_THC_INTST_SHIFT 8 #define DMA_INTST_CH0_THC_INTST_WIDTH 1 #define DMA_INTST_CH0_THC_INTST_MASK (((1U << DMA_INTST_CH0_THC_INTST_WIDTH) - 1U) << DMA_INTST_CH0_THC_INTST_SHIFT) #define DMA_INTST_CH0_THC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH0_THC_INTST_BITS_NOT_SET (DMA_INTST_CH0_THC_INTST_VALUE_NOT_SET << DMA_INTST_CH0_THC_INTST_SHIFT) #define DMA_INTST_CH0_THC_INTST_VALUE_SET 1U #define DMA_INTST_CH0_THC_INTST_BITS_SET (DMA_INTST_CH0_THC_INTST_VALUE_SET << DMA_INTST_CH0_THC_INTST_SHIFT) #define DMA_INTST_CH1_THC_INTST_SHIFT 9 #define DMA_INTST_CH1_THC_INTST_WIDTH 1 #define DMA_INTST_CH1_THC_INTST_MASK (((1U << DMA_INTST_CH1_THC_INTST_WIDTH) - 1U) << DMA_INTST_CH1_THC_INTST_SHIFT) #define DMA_INTST_CH1_THC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH1_THC_INTST_BITS_NOT_SET (DMA_INTST_CH1_THC_INTST_VALUE_NOT_SET << DMA_INTST_CH1_THC_INTST_SHIFT) #define DMA_INTST_CH1_THC_INTST_VALUE_SET 1U #define DMA_INTST_CH1_THC_INTST_BITS_SET (DMA_INTST_CH1_THC_INTST_VALUE_SET << DMA_INTST_CH1_THC_INTST_SHIFT) #define DMA_INTST_CH2_THC_INTST_SHIFT 10 #define DMA_INTST_CH2_THC_INTST_WIDTH 1 #define DMA_INTST_CH2_THC_INTST_MASK (((1U << DMA_INTST_CH2_THC_INTST_WIDTH) - 1U) << DMA_INTST_CH2_THC_INTST_SHIFT) #define DMA_INTST_CH2_THC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH2_THC_INTST_BITS_NOT_SET (DMA_INTST_CH2_THC_INTST_VALUE_NOT_SET << DMA_INTST_CH2_THC_INTST_SHIFT) #define DMA_INTST_CH2_THC_INTST_VALUE_SET 1U #define DMA_INTST_CH2_THC_INTST_BITS_SET (DMA_INTST_CH2_THC_INTST_VALUE_SET << DMA_INTST_CH2_THC_INTST_SHIFT) #define DMA_INTST_CH3_THC_INTST_SHIFT 11 #define DMA_INTST_CH3_THC_INTST_WIDTH 1 #define DMA_INTST_CH3_THC_INTST_MASK (((1U << DMA_INTST_CH3_THC_INTST_WIDTH) - 1U) << DMA_INTST_CH3_THC_INTST_SHIFT) #define DMA_INTST_CH3_THC_INTST_VALUE_NOT_SET 0U #define DMA_INTST_CH3_THC_INTST_BITS_NOT_SET (DMA_INTST_CH3_THC_INTST_VALUE_NOT_SET << DMA_INTST_CH3_THC_INTST_SHIFT) #define DMA_INTST_CH3_THC_INTST_VALUE_SET 1U #define DMA_INTST_CH3_THC_INTST_BITS_SET (DMA_INTST_CH3_THC_INTST_VALUE_SET << DMA_INTST_CH3_THC_INTST_SHIFT) /* -------- DMA_CH0 -------- */ #define DMA_CH0_BASE_ADDR 0x40001100U #define DMA_CH0_BASE_SIZE 0x00000020U #define DMA_CH0 ((volatile DMA_Channel_t *)DMA_CH0_BASE_ADDR) /* -------- DMA_CH1 -------- */ #define DMA_CH1_BASE_ADDR 0x40001120U #define DMA_CH1_BASE_SIZE 0x00000020U #define DMA_CH1 ((volatile DMA_Channel_t *)DMA_CH1_BASE_ADDR) /* -------- DMA_CH2 -------- */ #define DMA_CH2_BASE_ADDR 0x40001140U #define DMA_CH2_BASE_SIZE 0x00000020U #define DMA_CH2 ((volatile DMA_Channel_t *)DMA_CH2_BASE_ADDR) /* -------- DMA_CH3 -------- */ #define DMA_CH3_BASE_ADDR 0x40001160U #define DMA_CH3_BASE_SIZE 0x00000020U #define DMA_CH3 ((volatile DMA_Channel_t *)DMA_CH3_BASE_ADDR) /* -------- DMA_CH -------- */ typedef struct { uint32_t CTR; uint32_t MOD; uint32_t MSADDR; uint32_t MDADDR; uint32_t ST; } DMA_Channel_t; #define DMA_CH_CTR_CH_EN_SHIFT 0 #define DMA_CH_CTR_CH_EN_WIDTH 1 #define DMA_CH_CTR_CH_EN_MASK (((1U << DMA_CH_CTR_CH_EN_WIDTH) - 1U) << DMA_CH_CTR_CH_EN_SHIFT) #define DMA_CH_CTR_CH_EN_VALUE_DISABLE 0U #define DMA_CH_CTR_CH_EN_BITS_DISABLE (DMA_CH_CTR_CH_EN_VALUE_DISABLE << DMA_CH_CTR_CH_EN_SHIFT) #define DMA_CH_CTR_CH_EN_VALUE_ENABLE 1U #define DMA_CH_CTR_CH_EN_BITS_ENABLE (DMA_CH_CTR_CH_EN_VALUE_ENABLE << DMA_CH_CTR_CH_EN_SHIFT) #define DMA_CH_CTR_LENGTH_SHIFT 1 #define DMA_CH_CTR_LENGTH_WIDTH 12 #define DMA_CH_CTR_LENGTH_MASK (((1U << DMA_CH_CTR_LENGTH_WIDTH) - 1U) << DMA_CH_CTR_LENGTH_SHIFT) #define DMA_CH_CTR_LOOP_SHIFT 13 #define DMA_CH_CTR_LOOP_WIDTH 1 #define DMA_CH_CTR_LOOP_MASK (((1U << DMA_CH_CTR_LOOP_WIDTH) - 1U) << DMA_CH_CTR_LOOP_SHIFT) #define DMA_CH_CTR_LOOP_VALUE_DISABLE 0U #define DMA_CH_CTR_LOOP_BITS_DISABLE (DMA_CH_CTR_LOOP_VALUE_DISABLE << DMA_CH_CTR_LOOP_SHIFT) #define DMA_CH_CTR_LOOP_VALUE_ENABLE 1U #define DMA_CH_CTR_LOOP_BITS_ENABLE (DMA_CH_CTR_LOOP_VALUE_ENABLE << DMA_CH_CTR_LOOP_SHIFT) #define DMA_CH_CTR_PRI_SHIFT 14 #define DMA_CH_CTR_PRI_WIDTH 2 #define DMA_CH_CTR_PRI_MASK (((1U << DMA_CH_CTR_PRI_WIDTH) - 1U) << DMA_CH_CTR_PRI_SHIFT) #define DMA_CH_CTR_PRI_VALUE_LOW 0U #define DMA_CH_CTR_PRI_BITS_LOW (DMA_CH_CTR_PRI_VALUE_LOW << DMA_CH_CTR_PRI_SHIFT) #define DMA_CH_CTR_PRI_VALUE_MEDIUM 1U #define DMA_CH_CTR_PRI_BITS_MEDIUM (DMA_CH_CTR_PRI_VALUE_MEDIUM << DMA_CH_CTR_PRI_SHIFT) #define DMA_CH_CTR_PRI_VALUE_HIGH 2U #define DMA_CH_CTR_PRI_BITS_HIGH (DMA_CH_CTR_PRI_VALUE_HIGH << DMA_CH_CTR_PRI_SHIFT) #define DMA_CH_CTR_PRI_VALUE_HIGHEST 3U #define DMA_CH_CTR_PRI_BITS_HIGHEST (DMA_CH_CTR_PRI_VALUE_HIGHEST << DMA_CH_CTR_PRI_SHIFT) #define DMA_CH_CTR_SWREQ_SHIFT 16 #define DMA_CH_CTR_SWREQ_WIDTH 1 #define DMA_CH_CTR_SWREQ_MASK (((1U << DMA_CH_CTR_SWREQ_WIDTH) - 1U) << DMA_CH_CTR_SWREQ_SHIFT) #define DMA_CH_CTR_SWREQ_VALUE_SET 1U #define DMA_CH_CTR_SWREQ_BITS_SET (DMA_CH_CTR_SWREQ_VALUE_SET << DMA_CH_CTR_SWREQ_SHIFT) #define DMA_CH_MOD_MS_ADDMOD_SHIFT 0 #define DMA_CH_MOD_MS_ADDMOD_WIDTH 1 #define DMA_CH_MOD_MS_ADDMOD_MASK (((1U << DMA_CH_MOD_MS_ADDMOD_WIDTH) - 1U) << DMA_CH_MOD_MS_ADDMOD_SHIFT) #define DMA_CH_MOD_MS_ADDMOD_VALUE_NONE 0U #define DMA_CH_MOD_MS_ADDMOD_BITS_NONE (DMA_CH_MOD_MS_ADDMOD_VALUE_NONE << DMA_CH_MOD_MS_ADDMOD_SHIFT) #define DMA_CH_MOD_MS_ADDMOD_VALUE_INCREMENT 1U #define DMA_CH_MOD_MS_ADDMOD_BITS_INCREMENT (DMA_CH_MOD_MS_ADDMOD_VALUE_INCREMENT << DMA_CH_MOD_MS_ADDMOD_SHIFT) #define DMA_CH_MOD_MS_SIZE_SHIFT 1 #define DMA_CH_MOD_MS_SIZE_WIDTH 2 #define DMA_CH_MOD_MS_SIZE_MASK (((1U << DMA_CH_MOD_MS_SIZE_WIDTH) - 1U) << DMA_CH_MOD_MS_SIZE_SHIFT) #define DMA_CH_MOD_MS_SIZE_VALUE_8BIT 0U #define DMA_CH_MOD_MS_SIZE_BITS_8BIT (DMA_CH_MOD_MS_SIZE_VALUE_8BIT << DMA_CH_MOD_MS_SIZE_SHIFT) #define DMA_CH_MOD_MS_SIZE_VALUE_16BIT 1U #define DMA_CH_MOD_MS_SIZE_BITS_16BIT (DMA_CH_MOD_MS_SIZE_VALUE_16BIT << DMA_CH_MOD_MS_SIZE_SHIFT) #define DMA_CH_MOD_MS_SIZE_VALUE_32BIT 2U #define DMA_CH_MOD_MS_SIZE_BITS_32BIT (DMA_CH_MOD_MS_SIZE_VALUE_32BIT << DMA_CH_MOD_MS_SIZE_SHIFT) #define DMA_CH_MOD_MS_SIZE_VALUE_KEEP 3U #define DMA_CH_MOD_MS_SIZE_BITS_KEEP (DMA_CH_MOD_MS_SIZE_VALUE_KEEP << DMA_CH_MOD_MS_SIZE_SHIFT) #define DMA_CH_MOD_MS_SEL_SHIFT 3 #define DMA_CH_MOD_MS_SEL_WIDTH 3 #define DMA_CH_MOD_MS_SEL_MASK (((1U << DMA_CH_MOD_MS_SEL_WIDTH) - 1U) << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_SRAM 0U #define DMA_CH_MOD_MS_SEL_BITS_SRAM (DMA_CH_MOD_MS_SEL_VALUE_SRAM << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS0 1U #define DMA_CH_MOD_MS_SEL_BITS_HSREQ_MS0 (DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS0 << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS1 2U #define DMA_CH_MOD_MS_SEL_BITS_HSREQ_MS1 (DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS1 << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS2 3U #define DMA_CH_MOD_MS_SEL_BITS_HSREQ_MS2 (DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS2 << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS3 4U #define DMA_CH_MOD_MS_SEL_BITS_HSREQ_MS3 (DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS3 << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS4 5U #define DMA_CH_MOD_MS_SEL_BITS_HSREQ_MS4 (DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS4 << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS5 6U #define DMA_CH_MOD_MS_SEL_BITS_HSREQ_MS5 (DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS5 << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS6 7U #define DMA_CH_MOD_MS_SEL_BITS_HSREQ_MS6 (DMA_CH_MOD_MS_SEL_VALUE_HSREQ_MS6 << DMA_CH_MOD_MS_SEL_SHIFT) #define DMA_CH_MOD_MD_ADDMOD_SHIFT 8 #define DMA_CH_MOD_MD_ADDMOD_WIDTH 1 #define DMA_CH_MOD_MD_ADDMOD_MASK (((1U << DMA_CH_MOD_MD_ADDMOD_WIDTH) - 1U) << DMA_CH_MOD_MD_ADDMOD_SHIFT) #define DMA_CH_MOD_MD_ADDMOD_VALUE_NONE 0U #define DMA_CH_MOD_MD_ADDMOD_BITS_NONE (DMA_CH_MOD_MD_ADDMOD_VALUE_NONE << DMA_CH_MOD_MD_ADDMOD_SHIFT) #define DMA_CH_MOD_MD_ADDMOD_VALUE_INCREMENT 1U #define DMA_CH_MOD_MD_ADDMOD_BITS_INCREMENT (DMA_CH_MOD_MD_ADDMOD_VALUE_INCREMENT << DMA_CH_MOD_MD_ADDMOD_SHIFT) #define DMA_CH_MOD_MD_SIZE_SHIFT 9 #define DMA_CH_MOD_MD_SIZE_WIDTH 2 #define DMA_CH_MOD_MD_SIZE_MASK (((1U << DMA_CH_MOD_MD_SIZE_WIDTH) - 1U) << DMA_CH_MOD_MD_SIZE_SHIFT) #define DMA_CH_MOD_MD_SIZE_VALUE_8BIT 0U #define DMA_CH_MOD_MD_SIZE_BITS_8BIT (DMA_CH_MOD_MD_SIZE_VALUE_8BIT << DMA_CH_MOD_MD_SIZE_SHIFT) #define DMA_CH_MOD_MD_SIZE_VALUE_16BIT 1U #define DMA_CH_MOD_MD_SIZE_BITS_16BIT (DMA_CH_MOD_MD_SIZE_VALUE_16BIT << DMA_CH_MOD_MD_SIZE_SHIFT) #define DMA_CH_MOD_MD_SIZE_VALUE_32BIT 2U #define DMA_CH_MOD_MD_SIZE_BITS_32BIT (DMA_CH_MOD_MD_SIZE_VALUE_32BIT << DMA_CH_MOD_MD_SIZE_SHIFT) #define DMA_CH_MOD_MD_SIZE_VALUE_KEEP 3U #define DMA_CH_MOD_MD_SIZE_BITS_KEEP (DMA_CH_MOD_MD_SIZE_VALUE_KEEP << DMA_CH_MOD_MD_SIZE_SHIFT) #define DMA_CH_MOD_MD_SEL_SHIFT 11 #define DMA_CH_MOD_MD_SEL_WIDTH 3 #define DMA_CH_MOD_MD_SEL_MASK (((1U << DMA_CH_MOD_MD_SEL_WIDTH) - 1U) << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_SRAM 0U #define DMA_CH_MOD_MD_SEL_BITS_SRAM (DMA_CH_MOD_MD_SEL_VALUE_SRAM << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS0 1U #define DMA_CH_MOD_MD_SEL_BITS_HSREQ_MS0 (DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS0 << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS1 2U #define DMA_CH_MOD_MD_SEL_BITS_HSREQ_MS1 (DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS1 << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS2 3U #define DMA_CH_MOD_MD_SEL_BITS_HSREQ_MS2 (DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS2 << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS3 4U #define DMA_CH_MOD_MD_SEL_BITS_HSREQ_MS3 (DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS3 << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS4 5U #define DMA_CH_MOD_MD_SEL_BITS_HSREQ_MS4 (DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS4 << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS5 6U #define DMA_CH_MOD_MD_SEL_BITS_HSREQ_MS5 (DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS5 << DMA_CH_MOD_MD_SEL_SHIFT) #define DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS6 7U #define DMA_CH_MOD_MD_SEL_BITS_HSREQ_MS6 (DMA_CH_MOD_MD_SEL_VALUE_HSREQ_MS6 << DMA_CH_MOD_MD_SEL_SHIFT) #endif