ASoC: tlv320aic3x: Add support to shared common reset line
authorJarkko Nikula <jhnikula@gmail.com>
Mon, 1 Nov 2010 12:03:56 +0000 (14:03 +0200)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Wed, 3 Nov 2010 14:18:58 +0000 (14:18 +0000)
commit414c73abfd0e565950f3b02336cf516147f0e104
tree173fdad40106b19f7c58006833c108a0fcc23d0a
parent79ee820d2aa24ac2577ca4e89ecc49c26d099707
ASoC: tlv320aic3x: Add support to shared common reset line

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: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/tlv320aic3x.c