Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | #if 0 | |
29 | /* Mac SCSI Controller 5380 */ | |
30 | ||
31 | #define MAC_5380_BAS (0x50F10000) /* This is definitely wrong!! */ | |
32 | struct 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) | |
56 | struct 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 | ||
75 | struct 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 | ||
97 | extern struct mac_hw_present mac_hw_present; | |
98 | ||
99 | #endif /* __ASSEMBLY__ */ | |
100 | ||
101 | #endif /* linux/machw.h */ |