hardware.h (1388B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * arch/arm/mach-sa1100/include/mach/hardware.h 4 * 5 * Copyright (C) 1998 Nicolas Pitre <nico@fluxnic.net> 6 * 7 * This file contains the hardware definitions for SA1100 architecture 8 * 9 * 2000/05/23 John Dorsey <john+@cs.cmu.edu> 10 * Definitions for SA1111 added. 11 */ 12 13#ifndef __ASM_ARCH_HARDWARE_H 14#define __ASM_ARCH_HARDWARE_H 15 16 17#define UNCACHEABLE_ADDR 0xfa050000 /* ICIP */ 18 19 20/* 21 * SA1100 internal I/O mappings 22 * 23 * We have the following mapping: 24 * phys virt 25 * 80000000 f8000000 26 * 90000000 fa000000 27 * a0000000 fc000000 28 * b0000000 fe000000 29 */ 30 31#define VIO_BASE 0xf8000000 /* virtual start of IO space */ 32#define VIO_SHIFT 3 /* x = IO space shrink power */ 33#define PIO_START 0x80000000 /* physical start of IO space */ 34 35#define io_p2v( x ) \ 36 IOMEM( (((x)&0x00ffffff) | (((x)&0x30000000)>>VIO_SHIFT)) + VIO_BASE ) 37#define io_v2p( x ) \ 38 ( (((x)&0x00ffffff) | (((x)&(0x30000000>>VIO_SHIFT))<<VIO_SHIFT)) + PIO_START ) 39 40#define __MREG(x) IOMEM(io_p2v(x)) 41 42#ifndef __ASSEMBLY__ 43 44# define __REG(x) (*((volatile unsigned long __iomem *)io_p2v(x))) 45# define __PREG(x) (io_v2p((unsigned long)&(x))) 46 47#else 48 49# define __REG(x) io_p2v(x) 50# define __PREG(x) io_v2p(x) 51 52#endif 53 54#include "SA-1100.h" 55 56#endif /* _ASM_ARCH_HARDWARE_H */