summaryrefslogtreecommitdiff
path: root/sound/soc/tegra/tegra_asoc_utils.c
diff options
context:
space:
mode:
authorNikesh Oswal <noswal@nvidia.com>2011-10-31 11:32:52 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:49:39 -0800
commit9bbd2db9ad50f993539dbb84540800673b36c5b6 (patch)
tree40803e9aee01891972749e524d4ed3df0db3fed9 /sound/soc/tegra/tegra_asoc_utils.c
parentce6b40ac3776e8449f0d6ea47302552440530e36 (diff)
asoc: tegra: add code to enable/disable clocks
add code to enable/disable pll_a and cdev1 clocks Bug: 862023 Change-Id: If5b6014f82651e2286802ba6d76f77b1b5419b41 Signed-off-by: Nikesh Oswal <noswal@nvidia.com> Reviewed-on: http://git-master/r/61085 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: Rddb3206531e76e7ea28df691f6aa86a50f7c66d0
Diffstat (limited to 'sound/soc/tegra/tegra_asoc_utils.c')
-rw-r--r--sound/soc/tegra/tegra_asoc_utils.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/sound/soc/tegra/tegra_asoc_utils.c b/sound/soc/tegra/tegra_asoc_utils.c
index 51e8149fce98..5b3ee2308f48 100644
--- a/sound/soc/tegra/tegra_asoc_utils.c
+++ b/sound/soc/tegra/tegra_asoc_utils.c
@@ -112,6 +112,41 @@ int tegra_asoc_utils_set_rate(struct tegra_asoc_utils_data *data, int srate,
}
EXPORT_SYMBOL_GPL(tegra_asoc_utils_set_rate);
+int tegra_asoc_utils_clk_enable(struct tegra_asoc_utils_data *data)
+{
+ int err;
+
+ err = clk_enable(data->clk_pll_a);
+ if (err) {
+ dev_err(data->dev, "Can't enable pll_a: %d\n", err);
+ return err;
+ }
+
+ err = clk_enable(data->clk_pll_a_out0);
+ if (err) {
+ dev_err(data->dev, "Can't enable pll_a_out0: %d\n", err);
+ return err;
+ }
+
+ err = clk_enable(data->clk_cdev1);
+ if (err) {
+ dev_err(data->dev, "Can't enable cdev1: %d\n", err);
+ return err;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(tegra_asoc_utils_clk_enable);
+
+int tegra_asoc_utils_clk_disable(struct tegra_asoc_utils_data *data)
+{
+ clk_disable(data->clk_cdev1);
+ clk_disable(data->clk_pll_a_out0);
+ clk_disable(data->clk_pll_a);
+ return 0;
+}
+EXPORT_SYMBOL_GPL(tegra_asoc_utils_clk_disable);
+
int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data,
struct device *dev)
{