summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsommersoft <sommersoft@gmail.com>2018-04-26 01:35:58 +0000
committersommersoft <sommersoft@gmail.com>2018-04-26 01:35:58 +0000
commit441ce2a78ff1c3d5a09a317b34795460038aeaee (patch)
tree8b2dd406904a6a2e84fd4c03695e3079d391dbb8
parentbd5a5daaaebbdb36d4ad81541b452e9b485e8b3a (diff)
reset GPIO16 to input on deinit
-rw-r--r--ports/esp8266/common-hal/digitalio/DigitalInOut.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ports/esp8266/common-hal/digitalio/DigitalInOut.c b/ports/esp8266/common-hal/digitalio/DigitalInOut.c
index 660fcf1da..6fc875547 100644
--- a/ports/esp8266/common-hal/digitalio/DigitalInOut.c
+++ b/ports/esp8266/common-hal/digitalio/DigitalInOut.c
@@ -65,6 +65,9 @@ void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t* self
PIN_FUNC_SELECT(self->pin->peripheral, 0);
PIN_PULLUP_DIS(self->pin->peripheral);
} else {
+ WRITE_PERI_REG(PAD_XPD_DCDC_CONF, (READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | 1); // mux configuration for XPD_DCDC and rtc_gpio0 connection
+ WRITE_PERI_REG(RTC_GPIO_CONF, READ_PERI_REG(RTC_GPIO_CONF) & ~1); //mux configuration for out enable
+ WRITE_PERI_REG(RTC_GPIO_ENABLE, READ_PERI_REG(RTC_GPIO_ENABLE) & ~1); //out disable
gpio16_in_use = false;
}
self->pin = mp_const_none;