diff options
author | Jin Park <jinyoungp@nvidia.com> | 2011-03-16 22:59:31 +0900 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-04-04 17:57:51 -0700 |
commit | 8b81c1c918c289328df61b1e325a8019f9814d98 (patch) | |
tree | 87968a241a5fb66ae544a64a1386c9de9da399ac /arch/arm/mach-tegra/pinmux.c | |
parent | 8014ff69b2b8a860840f04d26ad164ae8353b04d (diff) |
ARM: tegra: clocks: Add mux clock inputs to cdev1 and cdev2
For getting actual rate, add mux clock inputs to cdev1 and cdev2.
Change-Id: Ic42eb97a51bceb5249ca29938ac00f8add9ef032
Signed-off-by: Jin Park <jinyoungp@nvidia.com>
Reviewed-on: http://git-master/r/23187
Reviewed-by: Sumit Bhattacharya <sumitb@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/pinmux.c')
-rw-r--r-- | arch/arm/mach-tegra/pinmux.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/pinmux.c b/arch/arm/mach-tegra/pinmux.c index d94e348412f3..b58541009a77 100644 --- a/arch/arm/mach-tegra/pinmux.c +++ b/arch/arm/mach-tegra/pinmux.c @@ -227,6 +227,28 @@ static int tegra_pinmux_set_func(const struct tegra_pingroup_config *config) return 0; } +int tegra_pinmux_get_func(enum tegra_pingroup pg) +{ + int mux = -1; + unsigned long reg; + unsigned long flags; + + if (pg < 0 || pg >= TEGRA_MAX_PINGROUP) + return -ERANGE; + + if (pingroups[pg].mux_reg < 0) + return -EINVAL; + + spin_lock_irqsave(&mux_lock, flags); + + reg = pg_readl(pingroups[pg].mux_reg); + mux = (reg >> pingroups[pg].mux_bit) & 0x3; + + spin_unlock_irqrestore(&mux_lock, flags); + + return mux; +} + int tegra_pinmux_set_tristate(enum tegra_pingroup pg, enum tegra_tristate tristate) { |