162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci** macints.h -- Macintosh Linux interrupt handling structs and prototypes 362306a36Sopenharmony_ci** 462306a36Sopenharmony_ci** Copyright 1997 by Michael Schmitz 562306a36Sopenharmony_ci** 662306a36Sopenharmony_ci** This file is subject to the terms and conditions of the GNU General Public 762306a36Sopenharmony_ci** License. See the file COPYING in the main directory of this archive 862306a36Sopenharmony_ci** for more details. 962306a36Sopenharmony_ci** 1062306a36Sopenharmony_ci*/ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#ifndef _ASM_MACINTS_H_ 1362306a36Sopenharmony_ci#define _ASM_MACINTS_H_ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include <asm/irq.h> 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* 1862306a36Sopenharmony_ci * Base IRQ number for all Mac68K interrupt sources. Each source 1962306a36Sopenharmony_ci * has eight indexes (base -> base+7). 2062306a36Sopenharmony_ci */ 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define VIA1_SOURCE_BASE 8 2362306a36Sopenharmony_ci#define VIA2_SOURCE_BASE 16 2462306a36Sopenharmony_ci#define PSC3_SOURCE_BASE 24 2562306a36Sopenharmony_ci#define PSC4_SOURCE_BASE 32 2662306a36Sopenharmony_ci#define PSC5_SOURCE_BASE 40 2762306a36Sopenharmony_ci#define PSC6_SOURCE_BASE 48 2862306a36Sopenharmony_ci#define NUBUS_SOURCE_BASE 56 2962306a36Sopenharmony_ci#define BABOON_SOURCE_BASE 64 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci/* 3262306a36Sopenharmony_ci * Maximum IRQ number is BABOON_SOURCE_BASE + 7, 3362306a36Sopenharmony_ci * giving us IRQs up through 71 3462306a36Sopenharmony_ci */ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#define NUM_MAC_SOURCES 72 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci/* 3962306a36Sopenharmony_ci * clean way to separate IRQ into its source and index 4062306a36Sopenharmony_ci */ 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#define IRQ_SRC(irq) (irq >> 3) 4362306a36Sopenharmony_ci#define IRQ_IDX(irq) (irq & 7) 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci/* VIA1 interrupts */ 4662306a36Sopenharmony_ci#define IRQ_VIA1_0 (8) /* one second int. */ 4762306a36Sopenharmony_ci#define IRQ_VIA1_1 (9) /* VBlank int. */ 4862306a36Sopenharmony_ci#define IRQ_MAC_VBL IRQ_VIA1_1 4962306a36Sopenharmony_ci#define IRQ_VIA1_2 (10) /* ADB SR shifts complete */ 5062306a36Sopenharmony_ci#define IRQ_MAC_ADB IRQ_VIA1_2 5162306a36Sopenharmony_ci#define IRQ_MAC_ADB_SR IRQ_VIA1_2 5262306a36Sopenharmony_ci#define IRQ_VIA1_3 (11) /* ADB SR CB2 ?? */ 5362306a36Sopenharmony_ci#define IRQ_MAC_ADB_SD IRQ_VIA1_3 5462306a36Sopenharmony_ci#define IRQ_VIA1_4 (12) /* ADB SR ext. clock pulse */ 5562306a36Sopenharmony_ci#define IRQ_MAC_ADB_CL IRQ_VIA1_4 5662306a36Sopenharmony_ci#define IRQ_VIA1_5 (13) 5762306a36Sopenharmony_ci#define IRQ_MAC_TIMER_2 IRQ_VIA1_5 5862306a36Sopenharmony_ci#define IRQ_VIA1_6 (14) 5962306a36Sopenharmony_ci#define IRQ_MAC_TIMER_1 IRQ_VIA1_6 6062306a36Sopenharmony_ci#define IRQ_VIA1_7 (15) 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci/* VIA2/RBV interrupts */ 6362306a36Sopenharmony_ci#define IRQ_VIA2_0 (16) 6462306a36Sopenharmony_ci#define IRQ_MAC_SCSIDRQ IRQ_VIA2_0 6562306a36Sopenharmony_ci#define IRQ_VIA2_1 (17) 6662306a36Sopenharmony_ci#define IRQ_MAC_NUBUS IRQ_VIA2_1 6762306a36Sopenharmony_ci#define IRQ_VIA2_2 (18) 6862306a36Sopenharmony_ci#define IRQ_VIA2_3 (19) 6962306a36Sopenharmony_ci#define IRQ_MAC_SCSI IRQ_VIA2_3 7062306a36Sopenharmony_ci#define IRQ_VIA2_4 (20) 7162306a36Sopenharmony_ci#define IRQ_VIA2_5 (21) 7262306a36Sopenharmony_ci#define IRQ_VIA2_6 (22) 7362306a36Sopenharmony_ci#define IRQ_VIA2_7 (23) 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci/* Level 3 (PSC, AV Macs only) interrupts */ 7662306a36Sopenharmony_ci#define IRQ_PSC3_0 (24) 7762306a36Sopenharmony_ci#define IRQ_MAC_MACE IRQ_PSC3_0 7862306a36Sopenharmony_ci#define IRQ_PSC3_1 (25) 7962306a36Sopenharmony_ci#define IRQ_PSC3_2 (26) 8062306a36Sopenharmony_ci#define IRQ_PSC3_3 (27) 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci/* Level 4 (PSC, AV Macs only) interrupts */ 8362306a36Sopenharmony_ci#define IRQ_PSC4_0 (32) 8462306a36Sopenharmony_ci#define IRQ_PSC4_1 (33) 8562306a36Sopenharmony_ci#define IRQ_MAC_SCC_A IRQ_PSC4_1 8662306a36Sopenharmony_ci#define IRQ_PSC4_2 (34) 8762306a36Sopenharmony_ci#define IRQ_MAC_SCC_B IRQ_PSC4_2 8862306a36Sopenharmony_ci#define IRQ_PSC4_3 (35) 8962306a36Sopenharmony_ci#define IRQ_MAC_MACE_DMA IRQ_PSC4_3 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci/* OSS Level 4 interrupts */ 9262306a36Sopenharmony_ci#define IRQ_MAC_SCC (33) 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci/* Level 5 (PSC, AV Macs only) interrupts */ 9562306a36Sopenharmony_ci#define IRQ_PSC5_0 (40) 9662306a36Sopenharmony_ci#define IRQ_PSC5_1 (41) 9762306a36Sopenharmony_ci#define IRQ_PSC5_2 (42) 9862306a36Sopenharmony_ci#define IRQ_PSC5_3 (43) 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci/* Level 6 (PSC, AV Macs only) interrupts */ 10162306a36Sopenharmony_ci#define IRQ_PSC6_0 (48) 10262306a36Sopenharmony_ci#define IRQ_PSC6_1 (49) 10362306a36Sopenharmony_ci#define IRQ_PSC6_2 (50) 10462306a36Sopenharmony_ci#define IRQ_PSC6_3 (51) 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci/* Nubus interrupts (cascaded to VIA2) */ 10762306a36Sopenharmony_ci#define IRQ_NUBUS_9 (56) 10862306a36Sopenharmony_ci#define IRQ_NUBUS_A (57) 10962306a36Sopenharmony_ci#define IRQ_NUBUS_B (58) 11062306a36Sopenharmony_ci#define IRQ_NUBUS_C (59) 11162306a36Sopenharmony_ci#define IRQ_NUBUS_D (60) 11262306a36Sopenharmony_ci#define IRQ_NUBUS_E (61) 11362306a36Sopenharmony_ci#define IRQ_NUBUS_F (62) 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci/* Baboon interrupts (cascaded to nubus slot $C) */ 11662306a36Sopenharmony_ci#define IRQ_BABOON_0 (64) 11762306a36Sopenharmony_ci#define IRQ_BABOON_1 (65) 11862306a36Sopenharmony_ci#define IRQ_BABOON_2 (66) 11962306a36Sopenharmony_ci#define IRQ_BABOON_3 (67) 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci#define SLOT2IRQ(x) (x + 47) 12262306a36Sopenharmony_ci#define IRQ2SLOT(x) (x - 47) 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci#endif /* asm/macints.h */ 125