1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __ASM_MACINTOSH_H 3*4882a593Smuzhiyun #define __ASM_MACINTOSH_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/seq_file.h> 6*4882a593Smuzhiyun #include <linux/interrupt.h> 7*4882a593Smuzhiyun #include <linux/irq.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <asm/bootinfo-mac.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun /* 13*4882a593Smuzhiyun * Apple Macintoshisms 14*4882a593Smuzhiyun */ 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun extern void mac_reset(void); 17*4882a593Smuzhiyun extern void mac_poweroff(void); 18*4882a593Smuzhiyun extern void mac_init_IRQ(void); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun extern void mac_irq_enable(struct irq_data *data); 21*4882a593Smuzhiyun extern void mac_irq_disable(struct irq_data *data); 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun extern unsigned char mac_pram_read_byte(int); 24*4882a593Smuzhiyun extern void mac_pram_write_byte(unsigned char, int); 25*4882a593Smuzhiyun extern ssize_t mac_pram_get_size(void); 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* 28*4882a593Smuzhiyun * Macintosh Table 29*4882a593Smuzhiyun */ 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun struct mac_model 32*4882a593Smuzhiyun { 33*4882a593Smuzhiyun short ident; 34*4882a593Smuzhiyun char *name; 35*4882a593Smuzhiyun char adb_type; 36*4882a593Smuzhiyun char via_type; 37*4882a593Smuzhiyun char scsi_type; 38*4882a593Smuzhiyun char ide_type; 39*4882a593Smuzhiyun char scc_type; 40*4882a593Smuzhiyun char ether_type; 41*4882a593Smuzhiyun char expansion_type; 42*4882a593Smuzhiyun char floppy_type; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #define MAC_ADB_NONE 0 46*4882a593Smuzhiyun #define MAC_ADB_II 1 47*4882a593Smuzhiyun #define MAC_ADB_EGRET 2 48*4882a593Smuzhiyun #define MAC_ADB_CUDA 3 49*4882a593Smuzhiyun #define MAC_ADB_PB1 4 50*4882a593Smuzhiyun #define MAC_ADB_PB2 5 51*4882a593Smuzhiyun #define MAC_ADB_IOP 6 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #define MAC_VIA_II 1 54*4882a593Smuzhiyun #define MAC_VIA_IICI 2 55*4882a593Smuzhiyun #define MAC_VIA_QUADRA 3 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun #define MAC_SCSI_NONE 0 58*4882a593Smuzhiyun #define MAC_SCSI_OLD 1 59*4882a593Smuzhiyun #define MAC_SCSI_QUADRA 2 60*4882a593Smuzhiyun #define MAC_SCSI_QUADRA2 3 61*4882a593Smuzhiyun #define MAC_SCSI_QUADRA3 4 62*4882a593Smuzhiyun #define MAC_SCSI_IIFX 5 63*4882a593Smuzhiyun #define MAC_SCSI_DUO 6 64*4882a593Smuzhiyun #define MAC_SCSI_LC 7 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun #define MAC_IDE_NONE 0 67*4882a593Smuzhiyun #define MAC_IDE_QUADRA 1 68*4882a593Smuzhiyun #define MAC_IDE_PB 2 69*4882a593Smuzhiyun #define MAC_IDE_BABOON 3 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define MAC_SCC_II 1 72*4882a593Smuzhiyun #define MAC_SCC_IOP 2 73*4882a593Smuzhiyun #define MAC_SCC_QUADRA 3 74*4882a593Smuzhiyun #define MAC_SCC_PSC 4 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun #define MAC_ETHER_NONE 0 77*4882a593Smuzhiyun #define MAC_ETHER_SONIC 1 78*4882a593Smuzhiyun #define MAC_ETHER_MACE 2 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun #define MAC_EXP_NONE 0 81*4882a593Smuzhiyun #define MAC_EXP_PDS 1 /* Accepts only a PDS card */ 82*4882a593Smuzhiyun #define MAC_EXP_NUBUS 2 /* Accepts only NuBus card(s) */ 83*4882a593Smuzhiyun #define MAC_EXP_PDS_NUBUS 3 /* Accepts PDS card and/or NuBus card(s) */ 84*4882a593Smuzhiyun #define MAC_EXP_PDS_COMM 4 /* Accepts PDS card or Comm Slot card */ 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun #define MAC_FLOPPY_UNSUPPORTED 0 87*4882a593Smuzhiyun #define MAC_FLOPPY_SWIM_IOP 1 88*4882a593Smuzhiyun #define MAC_FLOPPY_OLD 2 89*4882a593Smuzhiyun #define MAC_FLOPPY_QUADRA 3 90*4882a593Smuzhiyun #define MAC_FLOPPY_LC 4 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun extern struct mac_model *macintosh_config; 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun /* 96*4882a593Smuzhiyun * Internal representation of the Mac hardware, filled in from bootinfo 97*4882a593Smuzhiyun */ 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun struct mac_booter_data 100*4882a593Smuzhiyun { 101*4882a593Smuzhiyun unsigned long videoaddr; 102*4882a593Smuzhiyun unsigned long videorow; 103*4882a593Smuzhiyun unsigned long videodepth; 104*4882a593Smuzhiyun unsigned long dimensions; 105*4882a593Smuzhiyun unsigned long boottime; 106*4882a593Smuzhiyun unsigned long gmtbias; 107*4882a593Smuzhiyun unsigned long videological; 108*4882a593Smuzhiyun unsigned long sccbase; 109*4882a593Smuzhiyun unsigned long id; 110*4882a593Smuzhiyun unsigned long memsize; 111*4882a593Smuzhiyun unsigned long cpuid; 112*4882a593Smuzhiyun unsigned long rombase; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun extern struct mac_booter_data mac_bi_data; 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun #endif 118