avr32: Add MMIO address definitions for certain controllers
Haavard Skinnemoen [Thu, 31 Jul 2008 14:06:58 +0000 (16:06 +0200)]
Hardcoded MMIO base addresses are used a few places throughout the
platform code. Move these into the chip-specific header file so that
adding support for new chips becomes a bit easier.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>

arch/avr32/mach-at32ap/clock.c
arch/avr32/mach-at32ap/include/mach/at32ap700x.h
arch/avr32/mach-at32ap/pm.c
arch/avr32/mach-at32ap/pm.h

index 4642117..6c27dda 100644 (file)
@@ -16,6 +16,8 @@
 #include <linux/device.h>
 #include <linux/string.h>
 
+#include <mach/chip.h>
+
 #include "clock.h"
 
 static DEFINE_SPINLOCK(clk_lock);
index d18a305..31b44e1 100644 (file)
 #define DMAC_DMAREQ_2          9
 #define DMAC_DMAREQ_3          10
 
+/*
+ * Base addresses of controllers that may be accessed early by
+ * platform code.
+ */
+#define PM_BASE                0xfff00000
+#define HMATRIX_BASE   0xfff00800
+#define SDRAMC_BASE    0xfff03800
+
 #endif /* __ASM_ARCH_AT32AP700X_H__ */
index a0cbef5..f021edf 100644 (file)
 #include <asm/cacheflush.h>
 #include <asm/sysreg.h>
 
+#include <mach/chip.h>
 #include <mach/pm.h>
 #include <mach/sram.h>
 
-/* FIXME: This is only valid for AP7000 */
-#define SDRAMC_BASE    0xfff03800
-
 #include "sdramc.h"
 
 #define SRAM_PAGE_FLAGS        (SYSREG_BIT(TLBELO_D) | SYSREG_BF(SZ, 1)        \
index 694d521..532a373 100644 (file)
@@ -4,14 +4,6 @@
 #ifndef __ARCH_AVR32_MACH_AT32AP_PM_H__
 #define __ARCH_AVR32_MACH_AT32AP_PM_H__
 
-/*
- * We can reduce the code size a bit by using a constant here. Since
- * this file is only used on AVR32 AP CPUs with segmentation enabled,
- * it's safe to not use ioremap. Generic drivers should of course
- * never do this.
- */
-#define AT32_PM_BASE   0xfff00000
-
 /* PM register offsets */
 #define PM_MCCTRL                              0x0000
 #define PM_CKSEL                               0x0004
 
 /* Register access macros */
 #define pm_readl(reg)                                                  \
-       __raw_readl((void __iomem __force *)AT32_PM_BASE + PM_##reg)
+       __raw_readl((void __iomem __force *)PM_BASE + PM_##reg)
 #define pm_writel(reg,value)                                           \
-       __raw_writel((value), (void __iomem __force *)AT32_PM_BASE + PM_##reg)
+       __raw_writel((value), (void __iomem __force *)PM_BASE + PM_##reg)
 
 #endif /* __ARCH_AVR32_MACH_AT32AP_PM_H__ */