1/* 2 * linux/include/asm-arm/arch-aaec2000/hardware.h 3 * 4 * Copyright (c) 2005 Nicolas Bellido Y Ortega 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11#ifndef __ASM_ARCH_HARDWARE_H 12#define __ASM_ARCH_HARDWARE_H 13 14#include <asm/sizes.h> 15#include <asm/arch/aaec2000.h> 16 17/* The kernel is loaded at physical address 0xf8000000. 18 * We map the IO space a bit after 19 */ 20#define PIO_APB_BASE 0x80000000 21#define VIO_APB_BASE 0xf8000000 22#define IO_APB_LENGTH 0x2000 23#define PIO_AHB_BASE 0x80002000 24#define VIO_AHB_BASE 0xf8002000 25#define IO_AHB_LENGTH 0x2000 26 27#define VIO_BASE VIO_APB_BASE 28#define PIO_BASE PIO_APB_BASE 29 30#define io_p2v(x) ( (x) - PIO_BASE + VIO_BASE ) 31#define io_v2p(x) ( (x) + PIO_BASE - VIO_BASE ) 32 33#ifndef __ASSEMBLY__ 34 35#include <asm/types.h> 36 37#define __REG(x) (*((volatile u32 *)io_p2v(x))) 38#define __PREG(x) (io_v2p((u32)&(x))) 39 40#else /* __ASSEMBLY__ */ 41 42#define __REG(x) io_p2v(x) 43#define __PREG(x) io_v2p(x) 44 45#endif 46 47#include "aaec2000.h" 48 49#endif /* __ASM_ARCH_HARDWARE_H */ 50