summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Poulsen <eric@zyxod.com>2017-09-29 09:00:55 -0700
committerDamien George <damien.p.george@gmail.com>2017-12-13 14:48:53 +1100
commit5adc133f051172ebbc5b6fb3d8913599f5df3c06 (patch)
tree7ff11893ac699ffd999cadb23814fc3f9bf3f5dc
parentb74809c70a78cc7fd7796f46776b17f8cf6ad3a4 (diff)
esp32/mphalport.h: Make mp_hal_pin_<dir> select gpio on the pad.
Otherwise interfaces like software I2C and SPI don't initialise correctly.
-rw-r--r--ports/esp32/mphalport.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/ports/esp32/mphalport.h b/ports/esp32/mphalport.h
index 8a0f1dc8b..3215bc062 100644
--- a/ports/esp32/mphalport.h
+++ b/ports/esp32/mphalport.h
@@ -59,12 +59,15 @@ mp_hal_pin_obj_t machine_pin_get_id(mp_obj_t pin_in);
#define mp_obj_get_pin(o) machine_pin_get_id(o) // legacy name; only to support esp8266/modonewire
#define mp_hal_pin_name(p) (p)
static inline void mp_hal_pin_input(mp_hal_pin_obj_t pin) {
+ gpio_pad_select_gpio(pin);
gpio_set_direction(pin, GPIO_MODE_INPUT);
}
static inline void mp_hal_pin_output(mp_hal_pin_obj_t pin) {
+ gpio_pad_select_gpio(pin);
gpio_set_direction(pin, GPIO_MODE_INPUT_OUTPUT);
}
static inline void mp_hal_pin_open_drain(mp_hal_pin_obj_t pin) {
+ gpio_pad_select_gpio(pin);
gpio_set_direction(pin, GPIO_MODE_INPUT_OUTPUT_OD);
}
static inline void mp_hal_pin_od_low(mp_hal_pin_obj_t pin) {