Commit 26c34c25 authored by Mark Brown's avatar Mark Brown

mfd: Disable more pulls on WM8994

Disable more pulls by default on WM8994 for a small current saving. Since
some designs do leave SPKMODE floating provide platform data to allow that
to be left enabled.
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 2fa33494
...@@ -373,6 +373,7 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq) ...@@ -373,6 +373,7 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
struct wm8994_pdata *pdata = wm8994->dev->platform_data; struct wm8994_pdata *pdata = wm8994->dev->platform_data;
const char *devname; const char *devname;
int ret, i; int ret, i;
int pulls = 0;
dev_set_drvdata(wm8994->dev, wm8994); dev_set_drvdata(wm8994->dev, wm8994);
...@@ -515,12 +516,16 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq) ...@@ -515,12 +516,16 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
} }
wm8994->ldo_ena_always_driven = pdata->ldo_ena_always_driven; wm8994->ldo_ena_always_driven = pdata->ldo_ena_always_driven;
if (pdata->spkmode_pu)
pulls |= WM8994_SPKMODE_PU;
} }
/* Disable LDO pulldowns while the device is active */ /* Disable unneeded pulls */
wm8994_set_bits(wm8994, WM8994_PULL_CONTROL_2, wm8994_set_bits(wm8994, WM8994_PULL_CONTROL_2,
WM8994_LDO1ENA_PD | WM8994_LDO2ENA_PD, WM8994_LDO1ENA_PD | WM8994_LDO2ENA_PD |
0); WM8994_SPKMODE_PU | WM8994_CSNADDR_PD,
pulls);
/* In some system designs where the regulators are not in use, /* In some system designs where the regulators are not in use,
* we can achieve a small reduction in leakage currents by * we can achieve a small reduction in leakage currents by
......
...@@ -174,6 +174,12 @@ struct wm8994_pdata { ...@@ -174,6 +174,12 @@ struct wm8994_pdata {
* consumption will rise. * consumption will rise.
*/ */
bool ldo_ena_always_driven; bool ldo_ena_always_driven;
/*
* SPKMODE must be pulled internally by the device on this
* system.
*/
bool spkmode_pu;
}; };
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment