nuttx/boards/xtensa/esp32s3/common/src
Felipe Moura e4cc7b7258 boards/esp32s3: the LSM6DS3TR-C INT1 is a level, not an edge
The FIFO watermark flag is a level: it stays high until the worker
actually drains the FIFO below the threshold.  Configuring INT1 as RISING
made that a race the driver could lose permanently.

lsm6ds3trc_interrupt() disables its IRQ on entry and re-enables it after
the worker has run.  With an edge trigger, if the line is still high when
the IRQ is re-enabled -- which is precisely what happens whenever a drain
does not take the FIFO below the watermark -- there is no new low-to-high
transition left to detect, and the line goes mute forever.  Observed as a
board that serviced exactly one watermark after boot and then never
again, reproducible 2 out of 2 reflashes.

ONHIGH matches the physical meaning of the pin and is immune to it: a
level trigger re-asserts on its own for as long as the condition holds,
and the disable/enable pairing around servicing is what stops that from
live-locking.

Validated with more than 900 consecutive drains (~100 min) including real
sleep -> GPIO-wake -> resume transitions, the exact case that used to
wedge.

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
Assisted-by: Claude:claude-opus-5
2026-09-22 09:21:08 -03:00
..
etc/init.d boards/xtensa/esp32s3/esp32s3-xiao: re-enable nxinit, with a working console 2026-09-11 21:12:18 +08:00
esp32s3_board_adc.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
esp32s3_board_bmp180.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_i2c.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_i2s.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_ledc.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_lsm6ds3trc.c boards/esp32s3: the LSM6DS3TR-C INT1 is a level, not an edge 2026-09-22 09:21:08 -03:00
esp32s3_board_mcpwm.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_pcnt.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_rmt.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_sdmmc.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_spidev.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_spiflash.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_spislavedev.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_tim.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_usb.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_wdt.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_board_wlan.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_cs4344.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_es8311.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_lan9250.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
esp32s3_qmi8658.c boards/xtensa/esp32s3: New board WaveShare ESP32-S3-Touch-LCD-1.28 (WIP). 2026-04-24 16:27:08 +08:00
esp32s3_usbmsc.c boards/xtensa: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
Make.defs drivers/sensors: add LSM6DS3TR-C uORB driver for the XIAO ESP32-S3 2026-08-29 11:11:14 -03:00