I2S driver implementation (#480)

* **New Features**
  * ESP32 I2S controller support: runtime-configurable digital audio I/O with read/write/set/get operations and multiple formats.

* **Board Support**
  * LilyGO T-Deck device tree entry added to enable I2S peripheral pin configuration.

* **Documentation**
  * New/updated bindings and descriptors for I2S, I2C, GPIO, and root nodes.

* **Other**
  * Added GPIO "no pin" sentinel and exposed I2S controller API symbols.
This commit is contained in:
Ken Van Hoeylandt
2026-02-04 23:40:16 +01:00
committed by GitHub
parent 9a672a30ff
commit a1c835e073
18 changed files with 526 additions and 5 deletions
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <tactility/bindings/bindings.h>
#include <tactility/drivers/esp32_i2s.h>
#include <driver/i2s_common.h>
#ifdef __cplusplus
extern "C" {
#endif
DEFINE_DEVICETREE(esp32_i2s, struct Esp32I2sConfig)
#ifdef __cplusplus
}
#endif
@@ -0,0 +1,22 @@
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <tactility/drivers/i2s_controller.h>
#include <driver/i2s_common.h>
#ifdef __cplusplus
extern "C" {
#endif
struct Esp32I2sConfig {
i2s_port_t port;
int pin_bclk;
int pin_ws;
int pin_data_out;
int pin_data_in;
int pin_mclk;
};
#ifdef __cplusplus
}
#endif