xref: /linux/arch/m68k/include/asm/mvme147hw.h (revision 0e287d31b62bb53ad81d5e59778384a40f8b6f56)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _MVME147HW_H_
3 #define _MVME147HW_H_
4 
5 #include <asm/irq.h>
6 
7 #define MVME147_RTC_BASE	0xfffe0000
8 
9 struct pcc_regs {
10    volatile u_long	dma_tadr;
11    volatile u_long	dma_dadr;
12    volatile u_long	dma_bcr;
13    volatile u_long	dma_hr;
14    volatile u_short	t1_preload;
15    volatile u_short	t1_count;
16    volatile u_short	t2_preload;
17    volatile u_short	t2_count;
18    volatile u_char	t1_int_cntrl;
19    volatile u_char	t1_cntrl;
20    volatile u_char	t2_int_cntrl;
21    volatile u_char	t2_cntrl;
22    volatile u_char	ac_fail;
23    volatile u_char	watchdog;
24    volatile u_char	lpt_intr;
25    volatile u_char	lpt_cntrl;
26    volatile u_char	dma_intr;
27    volatile u_char	dma_cntrl;
28    volatile u_char	bus_error;
29    volatile u_char	dma_status;
30    volatile u_char	abort;
31    volatile u_char	ta_fnctl;
32    volatile u_char	serial_cntrl;
33    volatile u_char	general_cntrl;
34    volatile u_char	lan_cntrl;
35    volatile u_char	general_status;
36    volatile u_char	scsi_interrupt;
37    volatile u_char	slave;
38    volatile u_char	soft1_cntrl;
39    volatile u_char	int_base;
40    volatile u_char	soft2_cntrl;
41    volatile u_char	revision_level;
42    volatile u_char	lpt_data;
43    volatile u_char	lpt_status;
44    };
45 
46 #define m147_pcc ((struct pcc_regs * volatile)0xfffe1000)
47 
48 
49 #define PCC_INT_ENAB		0x08
50 
51 #define PCC_TIMER_INT_CLR	0x80
52 
53 #define PCC_TIMER_TIC_EN	0x01
54 #define PCC_TIMER_COC_EN	0x02
55 #define PCC_TIMER_CLR_OVF	0x04
56 
57 #define PCC_LEVEL_ABORT		0x07
58 #define PCC_LEVEL_SERIAL	0x04
59 #define PCC_LEVEL_ETH		0x04
60 #define PCC_LEVEL_TIMER1	0x04
61 #define PCC_LEVEL_SCSI_PORT	0x04
62 #define PCC_LEVEL_SCSI_DMA	0x04
63 
64 #define PCC_IRQ_AC_FAIL		(IRQ_USER+0)
65 #define PCC_IRQ_BERR		(IRQ_USER+1)
66 #define PCC_IRQ_ABORT		(IRQ_USER+2)
67 /* #define PCC_IRQ_SERIAL	(IRQ_USER+3) */
68 #define PCC_IRQ_PRINTER		(IRQ_USER+7)
69 #define PCC_IRQ_TIMER1		(IRQ_USER+8)
70 #define PCC_IRQ_TIMER2		(IRQ_USER+9)
71 #define PCC_IRQ_SOFTWARE1	(IRQ_USER+10)
72 #define PCC_IRQ_SOFTWARE2	(IRQ_USER+11)
73 
74 
75 #define M147_SCC_A_ADDR		0xfffe3002
76 #define M147_SCC_B_ADDR		0xfffe3000
77 #define M147_SCC_PCLK		5000000
78 
79 #define MVME147_IRQ_SCSI_PORT	(IRQ_USER + 5)
80 #define MVME147_IRQ_SCSI_DMA	(IRQ_USER + 6)
81 
82 /* SCC interrupts, for MVME147 */
83 
84 #define MVME147_IRQ_TYPE_PRIO	0
85 #define MVME147_IRQ_SCC_BASE		(IRQ_USER+32)
86 #define MVME147_IRQ_SCCB_TX		(IRQ_USER+32)
87 #define MVME147_IRQ_SCCB_STAT		(IRQ_USER+34)
88 #define MVME147_IRQ_SCCB_RX		(IRQ_USER+36)
89 #define MVME147_IRQ_SCCB_SPCOND		(IRQ_USER+38)
90 #define MVME147_IRQ_SCCA_TX		(IRQ_USER+40)
91 #define MVME147_IRQ_SCCA_STAT		(IRQ_USER+42)
92 #define MVME147_IRQ_SCCA_RX		(IRQ_USER+44)
93 #define MVME147_IRQ_SCCA_SPCOND		(IRQ_USER+46)
94 
95 #define MVME147_LANCE_BASE	0xfffe1800
96 #define MVME147_LANCE_IRQ	(IRQ_USER+4)
97 
98 #define ETHERNET_ADDRESS 0xfffe0778
99 
100 #endif
101