1 /*
2  *  include/asm-ppc/hydra.h -- Mac I/O `Hydra' definitions
3  *
4  *  Copyright (C) 1997 Geert Uytterhoeven
5  *
6  *  This file is based on the following documentation:
7  *
8  *	Macintosh Technology in the Common Hardware Reference Platform
9  *	Apple Computer, Inc.
10  *
11  *	© Copyright 1995 Apple Computer, Inc. All rights reserved.
12  *
13  *  It's available online from http://www.cpu.lu/~mlan/ftp/MacTech.pdf
14  *  You can obtain paper copies of this book from computer bookstores or by
15  *  writing Morgan Kaufmann Publishers, Inc., 340 Pine Street, Sixth Floor, San
16  *  Francisco, CA 94104. Reference ISBN 1-55860-393-X.
17  *
18  *  This file is subject to the terms and conditions of the GNU General Public
19  *  License.  See the file COPYING in the main directory of this archive
20  *  for more details.
21  */
22 
23 #ifndef _ASMPPC_HYDRA_H
24 #define _ASMPPC_HYDRA_H
25 
26 #ifdef __KERNEL__
27 
28 struct Hydra {
29     /* DBDMA Controller Register Space */
30     char Pad1[0x30];
31     u_int CachePD;
32     u_int IDs;
33     u_int Feature_Control;
34     char Pad2[0x7fc4];
35     /* DBDMA Channel Register Space */
36     char SCSI_DMA[0x100];
37     char Pad3[0x300];
38     char SCCA_Tx_DMA[0x100];
39     char SCCA_Rx_DMA[0x100];
40     char SCCB_Tx_DMA[0x100];
41     char SCCB_Rx_DMA[0x100];
42     char Pad4[0x7800];
43     /* Device Register Space */
44     char SCSI[0x1000];
45     char ADB[0x1000];
46     char SCC_Legacy[0x1000];
47     char SCC[0x1000];
48     char Pad9[0x2000];
49     char VIA[0x2000];
50     char Pad10[0x28000];
51     char OpenPIC[0x40000];
52 };
53 
54 extern volatile struct Hydra __iomem *Hydra;
55 
56 
57     /*
58      *  Feature Control Register
59      */
60 
61 #define HYDRA_FC_SCC_CELL_EN	0x00000001	/* Enable SCC Clock */
62 #define HYDRA_FC_SCSI_CELL_EN	0x00000002	/* Enable SCSI Clock */
63 #define HYDRA_FC_SCCA_ENABLE	0x00000004	/* Enable SCC A Lines */
64 #define HYDRA_FC_SCCB_ENABLE	0x00000008	/* Enable SCC B Lines */
65 #define HYDRA_FC_ARB_BYPASS	0x00000010	/* Bypass Internal Arbiter */
66 #define HYDRA_FC_RESET_SCC	0x00000020	/* Reset SCC */
67 #define HYDRA_FC_MPIC_ENABLE	0x00000040	/* Enable OpenPIC */
68 #define HYDRA_FC_SLOW_SCC_PCLK	0x00000080	/* 1=15.6672, 0=25 MHz */
69 #define HYDRA_FC_MPIC_IS_MASTER	0x00000100	/* OpenPIC Master Mode */
70 
71 
72     /*
73      *  OpenPIC Interrupt Sources
74      */
75 
76 #define HYDRA_INT_SIO		0
77 #define HYDRA_INT_SCSI_DMA	1
78 #define HYDRA_INT_SCCA_TX_DMA	2
79 #define HYDRA_INT_SCCA_RX_DMA	3
80 #define HYDRA_INT_SCCB_TX_DMA	4
81 #define HYDRA_INT_SCCB_RX_DMA	5
82 #define HYDRA_INT_SCSI		6
83 #define HYDRA_INT_SCCA		7
84 #define HYDRA_INT_SCCB		8
85 #define HYDRA_INT_VIA		9
86 #define HYDRA_INT_ADB		10
87 #define HYDRA_INT_ADB_NMI	11
88 #define HYDRA_INT_EXT1		12	/* PCI IRQW */
89 #define HYDRA_INT_EXT2		13	/* PCI IRQX */
90 #define HYDRA_INT_EXT3		14	/* PCI IRQY */
91 #define HYDRA_INT_EXT4		15	/* PCI IRQZ */
92 #define HYDRA_INT_EXT5		16	/* IDE Primary/Secondary */
93 #define HYDRA_INT_EXT6		17	/* IDE Secondary */
94 #define HYDRA_INT_EXT7		18	/* Power Off Request */
95 #define HYDRA_INT_SPARE		19
96 
97 extern int hydra_init(void);
98 
99 #endif /* __KERNEL__ */
100 
101 #endif /* _ASMPPC_HYDRA_H */
102