1/*
2 * madgemc.h: Header for the madgemc tms380tr module
3 *
4 * Authors:
5 * - Adam Fritzler <mid@auk.cx>
6 */
7
8#ifndef __LINUX_MADGEMC_H
9#define __LINUX_MADGEMC_H
10
11#ifdef __KERNEL__
12
13#define MADGEMC16_CARDNAME "Madge Smart 16/4 MC16 Ringnode"
14#define MADGEMC32_CARDNAME "Madge Smart 16/4 MC32 Ringnode"
15
16/*
17 * Bit definitions for the POS config registers
18 */
19#define MC16_POS0_ADDR1 0x20
20#define MC16_POS2_ADDR2 0x04
21#define MC16_POS3_ADDR3 0x20
22
23#define MC_CONTROL_REG0		((long)-8) /* 0x00 */
24#define MC_CONTROL_REG1		((long)-7) /* 0x01 */
25#define MC_ADAPTER_POS_REG0	((long)-6) /* 0x02 */
26#define MC_ADAPTER_POS_REG1	((long)-5) /* 0x03 */
27#define MC_ADAPTER_POS_REG2	((long)-4) /* 0x04 */
28#define MC_ADAPTER_REG5_UNUSED	((long)-3) /* 0x05 */
29#define MC_ADAPTER_REG6_UNUSED	((long)-2) /* 0x06 */
30#define MC_CONTROL_REG7		((long)-1) /* 0x07 */
31
32#define MC_CONTROL_REG0_UNKNOWN1	0x01
33#define MC_CONTROL_REG0_UNKNOWN2	0x02
34#define MC_CONTROL_REG0_SIFSEL		0x04
35#define MC_CONTROL_REG0_PAGE		0x08
36#define MC_CONTROL_REG0_TESTINTERRUPT	0x10
37#define MC_CONTROL_REG0_UNKNOWN20	0x20
38#define MC_CONTROL_REG0_SINTR		0x40
39#define MC_CONTROL_REG0_UNKNOWN80	0x80
40
41#define MC_CONTROL_REG1_SINTEN		0x01
42#define MC_CONTROL_REG1_BITOFDEATH	0x02
43#define MC_CONTROL_REG1_NSRESET		0x04
44#define MC_CONTROL_REG1_UNKNOWN8	0x08
45#define MC_CONTROL_REG1_UNKNOWN10	0x10
46#define MC_CONTROL_REG1_UNKNOWN20	0x20
47#define MC_CONTROL_REG1_SRSX		0x40
48#define MC_CONTROL_REG1_SPEED_SEL	0x80
49
50#define MC_CONTROL_REG7_CABLESTP	0x00
51#define MC_CONTROL_REG7_CABLEUTP	0x01
52
53/*
54 * ROM Page Zero
55 */
56#define MC_ROM_MANUFACTURERID		0x00
57#define MC_ROM_ADAPTERID		0x01
58#define MC_ROM_REVISION			0x02
59#define MC_ROM_CONFIG0			0x03
60#define MC_ROM_CONFIG1			0x04
61#define MC_ROM_CONFIG2			0x05
62
63/*
64 * ROM Page One
65 */
66#define MC_ROM_UNUSED_BYTE		0x00
67#define MC_ROM_BIA_START		0x01
68
69#endif /* __KERNEL__ */
70#endif /* __LINUX_MADGEMC_H */
71