feat(boards): Add Waveshare ESP32-C6-Touch-AMOLED-2.16 support

- Add complete board support for Waveshare ESP32-C6-Touch-AMOLED-2.16 with SH8601 display driver
- Implement board initialization with AXP2101 PMU rail configuration for LCD and touch power
- Add display driver for SH8601 QSPI panel (480×480 resolution)
- Add CST9217 touch controller support via I2C
- Add QMI8658 IMU initialization and sensor reading
- Add AXP2101 power management and battery monitoring
- Add input handling for BOOT button (GPIO 9)
- Configure PlatformIO environment with C6-specific build flags and 16 MB flash layout
- Update capability flags documentation to clarify BOARD_HAS_PSRAM build-flag macro usage
- C6 has no external PSRAM; shared code gates on this flag to use internal SRAM and reduce LVGL buffer sizes
- Screenshot capture disabled on this board due to internal SRAM constraints
This commit is contained in:
Alexander Wennerstrøm
2026-05-24 08:36:53 +02:00
parent c25e89672a
commit ab8b64d949
12 changed files with 479 additions and 5 deletions
@@ -0,0 +1,17 @@
#include "../../hal/input_hal.h"
#include "board.h"
#include <Arduino.h>
// Only BOOT is wired to a MCU GPIO. The "PWR" side button is the AXP2101
// PKEY, handled in power.cpp.
void input_hal_init(void) {
pinMode(BTN_BACK_GPIO, INPUT_PULLUP);
}
bool input_hal_is_held(InputButton btn) {
if (btn == INPUT_BTN_PRIMARY) {
return digitalRead(BTN_BACK_GPIO) == LOW;
}
return false;
}