• Matteo Martelli's avatar
    ASoC: codecs: es8311: add everest es8311 codec support · baf98991
    Matteo Martelli authored
    Add support for the Everest-semi ES8311 codec.
    
    Everest-semi ES8311 codec is a low-power mono audio codec with I2S audio
    interface and I2C control.
    
    Supported features:
    * Both master and slave mode. Master clock is optional in slave mode.
    * Sample rates from 8KHz to 96KHz.
    * Sample formats: S16_LE, S18_3LE, S20_3LE, S24_3LE, S24_LE and S32_LE.
    * I2S formats: I2S, LEFT_J, DSP_A, DSP_B.
    * BCLK and FSYNC clocks inversion.
    * Component suspend/resume.
    * ADC, PGA, DAC controls.
    * ADC DSP controls: volume, fade (ramp rate), ALC, automute, HPF, EQ.
    * DAC DSP controls: volume, fade (ramp rate), DRC, EQ.
    * DAPM routes: capture path with input source selection (differential
      MIC/DMIC) and AIF channel source selection; playback path with DAC
      channel source selection.
    
    Limitations:
    * Support only for master clocks with a ratio of ADC (or DAC) clock to
      LRCLK equal to 256. This to keep the default ADC and DAC oversampling
      and ADC scale settings. Anyway all 8-96KHz sample rates are supported
      when the ratio of MCLK to sample rate is 32, 64, 128, 256, 384 or 512
      (upper limit due to max MCLK freq of 49.2MHz).
    * Coefficients for ADC HPF and ADC/DAC EQ not supported.
    * Digital mic supported but not tested.
    * S18_3LE, S20_3LE and S24_3LE formats supported but not tested.
    Signed-off-by: default avatarMatteo Martelli <matteomartelli3@gmail.com>
    Link: https://msgid.link/r/20240522164722.954656-3-matteomartelli3@gmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    baf98991
es8311.h 4.98 KB