summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------lib/nrfx0
-rw-r--r--ports/nrf/mphalport.h2
2 files changed, 1 insertions, 1 deletions
diff --git a/lib/nrfx b/lib/nrfx
-Subproject cf78ebfea1719d85cf4018fe6c08cc73fe5ec71
+Subproject d37b16f2b894b0928395f6f56ca741287a31a24
diff --git a/ports/nrf/mphalport.h b/ports/nrf/mphalport.h
index 411e8f429..18ff454fe 100644
--- a/ports/nrf/mphalport.h
+++ b/ports/nrf/mphalport.h
@@ -64,7 +64,7 @@ const char * nrfx_error_code_lookup(uint32_t err_code);
#define mp_hal_get_pin_obj(o) pin_find(o)
#define mp_hal_pin_high(p) nrf_gpio_pin_set(p->pin)
#define mp_hal_pin_low(p) nrf_gpio_pin_clear(p->pin)
-#define mp_hal_pin_read(p) nrf_gpio_pin_read(p->pin)
+#define mp_hal_pin_read(p) (nrf_gpio_pin_dir_get(p->pin) == NRF_GPIO_PIN_DIR_OUTPUT) ? nrf_gpio_pin_out_read(p->pin) : nrf_gpio_pin_read(p->pin)
#define mp_hal_pin_write(p, v) do { if (v) { mp_hal_pin_high(p); } else { mp_hal_pin_low(p); } } while (0)
#define mp_hal_pin_od_low(p) mp_hal_pin_low(p)
#define mp_hal_pin_od_high(p) mp_hal_pin_high(p)