diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2022-04-16 20:44:24 +0200 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2022-04-16 21:01:57 +0200 |
commit | 4ba824dab86433bb5295878f2380a9bd9536d67e (patch) | |
tree | 0b8a25c8c65b350f2e2266c9992a385c0ec9c681 /i2c/stm32_i2c.h | |
parent | 32df2ae55601f1ad135247ad79a913514d018032 (diff) |
i2c: stm32: Add v2 support.
Diffstat (limited to 'i2c/stm32_i2c.h')
-rw-r--r-- | i2c/stm32_i2c.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/i2c/stm32_i2c.h b/i2c/stm32_i2c.h new file mode 100644 index 0000000..63bda09 --- /dev/null +++ b/i2c/stm32_i2c.h @@ -0,0 +1,35 @@ +#pragma once + +#include <mmio/mmio.h> + +struct STM32_I2C_reg_v1_t { + volatile uint32_t CR1; + volatile uint32_t CR2; + volatile uint32_t OAR1; + volatile uint32_t OAR2; + volatile uint32_t DR; + volatile uint32_t SR1; + volatile uint32_t SR2; + volatile uint32_t CCR; + volatile uint32_t TRISE; +}; + +struct STM32_I2C_reg_v2_t { + volatile uint32_t CR1; + volatile uint32_t CR2; + volatile uint32_t OAR1; + volatile uint32_t OAR2; + volatile uint32_t TIMINGR; + volatile uint32_t TIMEOUTR; + volatile uint32_t ISR; + volatile uint32_t ICR; + volatile uint32_t PECR; + volatile uint32_t RXDR; + volatile uint32_t TXDR; +}; + +template <typename T> +class STM32_I2C_t : public mmio_ptr<T> { + public: + using mmio_ptr<T>::ptr; +}; |