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
16extern void mac_reset(void);
17extern void mac_poweroff(void);
18extern void mac_init_IRQ(void);
19
20extern void mac_irq_enable(struct irq_data *data);
21extern void mac_irq_disable(struct irq_data *data);
22
23extern unsigned char mac_pram_read_byte(int);
24extern void mac_pram_write_byte(unsigned char, int);
25extern ssize_t mac_pram_get_size(void);
26
27/*
28 *	Macintosh Table
29 */
30
31struct 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
92extern struct mac_model *macintosh_config;
93
94
95    /*
96     * Internal representation of the Mac hardware, filled in from bootinfo
97     */
98
99struct 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
115extern struct mac_booter_data mac_bi_data;
116
117#endif
118