// SPDX-License-Identifier: Apache-2.0 #pragma once #include #include #include #include struct Device; #ifdef __cplusplus extern "C" { #endif /** * @brief ES8311 codec device configuration. * * The ES8311 is wired as both control (I2C) and audio (I2S) device: the I2C * bus is the device's parent (per i2c-device.yaml), while the I2S controller * is referenced via a devicetree phandle. It operates in dual mode * (speaker output + mic input) on boards such as M5Stack StickS3. */ struct Es8311Config { /** I2C address on the bus (typically 0x18) */ uint8_t address; /** I2S controller device that carries audio data */ struct Device* i2s_device; }; #ifdef __cplusplus } #endif