patch-2.1.125 linux/include/asm-m68k/mac_psc.h

Next file: linux/include/asm-m68k/machdep.h
Previous file: linux/include/asm-m68k/linux_logo.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.124/linux/include/asm-m68k/mac_psc.h linux/include/asm-m68k/mac_psc.h
@@ -0,0 +1,73 @@
+/*
+ *	Apple Peripheral System Controller (PSC)
+ *
+ *	The PSC is used on the AV Macs to control IO functions not handled
+ *	by the VIAs (Ethernet, DSP, SCC).
+ */
+ 
+#define PSCBASE		0x50F31000
+
+/*
+ *	The IER/IFR registers work like the VIA, except that it has 4
+ *	of them each on different interrupt levels.
+ */
+ 
+#define pIFR3		0x130
+#define pIFR4		0x140
+#define pIFR5		0x150
+#define pIFR6		0x160
+
+#define pIER3		0x134
+#define pIER4		0x144
+#define pIER5		0x154
+#define pIER6		0x164
+
+/*
+ *	Ethernet Control Registers
+ */
+ 
+#define PSC_ENETRD_CTL  0xc10
+#define PSC_ENETWR_CTL  0xc20
+
+/*
+ *	Receive DMA channel (add +0x10 for 2nd channel)
+ */
+ 
+#define PSC_ENETRD_ADDR 0x1020 
+#define PSC_ENETRD_LEN  0x1024
+#define PSC_ENETRD_CMD  0x1028
+
+/*
+ *	Transmit DMA channel (add +0x10 for 2nd channel)
+ */
+ 
+#define PSC_ENETWR_ADDR 0x1040
+#define PSC_ENETWR_LEN  0x1044
+#define PSC_ENETWR_CMD  0x1048
+
+/*
+ *	Access functions
+ */
+ 
+extern volatile unsigned char *psc;
+
+extern inline void psc_write_word(int offset, u16 data)
+{
+	*((volatile u16 *)(psc+offset)) = data;
+}
+
+extern inline void psc_write_long(int offset, u32 data)
+{
+	*((volatile u32 *)(psc+offset)) = data;
+}
+
+extern inline u16 psc_read_word(int offset)
+{
+	return *((volatile u16 *)(psc+offset));
+}
+
+extern inline u32 psc_read_long(int offset)
+{
+	return *((volatile u32 *)(psc+offset));
+}
+

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov