Skip to content

Commit 895a8a9

Browse files
authored
Merge pull request #5866 from dhalbert/espressif-open-drain
fix espressif DigitalInOut open-drain
2 parents 7a3bcf7 + 11848b1 commit 895a8a9

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

ports/espressif/common-hal/digitalio/DigitalInOut.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t *self
7171
void common_hal_digitalio_digitalinout_switch_to_input(
7272
digitalio_digitalinout_obj_t *self, digitalio_pull_t pull) {
7373
common_hal_digitalio_digitalinout_set_pull(self, pull);
74-
gpio_set_direction(self->pin->number, GPIO_MODE_DEF_INPUT);
74+
gpio_set_direction(self->pin->number, GPIO_MODE_INPUT);
7575
}
7676

7777
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
@@ -108,11 +108,9 @@ digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
108108
digitalio_digitalinout_obj_t *self,
109109
digitalio_drive_mode_t drive_mode) {
110110
gpio_num_t number = self->pin->number;
111-
gpio_mode_t mode;
111+
gpio_mode_t mode = GPIO_MODE_OUTPUT;
112112
if (drive_mode == DRIVE_MODE_OPEN_DRAIN) {
113-
mode = GPIO_MODE_DEF_OD;
114-
} else {
115-
mode = GPIO_MODE_DEF_OUTPUT;
113+
mode |= GPIO_MODE_OUTPUT_OD;
116114
}
117115
esp_err_t result = gpio_set_direction(number, mode);
118116
if (result != ESP_OK) {

0 commit comments

Comments
 (0)