1/*
2** linux/machw.h -- This header defines some macros and pointers for
3**                    the various Macintosh custom hardware registers.
4**
5** Copyright 1997 by Michael Schmitz
6**
7** This file is subject to the terms and conditions of the GNU General Public
8** License.  See the file COPYING in the main directory of this archive
9** for more details.
10**
11*/
12
13#ifndef _ASM_MACHW_H_
14#define _ASM_MACHW_H_
15
16/*
17 * head.S maps the videomem to VIDEOMEMBASE
18 */
19
20#define VIDEOMEMBASE	0xf0000000
21#define VIDEOMEMSIZE	(4096*1024)
22#define VIDEOMEMMASK	(-4096*1024)
23
24#ifndef __ASSEMBLY__
25
26#include <linux/types.h>
27
28
29/* hardware stuff */
30
31#define MACHW_DECLARE(name)	unsigned name : 1
32#define MACHW_SET(name)		(mac_hw_present.name = 1)
33#define MACHW_PRESENT(name)	(mac_hw_present.name)
34
35struct mac_hw_present {
36  /* video hardware */
37  /* sound hardware */
38  /* disk storage interfaces */
39  MACHW_DECLARE(MAC_SCSI_80);     /* Directly mapped NCR5380 */
40  MACHW_DECLARE(MAC_SCSI_96);     /* 53c9[46] */
41  MACHW_DECLARE(MAC_SCSI_96_2);   /* 2nd 53c9[46] Q900 and Q950 */
42  MACHW_DECLARE(IDE);             /* IDE Interface */
43  /* other I/O hardware */
44  MACHW_DECLARE(SCC);             /* Serial Communications Contr. */
45  /* DMA */
46  MACHW_DECLARE(SCSI_DMA);        /* DMA for the NCR5380 */
47  /* real time clocks */
48  MACHW_DECLARE(RTC_CLK);         /* clock chip */
49  /* supporting hardware */
50  MACHW_DECLARE(VIA1);            /* Versatile Interface Ad. 1 */
51  MACHW_DECLARE(VIA2);            /* Versatile Interface Ad. 2 */
52  MACHW_DECLARE(RBV);             /* Versatile Interface Ad. 2+ */
53  /* NUBUS */
54  MACHW_DECLARE(NUBUS);           /* NUBUS */
55};
56
57extern struct mac_hw_present mac_hw_present;
58
59#endif /* __ASSEMBLY__ */
60
61#endif /* linux/machw.h */
62