summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2008-01-25 00:42:48 -0800
committerTony Lindgren <tony@atomide.com>2008-04-14 09:57:11 -0700
commit7d7f665d5dac8d19f2fcb56baea09c59a3f861be (patch)
tree2fdfd5e07f0a258b64bb5921b982dbc8b1025444 /arch/arm/mach-omap2
parent672e302e3c04e40e7c236cb09159f593f24f5def (diff)
ARM: OMAP: Allow registering pin mux function
This patch changes pin multiplexing init to allow registering custom function. The omap_cfg_reg() func will be split into omap processor specific functions in later patch. This is done to make adding omap3 pin multiplexing easier. Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/mux.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index 05750975d74..351baab0503 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -32,6 +32,8 @@
#ifdef CONFIG_OMAP_MUX
+static struct omap_mux_cfg arch_mux_cfg;
+
/* NOTE: See mux.h for the enumeration */
struct pin_config __initdata_or_module omap24xx_pins[] = {
@@ -169,10 +171,25 @@ MUX_CFG_24XX("B13_24XX_KBC6", 0x110, 3, 0, 0, 1)
};
-int __init omap2_mux_init(void)
+#ifdef CONFIG_ARCH_OMAP24XX
+int __init_or_module omap24xx_cfg_reg(const struct pin_config *cfg)
{
- omap_mux_register(omap24xx_pins, ARRAY_SIZE(omap24xx_pins));
return 0;
}
+#endif
+
+int __init omap2_mux_init(void)
+{
+
+#ifdef CONFIG_ARCH_OMAP24XX
+ if (cpu_is_omap24xx()) {
+ arch_mux_cfg.pins = omap24xx_pins;
+ arch_mux_cfg.size = ARRAY_SIZE(omap24xx_pins);
+ arch_mux_cfg.cfg_reg = omap24xx_cfg_reg;
+ }
+#endif
+
+ return omap_mux_register(&arch_mux_cfg);
+}
#endif