diff --git a/ports/rp2/mphalport.h b/ports/rp2/mphalport.h index 73a503f5a9..2cb9121fa2 100644 --- a/ports/rp2/mphalport.h +++ b/ports/rp2/mphalport.h @@ -91,22 +91,22 @@ static inline unsigned int mp_hal_pin_name(mp_hal_pin_obj_t pin) { } static inline void mp_hal_pin_input(mp_hal_pin_obj_t pin) { - gpio_set_function(pin, GPIO_FUNC_SIO); gpio_set_dir(pin, GPIO_IN); machine_pin_open_drain_mask &= ~(1 << pin); + gpio_set_function(pin, GPIO_FUNC_SIO); } static inline void mp_hal_pin_output(mp_hal_pin_obj_t pin) { - gpio_set_function(pin, GPIO_FUNC_SIO); gpio_set_dir(pin, GPIO_OUT); machine_pin_open_drain_mask &= ~(1 << pin); + gpio_set_function(pin, GPIO_FUNC_SIO); } static inline void mp_hal_pin_open_drain(mp_hal_pin_obj_t pin) { - gpio_set_function(pin, GPIO_FUNC_SIO); gpio_set_dir(pin, GPIO_IN); gpio_put(pin, 0); machine_pin_open_drain_mask |= 1 << pin; + gpio_set_function(pin, GPIO_FUNC_SIO); } static inline void mp_hal_pin_config(mp_hal_pin_obj_t pin, uint32_t mode, uint32_t pull, uint32_t alt) {