Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / include / asm-m68k / machw.h
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 */