| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 */ |