summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaro Koskinen2013-09-24 21:28:15 +0200
committerTony Lindgren2013-09-26 01:14:30 +0200
commitfaf4bd47b06d8c92610cda8d49bfe4b79f79f74f (patch)
treeeaa5459c05e0e7a91d95e124378cc25d058844c6
parentARM: OMAP2+: Use pdata quirks for wl12xx legacy init (diff)
downloadkernel-qcow2-linux-faf4bd47b06d8c92610cda8d49bfe4b79f79f74f.tar.gz
kernel-qcow2-linux-faf4bd47b06d8c92610cda8d49bfe4b79f79f74f.tar.xz
kernel-qcow2-linux-faf4bd47b06d8c92610cda8d49bfe4b79f79f74f.zip
ARM: OMAP2+: pdata-quirks: set internal clock source for MMC2 on N950/N9
Set internal clock source for MMC2 on N950/N9. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/mach-omap2/pdata-quirks.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 04bfa647a934..3d472dbb9205 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -16,6 +16,7 @@
#include "common.h"
#include "common-board-devices.h"
#include "dss-common.h"
+#include "control.h"
struct pdata_init {
const char *compatible;
@@ -64,6 +65,17 @@ static inline void legacy_init_wl12xx(unsigned ref_clock,
}
#endif
+#ifdef CONFIG_ARCH_OMAP3
+static void __init hsmmc2_internal_input_clk(void)
+{
+ u32 reg;
+
+ reg = omap_ctrl_readl(OMAP343X_CONTROL_DEVCONF1);
+ reg |= OMAP2_MMCSDIO2ADPCLKISEL;
+ omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1);
+}
+#endif /* CONFIG_ARCH_OMAP3 */
+
#ifdef CONFIG_ARCH_OMAP4
static void __init omap4_sdp_legacy_init(void)
{
@@ -88,6 +100,10 @@ static void __init omap5_uevm_legacy_init(void)
#endif
static struct pdata_init pdata_quirks[] __initdata = {
+#ifdef CONFIG_ARCH_OMAP3
+ { "nokia,omap3-n9", hsmmc2_internal_input_clk, },
+ { "nokia,omap3-n950", hsmmc2_internal_input_clk, },
+#endif
#ifdef CONFIG_ARCH_OMAP4
{ "ti,omap4-sdp", omap4_sdp_legacy_init, },
{ "ti,omap4-panda", omap4_panda_legacy_init, },