summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriabdalkader <i.abdalkader@gmail.com>2021-09-18 16:49:50 +0200
committerDamien George <damien@micropython.org>2021-09-21 18:13:28 +1000
commit67d1dca9c2f7c04ff7078d94b4a58cdb73d0c58f (patch)
tree12eb6e60dc7a4a07dd70336309d0e223910cda02
parent9eff4029ab66ed30c08d65e5ed91a20d70173bcd (diff)
stm32/machine_i2c: Use hardware I2C for STM32H7.
-rw-r--r--ports/stm32/i2c.c9
-rw-r--r--ports/stm32/machine_i2c.c2
2 files changed, 8 insertions, 3 deletions
diff --git a/ports/stm32/i2c.c b/ports/stm32/i2c.c
index 0b7105344..c63fe2162 100644
--- a/ports/stm32/i2c.c
+++ b/ports/stm32/i2c.c
@@ -268,7 +268,12 @@ int i2c_write(i2c_t *i2c, const uint8_t *src, size_t len, size_t next_len) {
return num_acks;
}
-#elif defined(STM32F0) || defined(STM32F7)
+#elif defined(STM32F0) || defined(STM32F7) || defined(STM32H7)
+
+#if defined(STM32H7)
+#define APB1ENR APB1LENR
+#define RCC_APB1ENR_I2C1EN RCC_APB1LENR_I2C1EN
+#endif
STATIC uint16_t i2c_timeout_ms[MICROPY_HW_MAX_I2C];
@@ -468,7 +473,7 @@ int i2c_write(i2c_t *i2c, const uint8_t *src, size_t len, size_t next_len) {
#endif
-#if defined(STM32F0) || defined(STM32F4) || defined(STM32F7)
+#if defined(STM32F0) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7)
int i2c_readfrom(i2c_t *i2c, uint16_t addr, uint8_t *dest, size_t len, bool stop) {
int ret;
diff --git a/ports/stm32/machine_i2c.c b/ports/stm32/machine_i2c.c
index 41e65cf05..0976c18c8 100644
--- a/ports/stm32/machine_i2c.c
+++ b/ports/stm32/machine_i2c.c
@@ -38,7 +38,7 @@
#define I2C_POLL_DEFAULT_TIMEOUT_US (50000) // 50ms
-#if defined(STM32F0) || defined(STM32F4) || defined(STM32F7)
+#if defined(STM32F0) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7)
typedef struct _machine_hard_i2c_obj_t {
mp_obj_base_t base;