blob: d2e0e25d5c90692145414155300f45908650d573 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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#if 0
29/* Mac SCSI Controller 5380 */
30
31#define MAC_5380_BAS (0x50F10000) /* This is definitely wrong!! */
32struct MAC_5380 {
33 u_char scsi_data;
34 u_char char_dummy1;
35 u_char scsi_icr;
36 u_char char_dummy2;
37 u_char scsi_mode;
38 u_char char_dummy3;
39 u_char scsi_tcr;
40 u_char char_dummy4;
41 u_char scsi_idstat;
42 u_char char_dummy5;
43 u_char scsi_dmastat;
44 u_char char_dummy6;
45 u_char scsi_targrcv;
46 u_char char_dummy7;
47 u_char scsi_inircv;
48};
49#define mac_scsi ((*(volatile struct MAC_5380 *)MAC_5380_BAS))
50
51/*
52** SCC Z8530
53*/
54
55#define MAC_SCC_BAS (0x50F04000)
56struct MAC_SCC
57 {
58 u_char cha_a_ctrl;
59 u_char char_dummy1;
60 u_char cha_a_data;
61 u_char char_dummy2;
62 u_char cha_b_ctrl;
63 u_char char_dummy3;
64 u_char cha_b_data;
65 };
66# define mac_scc ((*(volatile struct SCC*)MAC_SCC_BAS))
67#endif
68
69/* hardware stuff */
70
71#define MACHW_DECLARE(name) unsigned name : 1
72#define MACHW_SET(name) (mac_hw_present.name = 1)
73#define MACHW_PRESENT(name) (mac_hw_present.name)
74
75struct mac_hw_present {
76 /* video hardware */
77 /* sound hardware */
78 /* disk storage interfaces */
79 MACHW_DECLARE(MAC_SCSI_80); /* Directly mapped NCR5380 */
80 MACHW_DECLARE(MAC_SCSI_96); /* 53c9[46] */
81 MACHW_DECLARE(MAC_SCSI_96_2); /* 2nd 53c9[46] Q900 and Q950 */
82 MACHW_DECLARE(IDE); /* IDE Interface */
83 /* other I/O hardware */
84 MACHW_DECLARE(SCC); /* Serial Communications Contr. */
85 /* DMA */
86 MACHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */
87 /* real time clocks */
88 MACHW_DECLARE(RTC_CLK); /* clock chip */
89 /* supporting hardware */
90 MACHW_DECLARE(VIA1); /* Versatile Interface Ad. 1 */
91 MACHW_DECLARE(VIA2); /* Versatile Interface Ad. 2 */
92 MACHW_DECLARE(RBV); /* Versatile Interface Ad. 2+ */
93 /* NUBUS */
94 MACHW_DECLARE(NUBUS); /* NUBUS */
95};
96
97extern struct mac_hw_present mac_hw_present;
98
99#endif /* __ASSEMBLY__ */
100
101#endif /* linux/machw.h */