summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/twl6040-core.c
diff options
context:
space:
mode:
authorPeter Ujfalusi2011-10-12 10:57:55 +0200
committerMark Brown2011-10-12 12:48:49 +0200
commit70601ec10a2450369d554e49d708ab26deb17b66 (patch)
treed33c829e1f54a634b43c9361c816972050593e60 /drivers/mfd/twl6040-core.c
parentMFD: twl6040: Cache the vibra control registers (diff)
downloadkernel-qcow2-linux-70601ec10a2450369d554e49d708ab26deb17b66.tar.gz
kernel-qcow2-linux-70601ec10a2450369d554e49d708ab26deb17b66.tar.xz
kernel-qcow2-linux-70601ec10a2450369d554e49d708ab26deb17b66.zip
MFD: twl6040: function to query the vibra status for clients
If the client only interested, if any of the vibra channels enabled, or if any of the channels are set to receive audio data via PDM. This function targets mainly the vibra driver, so it can check if it is allowed to execute effects ot not. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Samuel Ortiz <samuel.ortiz@intel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/mfd/twl6040-core.c')
-rw-r--r--drivers/mfd/twl6040-core.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/mfd/twl6040-core.c b/drivers/mfd/twl6040-core.c
index 75987c8ca049..268f80fd0439 100644
--- a/drivers/mfd/twl6040-core.c
+++ b/drivers/mfd/twl6040-core.c
@@ -444,6 +444,18 @@ unsigned int twl6040_get_sysclk(struct twl6040 *twl6040)
}
EXPORT_SYMBOL(twl6040_get_sysclk);
+/* Get the combined status of the vibra control register */
+int twl6040_get_vibralr_status(struct twl6040 *twl6040)
+{
+ u8 status;
+
+ status = twl6040->vibra_ctrl_cache[0] | twl6040->vibra_ctrl_cache[1];
+ status &= (TWL6040_VIBENA | TWL6040_VIBSEL);
+
+ return status;
+}
+EXPORT_SYMBOL(twl6040_get_vibralr_status);
+
static struct resource twl6040_vibra_rsrc[] = {
{
.flags = IORESOURCE_IRQ,