esp32/machine_pin.c: Fix the logic when to clear USB_SERIAL_JTAG_USB_PAD_ENABLE #16236
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
When we don't use USB JTAG, we want to use the two USB pins (D+/D-) as GPIO. So, do clear USB_SERIAL_JTAG_USB_PAD_ENABLE when USB SERIAL JTAG is not enabled
Testing
I was trying to build and use mpy v1.24.0 on ESP32-C3 (IDF 5.2.2).
The code below shows GPIO 18 19 shoud be usable when
MICROPY_HW_ESP_USB_SERIAL_JTAG
is false:micropython/ports/esp32/machine_pin.h
Lines 90 to 93 in 611d8f9
So I tried commenting out this:
micropython/ports/esp32/mpconfigport.h
Lines 257 to 261 in 611d8f9
to make sure
MICROPY_HW_ESP_USB_SERIAL_JTAG
is false.Then the result is I could use
Pin(18)/Pin(19)
to get GPIO object, but could not do real GPIO output.So I think we should apply this fix, which works for me on ESP32-C3
I don't have ESP32-C6 to test