diff options
author | Nikesh Oswal <noswal@nvidia.com> | 2012-01-24 12:18:04 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2012-01-30 11:56:46 -0800 |
commit | 965e071849da10e150d68693e20396d120e83168 (patch) | |
tree | f00fd5fc6a98ecfae2309798fbf2f155216e0eba /sound | |
parent | a52e3bd669c7bf0992de78a8065ec661a54c035a (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.c | 32 | ||||
-rw-r--r-- | sound/soc/tegra/tegra20_das.h | 2 |
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 |