]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef _MC6821_H_ |
2 | #define _MC6821_H_ | |
3 | ||
4 | /* | |
5 | * This file describes the memery mapping of the MC6821 PIA. | |
6 | * The unions describe overlayed registers. Which of them is used is | |
7 | * determined by bit 2 of the corresponding control register. | |
8 | * this files expects the PIA_REG_PADWIDTH to be defined the numeric | |
9 | * value of the register spacing. | |
10 | * | |
11 | * Data came from MFC-31-Developer Kit (from Ralph Seidel, | |
12 | * [email protected]) and Motorola Data Sheet (from | |
13 | * Richard Hirst, [email protected]) | |
14 | * | |
15 | * 6.11.95 copyright Joerg Dorchain ([email protected]) | |
16 | * | |
17 | */ | |
18 | ||
19 | #ifndef PIA_REG_PADWIDTH | |
20 | #define PIA_REG_PADWIDTH 255 | |
21 | #endif | |
22 | ||
23 | struct pia { | |
24 | union { | |
25 | volatile u_char pra; | |
26 | volatile u_char ddra; | |
27 | } ua; | |
28 | u_char pad1[PIA_REG_PADWIDTH]; | |
29 | volatile u_char cra; | |
30 | u_char pad2[PIA_REG_PADWIDTH]; | |
31 | union { | |
32 | volatile u_char prb; | |
33 | volatile u_char ddrb; | |
34 | } ub; | |
35 | u_char pad3[PIA_REG_PADWIDTH]; | |
36 | volatile u_char crb; | |
37 | u_char pad4[PIA_REG_PADWIDTH]; | |
38 | }; | |
39 | ||
40 | #define ppra ua.pra | |
41 | #define pddra ua.ddra | |
42 | #define pprb ub.prb | |
43 | #define pddrb ub.ddrb | |
44 | ||
45 | #define PIA_C1_ENABLE_IRQ (1<<0) | |
46 | #define PIA_C1_LOW_TO_HIGH (1<<1) | |
47 | #define PIA_DDR (1<<2) | |
48 | #define PIA_IRQ2 (1<<6) | |
49 | #define PIA_IRQ1 (1<<7) | |
50 | ||
51 | #endif |