• Jarkko Nikula's avatar
    ASoC: tlv320aic3x: Add support to shared common reset line · 414c73ab
    Jarkko Nikula authored
    This is aimed to configurations where multiple aic3x codecs share the same
    reset line and are powered from same supply voltages.
    
    Currently aic3x_probe will fail if trying to request already requested
    gpio_reset and passing -1 to another aic3x instances cause that those
    instances cannot release reset in aic3x_set_power. That is, another
    instances can work only if primary aic3x instance is powered and reset is
    released.
    
    Solve this by implementing a list of probed instances that is used for
    checking if other instance shares the same gpio_reset number. If a shared
    reset line exists, then only first instance tries to request and configure
    it and the last instance releases it.
    
    Runtime modifications are not needed since aic3x_regulator_event with help
    of regulator framework takes already care that reset is pulled down only
    when some or all supplies are disabled meaning that all instances using them
    are idle.
    Signed-off-by: default avatarJarkko Nikula <jhnikula@gmail.com>
    Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
    414c73ab
tlv320aic3x.c 51 KB