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