1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _M68K_MVME16xHW_H_
3#define _M68K_MVME16xHW_H_
4
5#include <asm/irq.h>
6
7
8typedef struct {
9	u_char	ack_icr,
10		flt_icr,
11		sel_icr,
12		pe_icr,
13		bsy_icr,
14		spare1,
15		isr,
16		cr,
17		spare2,
18		spare3,
19		spare4,
20		data;
21} MVMElp, *MVMElpPtr;
22
23#define MVME_LPR_BASE	0xfff42030
24
25#define mvmelp   ((*(volatile MVMElpPtr)(MVME_LPR_BASE)))
26
27typedef struct {
28	unsigned char
29		ctrl,
30		bcd_sec,
31		bcd_min,
32		bcd_hr,
33		bcd_dow,
34		bcd_dom,
35		bcd_mth,
36		bcd_year;
37} MK48T08_t, *MK48T08ptr_t;
38
39#define RTC_WRITE	0x80
40#define RTC_READ	0x40
41#define RTC_STOP	0x20
42
43#define MVME_RTC_BASE	0xfffc1ff8
44
45#define MVME_I596_BASE	0xfff46000
46
47#define MVME_SCC_A_ADDR	0xfff45005
48#define MVME_SCC_B_ADDR	0xfff45001
49#define MVME_SCC_PCLK	10000000
50
51#define MVME162_IRQ_TYPE_PRIO	0
52
53#define MVME167_IRQ_PRN		(IRQ_USER+20)
54#define MVME16x_IRQ_I596	(IRQ_USER+23)
55#define MVME16x_IRQ_SCSI	(IRQ_USER+21)
56#define MVME16x_IRQ_FLY		(IRQ_USER+63)
57#define MVME167_IRQ_SER_ERR	(IRQ_USER+28)
58#define MVME167_IRQ_SER_MODEM	(IRQ_USER+29)
59#define MVME167_IRQ_SER_TX	(IRQ_USER+30)
60#define MVME167_IRQ_SER_RX	(IRQ_USER+31)
61#define MVME16x_IRQ_TIMER	(IRQ_USER+25)
62#define MVME167_IRQ_ABORT	(IRQ_USER+46)
63#define MVME162_IRQ_ABORT	(IRQ_USER+30)
64
65/* SCC interrupts, for MVME162 */
66#define MVME162_IRQ_SCC_BASE		(IRQ_USER+0)
67#define MVME162_IRQ_SCCB_TX		(IRQ_USER+0)
68#define MVME162_IRQ_SCCB_STAT		(IRQ_USER+2)
69#define MVME162_IRQ_SCCB_RX		(IRQ_USER+4)
70#define MVME162_IRQ_SCCB_SPCOND		(IRQ_USER+6)
71#define MVME162_IRQ_SCCA_TX		(IRQ_USER+8)
72#define MVME162_IRQ_SCCA_STAT		(IRQ_USER+10)
73#define MVME162_IRQ_SCCA_RX		(IRQ_USER+12)
74#define MVME162_IRQ_SCCA_SPCOND		(IRQ_USER+14)
75
76/* MVME162 version register */
77
78#define MVME162_VERSION_REG	0xfff4202e
79
80extern unsigned short mvme16x_config;
81
82/* Lower 8 bits must match the revision register in the MC2 chip */
83
84#define MVME16x_CONFIG_SPEED_32		0x0001
85#define MVME16x_CONFIG_NO_VMECHIP2	0x0002
86#define MVME16x_CONFIG_NO_SCSICHIP	0x0004
87#define MVME16x_CONFIG_NO_ETHERNET	0x0008
88#define MVME16x_CONFIG_GOT_FPU		0x0010
89
90#define MVME16x_CONFIG_GOT_LP		0x0100
91#define MVME16x_CONFIG_GOT_CD2401	0x0200
92#define MVME16x_CONFIG_GOT_SCCA		0x0400
93#define MVME16x_CONFIG_GOT_SCCB		0x0800
94
95#endif
96