This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 1f53575192 arch/arm/stm32h5: GPDMA Hardware files
1f53575192 is described below

commit 1f535751920fb333d762f60e0110daaf98d23196
Author: Tyler Bennett <tbenn...@2g-eng.com>
AuthorDate: Tue Apr 15 12:07:19 2025 -0500

    arch/arm/stm32h5: GPDMA Hardware files
    
    Add the hardware register definition file for the GPDMA peripheral.
    This is necessary to support implementing dma driver in the future.
    
    Also adds skeleton arch dma header that includes the hardware file.
    
    Signed-off-by: Tyler Bennett <tbenn...@2g-eng.com>
---
 arch/arm/src/stm32h5/hardware/stm32_gpdma.h | 553 ++++++++++++++++++++++++++++
 arch/arm/src/stm32h5/stm32_dma.h            |  64 ++++
 2 files changed, 617 insertions(+)

diff --git a/arch/arm/src/stm32h5/hardware/stm32_gpdma.h 
b/arch/arm/src/stm32h5/hardware/stm32_gpdma.h
new file mode 100644
index 0000000000..1e4b276008
--- /dev/null
+++ b/arch/arm/src/stm32h5/hardware/stm32_gpdma.h
@@ -0,0 +1,553 @@
+/****************************************************************************
+ * arch/arm/src/stm32h5/hardware/stm32_gpdma.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * 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_STM32H5_HARDWARE_STM32_GPDMA_H
+#define __ARCH_ARM_SRC_STM32H5_HARDWARE_STM32_GPDMA_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include "chip.h"
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* Register Offsets *********************************************************/
+
+#define STM32_GPDMA_SECCFGR_OFFSET      0x0000
+#define STM32_GPDMA_PRIVCFGR_OFFSET     0x0004
+#define STM32_GPDMA_RCFGLOCKR_OFFSET    0x0008
+#define STM32_GPDMA_MISR_OFFSET         0x000C
+#define STM32_GPDMA_SMISR_OFFSET        0x0010
+#define STM32_GPDMA_CXLBAR_OFFSET(x)    (0x50+0x80*(x))
+#  define STM32_GPDMA_C0LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(0)
+#  define STM32_GPDMA_C1LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(1)
+#  define STM32_GPDMA_C2LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(2)
+#  define STM32_GPDMA_C3LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(3)
+#  define STM32_GPDMA_C4LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(4)
+#  define STM32_GPDMA_C5LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(5)
+#  define STM32_GPDMA_C6LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(6)
+#  define STM32_GPDMA_C7LBAR_OFFSET     STM32_GPDMA_CXLBAR_OFFSET(7)
+#define STM32_GPDMA_CXFCR_OFFSET(x)     (0x5C+0x80*(x))
+#  define STM32_GPDMA_C0FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(0)
+#  define STM32_GPDMA_C1FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(1)
+#  define STM32_GPDMA_C2FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(2)
+#  define STM32_GPDMA_C3FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(3)
+#  define STM32_GPDMA_C4FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(4)
+#  define STM32_GPDMA_C5FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(5)
+#  define STM32_GPDMA_C6FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(6)
+#  define STM32_GPDMA_C7FCR_OFFSET      STM32_GPDMA_CXFCR_OFFSET(7)
+#define STM32_GPDMA_CXSR_OFFSET(x)      (0x60+0x80*(x))
+#  define STM32_GPDMA_C0SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(0)
+#  define STM32_GPDMA_C1SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(1)
+#  define STM32_GPDMA_C2SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(2)
+#  define STM32_GPDMA_C3SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(3)
+#  define STM32_GPDMA_C4SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(4)
+#  define STM32_GPDMA_C5SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(5)
+#  define STM32_GPDMA_C6SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(6)
+#  define STM32_GPDMA_C7SR_OFFSET       STM32_GPDMA_CXSR_OFFSET(7)
+#define STM32_GPDMA_CXCR_OFFSET(x)      (0x64+0x80*(x))
+#  define STM32_GPDMA_C0CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(0)
+#  define STM32_GPDMA_C1CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(1)
+#  define STM32_GPDMA_C2CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(2)
+#  define STM32_GPDMA_C3CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(3)
+#  define STM32_GPDMA_C4CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(4)
+#  define STM32_GPDMA_C5CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(5)
+#  define STM32_GPDMA_C6CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(6)
+#  define STM32_GPDMA_C7CR_OFFSET       STM32_GPDMA_CXCR_OFFSET(7)
+#define STM32_GPDMA_CXTR1_OFFSET(x)     (0x90+0x80*(x))
+#  define STM32_GPDMA_C0TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(0)
+#  define STM32_GPDMA_C1TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(1)
+#  define STM32_GPDMA_C2TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(2)
+#  define STM32_GPDMA_C3TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(3)
+#  define STM32_GPDMA_C4TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(4)
+#  define STM32_GPDMA_C5TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(5)
+#  define STM32_GPDMA_C6TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(6)
+#  define STM32_GPDMA_C7TR1_OFFSET      STM32_GPDMA_CXTR1_OFFSET(7)
+#define STM32_GPDMA_CXTR2_OFFSET(x)     (0x94+0x80*(x))
+#  define STM32_GPDMA_C0TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(0)
+#  define STM32_GPDMA_C1TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(1)
+#  define STM32_GPDMA_C2TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(2)
+#  define STM32_GPDMA_C3TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(3)
+#  define STM32_GPDMA_C4TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(4)
+#  define STM32_GPDMA_C5TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(5)
+#  define STM32_GPDMA_C6TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(6)
+#  define STM32_GPDMA_C7TR2_OFFSET      STM32_GPDMA_CXTR2_OFFSET(7)
+#define STM32_GPDMA_CXBR1_OFFSET(x)     (0x98+0x80*(x))
+#  define STM32_GPDMA_C0BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(0)
+#  define STM32_GPDMA_C1BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(1)
+#  define STM32_GPDMA_C2BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(2)
+#  define STM32_GPDMA_C3BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(3)
+#  define STM32_GPDMA_C4BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(4)
+#  define STM32_GPDMA_C5BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(5)
+#  define STM32_GPDMA_C6BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(6)
+#  define STM32_GPDMA_C7BR1_OFFSET      STM32_GPDMA_CXBR1_OFFSET(7)
+#define STM32_GPDMA_CXSAR_OFFSET(x)     (0x9C+0x80*(x))
+#  define STM32_GPDMA_C0SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(0)
+#  define STM32_GPDMA_C1SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(1)
+#  define STM32_GPDMA_C2SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(2)
+#  define STM32_GPDMA_C3SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(3)
+#  define STM32_GPDMA_C4SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(4)
+#  define STM32_GPDMA_C5SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(5)
+#  define STM32_GPDMA_C6SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(6)
+#  define STM32_GPDMA_C7SAR_OFFSET      STM32_GPDMA_CXSAR_OFFSET(7)
+#define STM32_GPDMA_CXDAR_OFFSET(x)     (0xA0+0x80*(x))
+#  define STM32_GPDMA_C0DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(0)
+#  define STM32_GPDMA_C1DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(1)
+#  define STM32_GPDMA_C2DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(2)
+#  define STM32_GPDMA_C3DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(3)
+#  define STM32_GPDMA_C4DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(4)
+#  define STM32_GPDMA_C5DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(5)
+#  define STM32_GPDMA_C6DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(6)
+#  define STM32_GPDMA_C7DAR_OFFSET      STM32_GPDMA_CXDAR_OFFSET(7)
+#define STM32_GPDMA_CXTR3_OFFSET(x)     (0xA4+0x80*(x))
+#  define STM32_GPDMA_C6TR3_OFFSET      STM32_GPDMA_CXTR3_OFFSET(6)
+#  define STM32_GPDMA_C7TR3_OFFSET      STM32_GPDMA_CXTR3_OFFSET(7)
+#define STM32_GPDMA_CXBR2_OFFSET(x)     (0xA8+0x80*(x))
+#  define STM32_GPDMA_C6BR2_OFFSET      STM32_GPDMA_CXBR2_OFFSET(6)
+#  define STM32_GPDMA_C7BR2_OFFSET      STM32_GPDMA_CXBR2_OFFSET(7)
+#define STM32_GPDMA_CXLLR_OFFSET(x)     (0xCC+0x80*(x))
+#  define STM32_GPDMA_C0LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(0)
+#  define STM32_GPDMA_C1LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(1)
+#  define STM32_GPDMA_C2LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(2)
+#  define STM32_GPDMA_C3LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(3)
+#  define STM32_GPDMA_C4LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(4)
+#  define STM32_GPDMA_C5LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(5)
+#  define STM32_GPDMA_C6LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(6)
+#  define STM32_GPDMA_C7LLR_OFFSET      STM32_GPDMA_CXLLR_OFFSET(7)
+
+/* Register Addresses *******************************************************/
+
+/* GPDMA1 */
+
+#define STM32_GPDMA1_SECCFGR            
(STM32_DMA1_BASE+STM32_GPDMA_SECCFGR_OFFSET)
+#define STM32_GPDMA1_PRIVCFGR           
(STM32_DMA1_BASE+STM32_GPDMA_PRIVCFGR_OFFSET)
+#define STM32_GPDMA1_RCFGLOCKR          
(STM32_DMA1_BASE+STM32_GPDMA_RCFGLOCKR_OFFSET)
+#define STM32_GPDMA1_MISR               
(STM32_DMA1_BASE+STM32_GPDMA_MISR_OFFSET)
+#define STM32_GPDMA1_SMISR              
(STM32_DMA1_BASE+STM32_GPDMA_SMISR_OFFSET)
+#define STM32_GPDMA1_CXLBAR(x)          
(STM32_DMA1_BASE+STM32_GPDMA_CXLBAR_OFFSET(x))
+#  define STM32_GPDMA1_C0LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C0LBAR_OFFSET)
+#  define STM32_GPDMA1_C1LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C1LBAR_OFFSET)
+#  define STM32_GPDMA1_C2LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C2LBAR_OFFSET)
+#  define STM32_GPDMA1_C3LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C3LBAR_OFFSET)
+#  define STM32_GPDMA1_C4LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C4LBAR_OFFSET)
+#  define STM32_GPDMA1_C5LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C5LBAR_OFFSET)
+#  define STM32_GPDMA1_C6LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C6LBAR_OFFSET)
+#  define STM32_GPDMA1_C7LBAR           
(STM32_DMA1_BASE+STM32_GPDMA_C7LBAR_OFFSET)
+#define STM32_GPDMA1_CXFCR(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXFCR_OFFSET(x))
+#  define STM32_GPDMA1_C0FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C0FCR_OFFSET)
+#  define STM32_GPDMA1_C1FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C1FCR_OFFSET)
+#  define STM32_GPDMA1_C2FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C2FCR_OFFSET)
+#  define STM32_GPDMA1_C3FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C3FCR_OFFSET)
+#  define STM32_GPDMA1_C4FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C4FCR_OFFSET)
+#  define STM32_GPDMA1_C5FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C5FCR_OFFSET)
+#  define STM32_GPDMA1_C6FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C6FCR_OFFSET)
+#  define STM32_GPDMA1_C7FCR            
(STM32_DMA1_BASE+STM32_GPDMA_C7FCR_OFFSET)
+#define STM32_GPDMA1_CXSR(x)            
(STM32_DMA1_BASE+STM32_GPDMA_CXSR_OFFSET(x))
+#  define STM32_GPDMA1_C0SR             
(STM32_DMA1_BASE+STM32_GPDMA_C0SR_OFFSET)
+#  define STM32_GPDMA1_C1SR             
(STM32_DMA1_BASE+STM32_GPDMA_C1SR_OFFSET)
+#  define STM32_GPDMA1_C2SR             
(STM32_DMA1_BASE+STM32_GPDMA_C2SR_OFFSET)
+#  define STM32_GPDMA1_C3SR             
(STM32_DMA1_BASE+STM32_GPDMA_C3SR_OFFSET)
+#  define STM32_GPDMA1_C4SR             
(STM32_DMA1_BASE+STM32_GPDMA_C4SR_OFFSET)
+#  define STM32_GPDMA1_C5SR             
(STM32_DMA1_BASE+STM32_GPDMA_C5SR_OFFSET)
+#  define STM32_GPDMA1_C6SR             
(STM32_DMA1_BASE+STM32_GPDMA_C6SR_OFFSET)
+#  define STM32_GPDMA1_C7SR             
(STM32_DMA1_BASE+STM32_GPDMA_C7SR_OFFSET)
+#define STM32_GPDMA1_CXCR(x)            
(STM32_DMA1_BASE+STM32_GPDMA_CXCR_OFFSET(x))
+#  define STM32_GPDMA1_C0CR             
(STM32_DMA1_BASE+STM32_GPDMA_C0CR_OFFSET)
+#  define STM32_GPDMA1_C1CR             
(STM32_DMA1_BASE+STM32_GPDMA_C1CR_OFFSET)
+#  define STM32_GPDMA1_C2CR             
(STM32_DMA1_BASE+STM32_GPDMA_C2CR_OFFSET)
+#  define STM32_GPDMA1_C3CR             
(STM32_DMA1_BASE+STM32_GPDMA_C3CR_OFFSET)
+#  define STM32_GPDMA1_C4CR             
(STM32_DMA1_BASE+STM32_GPDMA_C4CR_OFFSET)
+#  define STM32_GPDMA1_C5CR             
(STM32_DMA1_BASE+STM32_GPDMA_C5CR_OFFSET)
+#  define STM32_GPDMA1_C6CR             
(STM32_DMA1_BASE+STM32_GPDMA_C6CR_OFFSET)
+#  define STM32_GPDMA1_C7CR             
(STM32_DMA1_BASE+STM32_GPDMA_C7CR_OFFSET)
+#define STM32_GPDMA1_CXTR1(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXTR1_OFFSET(x))
+#  define STM32_GPDMA1_C0TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C0TR1_OFFSET)
+#  define STM32_GPDMA1_C1TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C1TR1_OFFSET)
+#  define STM32_GPDMA1_C2TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C2TR1_OFFSET)
+#  define STM32_GPDMA1_C3TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C3TR1_OFFSET)
+#  define STM32_GPDMA1_C4TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C4TR1_OFFSET)
+#  define STM32_GPDMA1_C5TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C5TR1_OFFSET)
+#  define STM32_GPDMA1_C6TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C6TR1_OFFSET)
+#  define STM32_GPDMA1_C7TR1            
(STM32_DMA1_BASE+STM32_GPDMA_C7TR1_OFFSET)
+#define STM32_GPDMA1_CXTR2(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXTR2_OFFSET(x))
+#  define STM32_GPDMA1_C0TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C0TR2_OFFSET)
+#  define STM32_GPDMA1_C1TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C1TR2_OFFSET)
+#  define STM32_GPDMA1_C2TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C2TR2_OFFSET)
+#  define STM32_GPDMA1_C3TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C3TR2_OFFSET)
+#  define STM32_GPDMA1_C4TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C4TR2_OFFSET)
+#  define STM32_GPDMA1_C5TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C5TR2_OFFSET)
+#  define STM32_GPDMA1_C6TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C6TR2_OFFSET)
+#  define STM32_GPDMA1_C7TR2            
(STM32_DMA1_BASE+STM32_GPDMA_C7TR2_OFFSET)
+#define STM32_GPDMA1_CXBR1(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXBR1_OFFSET(x))
+#  define STM32_GPDMA1_C0BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C0BR1_OFFSET)
+#  define STM32_GPDMA1_C1BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C1BR1_OFFSET)
+#  define STM32_GPDMA1_C2BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C2BR1_OFFSET)
+#  define STM32_GPDMA1_C3BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C3BR1_OFFSET)
+#  define STM32_GPDMA1_C4BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C4BR1_OFFSET)
+#  define STM32_GPDMA1_C5BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C5BR1_OFFSET)
+#  define STM32_GPDMA1_C6BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C6BR1_OFFSET)
+#  define STM32_GPDMA1_C7BR1            
(STM32_DMA1_BASE+STM32_GPDMA_C7BR1_OFFSET)
+#define STM32_GPDMA1_CXSAR(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXSAR_OFFSET(x))
+#  define STM32_GPDMA1_C0SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C0SAR_OFFSET)
+#  define STM32_GPDMA1_C1SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C1SAR_OFFSET)
+#  define STM32_GPDMA1_C2SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C2SAR_OFFSET)
+#  define STM32_GPDMA1_C3SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C3SAR_OFFSET)
+#  define STM32_GPDMA1_C4SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C4SAR_OFFSET)
+#  define STM32_GPDMA1_C5SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C5SAR_OFFSET)
+#  define STM32_GPDMA1_C6SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C6SAR_OFFSET)
+#  define STM32_GPDMA1_C7SAR            
(STM32_DMA1_BASE+STM32_GPDMA_C7SAR_OFFSET)
+#define STM32_GPDMA1_CXDAR(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXDAR_OFFSET(x))
+#  define STM32_GPDMA1_C0DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C0DAR_OFFSET)
+#  define STM32_GPDMA1_C1DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C1DAR_OFFSET)
+#  define STM32_GPDMA1_C2DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C2DAR_OFFSET)
+#  define STM32_GPDMA1_C3DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C3DAR_OFFSET)
+#  define STM32_GPDMA1_C4DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C4DAR_OFFSET)
+#  define STM32_GPDMA1_C5DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C5DAR_OFFSET)
+#  define STM32_GPDMA1_C6DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C6DAR_OFFSET)
+#  define STM32_GPDMA1_C7DAR            
(STM32_DMA1_BASE+STM32_GPDMA_C7DAR_OFFSET)
+#define STM32_GPDMA1_CXTR3(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXTR3_OFFSET(x))
+#  define STM32_GPDMA1_C6TR3            
(STM32_DMA1_BASE+STM32_GPDMA_C6TR3_OFFSET)
+#  define STM32_GPDMA1_C7TR3            
(STM32_DMA1_BASE+STM32_GPDMA_C7TR3_OFFSET)
+#define STM32_GPDMA1_CXBR2(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXBR2_OFFSET(x))
+#  define STM32_GPDMA1_C6BR2            
(STM32_DMA1_BASE+STM32_GPDMA_C6BR2_OFFSET)
+#  define STM32_GPDMA1_C7BR2            
(STM32_DMA1_BASE+STM32_GPDMA_C7BR2_OFFSET)
+#define STM32_GPDMA1_CXLLR(x)           
(STM32_DMA1_BASE+STM32_GPDMA_CXLLR_OFFSET(x))
+#  define STM32_GPDMA1_C0LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C0LLR_OFFSET)
+#  define STM32_GPDMA1_C1LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C1LLR_OFFSET)
+#  define STM32_GPDMA1_C2LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C2LLR_OFFSET)
+#  define STM32_GPDMA1_C3LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C3LLR_OFFSET)
+#  define STM32_GPDMA1_C4LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C4LLR_OFFSET)
+#  define STM32_GPDMA1_C5LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C5LLR_OFFSET)
+#  define STM32_GPDMA1_C6LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C6LLR_OFFSET)
+#  define STM32_GPDMA1_C7LLR            
(STM32_DMA1_BASE+STM32_GPDMA_C7LLR_OFFSET)
+
+/* GPDMA2 */
+
+#define STM32_GPDMA2_SECCFGR            
(STM32_DMA2_BASE+STM32_GPDMA_SECCFGR_OFFSET)
+#define STM32_GPDMA2_PRIVCFGR           
(STM32_DMA2_BASE+STM32_GPDMA_PRIVCFGR_OFFSET)
+#define STM32_GPDMA2_RCFGLOCKR          
(STM32_DMA2_BASE+STM32_GPDMA_RCFGLOCKR_OFFSET)
+#define STM32_GPDMA2_MISR               
(STM32_DMA2_BASE+STM32_GPDMA_MISR_OFFSET)
+#define STM32_GPDMA2_SMISR              
(STM32_DMA2_BASE+STM32_GPDMA_SMISR_OFFSET)
+#define STM32_GPDMA2_CXLBAR(x)          
(STM32_DMA2_BASE+STM32_GPDMA_CXLBAR_OFFSET(x))
+#  define STM32_GPDMA2_C0LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C0LBAR_OFFSET)
+#  define STM32_GPDMA2_C1LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C1LBAR_OFFSET)
+#  define STM32_GPDMA2_C2LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C2LBAR_OFFSET)
+#  define STM32_GPDMA2_C3LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C3LBAR_OFFSET)
+#  define STM32_GPDMA2_C4LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C4LBAR_OFFSET)
+#  define STM32_GPDMA2_C5LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C5LBAR_OFFSET)
+#  define STM32_GPDMA2_C6LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C6LBAR_OFFSET)
+#  define STM32_GPDMA2_C7LBAR           
(STM32_DMA2_BASE+STM32_GPDMA_C7LBAR_OFFSET)
+#define STM32_GPDMA2_CXFCR(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXFCR_OFFSET(x))
+#  define STM32_GPDMA2_C0FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C0FCR_OFFSET)
+#  define STM32_GPDMA2_C1FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C1FCR_OFFSET)
+#  define STM32_GPDMA2_C2FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C2FCR_OFFSET)
+#  define STM32_GPDMA2_C3FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C3FCR_OFFSET)
+#  define STM32_GPDMA2_C4FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C4FCR_OFFSET)
+#  define STM32_GPDMA2_C5FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C5FCR_OFFSET)
+#  define STM32_GPDMA2_C6FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C6FCR_OFFSET)
+#  define STM32_GPDMA2_C7FCR            
(STM32_DMA2_BASE+STM32_GPDMA_C7FCR_OFFSET)
+#define STM32_GPDMA2_CXSR(x)            
(STM32_DMA2_BASE+STM32_GPDMA_CXSR_OFFSET(x))
+#  define STM32_GPDMA2_C0SR             
(STM32_DMA2_BASE+STM32_GPDMA_C0SR_OFFSET)
+#  define STM32_GPDMA2_C1SR             
(STM32_DMA2_BASE+STM32_GPDMA_C1SR_OFFSET)
+#  define STM32_GPDMA2_C2SR             
(STM32_DMA2_BASE+STM32_GPDMA_C2SR_OFFSET)
+#  define STM32_GPDMA2_C3SR             
(STM32_DMA2_BASE+STM32_GPDMA_C3SR_OFFSET)
+#  define STM32_GPDMA2_C4SR             
(STM32_DMA2_BASE+STM32_GPDMA_C4SR_OFFSET)
+#  define STM32_GPDMA2_C5SR             
(STM32_DMA2_BASE+STM32_GPDMA_C5SR_OFFSET)
+#  define STM32_GPDMA2_C6SR             
(STM32_DMA2_BASE+STM32_GPDMA_C6SR_OFFSET)
+#  define STM32_GPDMA2_C7SR             
(STM32_DMA2_BASE+STM32_GPDMA_C7SR_OFFSET)
+#define STM32_GPDMA2_CXCR(x)            
(STM32_DMA2_BASE+STM32_GPDMA_CXCR_OFFSET(x))
+#  define STM32_GPDMA2_C0CR             
(STM32_DMA2_BASE+STM32_GPDMA_C0CR_OFFSET)
+#  define STM32_GPDMA2_C1CR             
(STM32_DMA2_BASE+STM32_GPDMA_C1CR_OFFSET)
+#  define STM32_GPDMA2_C2CR             
(STM32_DMA2_BASE+STM32_GPDMA_C2CR_OFFSET)
+#  define STM32_GPDMA2_C3CR             
(STM32_DMA2_BASE+STM32_GPDMA_C3CR_OFFSET)
+#  define STM32_GPDMA2_C4CR             
(STM32_DMA2_BASE+STM32_GPDMA_C4CR_OFFSET)
+#  define STM32_GPDMA2_C5CR             
(STM32_DMA2_BASE+STM32_GPDMA_C5CR_OFFSET)
+#  define STM32_GPDMA2_C6CR             
(STM32_DMA2_BASE+STM32_GPDMA_C6CR_OFFSET)
+#  define STM32_GPDMA2_C7CR             
(STM32_DMA2_BASE+STM32_GPDMA_C7CR_OFFSET)
+#define STM32_GPDMA2_CXTR1(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXTR1_OFFSET(x))
+#  define STM32_GPDMA2_C0TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C0TR1_OFFSET)
+#  define STM32_GPDMA2_C1TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C1TR1_OFFSET)
+#  define STM32_GPDMA2_C2TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C2TR1_OFFSET)
+#  define STM32_GPDMA2_C3TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C3TR1_OFFSET)
+#  define STM32_GPDMA2_C4TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C4TR1_OFFSET)
+#  define STM32_GPDMA2_C5TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C5TR1_OFFSET)
+#  define STM32_GPDMA2_C6TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C6TR1_OFFSET)
+#  define STM32_GPDMA2_C7TR1            
(STM32_DMA2_BASE+STM32_GPDMA_C7TR1_OFFSET)
+#define STM32_GPDMA2_CXTR2(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXTR2_OFFSET(x))
+#  define STM32_GPDMA2_C0TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C0TR2_OFFSET)
+#  define STM32_GPDMA2_C1TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C1TR2_OFFSET)
+#  define STM32_GPDMA2_C2TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C2TR2_OFFSET)
+#  define STM32_GPDMA2_C3TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C3TR2_OFFSET)
+#  define STM32_GPDMA2_C4TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C4TR2_OFFSET)
+#  define STM32_GPDMA2_C5TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C5TR2_OFFSET)
+#  define STM32_GPDMA2_C6TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C6TR2_OFFSET)
+#  define STM32_GPDMA2_C7TR2            
(STM32_DMA2_BASE+STM32_GPDMA_C7TR2_OFFSET)
+#define STM32_GPDMA2_CXBR1(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXBR1_OFFSET(x))
+#  define STM32_GPDMA2_C0BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C0BR1_OFFSET)
+#  define STM32_GPDMA2_C1BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C1BR1_OFFSET)
+#  define STM32_GPDMA2_C2BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C2BR1_OFFSET)
+#  define STM32_GPDMA2_C3BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C3BR1_OFFSET)
+#  define STM32_GPDMA2_C4BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C4BR1_OFFSET)
+#  define STM32_GPDMA2_C5BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C5BR1_OFFSET)
+#  define STM32_GPDMA2_C6BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C6BR1_OFFSET)
+#  define STM32_GPDMA2_C7BR1            
(STM32_DMA2_BASE+STM32_GPDMA_C7BR1_OFFSET)
+#define STM32_GPDMA2_CXSAR(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXSAR_OFFSET(x))
+#  define STM32_GPDMA2_C0SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C0SAR_OFFSET)
+#  define STM32_GPDMA2_C1SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C1SAR_OFFSET)
+#  define STM32_GPDMA2_C2SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C2SAR_OFFSET)
+#  define STM32_GPDMA2_C3SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C3SAR_OFFSET)
+#  define STM32_GPDMA2_C4SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C4SAR_OFFSET)
+#  define STM32_GPDMA2_C5SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C5SAR_OFFSET)
+#  define STM32_GPDMA2_C6SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C6SAR_OFFSET)
+#  define STM32_GPDMA2_C7SAR            
(STM32_DMA2_BASE+STM32_GPDMA_C7SAR_OFFSET)
+#define STM32_GPDMA2_CXDAR(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXDAR_OFFSET(x))
+#  define STM32_GPDMA2_C0DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C0DAR_OFFSET)
+#  define STM32_GPDMA2_C1DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C1DAR_OFFSET)
+#  define STM32_GPDMA2_C2DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C2DAR_OFFSET)
+#  define STM32_GPDMA2_C3DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C3DAR_OFFSET)
+#  define STM32_GPDMA2_C4DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C4DAR_OFFSET)
+#  define STM32_GPDMA2_C5DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C5DAR_OFFSET)
+#  define STM32_GPDMA2_C6DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C6DAR_OFFSET)
+#  define STM32_GPDMA2_C7DAR            
(STM32_DMA2_BASE+STM32_GPDMA_C7DAR_OFFSET)
+#define STM32_GPDMA2_CXTR3(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXTR3_OFFSET(x))
+#  define STM32_GPDMA2_C6TR3            
(STM32_DMA2_BASE+STM32_GPDMA_C6TR3_OFFSET)
+#  define STM32_GPDMA2_C7TR3            
(STM32_DMA2_BASE+STM32_GPDMA_C7TR3_OFFSET)
+#define STM32_GPDMA2_CXBR2(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXBR2_OFFSET(x))
+#  define STM32_GPDMA2_C6BR2            
(STM32_DMA2_BASE+STM32_GPDMA_C6BR2_OFFSET)
+#  define STM32_GPDMA2_C7BR2            
(STM32_DMA2_BASE+STM32_GPDMA_C7BR2_OFFSET)
+#define STM32_GPDMA2_CXLLR(x)           
(STM32_DMA2_BASE+STM32_GPDMA_CXLLR_OFFSET(x))
+#  define STM32_GPDMA2_C0LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C0LLR_OFFSET)
+#  define STM32_GPDMA2_C1LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C1LLR_OFFSET)
+#  define STM32_GPDMA2_C2LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C2LLR_OFFSET)
+#  define STM32_GPDMA2_C3LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C3LLR_OFFSET)
+#  define STM32_GPDMA2_C4LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C4LLR_OFFSET)
+#  define STM32_GPDMA2_C5LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C5LLR_OFFSET)
+#  define STM32_GPDMA2_C6LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C6LLR_OFFSET)
+#  define STM32_GPDMA2_C7LLR            
(STM32_DMA2_BASE+STM32_GPDMA_C7LLR_OFFSET)
+
+/* Register Bitfield Definitions ********************************************/
+
+/* Secure configuration register */
+
+#define GPDMA_SECCFGR_SECX(x)       (1 << (x))
+#  define GPDMA_SECCFGR_SEC0        GPDMA_SECCFGR_SECX(0)
+#  define GPDMA_SECCFGR_SEC1        GPDMA_SECCFGR_SECX(1)
+#  define GPDMA_SECCFGR_SEC2        GPDMA_SECCFGR_SECX(2)
+#  define GPDMA_SECCFGR_SEC3        GPDMA_SECCFGR_SECX(3)
+#  define GPDMA_SECCFGR_SEC4        GPDMA_SECCFGR_SECX(4)
+#  define GPDMA_SECCFGR_SEC5        GPDMA_SECCFGR_SECX(5)
+#  define GPDMA_SECCFGR_SEC6        GPDMA_SECCFGR_SECX(6)
+#  define GPDMA_SECCFGR_SEC7        GPDMA_SECCFGR_SECX(7)
+
+/* Privileged configuration register */
+
+#define GPDMA_PRIVCFGR_PRIVX(x)     (1 << (x))
+#  define GPDMA_PRIVCFGR_PRIV0      GPDMA_PRIVCFGR_PRIVX(0)
+#  define GPDMA_PRIVCFGR_PRIV1      GPDMA_PRIVCFGR_PRIVX(1)
+#  define GPDMA_PRIVCFGR_PRIV2      GPDMA_PRIVCFGR_PRIVX(2)
+#  define GPDMA_PRIVCFGR_PRIV3      GPDMA_PRIVCFGR_PRIVX(3)
+#  define GPDMA_PRIVCFGR_PRIV4      GPDMA_PRIVCFGR_PRIVX(4)
+#  define GPDMA_PRIVCFGR_PRIV5      GPDMA_PRIVCFGR_PRIVX(5)
+#  define GPDMA_PRIVCFGR_PRIV6      GPDMA_PRIVCFGR_PRIVX(6)
+#  define GPDMA_PRIVCFGR_PRIV7      GPDMA_PRIVCFGR_PRIVX(7)
+
+/* Configuration lock register */
+
+#define GPDMA_RCFGLOCKR_LOCKX(x)    (1 << (x))
+#  define GPDMA_RCFGLOCKR_LOCK0     GPDMA_RCFGLOCKR_LOCKX(0)
+#  define GPDMA_RCFGLOCKR_LOCK1     GPDMA_RCFGLOCKR_LOCKX(1)
+#  define GPDMA_RCFGLOCKR_LOCK2     GPDMA_RCFGLOCKR_LOCKX(2)
+#  define GPDMA_RCFGLOCKR_LOCK3     GPDMA_RCFGLOCKR_LOCKX(3)
+#  define GPDMA_RCFGLOCKR_LOCK4     GPDMA_RCFGLOCKR_LOCKX(4)
+#  define GPDMA_RCFGLOCKR_LOCK5     GPDMA_RCFGLOCKR_LOCKX(5)
+#  define GPDMA_RCFGLOCKR_LOCK6     GPDMA_RCFGLOCKR_LOCKX(6)
+#  define GPDMA_RCFGLOCKR_LOCK7     GPDMA_RCFGLOCKR_LOCKX(7)
+
+/* Nonsecure masked interrupt status register */
+
+#define GPDMA_MISR_MISX(x)          (1 << (x))
+#  define GPDMA_MISR_MIS0           GPDMA_MISR_MISX(0)
+#  define GPDMA_MISR_MIS1           GPDMA_MISR_MISX(1)
+#  define GPDMA_MISR_MIS2           GPDMA_MISR_MISX(2)
+#  define GPDMA_MISR_MIS3           GPDMA_MISR_MISX(3)
+#  define GPDMA_MISR_MIS4           GPDMA_MISR_MISX(4)
+#  define GPDMA_MISR_MIS5           GPDMA_MISR_MISX(5)
+#  define GPDMA_MISR_MIS6           GPDMA_MISR_MISX(6)
+#  define GPDMA_MISR_MIS7           GPDMA_MISR_MISX(7)
+
+/* Secure masked interrupt status register */
+
+#define GPDMA_SMISR_MISX(x)         (1 << (x))
+#  define GPDMA_SMISR_MIS0          GPDMA_SMISR_MISX(0)
+#  define GPDMA_SMISR_MIS1          GPDMA_SMISR_MISX(1)
+#  define GPDMA_SMISR_MIS2          GPDMA_SMISR_MISX(2)
+#  define GPDMA_SMISR_MIS3          GPDMA_SMISR_MISX(3)
+#  define GPDMA_SMISR_MIS4          GPDMA_SMISR_MISX(4)
+#  define GPDMA_SMISR_MIS5          GPDMA_SMISR_MISX(5)
+#  define GPDMA_SMISR_MIS6          GPDMA_SMISR_MISX(6)
+#  define GPDMA_SMISR_MIS7          GPDMA_SMISR_MISX(7)
+
+/* Channel x linked-list base address register */
+
+#define GPDMA_CXLBAR_LBA_SHIFT        (16)
+#define GPDMA_CXLBAR_LBA_MASK         (0xffff << GPDMA_CXLBAR_LBA_SHIFT)
+
+/* Channel x flag clear register */
+
+#define GPDMA_CXFCR_TCF               (1 << 8)
+#define GPDMA_CXFCR_HTF               (1 << 9)
+#define GPDMA_CXFCR_DTEF              (1 << 10)
+#define GPDMA_CXFCR_ULEF              (1 << 11)
+#define GPDMA_CXFCR_USEF              (1 << 12)
+#define GPDMA_CXFCR_SUSPF             (1 << 13)
+#define GPDMA_CXFCR_TOF               (1 << 14)
+
+/* Channel x status register */
+
+#define GPDMA_CXSR_IDLEF              (1 << 0)  /* Idle flag */
+#define GPDMA_CXSR_TCF                (1 << 8)  /* Transfer complete flag */
+#define GPDMA_CXSR_HTF                (1 << 9)  /* Half transfer flag */
+#define GPDMA_CXSR_DTEF               (1 << 10) /* Data transfer error flag */
+#define GPDMA_CXSR_ULEF               (1 << 11) /* Update link transfer error 
flag */
+#define GPDMA_CXSR_USEF               (1 << 12) /* User setting error flag */
+#define GPDMA_CXSR_SUSPF              (1 << 13) /* Completed suspension flag */
+#define GPDMA_CXSR_TOF                (1 << 14) /* Trigger overrun flag */
+#define GPDMA_CXSR_FIFOL_SHIFT        (16)
+#define GPDMA_CXSR_FIFOL_MASK         (0xff << GPDMA_CXSR_FIFOL_SHIFT)
+
+/* Channel x control register */
+
+#define GPDMA_CXCR_EN                 (1 << 0)  /* Enable */
+#define GPDMA_CXCR_RESET              (1 << 1)  /* Reset */
+#define GPDMA_CXCR_SUSP               (1 << 2)  /* Suspend */
+#define GPDMA_CXCR_TCIE               (1 << 8)  /* Transfer complete interrupt 
enable */
+#define GPDMA_CXCR_HTIE               (1 << 9)  /* Half transfer complete 
interrupt enable */
+#define GPDMA_CXCR_DTEIE              (1 << 10) /* Data transfer error 
interrupt enable */
+#define GPDMA_CXCR_ULEIE              (1 << 11) /* update link transfer error 
interrupt enable */
+#define GPDMA_CXCR_USEIE              (1 << 12) /* User setting error 
interrupt enable */
+#define GPDMA_CXCR_SUSPEI             (1 << 13) /* Completed suspension 
interrupt enable */
+#define GPDMA_CXCR_TOIE               (1 << 14) /* Trigger overrun interrupt 
enable */
+#define GPDMA_CXCR_LSM                (1 << 16) /* Link step mode */
+#define GPDMA_CXCR_LAP                (1 << 17) /* Linked-list allocated port 
*/
+#define GPDMA_CXCR_PRIO_SHIFT         (22)      /* Bits 22-23: Priority level 
of ch x GPDMA transfer */
+#define GPDMA_CXCR_PRIO_MASK          (0b11 << GPDMA_CXCR_PRIO_SHIFT)
+
+/* Channel x transfer register 1 */
+
+#define GPDMA_CXTR1_SDW_LOG2_SHIFT    (0)
+#define GPDMA_CXTR1_SDW_LOG2_MASK     (0b11 << GPDMA_CXTR1_SDW_LOG2_SHIFT)
+#  define GPDMA_CXTR1_SDW_LOG2_BYTE   (0 << GPDMA_CXTR1_SDW_LOG2_SHIFT)  /* 
Byte */
+#  define GPDMA_CXTR1_SDW_LOG2_HW     (1 << GPDMA_CXTR1_SDW_LOG2_SHIFT)  /* 
Half-word (2 Bytes) */
+#  define GPDMA_CXTR1_SDW_LOG2_WORD   (2 << GPDMA_CXTR1_SDW_LOG2_SHIFT)  /* 
Word (4 Bytes) */
+
+#define GPDMA_CXTR1_SINC              (1 << 3)  /* Source incrementing burst */
+#define GPDMA_CXTR1_SBL_1_SHIFT       (4)       /* Bits 4-9: Source burst 
length minus 1, between 0 and 63 */
+#define GPDMA_CXTR1_SBL_1_MASK        (0x3f << GPDMA_CXTR1_SBL_1_SHIFT)
+#define GPDMA_CXTR1_PAM_SHIFT         (11)      /* Bits 11-12: 
Padding/alignment mode */
+#define GPDMA_CXTR1_PAM_MASK          (0b11 << GPDMA_CXTR1_PAM_SHIFT)
+#define GPDMA_CXTR1_SBX               (1 << 13) /* Source byte exchange */
+#define GPDMA_CXTR1_SAP               (1 << 14) /* Source allocated port */
+#define GPDMA_CXTR1_SSEC              (1 << 15) /* Security attribute for 
transfer from the source */
+
+#define GPDMA_CXTR1_DDW_LOG2_SHIFT    (16)      /* Bits 16-17: Binary log of 
destination data width of burst, in bytes */
+#define GPDMA_CXTR1_DDW_LOG2_MASK     (0b11 << GPDMA_CXTR1_DDW_LOG2_SHIFT)
+#  define GPDMA_CXTR1_DDW_LOG2_BYTE   (0 << GPDMA_CXTR1_DDW_LOG2_SHIFT) /* 
Byte */
+#  define GPDMA_CXTR1_DDW_LOG2_HW     (1 << GPDMA_CXTR1_DDW_LOG2_SHIFT) /* 
Half-word (2 bytes) */
+#  define GPDMA_CXTR1_DDW_LOG2_WORD   (2 << GPDMA_CXTR1_DDW_LOG2_SHIFT) /* 
Word (4 bytes) */
+
+#define GPDMA_CXTR1_DINC              (1 << 19) /* Destination incrementing 
burst */
+
+#define GPDMA_CXTR1_DBL_1_SHIFT       (20)      /* Bits 20-25: Destination 
burst length minus 1, between 0 and 63*/
+#define GPDMA_CXTR1_DBL_1_MASK        (0x3f << GPDMA_CXTR1_DBL_1_SHIFT)
+#define GPDMA_CXTR1_DBL_1(l)          ((l) - 1 << GPDMA_CXTR1_DBL_1_SHIFT)
+
+#define GPDMA_CXTR1_DBX               (1 << 26) /* Destination byte exchange */
+#define GPDMA_CXTR1_DHX               (1 << 17) /* Destination half-word 
exchange */
+#define GPDMA_CXTR1_DAP               (1 << 30) /* Destination allocated port 
*/
+#define GPDMA_CXTR1_DSEC              (1 << 31) /* Security attribute of 
transfer to the destination */
+
+/* Channel x transfer register 2 */
+
+#define GPDMA_CXTR2_REQSEL_SHIFT      (0)       /* Bits 0-7: GPDMA hardware 
request selection */
+#define GPDMA_CXTR2_REQSEL_MASK       (0xff << GPDMA_CXTR2_REQSEL_SHIFT)
+#define GPDMA_CXTR2_REQSEL(r)         ((r) << GPDMA_CXTR2_REQSEL_SHIFT)
+
+#define GPDMA_CXTR2_SWREQ             (1 << 9)  /* Software request */
+#define GPDMA_CXTR2_DREQ              (1 << 10) /* Destination hardware 
request */
+#define GPDMA_CXTR2_BREQ              (1 << 11) /* Block hardware request */
+#define GPDMA_CXTR2_PFREQ             (1 << 12) /* Hardware request in 
peripheral flow control mode */
+
+#define GPDMA_CXTR2_TRIGM_SHIFT       (14)      /* Bits 14-15: Trigger mode */
+#define GPDMA_CXTR2_TRIGM_MASK        (0b11 << GPDMA_CXTR2_TRIGM_SHIFT)
+#define GPDMA_CXTR2_TRIGSEL_SHIFT     (16)      /* Bits 16-21: Trigger event 
input selection */
+#define GPDMA_CXTR2_TRIGSEL_MASK      (0x3f << GPDMA_CXTR2_TRIGSEL_SHIFT)
+
+#define GPDMA_CXTR2_TRIGPOL_SHIFT     (24)      /* Bits 23-25: Trigger event 
polarity */
+#define GPDMA_CXTR2_TRIGPOL_MASK      (0b11 << GPDMA_CXTR2_TRIGPOL_SHIFT)
+#  define GPDMA_CXTR2_TRIGPOL_NONE    (0 << GPDMA_CXTR2_TRIGPOL_SHIFT) /* No 
trigger */
+#  define GPDMA_CXTR2_TRIGPOL_RISING  (1 << GPDMA_CXTR2_TRIGPOL_SHIFT) /* 
Trigger on rising edge */
+#  define GPDMA_CXTR2_TRIGPOL_FALLING (2 << GPDMA_CXTR2_TRIGPOL_SHIFT) /* 
Trigger on falling edge */
+
+#define GPDMA_CXTR2_TCEM_SHIFT        (30)      /* Bits 30-31: Transfer 
complete event mode */
+#define GPDMA_CXTR2_TCEM_MASK         (0b11 << GPDMA_CXTR2_TCEM_SHIFT)
+
+/* Channel x block register 1 */
+
+#define GPDMA_CXBR1_BNDT_SHIFT        (0)       /* Bits 0-15: Block number of 
data bytes to transfer from source */
+#define GPDMA_CXBR1_BNDT_MASK         (0xffff << GPDMA_CXBR1_BNDT_SHIFT)
+#define GPDMA_CXBR1_BRC_SHIFT         (16)      /* Bits 16-26: Block repeat 
counter */
+#define GPDMA_CXBR1_BRC_MASK          (0x7ff << GPDMA_CXBR1_BRC_SHIFT)
+#define GPDMA_CXBR1_SDEC              (1 << 28) /* Source address decrement */
+#define GPDMA_CXBR1_DDEC              (1 << 29) /* Destination address 
decrement */
+#define GPDMA_CXBR1_BRSDEC            (1 << 30) /* Block repeat source address 
decrement */
+#define GPDMA_CXBR1_BRDDEC            (1 << 31) /* Block repeat destination 
address decrement */
+
+/* Channel x stransfer register 3 */
+
+#define GPDMA_CXTR3_SAO_SHIFT         (0)       /* Bits 0-12: Source address 
offset increment */
+#define GPDMA_CXTR3_MASK              (0x1fff << GPDMA_CXTR3_SAO_SHIFT)
+#define GPDMA_CXTR3_DAO_SHIFT         (16)      /* Bits 16-28: Destination 
address offset increment */
+#define GPDMA_CXTR3_DAO_MASK          (0x1fff << GPDMA_CXTR3_DAO_SHIFT)
+
+/* Channel x block register 2 */
+
+#define GPDMA_CXBR2_BRSAO_SHIFT       (0)       /* Bits 0-15: Block repeated 
source address offset */
+#define GPDMA_CXBR2_BRSAO_MASK        (0xffff << GPDMA_CXBR2_BRSAO_SHIFT)
+#define GPDMA_CXBR2_BRDAO_SHIFT       (16)      /* Bits 16-31: Block repeated 
destination address offset */
+#define GPDMA_CXBR2_BRDAO_MASK        (0xffff << GPDMA_CXBR2_BRDAO_SHIFT) 
+
+/* Channel x linked-list address register */
+
+#define GPDMA_CXLLR_LA_SHIFT          (2)       /* Bits 2-15: Pointer (16-bit 
low-significant address) to next linked-list DS */
+#define GPDMA_CXLLR_LA_MASK           (0x3fff << GPDMA_CXLLR_LA_SHIFT)
+#define GPDMA_CXLLR_ULL               (1 << 16) /* Update CxLLR register from 
memory */
+#define GPDMA_CXLLR_UDA               (1 << 27) /* Update CxDAR register from 
memory */
+#define GPDMA_CXLLR_USA               (1 << 28) /* Update CxSAR register from 
memory */
+#define GPDMA_CXLLR_UB1               (1 << 29) /* Update CxBR1 register from 
memory */
+#define GPDMA_CXLLR_UT2               (1 << 30) /* Update CxTR2 register from 
memory */
+#define GPDMA_CXLLR_UT1               (1 << 31) /* Update CxTR1 register from 
memory */
+
+#endif /* __ARCH_ARM_SRC_STM32H5_HARDWARE_STM32_GPDMA_H */
\ No newline at end of file
diff --git a/arch/arm/src/stm32h5/stm32_dma.h b/arch/arm/src/stm32h5/stm32_dma.h
new file mode 100644
index 0000000000..abdaa2e81e
--- /dev/null
+++ b/arch/arm/src/stm32h5/stm32_dma.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+ * arch/arm/src/stm32h5/stm32_dma.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * 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_STM32H5_STM32_DMA_H
+#define __ARCH_ARM_SRC_STM32H5_STM32_DMA_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <sys/types.h>
+
+#include "hardware/stm32_gpdma.h"
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+#undef EXTERN
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* !__ASSEMBLY__*/
+#endif /* __ARCH_ARM_SRC_STM32H5_STM32_DMA_H*/


Reply via email to