On Mon, Mar 20, 2017 at 10:13:52AM +0100, Linus Walleij wrote:
The WM8903 has four different voltage inputs: AVDD, CPVDD, DBVDD and DCVDD. On the Qualcomm APQ8060 Dragonboard these are all supplied from proper regulators and thus need activating and binding.
This is a quick-and-dirty solution just grabbing and enabling the regulator supplies on probe() and disabling them on remove() and the errorpath. More elaborate power management is likely possible.
I assume the nVidia designs using this codec have some hard-wired always-on power and will be happy with using the dummy regulators for this. But someone from the nVidia camp should probably check whether they can bind these to proper regulators instead.
We also amend the DT binding document. A small change like this does not warrant a separate patch for augmenting these.
Cc: devicetree@vger.kernel.org Cc: Mark Brown broonie@kernel.org Cc: Liam Girdwood lgirdwood@gmail.com Cc: Stephen Warren swarren@nvidia.com Cc: Charles Keepax ckeepax@opensource.wolfsonmicro.com Signed-off-by: Linus Walleij linus.walleij@linaro.org
Mark: I was thinking about adding runtime PM for disabling these regulators when unused, but I'm uncertain about the interaction with DAPM in that regard. This atleast gives us control over the supplies.
Documentation/devicetree/bindings/sound/wm8903.txt | 13 +++++++++
Acked-by: Rob Herring robh@kernel.org
sound/soc/codecs/wm8903.c | 31 ++++++++++++++++++++++ 2 files changed, 44 insertions(+)