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