esp32: Fix machine.TouchPad startup on ESP32-S2 and S3.

Closes #13178.

TouchPad confirmed working on both chips, and fixes the the ESP32-S3
reading constant max value. Was unable to reproduce the bug on ESP32-S2 but
this may be due to my test setup, and it still works with the fix.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
This commit is contained in:
Angus Gratton 2024-11-06 17:14:09 +11:00 committed by Damien George
parent eb0027b82f
commit 33f50d4f20

View File

@ -96,9 +96,6 @@ static mp_obj_t mtp_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_
if (!initialized) { if (!initialized) {
touch_pad_init(); touch_pad_init();
touch_pad_set_fsm_mode(TOUCH_FSM_MODE_TIMER); touch_pad_set_fsm_mode(TOUCH_FSM_MODE_TIMER);
#if TOUCH_HW_VER == 2
touch_pad_fsm_start();
#endif
initialized = 1; initialized = 1;
} }
#if SOC_TOUCH_VERSION_1 #if SOC_TOUCH_VERSION_1
@ -107,6 +104,10 @@ static mp_obj_t mtp_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_
esp_err_t err = touch_pad_config(self->touchpad_id); esp_err_t err = touch_pad_config(self->touchpad_id);
#endif #endif
if (err == ESP_OK) { if (err == ESP_OK) {
#if SOC_TOUCH_VERSION_2
touch_pad_fsm_start();
#endif
return MP_OBJ_FROM_PTR(self); return MP_OBJ_FROM_PTR(self);
} }
mp_raise_ValueError(MP_ERROR_TEXT("Touch pad error")); mp_raise_ValueError(MP_ERROR_TEXT("Touch pad error"));