diff options
| author | Tony Lindgren <tony@atomide.com> | 2009-08-28 10:50:33 -0700 | 
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2009-08-28 10:50:33 -0700 | 
| commit | 941132606c7611246d2034cb7b01f9270c2d1ede (patch) | |
| tree | e53a618c4e98d3716551afa2e6cfae2be81056a0 /arch/arm/plat-omap/include/mach/io.h | |
| parent | 326ba5010a5429a5a528b268b36a5900d4ab0eba (diff) | |
| download | olio-linux-3.10-941132606c7611246d2034cb7b01f9270c2d1ede.tar.xz olio-linux-3.10-941132606c7611246d2034cb7b01f9270c2d1ede.zip  | |
OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead
Search and replace OMAP_IO_ADDRESS with OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS,
and convert omap_read/write into a functions instead of a macros.
Also rename OMAP_MPUIO_VBASE to OMAP1_MPUIO_VBASE.
In the long run, most code should use ioremap + __raw_read/write instead.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/plat-omap/include/mach/io.h')
| -rw-r--r-- | arch/arm/plat-omap/include/mach/io.h | 64 | 
1 files changed, 21 insertions, 43 deletions
diff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h index 21fb0efdda8..55659809478 100644 --- a/arch/arm/plat-omap/include/mach/io.h +++ b/arch/arm/plat-omap/include/mach/io.h @@ -54,15 +54,23 @@   * ----------------------------------------------------------------------------   */ +#ifdef __ASSEMBLER__ +#define IOMEM(x)		(x) +#else +#define IOMEM(x)		((void __force __iomem *)(x)) +#endif + +#define OMAP1_IO_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */ +#define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET) + +#define OMAP2_IO_OFFSET		0x90000000 +#define OMAP2_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_IO_OFFSET) /* L3 and L4 */ +  #if defined(CONFIG_ARCH_OMAP1)  #define IO_PHYS			0xFFFB0000 -#define IO_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */  #define IO_SIZE			0x40000 -#define IO_VIRT			(IO_PHYS - IO_OFFSET) -#define __IO_ADDRESS(pa)	((pa) - IO_OFFSET) -#define __OMAP1_IO_ADDRESS(pa)	((pa) - IO_OFFSET) -#define io_v2p(va)		((va) + IO_OFFSET) +#define IO_VIRT			(IO_PHYS - OMAP1_IO_OFFSET)  #elif defined(CONFIG_ARCH_OMAP2) @@ -87,11 +95,6 @@  #define OMAP243X_SMS_VIRT	0xFC000000  #define OMAP243X_SMS_SIZE	SZ_1M -#define IO_OFFSET		0x90000000 -#define __IO_ADDRESS(pa)	((pa) + IO_OFFSET)	/* Works for L3 and L4 */ -#define __OMAP2_IO_ADDRESS(pa)	((pa) + IO_OFFSET)	/* Works for L3 and L4 */ -#define io_v2p(va)		((va) - IO_OFFSET)	/* Works for L3 and L4 */ -  /* DSP */  #define DSP_MEM_24XX_PHYS	OMAP2420_DSP_MEM_BASE	/* 0x58000000 */  #define DSP_MEM_24XX_VIRT	0xe0000000 @@ -143,12 +146,6 @@  #define OMAP343X_SDRC_VIRT	0xFD000000  #define OMAP343X_SDRC_SIZE	SZ_1M - -#define IO_OFFSET		0x90000000 -#define __IO_ADDRESS(pa)	((pa) + IO_OFFSET)/* Works for L3 and L4 */ -#define __OMAP2_IO_ADDRESS(pa)	((pa) + IO_OFFSET)/* Works for L3 and L4 */ -#define io_v2p(va)		((va) - IO_OFFSET)/* Works for L3 and L4 */ -  /* DSP */  #define DSP_MEM_34XX_PHYS	OMAP34XX_DSP_MEM_BASE	/* 0x58000000 */  #define DSP_MEM_34XX_VIRT	0xe0000000 @@ -188,39 +185,20 @@  #define OMAP44XX_GPMC_VIRT	0xe0000000  #define OMAP44XX_GPMC_SIZE	SZ_1M - -#define IO_OFFSET		0x90000000 -#define __IO_ADDRESS(pa)	((pa) + IO_OFFSET)/* Works for L3 and L4 */ -#define __OMAP2_IO_ADDRESS(pa)	((pa) + IO_OFFSET)/* Works for L3 and L4 */ -#define io_v2p(va)		((va) - IO_OFFSET)/* Works for L3 and L4 */ -  #endif -#define IO_ADDRESS(pa)		IOMEM(__IO_ADDRESS(pa)) -#define OMAP1_IO_ADDRESS(pa)	IOMEM(__OMAP1_IO_ADDRESS(pa)) -#define OMAP2_IO_ADDRESS(pa)	IOMEM(__OMAP2_IO_ADDRESS(pa)) - -#ifdef __ASSEMBLER__ -#define IOMEM(x)		(x) -#else -#define IOMEM(x)		((void __force __iomem *)(x)) +#ifndef __ASSEMBLER__  /* - * Functions to access the OMAP IO region - * - * NOTE: - Use omap_read/write[bwl] for physical register addresses - *	 - Use __raw_read/write[bwl]() for virtual register addresses - *	 - Use IO_ADDRESS(phys_addr) to convert registers to virtual addresses - *	 - DO NOT use hardcoded virtual addresses to allow changing the - *	   IO address space again if needed + * NOTE: Please use ioremap + __raw_read/write where possible instead of these   */ -#define omap_readb(a)		__raw_readb(IO_ADDRESS(a)) -#define omap_readw(a)		__raw_readw(IO_ADDRESS(a)) -#define omap_readl(a)		__raw_readl(IO_ADDRESS(a)) -#define omap_writeb(v,a)	__raw_writeb(v, IO_ADDRESS(a)) -#define omap_writew(v,a)	__raw_writew(v, IO_ADDRESS(a)) -#define omap_writel(v,a)	__raw_writel(v, IO_ADDRESS(a)) +extern u8 omap_readb(u32 pa); +extern u16 omap_readw(u32 pa); +extern u32 omap_readl(u32 pa); +extern void omap_writeb(u8 v, u32 pa); +extern void omap_writew(u16 v, u32 pa); +extern void omap_writel(u32 v, u32 pa);  struct omap_sdrc_params;  |