From cf349af35e02a85ebece48064530729821b2fb40 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Fri, 24 Dec 2021 11:45:07 -0500 Subject: [PATCH 1/3] turn on I2C power after reset --- ports/espressif/boards/adafruit_feather_esp32s2/board.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ports/espressif/boards/adafruit_feather_esp32s2/board.c b/ports/espressif/boards/adafruit_feather_esp32s2/board.c index 5abd1ce1b3..b0a7862ceb 100644 --- a/ports/espressif/boards/adafruit_feather_esp32s2/board.c +++ b/ports/espressif/boards/adafruit_feather_esp32s2/board.c @@ -27,11 +27,17 @@ #include "supervisor/board.h" #include "mpconfigboard.h" #include "shared-bindings/microcontroller/Pin.h" +#include "components/driver/include/driver/gpio.h" void board_init(void) { // USB common_hal_never_reset_pin(&pin_GPIO19); common_hal_never_reset_pin(&pin_GPIO20); + + // Turn on I2C + common_hal_never_reset_pin(&pin_GPIO7); + gpio_set_direction(7, GPIO_MODE_DEF_OUTPUT); + gpio_set_level(7, false); } bool board_requests_safe_mode(void) { From 889b25d792382c53d233d1af225ff9012b61d4ce Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Fri, 24 Dec 2021 11:49:58 -0500 Subject: [PATCH 2/3] put I2C_POWER_INVERTED alias before D7, for prettypins --- ports/espressif/boards/adafruit_feather_esp32s2/pins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/espressif/boards/adafruit_feather_esp32s2/pins.c b/ports/espressif/boards/adafruit_feather_esp32s2/pins.c index fff95265b5..06f294ff0f 100644 --- a/ports/espressif/boards/adafruit_feather_esp32s2/pins.c +++ b/ports/espressif/boards/adafruit_feather_esp32s2/pins.c @@ -14,8 +14,8 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) }, { MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) }, - { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) }, { MP_ROM_QSTR(MP_QSTR_I2C_POWER_INVERTED), MP_ROM_PTR(&pin_GPIO7) }, + { MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) }, { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO8) }, { MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) }, From cf70a9ca6112369527526dfe06bdb6b0f8604407 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Fri, 24 Dec 2021 16:27:17 -0500 Subject: [PATCH 3/3] Turn on I2C power for each VM, instead of just after hard reset --- ports/espressif/boards/adafruit_feather_esp32s2/board.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/ports/espressif/boards/adafruit_feather_esp32s2/board.c b/ports/espressif/boards/adafruit_feather_esp32s2/board.c index b0a7862ceb..93aff5067d 100644 --- a/ports/espressif/boards/adafruit_feather_esp32s2/board.c +++ b/ports/espressif/boards/adafruit_feather_esp32s2/board.c @@ -33,11 +33,6 @@ void board_init(void) { // USB common_hal_never_reset_pin(&pin_GPIO19); common_hal_never_reset_pin(&pin_GPIO20); - - // Turn on I2C - common_hal_never_reset_pin(&pin_GPIO7); - gpio_set_direction(7, GPIO_MODE_DEF_OUTPUT); - gpio_set_level(7, false); } bool board_requests_safe_mode(void) { @@ -45,7 +40,9 @@ bool board_requests_safe_mode(void) { } void reset_board(void) { - + // Turn on I2C power by default. + gpio_set_direction(7, GPIO_MODE_DEF_OUTPUT); + gpio_set_level(7, false); } void board_deinit(void) {