From 624738ca64c71c8f2cccced3fb5d2380bb4ae56b Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Fri, 22 Apr 2016 09:56:02 +0100
Subject: [PATCH] extmod/machine_i2c: Allow mp_hal_pin_obj_t to be any type,
 not a ptr.

---
 esp8266/esp_mphal.h  | 2 +-
 extmod/machine_i2c.c | 4 ++--
 stmhal/mphalport.h   | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/esp8266/esp_mphal.h b/esp8266/esp_mphal.h
index 82277ed5a..39cf60ab1 100644
--- a/esp8266/esp_mphal.h
+++ b/esp8266/esp_mphal.h
@@ -63,7 +63,7 @@ void ets_event_poll(void);
 #include "etshal.h"
 #include "gpio.h"
 #include "esp8266/modpyb.h"
-#define mp_hal_pin_obj_t pyb_pin_obj_t
+#define mp_hal_pin_obj_t pyb_pin_obj_t*
 #define mp_hal_get_pin_obj(o) mp_obj_get_pin_obj(o)
 #define mp_hal_pin_config_od(p) do { \
         ETS_GPIO_INTR_DISABLE(); \
diff --git a/extmod/machine_i2c.c b/extmod/machine_i2c.c
index 061b44378..e3bdb3692 100644
--- a/extmod/machine_i2c.c
+++ b/extmod/machine_i2c.c
@@ -37,8 +37,8 @@
 typedef struct _machine_i2c_obj_t {
     mp_obj_base_t base;
     uint32_t us_delay;
-    mp_hal_pin_obj_t *scl;
-    mp_hal_pin_obj_t *sda;
+    mp_hal_pin_obj_t scl;
+    mp_hal_pin_obj_t sda;
 } machine_i2c_obj_t;
 
 STATIC void mp_hal_i2c_delay(machine_i2c_obj_t *self) {
diff --git a/stmhal/mphalport.h b/stmhal/mphalport.h
index 65de2ab86..7b29f9c9c 100644
--- a/stmhal/mphalport.h
+++ b/stmhal/mphalport.h
@@ -43,7 +43,7 @@ void mp_hal_set_interrupt_char(int c); // -1 to disable
 
 // C-level pin HAL
 #include "stmhal/pin.h"
-#define mp_hal_pin_obj_t pin_obj_t
+#define mp_hal_pin_obj_t pin_obj_t*
 #define mp_hal_get_pin_obj(o) (pin_obj_t*)pin_find(o)
 #define mp_hal_pin_config_od(p) mp_hal_gpio_config((p)->gpio, (p)->pin, 5, 0, 0)
 #define mp_hal_pin_low(p) GPIO_clear_pin((p)->gpio, (p)->pin_mask)
-- 
GitLab