• Nikita Yushchenko's avatar
    ASoC: tlv320aic31xx: add explicit support for tlv320dac31xx · ef9656b6
    Nikita Yushchenko authored
    tlv320dac31xx is a subset of tlv320aic31xx:
    - it does not have MIC inputs and ADC, thus capture is not supported,
    - it has analog inputs AIN1/AIN2 that can be mixed into output.
    
    Although tlv320dac31xx does work with tlv320aic31xx driver, this setup
    does register non-existent widgets and non-existent capture stream.
    Thus userspace lists non-existent objects in user interfaces, an can
    access these, causing operations with device registers that are
    declared as "reserved" in tlv320dac31xx datasheet.
    
    This patch fixes this situation by separating controls/widgets/routes
    into common, aic31xx-specific, and dac31xx-specific parts. Only parts
    that match actual hardware (as declared in "compatible" device tree
    property) are registered.
    
    Changes from v1:
    - update device tree binding documentation,
    - rebased on top of "ASoC: codec duplicated callback function goes to
      component on tlv320aic31xx" commit.
    Signed-off-by: default avatarNikita Yushchenko <nikita.yoush@cogentembedded.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    ef9656b6
tlv320aic31xx.h 8.56 KB