summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorNikesh Oswal <noswal@nvidia.com>2012-01-24 12:18:04 +0530
committerVarun Colbert <vcolbert@nvidia.com>2012-01-30 11:56:46 -0800
commit965e071849da10e150d68693e20396d120e83168 (patch)
treef00fd5fc6a98ecfae2309798fbf2f155216e0eba /sound
parenta52e3bd669c7bf0992de78a8065ec661a54c035a (diff)
asoc: tegra: ap20: add functions to enable/tristate the das
Bug: 919350 Reviewed-on: http://git-master/r/76952 Change-Id: Iffc597141a3a5ea528089ce06bf57a4b012eefe8 Signed-off-by: Nikesh Oswal <noswal@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/77730 Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/tegra/tegra20_das.c32
-rw-r--r--sound/soc/tegra/tegra20_das.h2
2 files changed, 34 insertions, 0 deletions
diff --git a/sound/soc/tegra/tegra20_das.c b/sound/soc/tegra/tegra20_das.c
index 29ce3166052c..0774d360399a 100644
--- a/sound/soc/tegra/tegra20_das.c
+++ b/sound/soc/tegra/tegra20_das.c
@@ -28,6 +28,7 @@
#include <linux/slab.h>
#include <linux/io.h>
#include <mach/iomap.h>
+#include <mach/pinmux.h>
#include <sound/soc.h>
#include "tegra20_das.h"
@@ -66,6 +67,37 @@ int tegra20_das_resume()
}
#endif
+int tegra20_das_set_tristate(int dap_id, int is_tristate)
+{
+ enum tegra_pingroup pin;
+ enum tegra_tristate tristate;
+
+ switch (dap_id) {
+ case TEGRA20_DAS_DAP_ID_1:
+ pin = TEGRA_PINGROUP_DAP1;
+ break;
+ case TEGRA20_DAS_DAP_ID_2:
+ pin = TEGRA_PINGROUP_DAP2;
+ break;
+ case TEGRA20_DAS_DAP_ID_3:
+ pin = TEGRA_PINGROUP_DAP3;
+ break;
+ case TEGRA20_DAS_DAP_ID_4:
+ pin = TEGRA_PINGROUP_DAP4;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ if (is_tristate)
+ tristate = TEGRA_TRI_TRISTATE;
+ else
+ tristate = TEGRA_TRI_NORMAL;
+
+ tegra_pinmux_set_tristate(pin, tristate);
+}
+EXPORT_SYMBOL_GPL(tegra20_das_set_tristate);
+
int tegra20_das_connect_dap_to_dac(int dap, int dac)
{
u32 addr;
diff --git a/sound/soc/tegra/tegra20_das.h b/sound/soc/tegra/tegra20_das.h
index 1d7c57fd0092..0d58c7d1bc3f 100644
--- a/sound/soc/tegra/tegra20_das.h
+++ b/sound/soc/tegra/tegra20_das.h
@@ -143,4 +143,6 @@ extern int tegra20_das_connect_dap_to_dap(int dap_id, int other_dap_sel,
*/
extern int tegra20_das_connect_dac_to_dap(int dac_id, int dap_sel);
+extern int tegra20_das_set_tristate(int dap_id, int is_tristate);
+
#endif