• Romain Gantois's avatar
    ASoC: tlv320aic31xx: Add support for loading filter coefficients · 77b696f4
    Romain Gantois authored
    The TLV320DAC3100 Audio DAC has 25 built-in digital audio processing blocks
    (PRBs). Each of these PRBs has a static filter structure with programmable
    coefficients. Once a PRB is selected for use by the DAC, its filter
    coefficients can be configured via a dedicated set of registers.
    
    Define a new optional firmware which can be loaded by the TLV320DAC driver.
    This firmware describes a full set of filter coefficients for all blocks
    used by the various PRBs.
    
    The firmware's binary format is heavily inspired by the one used in the
    peb2466 driver. It includes a version marker to allow for potential
    evolutions of the format.
    
    Note that adaptive filtering is not supported i.e. filter coefficients are
    loaded once before power-on and then cannot be changed while the DAC is
    powered. This is why only page A coefficients are modified. Page B
    coefficients are only used for adaptive filtering.
    Signed-off-by: default avatarRomain Gantois <romain.gantois@bootlin.com>
    Link: https://patch.msgid.link/20240906-tlv320-filter-v1-1-6955f53ff435@bootlin.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    77b696f4
tlv320aic31xx.c 54.1 KB