1 #ifndef _MVME147HW_H_
2 #define _MVME147HW_H_
3 
4 typedef struct {
5 	unsigned char
6 		ctrl,
7 		bcd_sec,
8 		bcd_min,
9 		bcd_hr,
10 		bcd_dow,
11 		bcd_dom,
12 		bcd_mth,
13 		bcd_year;
14 } MK48T02;
15 
16 #define RTC_WRITE	0x80
17 #define RTC_READ	0x40
18 #define RTC_STOP	0x20
19 
20 #define m147_rtc ((MK48T02 * volatile)0xfffe07f8)
21 
22 
23 struct pcc_regs {
24    volatile u_long 	dma_tadr;
25    volatile u_long	dma_dadr;
26    volatile u_long	dma_bcr;
27    volatile u_long	dma_hr;
28    volatile u_short	t1_preload;
29    volatile u_short	t1_count;
30    volatile u_short	t2_preload;
31    volatile u_short	t2_count;
32    volatile u_char	t1_int_cntrl;
33    volatile u_char	t1_cntrl;
34    volatile u_char	t2_int_cntrl;
35    volatile u_char	t2_cntrl;
36    volatile u_char	ac_fail;
37    volatile u_char	watchdog;
38    volatile u_char	lpt_intr;
39    volatile u_char	lpt_cntrl;
40    volatile u_char	dma_intr;
41    volatile u_char	dma_cntrl;
42    volatile u_char	bus_error;
43    volatile u_char	dma_status;
44    volatile u_char	abort;
45    volatile u_char	ta_fnctl;
46    volatile u_char	serial_cntrl;
47    volatile u_char	general_cntrl;
48    volatile u_char	lan_cntrl;
49    volatile u_char	general_status;
50    volatile u_char	scsi_interrupt;
51    volatile u_char	slave;
52    volatile u_char	soft1_cntrl;
53    volatile u_char	int_base;
54    volatile u_char	soft2_cntrl;
55    volatile u_char	revision_level;
56    volatile u_char	lpt_data;
57    volatile u_char	lpt_status;
58    };
59 
60 #define m147_pcc ((struct pcc_regs * volatile)0xfffe1000)
61 
62 
63 #define PCC_INT_ENAB		0x08
64 
65 #define PCC_TIMER_INT_CLR	0x80
66 #define PCC_TIMER_PRELOAD	63936l
67 
68 #define PCC_LEVEL_ABORT		0x07
69 #define PCC_LEVEL_SERIAL	0x04
70 #define PCC_LEVEL_ETH		0x04
71 #define PCC_LEVEL_TIMER1	0x04
72 #define PCC_LEVEL_SCSI_PORT	0x04
73 #define PCC_LEVEL_SCSI_DMA	0x04
74 
75 #define PCC_IRQ_AC_FAIL		0x40
76 #define PCC_IRQ_BERR		0x41
77 #define PCC_IRQ_ABORT		0x42
78 /* #define PCC_IRQ_SERIAL	0x43 */
79 #define PCC_IRQ_PRINTER		0x47
80 #define PCC_IRQ_TIMER1		0x48
81 #define PCC_IRQ_TIMER2		0x49
82 #define PCC_IRQ_SOFTWARE1	0x4a
83 #define PCC_IRQ_SOFTWARE2	0x4b
84 
85 
86 #define M147_SCC_A_ADDR		0xfffe3002
87 #define M147_SCC_B_ADDR		0xfffe3000
88 #define M147_SCC_PCLK		5000000
89 
90 #define MVME147_IRQ_SCSI_PORT	0x45
91 #define MVME147_IRQ_SCSI_DMA	0x46
92 
93 /* SCC interrupts, for MVME147 */
94 
95 #define MVME147_IRQ_TYPE_PRIO	0
96 #define MVME147_IRQ_SCC_BASE		0x60
97 #define MVME147_IRQ_SCCB_TX		0x60
98 #define MVME147_IRQ_SCCB_STAT		0x62
99 #define MVME147_IRQ_SCCB_RX		0x64
100 #define MVME147_IRQ_SCCB_SPCOND		0x66
101 #define MVME147_IRQ_SCCA_TX		0x68
102 #define MVME147_IRQ_SCCA_STAT		0x6a
103 #define MVME147_IRQ_SCCA_RX		0x6c
104 #define MVME147_IRQ_SCCA_SPCOND		0x6e
105 
106 #define MVME147_LANCE_BASE	0xfffe1800
107 #define MVME147_LANCE_IRQ	0x44
108 
109 #define ETHERNET_ADDRESS 0xfffe0778
110 
111 #endif
112