162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci *  include/asm-ppc/hydra.h -- Mac I/O `Hydra' definitions
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci *  Copyright (C) 1997 Geert Uytterhoeven
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci *  This file is based on the following documentation:
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci *	Macintosh Technology in the Common Hardware Reference Platform
962306a36Sopenharmony_ci *	Apple Computer, Inc.
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci *	© Copyright 1995 Apple Computer, Inc. All rights reserved.
1262306a36Sopenharmony_ci *
1362306a36Sopenharmony_ci *  It's available online from https://www.cpu.lu/~mlan/ftp/MacTech.pdf
1462306a36Sopenharmony_ci *  You can obtain paper copies of this book from computer bookstores or by
1562306a36Sopenharmony_ci *  writing Morgan Kaufmann Publishers, Inc., 340 Pine Street, Sixth Floor, San
1662306a36Sopenharmony_ci *  Francisco, CA 94104. Reference ISBN 1-55860-393-X.
1762306a36Sopenharmony_ci *
1862306a36Sopenharmony_ci *  This file is subject to the terms and conditions of the GNU General Public
1962306a36Sopenharmony_ci *  License.  See the file COPYING in the main directory of this archive
2062306a36Sopenharmony_ci *  for more details.
2162306a36Sopenharmony_ci */
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#ifndef _ASMPPC_HYDRA_H
2462306a36Sopenharmony_ci#define _ASMPPC_HYDRA_H
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci#ifdef __KERNEL__
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cistruct Hydra {
2962306a36Sopenharmony_ci    /* DBDMA Controller Register Space */
3062306a36Sopenharmony_ci    char Pad1[0x30];
3162306a36Sopenharmony_ci    u_int CachePD;
3262306a36Sopenharmony_ci    u_int IDs;
3362306a36Sopenharmony_ci    u_int Feature_Control;
3462306a36Sopenharmony_ci    char Pad2[0x7fc4];
3562306a36Sopenharmony_ci    /* DBDMA Channel Register Space */
3662306a36Sopenharmony_ci    char SCSI_DMA[0x100];
3762306a36Sopenharmony_ci    char Pad3[0x300];
3862306a36Sopenharmony_ci    char SCCA_Tx_DMA[0x100];
3962306a36Sopenharmony_ci    char SCCA_Rx_DMA[0x100];
4062306a36Sopenharmony_ci    char SCCB_Tx_DMA[0x100];
4162306a36Sopenharmony_ci    char SCCB_Rx_DMA[0x100];
4262306a36Sopenharmony_ci    char Pad4[0x7800];
4362306a36Sopenharmony_ci    /* Device Register Space */
4462306a36Sopenharmony_ci    char SCSI[0x1000];
4562306a36Sopenharmony_ci    char ADB[0x1000];
4662306a36Sopenharmony_ci    char SCC_Legacy[0x1000];
4762306a36Sopenharmony_ci    char SCC[0x1000];
4862306a36Sopenharmony_ci    char Pad9[0x2000];
4962306a36Sopenharmony_ci    char VIA[0x2000];
5062306a36Sopenharmony_ci    char Pad10[0x28000];
5162306a36Sopenharmony_ci    char OpenPIC[0x40000];
5262306a36Sopenharmony_ci};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciextern volatile struct Hydra __iomem *Hydra;
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci    /*
5862306a36Sopenharmony_ci     *  Feature Control Register
5962306a36Sopenharmony_ci     */
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci#define HYDRA_FC_SCC_CELL_EN	0x00000001	/* Enable SCC Clock */
6262306a36Sopenharmony_ci#define HYDRA_FC_SCSI_CELL_EN	0x00000002	/* Enable SCSI Clock */
6362306a36Sopenharmony_ci#define HYDRA_FC_SCCA_ENABLE	0x00000004	/* Enable SCC A Lines */
6462306a36Sopenharmony_ci#define HYDRA_FC_SCCB_ENABLE	0x00000008	/* Enable SCC B Lines */
6562306a36Sopenharmony_ci#define HYDRA_FC_ARB_BYPASS	0x00000010	/* Bypass Internal Arbiter */
6662306a36Sopenharmony_ci#define HYDRA_FC_RESET_SCC	0x00000020	/* Reset SCC */
6762306a36Sopenharmony_ci#define HYDRA_FC_MPIC_ENABLE	0x00000040	/* Enable OpenPIC */
6862306a36Sopenharmony_ci#define HYDRA_FC_SLOW_SCC_PCLK	0x00000080	/* 1=15.6672, 0=25 MHz */
6962306a36Sopenharmony_ci#define HYDRA_FC_MPIC_IS_MASTER	0x00000100	/* OpenPIC Master Mode */
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci    /*
7362306a36Sopenharmony_ci     *  OpenPIC Interrupt Sources
7462306a36Sopenharmony_ci     */
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci#define HYDRA_INT_SIO		0
7762306a36Sopenharmony_ci#define HYDRA_INT_SCSI_DMA	1
7862306a36Sopenharmony_ci#define HYDRA_INT_SCCA_TX_DMA	2
7962306a36Sopenharmony_ci#define HYDRA_INT_SCCA_RX_DMA	3
8062306a36Sopenharmony_ci#define HYDRA_INT_SCCB_TX_DMA	4
8162306a36Sopenharmony_ci#define HYDRA_INT_SCCB_RX_DMA	5
8262306a36Sopenharmony_ci#define HYDRA_INT_SCSI		6
8362306a36Sopenharmony_ci#define HYDRA_INT_SCCA		7
8462306a36Sopenharmony_ci#define HYDRA_INT_SCCB		8
8562306a36Sopenharmony_ci#define HYDRA_INT_VIA		9
8662306a36Sopenharmony_ci#define HYDRA_INT_ADB		10
8762306a36Sopenharmony_ci#define HYDRA_INT_ADB_NMI	11
8862306a36Sopenharmony_ci#define HYDRA_INT_EXT1		12	/* PCI IRQW */
8962306a36Sopenharmony_ci#define HYDRA_INT_EXT2		13	/* PCI IRQX */
9062306a36Sopenharmony_ci#define HYDRA_INT_EXT3		14	/* PCI IRQY */
9162306a36Sopenharmony_ci#define HYDRA_INT_EXT4		15	/* PCI IRQZ */
9262306a36Sopenharmony_ci#define HYDRA_INT_EXT5		16	/* IDE Primary/Secondary */
9362306a36Sopenharmony_ci#define HYDRA_INT_EXT6		17	/* IDE Secondary */
9462306a36Sopenharmony_ci#define HYDRA_INT_EXT7		18	/* Power Off Request */
9562306a36Sopenharmony_ci#define HYDRA_INT_SPARE		19
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci#endif /* __KERNEL__ */
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci#endif /* _ASMPPC_HYDRA_H */
100