blob: d3b487602eed7a4dd9a6569e715b0c6f0b6fd40a [file] [log] [blame]
/****************************************************************************
* arch/arm/src/stm32h7/hardware/stm32_mdma.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32_MDMA_H
#define __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32_MDMA_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include "chip.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Register Offsets *********************************************************/
#define STM32_MDMA_OFFSET(x) (0x40+0x40*(x))
#define STM32_MDMA_GISR0_OFFSET 0x0000 /* MDMA global interrupt/status register */
/* 0x0004-0x003C: Reserved */
#define STM32_MDMACH_CISR_OFFSET 0x0040
#define STM32_MDMACH_CIFCR_OFFSET 0x0044
#define STM32_MDMACH_CESR_OFFSET 0x0048
#define STM32_MDMACH_CCR_OFFSET 0x004C
#define STM32_MDMACH_CTCR_OFFSET 0x0050
#define STM32_MDMACH_CBNDTR_OFFSET 0x0054
#define STM32_MDMACH_CSAR_OFFSET 0x0058
#define STM32_MDMACH_CDAR_OFFSET 0x005C
#define STM32_MDMACH_CBRUR_OFFSET 0x0060
#define STM32_MDMACH_CLAR_OFFSET 0x0064
#define STM32_MDMACH_CTBR_OFFSET 0x0068
#define STM32_MDMACH_CMAR_OFFSET 0x0070
#define STM32_MDMACH_CMDR_OFFSET 0x0074
#define STM32_MDMA_CXISR_OFFSET(x) (0x0040+0x040*(x)) /* MDMA channel x interrupt/status register*/
#define STM32_MDMA_C0ISR_OFFSET STM32_MDMA_CXISR_OFFSET(0)
#define STM32_MDMA_C1ISR_OFFSET STM32_MDMA_CXISR_OFFSET(1)
#define STM32_MDMA_C2ISR_OFFSET STM32_MDMA_CXISR_OFFSET(2)
#define STM32_MDMA_C3ISR_OFFSET STM32_MDMA_CXISR_OFFSET(3)
#define STM32_MDMA_C4ISR_OFFSET STM32_MDMA_CXISR_OFFSET(4)
#define STM32_MDMA_C5ISR_OFFSET STM32_MDMA_CXISR_OFFSET(5)
#define STM32_MDMA_C6ISR_OFFSET STM32_MDMA_CXISR_OFFSET(6)
#define STM32_MDMA_C7ISR_OFFSET STM32_MDMA_CXISR_OFFSET(7)
#define STM32_MDMA_C8ISR_OFFSET STM32_MDMA_CXISR_OFFSET(8)
#define STM32_MDMA_C9ISR_OFFSET STM32_MDMA_CXISR_OFFSET(9)
#define STM32_MDMA_C10ISR_OFFSET STM32_MDMA_CXISR_OFFSET(10)
#define STM32_MDMA_C11ISR_OFFSET STM32_MDMA_CXISR_OFFSET(11)
#define STM32_MDMA_C12ISR_OFFSET STM32_MDMA_CXISR_OFFSET(12)
#define STM32_MDMA_C13ISR_OFFSET STM32_MDMA_CXISR_OFFSET(13)
#define STM32_MDMA_C14ISR_OFFSET STM32_MDMA_CXISR_OFFSET(14)
#define STM32_MDMA_C15ISR_OFFSET STM32_MDMA_CXISR_OFFSET(15)
#define STM32_MDMA_CXIFCR_OFFSET(x) (0x0044+0x040*(x)) /* MDMA channel x interrupt flag clear register */
#define STM32_MDMA_C0IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(0)
#define STM32_MDMA_C1IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(1)
#define STM32_MDMA_C2IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(2)
#define STM32_MDMA_C3IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(3)
#define STM32_MDMA_C4IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(4)
#define STM32_MDMA_C5IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(5)
#define STM32_MDMA_C6IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(6)
#define STM32_MDMA_C7IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(7)
#define STM32_MDMA_C8IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(8)
#define STM32_MDMA_C9IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(9)
#define STM32_MDMA_C10IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(10)
#define STM32_MDMA_C11IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(11)
#define STM32_MDMA_C12IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(12)
#define STM32_MDMA_C13IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(13)
#define STM32_MDMA_C14IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(14)
#define STM32_MDMA_C15IFCR_OFFSET STM32_MDMA_CXIFCR_OFFSET(15)
#define STM32_MDMA_CXESR_OFFSET(x) (0x0048+0x040*(x)) /* MDMA channel x error status register */
#define STM32_MDMA_C0ESR_OFFSET STM32_MDMA_CXESR_OFFSET0)
#define STM32_MDMA_C1ESR_OFFSET STM32_MDMA_CXESR_OFFSET1)
#define STM32_MDMA_C2ESR_OFFSET STM32_MDMA_CXESR_OFFSET2)
#define STM32_MDMA_C3ESR_OFFSET STM32_MDMA_CXESR_OFFSET3)
#define STM32_MDMA_C4ESR_OFFSET STM32_MDMA_CXESR_OFFSET4)
#define STM32_MDMA_C5ESR_OFFSET STM32_MDMA_CXESR_OFFSET5)
#define STM32_MDMA_C6ESR_OFFSET STM32_MDMA_CXESR_OFFSET6)
#define STM32_MDMA_C7ESR_OFFSET STM32_MDMA_CXESR_OFFSET7)
#define STM32_MDMA_C8ESR_OFFSET STM32_MDMA_CXESR_OFFSET8)
#define STM32_MDMA_C9ESR_OFFSET STM32_MDMA_CXESR_OFFSET9)
#define STM32_MDMA_C10ESR_OFFSET STM32_MDMA_CXESR_OFFSET10)
#define STM32_MDMA_C11ESR_OFFSET STM32_MDMA_CXESR_OFFSET11)
#define STM32_MDMA_C12ESR_OFFSET STM32_MDMA_CXESR_OFFSET12)
#define STM32_MDMA_C13ESR_OFFSET STM32_MDMA_CXESR_OFFSET13)
#define STM32_MDMA_C14ESR_OFFSET STM32_MDMA_CXESR_OFFSET14)
#define STM32_MDMA_C15ESR_OFFSET STM32_MDMA_CXESR_OFFSET15)
#define STM32_MDMA_CXCR_OFFSET(x) (0x004C+0x040*(x)) /* MDMA channel x control register */
#define STM32_MDMA_C0CR_OFFSET STM32_MDMA_CXCR_OFFSET(0)
#define STM32_MDMA_C1CR_OFFSET STM32_MDMA_CXCR_OFFSET(1)
#define STM32_MDMA_C2CR_OFFSET STM32_MDMA_CXCR_OFFSET(2)
#define STM32_MDMA_C3CR_OFFSET STM32_MDMA_CXCR_OFFSET(3)
#define STM32_MDMA_C4CR_OFFSET STM32_MDMA_CXCR_OFFSET(4)
#define STM32_MDMA_C5CR_OFFSET STM32_MDMA_CXCR_OFFSET(5)
#define STM32_MDMA_C6CR_OFFSET STM32_MDMA_CXCR_OFFSET(6)
#define STM32_MDMA_C7CR_OFFSET STM32_MDMA_CXCR_OFFSET(7)
#define STM32_MDMA_C8CR_OFFSET STM32_MDMA_CXCR_OFFSET(8)
#define STM32_MDMA_C9CR_OFFSET STM32_MDMA_CXCR_OFFSET(9)
#define STM32_MDMA_C10CR_OFFSET STM32_MDMA_CXCR_OFFSET(10)
#define STM32_MDMA_C11CR_OFFSET STM32_MDMA_CXCR_OFFSET(11)
#define STM32_MDMA_C12CR_OFFSET STM32_MDMA_CXCR_OFFSET(12)
#define STM32_MDMA_C13CR_OFFSET STM32_MDMA_CXCR_OFFSET(13)
#define STM32_MDMA_C14CR_OFFSET STM32_MDMA_CXCR_OFFSET(14)
#define STM32_MDMA_C15CR_OFFSET STM32_MDMA_CXCR_OFFSET(15)
#define STM32_MDMA_CXTCR_OFFSET(x) (0x0050+0x040*(x)) /* MDMA channel x transfer configuration register */
#define STM32_MDMA_C0TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(0)
#define STM32_MDMA_C1TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(1)
#define STM32_MDMA_C2TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(2)
#define STM32_MDMA_C3TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(3)
#define STM32_MDMA_C4TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(4)
#define STM32_MDMA_C5TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(5)
#define STM32_MDMA_C6TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(6)
#define STM32_MDMA_C7TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(7)
#define STM32_MDMA_C8TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(8)
#define STM32_MDMA_C9TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(9)
#define STM32_MDMA_C10TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(10)
#define STM32_MDMA_C11TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(11)
#define STM32_MDMA_C12TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(12)
#define STM32_MDMA_C13TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(13)
#define STM32_MDMA_C14TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(14)
#define STM32_MDMA_C15TCR_OFFSET STM32_MDMA_CXTCR_OFFSET(15)
#define STM32_MDMA_CXBNDTR_OFFSET(x) (0x0054+0x040*(x)) /* MDMA channel x block number of data register */
#define STM32_MDMA_C0BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(0)
#define STM32_MDMA_C1BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(1)
#define STM32_MDMA_C2BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(2)
#define STM32_MDMA_C3BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(3)
#define STM32_MDMA_C4BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(4)
#define STM32_MDMA_C5BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(5)
#define STM32_MDMA_C6BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(6)
#define STM32_MDMA_C7BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(7)
#define STM32_MDMA_C8BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(8)
#define STM32_MDMA_C9BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(9)
#define STM32_MDMA_C10BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(10)
#define STM32_MDMA_C11BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(11)
#define STM32_MDMA_C12BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(12)
#define STM32_MDMA_C13BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(13)
#define STM32_MDMA_C14BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(14)
#define STM32_MDMA_C15BNDTR_OFFSET STM32_MDMA_CXBNDTR_OFFSET(15)
#define STM32_MDMA_CXSAR_OFFSET(x) (0x0058+0x040*(x)) /* MDMA channel x source address register */
#define STM32_MDMA_C0SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(0)
#define STM32_MDMA_C1SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(1)
#define STM32_MDMA_C2SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(2)
#define STM32_MDMA_C3SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(3)
#define STM32_MDMA_C4SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(4)
#define STM32_MDMA_C5SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(5)
#define STM32_MDMA_C6SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(6)
#define STM32_MDMA_C7SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(7)
#define STM32_MDMA_C8SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(8)
#define STM32_MDMA_C9SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(9)
#define STM32_MDMA_C10SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(10)
#define STM32_MDMA_C11SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(11)
#define STM32_MDMA_C12SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(12)
#define STM32_MDMA_C13SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(13)
#define STM32_MDMA_C14SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(14)
#define STM32_MDMA_C15SAR_OFFSET STM32_MDMA_CXSAR_OFFSET(15)
#define STM32_MDMA_CXDAR_OFFSET(x) (0x005C+0x040*(x)) /* MDMA channel x destination address register */
#define STM32_MDMA_C0DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(0)
#define STM32_MDMA_C1DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(1)
#define STM32_MDMA_C2DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(2)
#define STM32_MDMA_C3DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(3)
#define STM32_MDMA_C4DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(4)
#define STM32_MDMA_C5DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(5)
#define STM32_MDMA_C6DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(6)
#define STM32_MDMA_C7DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(7)
#define STM32_MDMA_C8DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(8)
#define STM32_MDMA_C9DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(9)
#define STM32_MDMA_C10DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(10)
#define STM32_MDMA_C11DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(11)
#define STM32_MDMA_C12DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(12)
#define STM32_MDMA_C13DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(13)
#define STM32_MDMA_C14DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(14)
#define STM32_MDMA_C15DAR_OFFSET STM32_MDMA_CXDAR_OFFSET(15)
#define STM32_MDMA_CXBRUR_OFFSET(x) (0x0060+0x040*(x)) /* MDMA channel x block repeat address update register */
#define STM32_MDMA_C0BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(0)
#define STM32_MDMA_C1BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(1)
#define STM32_MDMA_C2BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(2)
#define STM32_MDMA_C3BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(3)
#define STM32_MDMA_C4BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(4)
#define STM32_MDMA_C5BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(5)
#define STM32_MDMA_C6BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(6)
#define STM32_MDMA_C7BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(7)
#define STM32_MDMA_C8BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(8)
#define STM32_MDMA_C9BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(9)
#define STM32_MDMA_C10BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(10)
#define STM32_MDMA_C11BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(11)
#define STM32_MDMA_C12BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(12)
#define STM32_MDMA_C13BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(13)
#define STM32_MDMA_C14BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(14)
#define STM32_MDMA_C15BRUR_OFFSET STM32_MDMA_CXBRUR_OFFSET(15)
#define STM32_MDMA_CXLAR_OFFSET(x) (0x0064+0x040*(x)) /* MDMA channel x link address register */
#define STM32_MDMA_C0LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(0)
#define STM32_MDMA_C1LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(1)
#define STM32_MDMA_C2LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(2)
#define STM32_MDMA_C3LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(3)
#define STM32_MDMA_C4LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(4)
#define STM32_MDMA_C5LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(5)
#define STM32_MDMA_C6LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(6)
#define STM32_MDMA_C7LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(7)
#define STM32_MDMA_C8LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(8)
#define STM32_MDMA_C9LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(9)
#define STM32_MDMA_C10LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(10)
#define STM32_MDMA_C11LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(11)
#define STM32_MDMA_C12LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(12)
#define STM32_MDMA_C13LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(13)
#define STM32_MDMA_C14LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(14)
#define STM32_MDMA_C15LAR_OFFSET STM32_MDMA_CXLAR_OFFSET(15)
#define STM32_MDMA_CXTBR_OFFSET(x) (0x0068+0x040*(x)) /* MDMA channel x trigger and bus selection register */
#define STM32_MDMA_C0TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(0)
#define STM32_MDMA_C1TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(1)
#define STM32_MDMA_C2TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(2)
#define STM32_MDMA_C3TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(3)
#define STM32_MDMA_C4TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(4)
#define STM32_MDMA_C5TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(5)
#define STM32_MDMA_C6TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(6)
#define STM32_MDMA_C7TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(7)
#define STM32_MDMA_C8TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(8)
#define STM32_MDMA_C9TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(9)
#define STM32_MDMA_C10TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(10)
#define STM32_MDMA_C11TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(11)
#define STM32_MDMA_C12TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(12)
#define STM32_MDMA_C13TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(13)
#define STM32_MDMA_C14TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(14)
#define STM32_MDMA_C15TBR_OFFSET STM32_MDMA_CXTBR_OFFSET(15)
#define STM32_MDMA_CXMAR_OFFSET(x) (0x0070+0x040*(x)) /* MDMA channel x mask address register */
#define STM32_MDMA_C0MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(0)
#define STM32_MDMA_C1MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(1)
#define STM32_MDMA_C2MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(2)
#define STM32_MDMA_C3MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(3)
#define STM32_MDMA_C4MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(4)
#define STM32_MDMA_C5MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(5)
#define STM32_MDMA_C6MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(6)
#define STM32_MDMA_C7MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(7)
#define STM32_MDMA_C8MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(8)
#define STM32_MDMA_C9MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(9)
#define STM32_MDMA_C10MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(10)
#define STM32_MDMA_C11MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(11)
#define STM32_MDMA_C12MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(12)
#define STM32_MDMA_C13MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(13)
#define STM32_MDMA_C14MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(14)
#define STM32_MDMA_C15MAR_OFFSET STM32_MDMA_CXMAR_OFFSET(15)
#define STM32_MDMA_CXMDR_OFFSET(x) (0x0074+0x040*(x)) /* MDMA channel x mask data register */
#define STM32_MDMA_C0MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(0)
#define STM32_MDMA_C1MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(1)
#define STM32_MDMA_C2MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(2)
#define STM32_MDMA_C3MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(3)
#define STM32_MDMA_C4MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(4)
#define STM32_MDMA_C5MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(5)
#define STM32_MDMA_C6MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(6)
#define STM32_MDMA_C7MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(7)
#define STM32_MDMA_C8MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(8)
#define STM32_MDMA_C9MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(9)
#define STM32_MDMA_C10MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(10)
#define STM32_MDMA_C11MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(11)
#define STM32_MDMA_C12MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(12)
#define STM32_MDMA_C13MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(13)
#define STM32_MDMA_C14MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(14)
#define STM32_MDMA_C15MDR_OFFSET STM32_MDMA_CXMDR_OFFSET(15)
/* Register Addresses *******************************************************/
#define STM32_MDMA_GISR0 (STM32_MDMA_BASE+STM32_MDMA_GISR0_OFFSET)
#define STM32_MDMA_CXISR(x) (STM32_MDMA_BASE+STM32_MDMA_CXISR_OFFSET(x))
#define STM32_MDMA_C0ISR (STM32_MDMA_BASE+STM32_MDMA_C0ISR_OFFSET)
#define STM32_MDMA_C1ISR (STM32_MDMA_BASE+STM32_MDMA_C1ISR_OFFSET)
#define STM32_MDMA_C2ISR (STM32_MDMA_BASE+STM32_MDMA_C2ISR_OFFSET)
#define STM32_MDMA_C3ISR (STM32_MDMA_BASE+STM32_MDMA_C3ISR_OFFSET)
#define STM32_MDMA_C4ISR (STM32_MDMA_BASE+STM32_MDMA_C4ISR_OFFSET)
#define STM32_MDMA_C5ISR (STM32_MDMA_BASE+STM32_MDMA_C5ISR_OFFSET)
#define STM32_MDMA_C6ISR (STM32_MDMA_BASE+STM32_MDMA_C6ISR_OFFSET)
#define STM32_MDMA_C7ISR (STM32_MDMA_BASE+STM32_MDMA_C7ISR_OFFSET)
#define STM32_MDMA_C8ISR (STM32_MDMA_BASE+STM32_MDMA_C8ISR_OFFSET)
#define STM32_MDMA_C9ISR (STM32_MDMA_BASE+STM32_MDMA_C9ISR_OFFSET)
#define STM32_MDMA_C10ISR (STM32_MDMA_BASE+STM32_MDMA_C10ISR_OFFSET)
#define STM32_MDMA_C11ISR (STM32_MDMA_BASE+STM32_MDMA_C11ISR_OFFSET)
#define STM32_MDMA_C12ISR (STM32_MDMA_BASE+STM32_MDMA_C12ISR_OFFSET)
#define STM32_MDMA_C13ISR (STM32_MDMA_BASE+STM32_MDMA_C13ISR_OFFSET)
#define STM32_MDMA_C14ISR (STM32_MDMA_BASE+STM32_MDMA_C14ISR_OFFSET)
#define STM32_MDMA_C15ISR (STM32_MDMA_BASE+STM32_MDMA_C15ISR_OFFSET)
#define STM32_MDMA_CXIFCR(x) (STM32_MDMA_BASE+STM32_MDMA_CXIFCR_OFFSET(x))
#define STM32_MDMA_C0IFCR (STM32_MDMA_BASE+STM32_MDMA_C0IFCR_OFFSET)
#define STM32_MDMA_C1IFCR (STM32_MDMA_BASE+STM32_MDMA_C1IFCR_OFFSET)
#define STM32_MDMA_C2IFCR (STM32_MDMA_BASE+STM32_MDMA_C2IFCR_OFFSET)
#define STM32_MDMA_C3IFCR (STM32_MDMA_BASE+STM32_MDMA_C3IFCR_OFFSET)
#define STM32_MDMA_C4IFCR (STM32_MDMA_BASE+STM32_MDMA_C4IFCR_OFFSET)
#define STM32_MDMA_C5IFCR (STM32_MDMA_BASE+STM32_MDMA_C5IFCR_OFFSET)
#define STM32_MDMA_C6IFCR (STM32_MDMA_BASE+STM32_MDMA_C6IFCR_OFFSET)
#define STM32_MDMA_C7IFCR (STM32_MDMA_BASE+STM32_MDMA_C7IFCR_OFFSET)
#define STM32_MDMA_C8IFCR (STM32_MDMA_BASE+STM32_MDMA_C8IFCR_OFFSET)
#define STM32_MDMA_C9IFCR (STM32_MDMA_BASE+STM32_MDMA_C9IFCR_OFFSET)
#define STM32_MDMA_C10IFCR (STM32_MDMA_BASE+STM32_MDMA_C10IFCR_OFFSET)
#define STM32_MDMA_C11IFCR (STM32_MDMA_BASE+STM32_MDMA_C11IFCR_OFFSET)
#define STM32_MDMA_C12IFCR (STM32_MDMA_BASE+STM32_MDMA_C12IFCR_OFFSET)
#define STM32_MDMA_C13IFCR (STM32_MDMA_BASE+STM32_MDMA_C13IFCR_OFFSET)
#define STM32_MDMA_C14IFCR (STM32_MDMA_BASE+STM32_MDMA_C14IFCR_OFFSET)
#define STM32_MDMA_C15IFCR (STM32_MDMA_BASE+STM32_MDMA_C15IFCR_OFFSET)
#define STM32_MDMA_CXESR(x) (STM32_MDMA_BASE+STM32_MDMA_CXESR_OFFSET(x))
#define STM32_MDMA_C0ESR (STM32_MDMA_BASE+STM32_MDMA_C0ESR_OFFSET)
#define STM32_MDMA_C1ESR (STM32_MDMA_BASE+STM32_MDMA_C1ESR_OFFSET)
#define STM32_MDMA_C2ESR (STM32_MDMA_BASE+STM32_MDMA_C2ESR_OFFSET)
#define STM32_MDMA_C3ESR (STM32_MDMA_BASE+STM32_MDMA_C3ESR_OFFSET)
#define STM32_MDMA_C4ESR (STM32_MDMA_BASE+STM32_MDMA_C4ESR_OFFSET)
#define STM32_MDMA_C5ESR (STM32_MDMA_BASE+STM32_MDMA_C5ESR_OFFSET)
#define STM32_MDMA_C6ESR (STM32_MDMA_BASE+STM32_MDMA_C6ESR_OFFSET)
#define STM32_MDMA_C7ESR (STM32_MDMA_BASE+STM32_MDMA_C7ESR_OFFSET)
#define STM32_MDMA_C8ESR (STM32_MDMA_BASE+STM32_MDMA_C8ESR_OFFSET)
#define STM32_MDMA_C9ESR (STM32_MDMA_BASE+STM32_MDMA_C9ESR_OFFSET)
#define STM32_MDMA_C10ESR (STM32_MDMA_BASE+STM32_MDMA_C10ESR_OFFSET)
#define STM32_MDMA_C11ESR (STM32_MDMA_BASE+STM32_MDMA_C11ESR_OFFSET)
#define STM32_MDMA_C12ESR (STM32_MDMA_BASE+STM32_MDMA_C12ESR_OFFSET)
#define STM32_MDMA_C13ESR (STM32_MDMA_BASE+STM32_MDMA_C13ESR_OFFSET)
#define STM32_MDMA_C14ESR (STM32_MDMA_BASE+STM32_MDMA_C14ESR_OFFSET)
#define STM32_MDMA_C15ESR (STM32_MDMA_BASE+STM32_MDMA_C15ESR_OFFSET)
#define STM32_MDMA_CXCR(x) (STM32_MDMA_BASE+STM32_MDMA_CXCR_OFFSET(x))
#define STM32_MDMA_C0CR (STM32_MDMA_BASE+STM32_MDMA_C0CR_OFFSET)
#define STM32_MDMA_C1CR (STM32_MDMA_BASE+STM32_MDMA_C1CR_OFFSET)
#define STM32_MDMA_C2CR (STM32_MDMA_BASE+STM32_MDMA_C2CR_OFFSET)
#define STM32_MDMA_C3CR (STM32_MDMA_BASE+STM32_MDMA_C3CR_OFFSET)
#define STM32_MDMA_C4CR (STM32_MDMA_BASE+STM32_MDMA_C4CR_OFFSET)
#define STM32_MDMA_C5CR (STM32_MDMA_BASE+STM32_MDMA_C5CR_OFFSET)
#define STM32_MDMA_C6CR (STM32_MDMA_BASE+STM32_MDMA_C6CR_OFFSET)
#define STM32_MDMA_C7CR (STM32_MDMA_BASE+STM32_MDMA_C7CR_OFFSET)
#define STM32_MDMA_C8CR (STM32_MDMA_BASE+STM32_MDMA_C8CR_OFFSET)
#define STM32_MDMA_C9CR (STM32_MDMA_BASE+STM32_MDMA_C9CR_OFFSET)
#define STM32_MDMA_C10CR (STM32_MDMA_BASE+STM32_MDMA_C10CR_OFFSET)
#define STM32_MDMA_C11CR (STM32_MDMA_BASE+STM32_MDMA_C11CR_OFFSET)
#define STM32_MDMA_C12CR (STM32_MDMA_BASE+STM32_MDMA_C12CR_OFFSET)
#define STM32_MDMA_C13CR (STM32_MDMA_BASE+STM32_MDMA_C13CR_OFFSET)
#define STM32_MDMA_C14CR (STM32_MDMA_BASE+STM32_MDMA_C14CR_OFFSET)
#define STM32_MDMA_C15CR (STM32_MDMA_BASE+STM32_MDMA_C15CR_OFFSET)
#define STM32_MDMA_CXTCR(x) (STM32_MDMA_BASE+STM32_MDMA_CXTCR_OFFSET(x))
#define STM32_MDMA_C0TCR (STM32_MDMA_BASE+STM32_MDMA_C0TCR_OFFSET)
#define STM32_MDMA_C1TCR (STM32_MDMA_BASE+STM32_MDMA_C1TCR_OFFSET)
#define STM32_MDMA_C2TCR (STM32_MDMA_BASE+STM32_MDMA_C2TCR_OFFSET)
#define STM32_MDMA_C3TCR (STM32_MDMA_BASE+STM32_MDMA_C3TCR_OFFSET)
#define STM32_MDMA_C4TCR (STM32_MDMA_BASE+STM32_MDMA_C4TCR_OFFSET)
#define STM32_MDMA_C5TCR (STM32_MDMA_BASE+STM32_MDMA_C5TCR_OFFSET)
#define STM32_MDMA_C6TCR (STM32_MDMA_BASE+STM32_MDMA_C6TCR_OFFSET)
#define STM32_MDMA_C7TCR (STM32_MDMA_BASE+STM32_MDMA_C7TCR_OFFSET)
#define STM32_MDMA_C8TCR (STM32_MDMA_BASE+STM32_MDMA_C8TCR_OFFSET)
#define STM32_MDMA_C9TCR (STM32_MDMA_BASE+STM32_MDMA_C9TCR_OFFSET)
#define STM32_MDMA_C10TCR (STM32_MDMA_BASE+STM32_MDMA_C10TCR_OFFSET)
#define STM32_MDMA_C11TCR (STM32_MDMA_BASE+STM32_MDMA_C11TCR_OFFSET)
#define STM32_MDMA_C12TCR (STM32_MDMA_BASE+STM32_MDMA_C12TCR_OFFSET)
#define STM32_MDMA_C13TCR (STM32_MDMA_BASE+STM32_MDMA_C13TCR_OFFSET)
#define STM32_MDMA_C14TCR (STM32_MDMA_BASE+STM32_MDMA_C14TCR_OFFSET)
#define STM32_MDMA_C15TCR (STM32_MDMA_BASE+STM32_MDMA_C15TCR_OFFSET)
#define STM32_MDMA_CXBNDTR(x) (STM32_MDMA_BASE+STM32_MDMA_CXBNDTR_OFFSET(x))
#define STM32_MDMA_C0BNDTR (STM32_MDMA_BASE+STM32_MDMA_C0BNDTR_OFFSET)
#define STM32_MDMA_C1BNDTR (STM32_MDMA_BASE+STM32_MDMA_C1BNDTR_OFFSET)
#define STM32_MDMA_C2BNDTR (STM32_MDMA_BASE+STM32_MDMA_C2BNDTR_OFFSET)
#define STM32_MDMA_C3BNDTR (STM32_MDMA_BASE+STM32_MDMA_C3BNDTR_OFFSET)
#define STM32_MDMA_C4BNDTR (STM32_MDMA_BASE+STM32_MDMA_C4BNDTR_OFFSET)
#define STM32_MDMA_C5BNDTR (STM32_MDMA_BASE+STM32_MDMA_C5BNDTR_OFFSET)
#define STM32_MDMA_C6BNDTR (STM32_MDMA_BASE+STM32_MDMA_C6BNDTR_OFFSET)
#define STM32_MDMA_C7BNDTR (STM32_MDMA_BASE+STM32_MDMA_C7BNDTR_OFFSET)
#define STM32_MDMA_C8BNDTR (STM32_MDMA_BASE+STM32_MDMA_C8BNDTR_OFFSET)
#define STM32_MDMA_C9BNDTR (STM32_MDMA_BASE+STM32_MDMA_C9BNDTR_OFFSET)
#define STM32_MDMA_C10BNDTR (STM32_MDMA_BASE+STM32_MDMA_C10BNDTR_OFFSET)
#define STM32_MDMA_C11BNDTR (STM32_MDMA_BASE+STM32_MDMA_C11BNDTR_OFFSET)
#define STM32_MDMA_C12BNDTR (STM32_MDMA_BASE+STM32_MDMA_C12BNDTR_OFFSET)
#define STM32_MDMA_C13BNDTR (STM32_MDMA_BASE+STM32_MDMA_C13BNDTR_OFFSET)
#define STM32_MDMA_C14BNDTR (STM32_MDMA_BASE+STM32_MDMA_C14BNDTR_OFFSET)
#define STM32_MDMA_C15BNDTR (STM32_MDMA_BASE+STM32_MDMA_C15BNDTR_OFFSET)
#define STM32_MDMA_CXBRUR(x) (STM32_MDMA_BASE+STM32_MDMA_CXBRUR_OFFSET(x))
#define STM32_MDMA_C0BRUR (STM32_MDMA_BASE+STM32_MDMA_C0BRUR_OFFSET)
#define STM32_MDMA_C1BRUR (STM32_MDMA_BASE+STM32_MDMA_C1BRUR_OFFSET)
#define STM32_MDMA_C2BRUR (STM32_MDMA_BASE+STM32_MDMA_C2BRUR_OFFSET)
#define STM32_MDMA_C3BRUR (STM32_MDMA_BASE+STM32_MDMA_C3BRUR_OFFSET)
#define STM32_MDMA_C4BRUR (STM32_MDMA_BASE+STM32_MDMA_C4BRUR_OFFSET)
#define STM32_MDMA_C5BRUR (STM32_MDMA_BASE+STM32_MDMA_C5BRUR_OFFSET)
#define STM32_MDMA_C6BRUR (STM32_MDMA_BASE+STM32_MDMA_C6BRUR_OFFSET)
#define STM32_MDMA_C7BRUR (STM32_MDMA_BASE+STM32_MDMA_C7BRUR_OFFSET)
#define STM32_MDMA_C8BRUR (STM32_MDMA_BASE+STM32_MDMA_C8BRUR_OFFSET)
#define STM32_MDMA_C9BRUR (STM32_MDMA_BASE+STM32_MDMA_C9BRUR_OFFSET)
#define STM32_MDMA_C10BRUR (STM32_MDMA_BASE+STM32_MDMA_C10BRUR_OFFSET)
#define STM32_MDMA_C11BRUR (STM32_MDMA_BASE+STM32_MDMA_C11BRUR_OFFSET)
#define STM32_MDMA_C12BRUR (STM32_MDMA_BASE+STM32_MDMA_C12BRUR_OFFSET)
#define STM32_MDMA_C13BRUR (STM32_MDMA_BASE+STM32_MDMA_C13BRUR_OFFSET)
#define STM32_MDMA_C14BRUR (STM32_MDMA_BASE+STM32_MDMA_C14BRUR_OFFSET)
#define STM32_MDMA_C15BRUR (STM32_MDMA_BASE+STM32_MDMA_C15BRUR_OFFSET)
#define STM32_MDMA_CXLAR(x) (STM32_MDMA_BASE+STM32_MDMA_CXLAR_OFFSET(x))
#define STM32_MDMA_C0LAR (STM32_MDMA_BASE+STM32_MDMA_C0LAR_OFFSET)
#define STM32_MDMA_C1LAR (STM32_MDMA_BASE+STM32_MDMA_C1LAR_OFFSET)
#define STM32_MDMA_C2LAR (STM32_MDMA_BASE+STM32_MDMA_C2LAR_OFFSET)
#define STM32_MDMA_C3LAR (STM32_MDMA_BASE+STM32_MDMA_C3LAR_OFFSET)
#define STM32_MDMA_C4LAR (STM32_MDMA_BASE+STM32_MDMA_C4LAR_OFFSET)
#define STM32_MDMA_C5LAR (STM32_MDMA_BASE+STM32_MDMA_C5LAR_OFFSET)
#define STM32_MDMA_C6LAR (STM32_MDMA_BASE+STM32_MDMA_C6LAR_OFFSET)
#define STM32_MDMA_C7LAR (STM32_MDMA_BASE+STM32_MDMA_C7LAR_OFFSET)
#define STM32_MDMA_C8LAR (STM32_MDMA_BASE+STM32_MDMA_C8LAR_OFFSET)
#define STM32_MDMA_C9LAR (STM32_MDMA_BASE+STM32_MDMA_C9LAR_OFFSET)
#define STM32_MDMA_C10LAR (STM32_MDMA_BASE+STM32_MDMA_C10LAR_OFFSET)
#define STM32_MDMA_C11LAR (STM32_MDMA_BASE+STM32_MDMA_C11LAR_OFFSET)
#define STM32_MDMA_C12LAR (STM32_MDMA_BASE+STM32_MDMA_C12LAR_OFFSET)
#define STM32_MDMA_C13LAR (STM32_MDMA_BASE+STM32_MDMA_C13LAR_OFFSET)
#define STM32_MDMA_C14LAR (STM32_MDMA_BASE+STM32_MDMA_C14LAR_OFFSET)
#define STM32_MDMA_C15LAR (STM32_MDMA_BASE+STM32_MDMA_C15LAR_OFFSET)
#define STM32_MDMA_CXTBR(x) (STM32_MDMA_BASE+STM32_MDMA_CXTBR_OFFSET(x))
#define STM32_MDMA_C0TBR (STM32_MDMA_BASE+STM32_MDMA_C0TBR_OFFSET)
#define STM32_MDMA_C1TBR (STM32_MDMA_BASE+STM32_MDMA_C1TBR_OFFSET)
#define STM32_MDMA_C2TBR (STM32_MDMA_BASE+STM32_MDMA_C2TBR_OFFSET)
#define STM32_MDMA_C3TBR (STM32_MDMA_BASE+STM32_MDMA_C3TBR_OFFSET)
#define STM32_MDMA_C4TBR (STM32_MDMA_BASE+STM32_MDMA_C4TBR_OFFSET)
#define STM32_MDMA_C5TBR (STM32_MDMA_BASE+STM32_MDMA_C5TBR_OFFSET)
#define STM32_MDMA_C6TBR (STM32_MDMA_BASE+STM32_MDMA_C6TBR_OFFSET)
#define STM32_MDMA_C7TBR (STM32_MDMA_BASE+STM32_MDMA_C7TBR_OFFSET)
#define STM32_MDMA_C8TBR (STM32_MDMA_BASE+STM32_MDMA_C8TBR_OFFSET)
#define STM32_MDMA_C9TBR (STM32_MDMA_BASE+STM32_MDMA_C9TBR_OFFSET)
#define STM32_MDMA_C10TBR (STM32_MDMA_BASE+STM32_MDMA_C10TBR_OFFSET)
#define STM32_MDMA_C11TBR (STM32_MDMA_BASE+STM32_MDMA_C11TBR_OFFSET)
#define STM32_MDMA_C12TBR (STM32_MDMA_BASE+STM32_MDMA_C12TBR_OFFSET)
#define STM32_MDMA_C13TBR (STM32_MDMA_BASE+STM32_MDMA_C13TBR_OFFSET)
#define STM32_MDMA_C14TBR (STM32_MDMA_BASE+STM32_MDMA_C14TBR_OFFSET)
#define STM32_MDMA_C15TBR (STM32_MDMA_BASE+STM32_MDMA_C15TBR_OFFSET)
#define STM32_MDMA_CXMAR(x) (STM32_MDMA_BASE+STM32_MDMA_CXMAR_OFFSET(x))
#define STM32_MDMA_C0MAR (STM32_MDMA_BASE+STM32_MDMA_C0MAR_OFFSET)
#define STM32_MDMA_C1MAR (STM32_MDMA_BASE+STM32_MDMA_C1MAR_OFFSET)
#define STM32_MDMA_C2MAR (STM32_MDMA_BASE+STM32_MDMA_C2MAR_OFFSET)
#define STM32_MDMA_C3MAR (STM32_MDMA_BASE+STM32_MDMA_C3MAR_OFFSET)
#define STM32_MDMA_C4MAR (STM32_MDMA_BASE+STM32_MDMA_C4MAR_OFFSET)
#define STM32_MDMA_C5MAR (STM32_MDMA_BASE+STM32_MDMA_C5MAR_OFFSET)
#define STM32_MDMA_C6MAR (STM32_MDMA_BASE+STM32_MDMA_C6MAR_OFFSET)
#define STM32_MDMA_C7MAR (STM32_MDMA_BASE+STM32_MDMA_C7MAR_OFFSET)
#define STM32_MDMA_C8MAR (STM32_MDMA_BASE+STM32_MDMA_C8MAR_OFFSET)
#define STM32_MDMA_C9MAR (STM32_MDMA_BASE+STM32_MDMA_C9MAR_OFFSET)
#define STM32_MDMA_C10MAR (STM32_MDMA_BASE+STM32_MDMA_C10MAR_OFFSET)
#define STM32_MDMA_C11MAR (STM32_MDMA_BASE+STM32_MDMA_C11MAR_OFFSET)
#define STM32_MDMA_C12MAR (STM32_MDMA_BASE+STM32_MDMA_C12MAR_OFFSET)
#define STM32_MDMA_C13MAR (STM32_MDMA_BASE+STM32_MDMA_C13MAR_OFFSET)
#define STM32_MDMA_C14MAR (STM32_MDMA_BASE+STM32_MDMA_C14MAR_OFFSET)
#define STM32_MDMA_C15MAR (STM32_MDMA_BASE+STM32_MDMA_C15MAR_OFFSET)
#define STM32_MDMA_CXMDR(x) (STM32_MDMA_BASE+STM32_MDMA_CXMDR_OFFSET(x))
#define STM32_MDMA_C0MDR (STM32_MDMA_BASE+STM32_MDMA_C0MDR_OFFSET)
#define STM32_MDMA_C1MDR (STM32_MDMA_BASE+STM32_MDMA_C1MDR_OFFSET)
#define STM32_MDMA_C2MDR (STM32_MDMA_BASE+STM32_MDMA_C2MDR_OFFSET)
#define STM32_MDMA_C3MDR (STM32_MDMA_BASE+STM32_MDMA_C3MDR_OFFSET)
#define STM32_MDMA_C4MDR (STM32_MDMA_BASE+STM32_MDMA_C4MDR_OFFSET)
#define STM32_MDMA_C5MDR (STM32_MDMA_BASE+STM32_MDMA_C5MDR_OFFSET)
#define STM32_MDMA_C6MDR (STM32_MDMA_BASE+STM32_MDMA_C6MDR_OFFSET)
#define STM32_MDMA_C7MDR (STM32_MDMA_BASE+STM32_MDMA_C7MDR_OFFSET)
#define STM32_MDMA_C8MDR (STM32_MDMA_BASE+STM32_MDMA_C8MDR_OFFSET)
#define STM32_MDMA_C9MDR (STM32_MDMA_BASE+STM32_MDMA_C9MDR_OFFSET)
#define STM32_MDMA_C10MDR (STM32_MDMA_BASE+STM32_MDMA_C10MDR_OFFSET)
#define STM32_MDMA_C11MDR (STM32_MDMA_BASE+STM32_MDMA_C11MDR_OFFSET)
#define STM32_MDMA_C12MDR (STM32_MDMA_BASE+STM32_MDMA_C12MDR_OFFSET)
#define STM32_MDMA_C13MDR (STM32_MDMA_BASE+STM32_MDMA_C13MDR_OFFSET)
#define STM32_MDMA_C14MDR (STM32_MDMA_BASE+STM32_MDMA_C14MDR_OFFSET)
#define STM32_MDMA_C15MDR (STM32_MDMA_BASE+STM32_MDMA_C15MDR_OFFSET)
/* Register Bitfield Definitions ********************************************/
/* MDMA global interrupt/status register */
#define MDMA_CXISR_GIF(x) (1 << x)
/* MDMA channel x interrupt/status register and channel x interrupt flag
* clear register
*/
#define MDMA_INT_TEIF (1 << 0) /* Bit 0: Channel X transfer error flag */
#define BDMA_INT_CTCIF (1 << 1) /* Bit 1: Channel X transfer complete flag */
#define BDMA_INT_BRTIF (1 << 2) /* Bit 2: Channel X block repeat transfer complete flag */
#define BDMA_INT_BTIF (1 << 3) /* Bit 3: Channel X block transfer complete flag */
#define BDMA_INT_TCIF (1 << 4) /* Bit 4: Channel X buffer transfer complete interrupt flag */
#define BDMA_INT_CRQA (1 << 5) /* Bit 5: Channel X request active flag */
/* MDMA channel x error status register */
#define MDMA_CESR_TEA_SHIFT (0) /* Bits 0-6: Transfer error address */
#define MDMA_CESR_TEA_MASK (0x7f << MDMA_CESR_TEA_SHIFT)
#define MDMA_CESR_TED (7) /* Bit 7: Transfer error direction */
#define MDMA_CESR_TELD (8) /* Bit 8: Transfer error link data */
#define MDMA_CESR_TEMD (9) /* Bit 9: Transfer error mask data */
#define MDMA_CESR_ASE (10) /* Bit 10: Address/size error */
#define MDMA_CESR_BSE (11) /* Bit 11: Block size error */
/* MDMA channel x control register */
#define MDMA_CCR_EN (0) /* Bit 0: Channel enable / flag channel ready */
#define MDMA_CCR_TEIE (1) /* Bit 1: Transfer error interrupt enable */
#define MDMA_CCR_CTCIE (2) /* Bit 2: Channel transfer complete interrupt enable */
#define MDMA_CCR_BRTIE (3) /* Bit 3: Block repeat transfer interrupt enable */
#define MDMA_CCR_BTIE (4) /* Bit 4: Block transfer interrupt enable */
#define MDMA_CCR_TCIE (5) /* Bit 5: Buffer transfer complete interrupt enable */
#define MDMA_CCR_PL_SHIFT (6) /* Bis 6-7: Priority level */
#define MDMA_CCR_PL_MASK (3 << MDMA_CCR_PL_SHIFT)
# define MDMA_CCR_PRILO (0 << MDMA_CCR_PL_SHIFT) /* 00: Low */
# define MDMA_CCR_PRIMED (1 << MDMA_CCR_PL_SHIFT) /* 01: Medium */
# define MDMA_CCR_PRIHI (2 << MDMA_CCR_PL_SHIFT) /* 10: High */
# define MDMA_CCR_PRIVERYHI (3 << MDMA_CCR_PL_SHIFT) /* 11: Very high */
#define MDMA_CCR_BEX (12) /* Bit 12: Byte endianness exchange */
#define MDMA_CCR_HEX (13) /* Bit 13: Half word endianness exchange */
#define MDMA_CCR_WEX (14) /* Bit 14: Word endianness exchange */
#define MDMA_CCR_SWRQ (16) /* Bit 16: Software request */
/* MDMA channel x transfer configuration register */
#define MDMA_CTCR_SINC_SHIFT (0) /* Bits 0-1: Source increment mode */
#define MDMA_CTCR_SINC_MASK (3 << MDMA_CTCR_SINC_SHIFT)
# define MDMA_CTCR_SINC_FIXED (0 << MDMA_CTCR_SINC_SHIFT) /* 00: */
# define MDMA_CTCR_SINC_INCR (2 << MDMA_CTCR_SINC_SHIFT) /* 10: */
# define MDMA_CTCR_SINC_DECR (3 << MDMA_CTCR_SINC_SHIFT) /* 11: */
#define MDMA_CTCR_DINC_SHIFT (2) /* Bits 2-3: Destination increment mode */
#define MDMA_CTCR_DINC_MASK (3 << MDMA_CTCR_DINC_SHIFT)
# define MDMA_CTCR_DINC_FIXED (0 << MDMA_CTCR_DINC_SHIFT) /* 00: */
# define MDMA_CTCR_DINC_INCR (2 << MDMA_CTCR_DINC_SHIFT) /* 10: */
# define MDMA_CTCR_DINC_DECR (3 << MDMA_CTCR_DINC_SHIFT) /* 11: */
#define MDMA_CTCR_SSIZE_SHIFT (4) /* Bits 4-5: Source data size */
#define MDMA_CTCR_SSIZE_MASK (3 << MDMA_CTCR_SSIZE_SHIFT)
# define MDMA_CTCR_SSIZE_8BITS (0 << MDMA_CTCR_SSIZE_SHIFT) /* 00: */
# define MDMA_CTCR_SSIZE_16BITS (1 << MDMA_CTCR_SSIZE_SHIFT) /* 01: */
# define MDMA_CTCR_SSIZE_32BITS (2 << MDMA_CTCR_SSIZE_SHIFT) /* 10: */
# define MDMA_CTCR_SSIZE_64BITS (3 << MDMA_CTCR_SSIZE_SHIFT) /* 11: */
#define MDMA_CTCR_DSIZE_SHIFT (6) /* Bits 6-7: Destination data size */
#define MDMA_CTCR_DSIZE_MASK (3 << MDMA_CTCR_DSIZE_SHIFT)
# define MDMA_CTCR_DSIZE_8BITS (0 << MDMA_CTCR_DSIZE_SHIFT) /* 00: */
# define MDMA_CTCR_DSIZE_16BITS (1 << MDMA_CTCR_DSIZE_SHIFT) /* 01: */
# define MDMA_CTCR_DSIZE_32BITS (2 << MDMA_CTCR_DSIZE_SHIFT) /* 10: */
# define MDMA_CTCR_DSIZE_64BITS (3 << MDMA_CTCR_DSIZE_SHIFT) /* 11: */
#define MDMA_CTCR_SINCOS_SHIFT (8) /* Bits 8-9: Source increment offset size */
#define MDMA_CTCR_SINCOS_MASK (3 << MDMA_CTCR_SINCOS_SHIFT)
# define MDMA_CTCR_SINCOS_8BITS (0 << MDMA_CTCR_SINCOS_SHIFT) /* 00: */
# define MDMA_CTCR_SINCOS_16BITS (1 << MDMA_CTCR_SINCOS_SHIFT) /* 01: */
# define MDMA_CTCR_SINCOS_32BITS (2 << MDMA_CTCR_SINCOS_SHIFT) /* 10: */
# define MDMA_CTCR_SINCOS_64BITS (3 << MDMA_CTCR_SINCOS_SHIFT) /* 11: */
#define MDMA_CTCR_DINCOS_SHIFT (10) /* Bits 10-11: Destination increment offset size */
#define MDMA_CTCR_DINCOS_MASK (7 << MDMA_CTCR_DINCOS_SHIFT)
# define MDMA_CTCR_DINCOS_8BITS (0 << MDMA_CTCR_DINCOS_SHIFT) /* 00: */
# define MDMA_CTCR_DINCOS_16BITS (1 << MDMA_CTCR_DINCOS_SHIFT) /* 01: */
# define MDMA_CTCR_DINCOS_32BITS (2 << MDMA_CTCR_DINCOS_SHIFT) /* 10: */
# define MDMA_CTCR_DINCOS_64BITS (3 << MDMA_CTCR_DINCOS_SHIFT) /* 11: */
#define MDMA_CTCR_SBURST_SHIFT (12) /* Bits 12-14: Source burst transfer configuration */
#define MDMA_CTCR_SBURST_MASK (7 << MDMA_CTCR_SBURST_SHIFT)
# define MDMA_CTCR_SBURST_1 (0 << MDMA_CTCR_SBURST_SHIFT) /* 000: */
# define MDMA_CTCR_SBURST_2 (1 << MDMA_CTCR_SBURST_SHIFT) /* 001: */
# define MDMA_CTCR_SBURST_4 (2 << MDMA_CTCR_SBURST_SHIFT) /* 010: */
# define MDMA_CTCR_SBURST_8 (3 << MDMA_CTCR_SBURST_SHIFT) /* 011: */
# define MDMA_CTCR_SBURST_16 (4 << MDMA_CTCR_SBURST_SHIFT) /* 100: */
# define MDMA_CTCR_SBURST_32 (5 << MDMA_CTCR_SBURST_SHIFT) /* 101: */
# define MDMA_CTCR_SBURST_64 (6 << MDMA_CTCR_SBURST_SHIFT) /* 110: */
# define MDMA_CTCR_SBURST_128 (7 << MDMA_CTCR_SBURST_SHIFT) /* 111: */
#define MDMA_CTCR_DBURST_SHIFT (15) /* Bits 15-16: Destination burst transfer configuration */
#define MDMA_CTCR_DBURST_MASK (7 << MDMA_CTCR_DBURST_SHIFT)
# define MDMA_CTCR_DBURST_1 (0 << MDMA_CTCR_DBURST_SHIFT) /* 000: */
# define MDMA_CTCR_DBURST_2 (1 << MDMA_CTCR_DBURST_SHIFT) /* 001: */
# define MDMA_CTCR_DBURST_4 (2 << MDMA_CTCR_DBURST_SHIFT) /* 010: */
# define MDMA_CTCR_DBURST_8 (3 << MDMA_CTCR_DBURST_SHIFT) /* 011: */
# define MDMA_CTCR_DBURST_16 (4 << MDMA_CTCR_DBURST_SHIFT) /* 100: */
# define MDMA_CTCR_DBURST_32 (5 << MDMA_CTCR_DBURST_SHIFT) /* 101: */
# define MDMA_CTCR_DBURST_64 (6 << MDMA_CTCR_DBURST_SHIFT) /* 110: */
# define MDMA_CTCR_DBURST_128 (7 << MDMA_CTCR_DBURST_SHIFT) /* 111: */
#define MDMA_CTCR_TLEN_SHIFT (18) /* Bits 18-24: Buffer transfer length - 1 */
#define MDMA_CTCR_TLEN_MASK (0x7f << MDMA_CTCR_TLEN_SHIFT)
# define MDMA_CTCR_TLEN(len) (((len-1) << MDMA_CTCR_TLEN_SHIFT) & MDMA_CTCR_TLEN_MASK)
#define MDMA_CTCR_PKE (25) /* Bit 25: Pack enable */
#define MDMA_CTCR_PAM_SHIFT (26) /* Bits 26-27: Padding/alignment mode */
#define MDMA_CTCR_PAM_MASK (3 << MDMA_CTCR_PAM_SHIFT)
# define MDMA_CTCR_PAM_RIGHT (0 << MDMA_CTCR_PAM_SHIFT) /* 00: */
# define MDMA_CTCR_PAM_SINRIGHT (1 << MDMA_CTCR_PAM_SHIFT) /* 01: */
# define MDMA_CTCR_PAM_LEFT (2 << MDMA_CTCR_PAM_SHIFT) /* 10: */
#define MDMA_CTCR_TRGM_SHIFT (28) /* Bits 28-29: Trigger mode */
#define MDMA_CTCR_TRGM_MASK (3 << MDMA_CTCR_TRGM_SHIFT)
# define MDMA_CTCR_TRGM_BUFFER (0 << MDMA_CTCR_TRGM_SHIFT) /* 00: */
# define MDMA_CTCR_TRGM_BLOCK (1 << MDMA_CTCR_TRGM_SHIFT) /* 01: */
# define MDMA_CTCR_TRGM_RBLOCK (2 << MDMA_CTCR_TRGM_SHIFT) /* 10: */
# define MDMA_CTCR_TRGM_DATA (3 << MDMA_CTCR_TRGM_SHIFT) /* 11: */
#define MDMA_CTCR_SWRM (30) /* Bit 30: Software request mode */
#define MDMA_CTCR_BWM (31) /* Bit 31: Bufferable write mode */
/* MDMA channel x block number of data register */
#define MDMA_CBNDTR_BNDT_SHIFT (0) /* Bits 0-16: Block number of data bytes to transfer */
#define MDMA_CBNDTR_BNDT_MASK (0x1ffff << MDMA_CBNDTR_BNDT_SHIFT)
#define MDMA_CBNDTR_BRSUM (18) /* Bit 18: Block repeat source address update mode */
#define MDMA_CBNDTR_BRDUM (19) /* Bit 19: Block repeat destination address update mode */
#define MDMA_CBNDTR_BRC_SHIFT (20) /* Bits 20-31: Block repeat count */
#define MDMA_CBNDTR_BRC_MASK (0xfff << MDMA_CBNDTR_BNDT_SHIFT)
/* MDMA channel x block repeat address update register */
#define MDMA_CBRUR_SUV_SHIFT (0) /* Bits 0-15: Source address update value */
#define MDMA_CBRUR_SUV_MASK (0xff << MDMA_CBRUR_SUV_SHIFT)
#define MDMA_CBRUR_DUV_SHIFT (16) /* Bits 16-31: Destination address update value */
#define MDMA_CBRUR_DUV_MASK (0xff << MDMA_CBRUR_DUV_SHIFT)
/* MDMA channel x trigger and bus selection register */
#define MDMA_TSEL_SHIFT (0) /* Bits 0-5: Trigger selection */
#define MDMA_TSEL_MASK (0x3f << MDMA_TSEL_SHIFT)
#define MDMA_TSEL_SBUS (16) /* Bit 16: Source BUS select */
#define MDMA_TSEL_DBUS (17) /* Bit 16: Destination BUS select */
#endif /* __ARCH_ARM_SRC_STM32H7_HARDWARE_STM32_MDMA_H */