1/*
2 *  linux/include/asm-arm/arch-arc/hardware.h
3 *
4 *  Copyright (C) 1996-1999 Russell King.
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 *  This file contains the hardware definitions of the
11 *  Acorn Archimedes/A5000 machines.
12 *
13 *  Modifications:
14 *   04-04-1998	PJB/RMK	Merged arc and a5k versions
15 */
16#ifndef __ASM_ARCH_HARDWARE_H
17#define __ASM_ARCH_HARDWARE_H
18
19#include <linux/config.h>
20
21#include <asm/arch/memory.h>
22
23/*
24 * What hardware must be present - these can be tested by the kernel
25 * source.
26 */
27#define HAS_IOC
28#define HAS_MEMC
29#include <asm/hardware/memc.h>
30#define HAS_VIDC
31
32/* Hardware addresses of major areas.
33 *  *_START is the physical address
34 *  *_SIZE  is the size of the region
35 *  *_BASE  is the virtual address
36 */
37#define IO_START		0x03000000
38#define IO_SIZE			0x01000000
39#define IO_BASE			0x03000000
40
41/*
42 * Screen mapping information
43 */
44#define SCREEN_START		0x02000000
45#define SCREEN_END		0x02078000
46#define SCREEN_BASE		0x02000000
47
48
49#define EXPMASK_BASE		0x03360000
50#define IOEB_BASE		0x03350000
51#define VIDC_BASE		0x03400000
52#define LATCHA_BASE		0x03250040
53#define LATCHB_BASE		0x03250018
54#define IOC_BASE		0x03200000
55#define FLOPPYDMA_BASE		0x0302a000
56#define PCIO_BASE		0x03010000
57
58#define vidc_writel(val)	__raw_writel(val, VIDC_BASE)
59
60#ifndef __ASSEMBLY__
61
62/*
63 * for use with inb/outb
64 */
65#ifdef CONFIG_ARCH_A5K
66#define IOEB_VID_CTL		(IOEB_BASE + 0x48)
67#define IOEB_PRESENT		(IOEB_BASE + 0x50)
68#define IOEB_PSCLR		(IOEB_BASE + 0x58)
69#define IOEB_MONTYPE		(IOEB_BASE + 0x70)
70#endif
71
72#define IO_EC_IOC_BASE		0x80090000
73#define IO_EC_MEMC_BASE		0x80000000
74
75#ifdef CONFIG_ARCH_ARC
76/* A680 hardware */
77#define WD1973_BASE		0x03290000
78#define WD1973_LATCH		0x03350000
79#define Z8530_BASE		0x032b0008
80#define SCSI_BASE		0x03100000
81#endif
82
83#endif
84
85#define	EXPMASK_STATUS		(EXPMASK_BASE + 0x00)
86#define EXPMASK_ENABLE		(EXPMASK_BASE + 0x04)
87
88#endif
89