summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2022-09-10 17:07:52 +0200
committerVegard Storheil Eriksen <zyp@jvnv.net>2022-09-10 17:07:52 +0200
commit59b94427c591e7ec4603b2d9dd6753b1b0927175 (patch)
treeeee654fdaecafce1663b8fde667453f81766fc2c
parent2ea5b06c6b5f7ef7c29547dc44f279f4709d2eed (diff)
stm32g4: Add OPAMP.
-rw-r--r--adc/SConscript9
-rw-r--r--adc/stm32_opamp.h23
-rw-r--r--platforms/stm32/g4.yaml4
3 files changed, 36 insertions, 0 deletions
diff --git a/adc/SConscript b/adc/SConscript
index e008d25..8bcc25d 100644
--- a/adc/SConscript
+++ b/adc/SConscript
@@ -25,6 +25,15 @@ if 'stm32_adc_common' in periph:
'args': [data['offset']],
})
+if 'stm32_opamp' in periph:
+ headers.append('stm32_opamp.h')
+ for name, data in periph['stm32_opamp'].items():
+ instances.append({
+ 'type': 'STM32_OPAMP_t',
+ 'name': name,
+ 'args': [data['offset']],
+ })
+
env.Jinja2('adc.h', '../templates/periph_instances.h.j2', headers = headers, instances = instances, aliases = aliases, type_aliases = type_aliases)
Return('sources')
diff --git a/adc/stm32_opamp.h b/adc/stm32_opamp.h
new file mode 100644
index 0000000..928bd0c
--- /dev/null
+++ b/adc/stm32_opamp.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <mmio/mmio.h>
+
+struct STM32_OPAMP_reg_t {
+ volatile uint32_t CSR1;
+ volatile uint32_t CSR2;
+ volatile uint32_t CSR3;
+ volatile uint32_t CSR4;
+ volatile uint32_t CSR5;
+ volatile uint32_t CSR6;
+ volatile uint32_t TCMR1;
+ volatile uint32_t TCMR2;
+ volatile uint32_t TCMR3;
+ volatile uint32_t TCMR4;
+ volatile uint32_t TCMR5;
+ volatile uint32_t TCMR6;
+};
+
+class STM32_OPAMP_t : public mmio_ptr<STM32_OPAMP_reg_t> {
+ public:
+ using mmio_ptr<STM32_OPAMP_reg_t>::ptr;
+};
diff --git a/platforms/stm32/g4.yaml b/platforms/stm32/g4.yaml
index 5a07327..b5059d9 100644
--- a/platforms/stm32/g4.yaml
+++ b/platforms/stm32/g4.yaml
@@ -57,6 +57,10 @@
type: v2
offset: 0x50000700
+ stm32_opamp:
+ OPAMP:
+ offset: 0x40010300
+
stm32_dma:
DMA1:
type: v1