aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/davinci.h
diff options
context:
space:
mode:
authorManjunath Hadli <manjunath.hadli@ti.com>2011-12-21 08:43:36 -0500
committerSekhar Nori <nsekhar@ti.com>2012-02-24 16:10:17 -0500
commit5cfb19ac604a68c030b245561f575c2d1bac1d49 (patch)
tree2118dacf77e4f83400757a31dd94f4149e3ca495 /arch/arm/mach-davinci/davinci.h
parent39c6d2d1d743b8c925abae7043acc35e6cdc0051 (diff)
ARM: davinci: streamline sysmod access
There are instances of IO_ADDRESS() being used for system module (sysmod) register access. Eliminate this in favor of a ioremap() based access. ioremap() the entire sysmod address space once during boot-up and provide a helper macro to access specific register offsets within the address space. With this, also eliminate ioremap() of specific sysmodule registers related to VPIF happening in DM646x EVM code. While at it, also eliminate some duplicate sysmod register offset macros defined in code and place offset definitions at one place in davinci.h Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com> Acked-by: Arnd Bergmann <arnd@arndb.de> [nsekhar@ti.com: removed the addition of ifndef __ASSEMBLER__ in davinci.h, eliminate IO_ADDRESS() usage left out in dm646x.c, cleanup VPIF sysmodule register access as part of this patch and keep all sysmod offsets in davinci.h Also, convert the WARN_ON() on failure to setup sysmod base to BUG_ON()] Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Diffstat (limited to 'arch/arm/mach-davinci/davinci.h')
-rw-r--r--arch/arm/mach-davinci/davinci.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h
index 5e4f85ebd232..b1a52fb30cba 100644
--- a/arch/arm/mach-davinci/davinci.h
+++ b/arch/arm/mach-davinci/davinci.h
@@ -25,10 +25,21 @@
25 25
26#include <mach/asp.h> 26#include <mach/asp.h>
27#include <mach/keyscan.h> 27#include <mach/keyscan.h>
28#include <mach/hardware.h>
28 29
29#include <media/davinci/vpfe_capture.h> 30#include <media/davinci/vpfe_capture.h>
30#include <media/davinci/vpif_types.h> 31#include <media/davinci/vpif_types.h>
31 32
33#define DAVINCI_SYSTEM_MODULE_BASE 0x01c40000
34#define SYSMOD_VIDCLKCTL 0x38
35#define SYSMOD_VDD3P3VPWDN 0x48
36#define SYSMOD_VSCLKDIS 0x6c
37#define SYSMOD_PUPDCTL1 0x7c
38
39extern void __iomem *davinci_sysmod_base;
40#define DAVINCI_SYSMOD_VIRT(x) (davinci_sysmod_base + (x))
41void davinci_map_sysmod(void);
42
32/* DM355 base addresses */ 43/* DM355 base addresses */
33#define DM355_ASYNC_EMIF_CONTROL_BASE 0x01e10000 44#define DM355_ASYNC_EMIF_CONTROL_BASE 0x01e10000
34#define DM355_ASYNC_EMIF_DATA_CE0_BASE 0x02000000 45#define DM355_ASYNC_EMIF_DATA_CE0_BASE 0x02000000