summaryrefslogtreecommitdiff
path: root/dma/stm32_dmamux.h
diff options
context:
space:
mode:
Diffstat (limited to 'dma/stm32_dmamux.h')
-rw-r--r--dma/stm32_dmamux.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/dma/stm32_dmamux.h b/dma/stm32_dmamux.h
new file mode 100644
index 0000000..064393a
--- /dev/null
+++ b/dma/stm32_dmamux.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <stdint.h>
+#include <mmio/mmio.h>
+
+struct STM32_DMAMUX_reg_v1_t {
+ /**
+ * Not all parts offer all channels!
+ * WB: 14, G4: 16...
+ */
+ volatile uint32_t CCR[20];
+ volatile uint32_t _reserved1[12];
+ volatile uint32_t CSR; // 0x80
+ volatile uint32_t CFR; // 0x84
+ volatile uint32_t _reserved2[30];
+ /**
+ * Not all parts offer all requests!
+ * WB/G4: 4, H7: 8
+ */
+ volatile uint32_t RGCR[8]; // 0x100
+ volatile uint32_t _reserved3[8];
+ volatile uint32_t RGSR; // 0x140
+ volatile uint32_t RGCFR;
+};
+
+template <typename T>
+class STM32_DMAMUX_t : public mmio_ptr<T> {
+ public:
+ using mmio_ptr<T>::ptr;
+}; \ No newline at end of file