forked from Minki/linux
102 lines
2.5 KiB
C
102 lines
2.5 KiB
C
|
/*
|
||
|
** linux/machw.h -- This header defines some macros and pointers for
|
||
|
** the various Macintosh custom hardware registers.
|
||
|
**
|
||
|
** Copyright 1997 by Michael Schmitz
|
||
|
**
|
||
|
** This file is subject to the terms and conditions of the GNU General Public
|
||
|
** License. See the file COPYING in the main directory of this archive
|
||
|
** for more details.
|
||
|
**
|
||
|
*/
|
||
|
|
||
|
#ifndef _ASM_MACHW_H_
|
||
|
#define _ASM_MACHW_H_
|
||
|
|
||
|
/*
|
||
|
* head.S maps the videomem to VIDEOMEMBASE
|
||
|
*/
|
||
|
|
||
|
#define VIDEOMEMBASE 0xf0000000
|
||
|
#define VIDEOMEMSIZE (4096*1024)
|
||
|
#define VIDEOMEMMASK (-4096*1024)
|
||
|
|
||
|
#ifndef __ASSEMBLY__
|
||
|
|
||
|
#include <linux/types.h>
|
||
|
|
||
|
#if 0
|
||
|
/* Mac SCSI Controller 5380 */
|
||
|
|
||
|
#define MAC_5380_BAS (0x50F10000) /* This is definitely wrong!! */
|
||
|
struct MAC_5380 {
|
||
|
u_char scsi_data;
|
||
|
u_char char_dummy1;
|
||
|
u_char scsi_icr;
|
||
|
u_char char_dummy2;
|
||
|
u_char scsi_mode;
|
||
|
u_char char_dummy3;
|
||
|
u_char scsi_tcr;
|
||
|
u_char char_dummy4;
|
||
|
u_char scsi_idstat;
|
||
|
u_char char_dummy5;
|
||
|
u_char scsi_dmastat;
|
||
|
u_char char_dummy6;
|
||
|
u_char scsi_targrcv;
|
||
|
u_char char_dummy7;
|
||
|
u_char scsi_inircv;
|
||
|
};
|
||
|
#define mac_scsi ((*(volatile struct MAC_5380 *)MAC_5380_BAS))
|
||
|
|
||
|
/*
|
||
|
** SCC Z8530
|
||
|
*/
|
||
|
|
||
|
#define MAC_SCC_BAS (0x50F04000)
|
||
|
struct MAC_SCC
|
||
|
{
|
||
|
u_char cha_a_ctrl;
|
||
|
u_char char_dummy1;
|
||
|
u_char cha_a_data;
|
||
|
u_char char_dummy2;
|
||
|
u_char cha_b_ctrl;
|
||
|
u_char char_dummy3;
|
||
|
u_char cha_b_data;
|
||
|
};
|
||
|
# define mac_scc ((*(volatile struct SCC*)MAC_SCC_BAS))
|
||
|
#endif
|
||
|
|
||
|
/* hardware stuff */
|
||
|
|
||
|
#define MACHW_DECLARE(name) unsigned name : 1
|
||
|
#define MACHW_SET(name) (mac_hw_present.name = 1)
|
||
|
#define MACHW_PRESENT(name) (mac_hw_present.name)
|
||
|
|
||
|
struct mac_hw_present {
|
||
|
/* video hardware */
|
||
|
/* sound hardware */
|
||
|
/* disk storage interfaces */
|
||
|
MACHW_DECLARE(MAC_SCSI_80); /* Directly mapped NCR5380 */
|
||
|
MACHW_DECLARE(MAC_SCSI_96); /* 53c9[46] */
|
||
|
MACHW_DECLARE(MAC_SCSI_96_2); /* 2nd 53c9[46] Q900 and Q950 */
|
||
|
MACHW_DECLARE(IDE); /* IDE Interface */
|
||
|
/* other I/O hardware */
|
||
|
MACHW_DECLARE(SCC); /* Serial Communications Contr. */
|
||
|
/* DMA */
|
||
|
MACHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */
|
||
|
/* real time clocks */
|
||
|
MACHW_DECLARE(RTC_CLK); /* clock chip */
|
||
|
/* supporting hardware */
|
||
|
MACHW_DECLARE(VIA1); /* Versatile Interface Ad. 1 */
|
||
|
MACHW_DECLARE(VIA2); /* Versatile Interface Ad. 2 */
|
||
|
MACHW_DECLARE(RBV); /* Versatile Interface Ad. 2+ */
|
||
|
/* NUBUS */
|
||
|
MACHW_DECLARE(NUBUS); /* NUBUS */
|
||
|
};
|
||
|
|
||
|
extern struct mac_hw_present mac_hw_present;
|
||
|
|
||
|
#endif /* __ASSEMBLY__ */
|
||
|
|
||
|
#endif /* linux/machw.h */
|