xref: /OK3568_Linux_fs/kernel/arch/m68k/include/asm/amigahw.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun ** asm-m68k/amigahw.h -- This header defines some macros and pointers for
3*4882a593Smuzhiyun **                    the various Amiga custom hardware registers.
4*4882a593Smuzhiyun **                    The naming conventions used here conform to those
5*4882a593Smuzhiyun **                    used in the Amiga Hardware Reference Manual, 3rd Edition
6*4882a593Smuzhiyun **
7*4882a593Smuzhiyun ** Copyright 1992 by Greg Harp
8*4882a593Smuzhiyun **
9*4882a593Smuzhiyun ** This file is subject to the terms and conditions of the GNU General Public
10*4882a593Smuzhiyun ** License.  See the file COPYING in the main directory of this archive
11*4882a593Smuzhiyun ** for more details.
12*4882a593Smuzhiyun **
13*4882a593Smuzhiyun ** Created: 9/24/92 by Greg Harp
14*4882a593Smuzhiyun */
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #ifndef _M68K_AMIGAHW_H
17*4882a593Smuzhiyun #define _M68K_AMIGAHW_H
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #include <linux/ioport.h>
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #include <asm/bootinfo-amiga.h>
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun     /*
25*4882a593Smuzhiyun      *  Chipsets
26*4882a593Smuzhiyun      */
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun extern unsigned long amiga_chipset;
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun     /*
32*4882a593Smuzhiyun      *  Miscellaneous
33*4882a593Smuzhiyun      */
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun extern unsigned long amiga_eclock;	/* 700 kHz E Peripheral Clock */
36*4882a593Smuzhiyun extern unsigned long amiga_colorclock;	/* 3.5 MHz Color Clock */
37*4882a593Smuzhiyun extern unsigned long amiga_chip_size;	/* Chip RAM Size (bytes) */
38*4882a593Smuzhiyun extern unsigned char amiga_vblank;	/* VBLANK Frequency */
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun #define AMIGAHW_DECLARE(name)	unsigned name : 1
42*4882a593Smuzhiyun #define AMIGAHW_SET(name)	(amiga_hw_present.name = 1)
43*4882a593Smuzhiyun #define AMIGAHW_PRESENT(name)	(amiga_hw_present.name)
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun struct amiga_hw_present {
46*4882a593Smuzhiyun     /* video hardware */
47*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_VIDEO);		/* Amiga Video */
48*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_BLITTER);	/* Amiga Blitter */
49*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMBER_FF);		/* Amber Flicker Fixer */
50*4882a593Smuzhiyun     /* sound hardware */
51*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_AUDIO);		/* Amiga Audio */
52*4882a593Smuzhiyun     /* disk storage interfaces */
53*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_FLOPPY);	/* Amiga Floppy */
54*4882a593Smuzhiyun     AMIGAHW_DECLARE(A3000_SCSI);	/* SCSI (wd33c93, A3000 alike) */
55*4882a593Smuzhiyun     AMIGAHW_DECLARE(A4000_SCSI);	/* SCSI (ncr53c710, A4000T alike) */
56*4882a593Smuzhiyun     AMIGAHW_DECLARE(A1200_IDE);		/* IDE (A1200 alike) */
57*4882a593Smuzhiyun     AMIGAHW_DECLARE(A4000_IDE);		/* IDE (A4000 alike) */
58*4882a593Smuzhiyun     AMIGAHW_DECLARE(CD_ROM);		/* CD ROM drive */
59*4882a593Smuzhiyun     /* other I/O hardware */
60*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_KEYBOARD);	/* Amiga Keyboard */
61*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_MOUSE);		/* Amiga Mouse */
62*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_SERIAL);	/* Amiga Serial */
63*4882a593Smuzhiyun     AMIGAHW_DECLARE(AMI_PARALLEL);	/* Amiga Parallel */
64*4882a593Smuzhiyun     /* real time clocks */
65*4882a593Smuzhiyun     AMIGAHW_DECLARE(A2000_CLK);		/* Hardware Clock (A2000 alike) */
66*4882a593Smuzhiyun     AMIGAHW_DECLARE(A3000_CLK);		/* Hardware Clock (A3000 alike) */
67*4882a593Smuzhiyun     /* supporting hardware */
68*4882a593Smuzhiyun     AMIGAHW_DECLARE(CHIP_RAM);		/* Chip RAM */
69*4882a593Smuzhiyun     AMIGAHW_DECLARE(PAULA);		/* Paula (8364) */
70*4882a593Smuzhiyun     AMIGAHW_DECLARE(DENISE);		/* Denise (8362) */
71*4882a593Smuzhiyun     AMIGAHW_DECLARE(DENISE_HR);		/* Denise (8373) */
72*4882a593Smuzhiyun     AMIGAHW_DECLARE(LISA);		/* Lisa (8375) */
73*4882a593Smuzhiyun     AMIGAHW_DECLARE(AGNUS_PAL);		/* Normal/Fat PAL Agnus (8367/8371) */
74*4882a593Smuzhiyun     AMIGAHW_DECLARE(AGNUS_NTSC);	/* Normal/Fat NTSC Agnus (8361/8370) */
75*4882a593Smuzhiyun     AMIGAHW_DECLARE(AGNUS_HR_PAL);	/* Fat Hires PAL Agnus (8372) */
76*4882a593Smuzhiyun     AMIGAHW_DECLARE(AGNUS_HR_NTSC);	/* Fat Hires NTSC Agnus (8372) */
77*4882a593Smuzhiyun     AMIGAHW_DECLARE(ALICE_PAL);		/* PAL Alice (8374) */
78*4882a593Smuzhiyun     AMIGAHW_DECLARE(ALICE_NTSC);	/* NTSC Alice (8374) */
79*4882a593Smuzhiyun     AMIGAHW_DECLARE(MAGIC_REKICK);	/* A3000 Magic Hard Rekick */
80*4882a593Smuzhiyun     AMIGAHW_DECLARE(PCMCIA);		/* PCMCIA Slot */
81*4882a593Smuzhiyun     AMIGAHW_DECLARE(ZORRO);		/* Zorro AutoConfig */
82*4882a593Smuzhiyun     AMIGAHW_DECLARE(ZORRO3);		/* Zorro III */
83*4882a593Smuzhiyun };
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun extern struct amiga_hw_present amiga_hw_present;
86*4882a593Smuzhiyun 
87*4882a593Smuzhiyun struct CUSTOM {
88*4882a593Smuzhiyun     unsigned short bltddat;
89*4882a593Smuzhiyun     unsigned short dmaconr;
90*4882a593Smuzhiyun     unsigned short vposr;
91*4882a593Smuzhiyun     unsigned short vhposr;
92*4882a593Smuzhiyun     unsigned short dskdatr;
93*4882a593Smuzhiyun     unsigned short joy0dat;
94*4882a593Smuzhiyun     unsigned short joy1dat;
95*4882a593Smuzhiyun     unsigned short clxdat;
96*4882a593Smuzhiyun     unsigned short adkconr;
97*4882a593Smuzhiyun     unsigned short pot0dat;
98*4882a593Smuzhiyun     unsigned short pot1dat;
99*4882a593Smuzhiyun     unsigned short potgor;
100*4882a593Smuzhiyun     unsigned short serdatr;
101*4882a593Smuzhiyun     unsigned short dskbytr;
102*4882a593Smuzhiyun     unsigned short intenar;
103*4882a593Smuzhiyun     unsigned short intreqr;
104*4882a593Smuzhiyun     unsigned char  *dskptr;
105*4882a593Smuzhiyun     unsigned short dsklen;
106*4882a593Smuzhiyun     unsigned short dskdat;
107*4882a593Smuzhiyun     unsigned short refptr;
108*4882a593Smuzhiyun     unsigned short vposw;
109*4882a593Smuzhiyun     unsigned short vhposw;
110*4882a593Smuzhiyun     unsigned short copcon;
111*4882a593Smuzhiyun     unsigned short serdat;
112*4882a593Smuzhiyun     unsigned short serper;
113*4882a593Smuzhiyun     unsigned short potgo;
114*4882a593Smuzhiyun     unsigned short joytest;
115*4882a593Smuzhiyun     unsigned short strequ;
116*4882a593Smuzhiyun     unsigned short strvbl;
117*4882a593Smuzhiyun     unsigned short strhor;
118*4882a593Smuzhiyun     unsigned short strlong;
119*4882a593Smuzhiyun     unsigned short bltcon0;
120*4882a593Smuzhiyun     unsigned short bltcon1;
121*4882a593Smuzhiyun     unsigned short bltafwm;
122*4882a593Smuzhiyun     unsigned short bltalwm;
123*4882a593Smuzhiyun     unsigned char  *bltcpt;
124*4882a593Smuzhiyun     unsigned char  *bltbpt;
125*4882a593Smuzhiyun     unsigned char  *bltapt;
126*4882a593Smuzhiyun     unsigned char  *bltdpt;
127*4882a593Smuzhiyun     unsigned short bltsize;
128*4882a593Smuzhiyun     unsigned char  pad2d;
129*4882a593Smuzhiyun     unsigned char  bltcon0l;
130*4882a593Smuzhiyun     unsigned short bltsizv;
131*4882a593Smuzhiyun     unsigned short bltsizh;
132*4882a593Smuzhiyun     unsigned short bltcmod;
133*4882a593Smuzhiyun     unsigned short bltbmod;
134*4882a593Smuzhiyun     unsigned short bltamod;
135*4882a593Smuzhiyun     unsigned short bltdmod;
136*4882a593Smuzhiyun     unsigned short spare2[4];
137*4882a593Smuzhiyun     unsigned short bltcdat;
138*4882a593Smuzhiyun     unsigned short bltbdat;
139*4882a593Smuzhiyun     unsigned short bltadat;
140*4882a593Smuzhiyun     unsigned short spare3[3];
141*4882a593Smuzhiyun     unsigned short deniseid;
142*4882a593Smuzhiyun     unsigned short dsksync;
143*4882a593Smuzhiyun     unsigned short *cop1lc;
144*4882a593Smuzhiyun     unsigned short *cop2lc;
145*4882a593Smuzhiyun     unsigned short copjmp1;
146*4882a593Smuzhiyun     unsigned short copjmp2;
147*4882a593Smuzhiyun     unsigned short copins;
148*4882a593Smuzhiyun     unsigned short diwstrt;
149*4882a593Smuzhiyun     unsigned short diwstop;
150*4882a593Smuzhiyun     unsigned short ddfstrt;
151*4882a593Smuzhiyun     unsigned short ddfstop;
152*4882a593Smuzhiyun     unsigned short dmacon;
153*4882a593Smuzhiyun     unsigned short clxcon;
154*4882a593Smuzhiyun     unsigned short intena;
155*4882a593Smuzhiyun     unsigned short intreq;
156*4882a593Smuzhiyun     unsigned short adkcon;
157*4882a593Smuzhiyun     struct {
158*4882a593Smuzhiyun 	unsigned short	*audlc;
159*4882a593Smuzhiyun 	unsigned short audlen;
160*4882a593Smuzhiyun 	unsigned short audper;
161*4882a593Smuzhiyun 	unsigned short audvol;
162*4882a593Smuzhiyun 	unsigned short auddat;
163*4882a593Smuzhiyun 	unsigned short audspare[2];
164*4882a593Smuzhiyun     } aud[4];
165*4882a593Smuzhiyun     unsigned char  *bplpt[8];
166*4882a593Smuzhiyun     unsigned short bplcon0;
167*4882a593Smuzhiyun     unsigned short bplcon1;
168*4882a593Smuzhiyun     unsigned short bplcon2;
169*4882a593Smuzhiyun     unsigned short bplcon3;
170*4882a593Smuzhiyun     unsigned short bpl1mod;
171*4882a593Smuzhiyun     unsigned short bpl2mod;
172*4882a593Smuzhiyun     unsigned short bplcon4;
173*4882a593Smuzhiyun     unsigned short clxcon2;
174*4882a593Smuzhiyun     unsigned short bpldat[8];
175*4882a593Smuzhiyun     unsigned char  *sprpt[8];
176*4882a593Smuzhiyun     struct {
177*4882a593Smuzhiyun 	unsigned short pos;
178*4882a593Smuzhiyun 	unsigned short ctl;
179*4882a593Smuzhiyun 	unsigned short dataa;
180*4882a593Smuzhiyun 	unsigned short datab;
181*4882a593Smuzhiyun     } spr[8];
182*4882a593Smuzhiyun     unsigned short color[32];
183*4882a593Smuzhiyun     unsigned short htotal;
184*4882a593Smuzhiyun     unsigned short hsstop;
185*4882a593Smuzhiyun     unsigned short hbstrt;
186*4882a593Smuzhiyun     unsigned short hbstop;
187*4882a593Smuzhiyun     unsigned short vtotal;
188*4882a593Smuzhiyun     unsigned short vsstop;
189*4882a593Smuzhiyun     unsigned short vbstrt;
190*4882a593Smuzhiyun     unsigned short vbstop;
191*4882a593Smuzhiyun     unsigned short sprhstrt;
192*4882a593Smuzhiyun     unsigned short sprhstop;
193*4882a593Smuzhiyun     unsigned short bplhstrt;
194*4882a593Smuzhiyun     unsigned short bplhstop;
195*4882a593Smuzhiyun     unsigned short hhposw;
196*4882a593Smuzhiyun     unsigned short hhposr;
197*4882a593Smuzhiyun     unsigned short beamcon0;
198*4882a593Smuzhiyun     unsigned short hsstrt;
199*4882a593Smuzhiyun     unsigned short vsstrt;
200*4882a593Smuzhiyun     unsigned short hcenter;
201*4882a593Smuzhiyun     unsigned short diwhigh;
202*4882a593Smuzhiyun     unsigned short spare4[11];
203*4882a593Smuzhiyun     unsigned short fmode;
204*4882a593Smuzhiyun };
205*4882a593Smuzhiyun 
206*4882a593Smuzhiyun /*
207*4882a593Smuzhiyun  * DMA register bits
208*4882a593Smuzhiyun  */
209*4882a593Smuzhiyun #define DMAF_SETCLR		(0x8000)
210*4882a593Smuzhiyun #define DMAF_AUD0		(0x0001)
211*4882a593Smuzhiyun #define DMAF_AUD1		(0x0002)
212*4882a593Smuzhiyun #define DMAF_AUD2		(0x0004)
213*4882a593Smuzhiyun #define DMAF_AUD3		(0x0008)
214*4882a593Smuzhiyun #define DMAF_DISK		(0x0010)
215*4882a593Smuzhiyun #define DMAF_SPRITE		(0x0020)
216*4882a593Smuzhiyun #define DMAF_BLITTER		(0x0040)
217*4882a593Smuzhiyun #define DMAF_COPPER		(0x0080)
218*4882a593Smuzhiyun #define DMAF_RASTER		(0x0100)
219*4882a593Smuzhiyun #define DMAF_MASTER		(0x0200)
220*4882a593Smuzhiyun #define DMAF_BLITHOG		(0x0400)
221*4882a593Smuzhiyun #define DMAF_BLTNZERO		(0x2000)
222*4882a593Smuzhiyun #define DMAF_BLTDONE		(0x4000)
223*4882a593Smuzhiyun #define DMAF_ALL		(0x01FF)
224*4882a593Smuzhiyun 
225*4882a593Smuzhiyun struct CIA {
226*4882a593Smuzhiyun     unsigned char pra;		char pad0[0xff];
227*4882a593Smuzhiyun     unsigned char prb;		char pad1[0xff];
228*4882a593Smuzhiyun     unsigned char ddra;		char pad2[0xff];
229*4882a593Smuzhiyun     unsigned char ddrb;		char pad3[0xff];
230*4882a593Smuzhiyun     unsigned char talo;		char pad4[0xff];
231*4882a593Smuzhiyun     unsigned char tahi;		char pad5[0xff];
232*4882a593Smuzhiyun     unsigned char tblo;		char pad6[0xff];
233*4882a593Smuzhiyun     unsigned char tbhi;		char pad7[0xff];
234*4882a593Smuzhiyun     unsigned char todlo;	char pad8[0xff];
235*4882a593Smuzhiyun     unsigned char todmid;	char pad9[0xff];
236*4882a593Smuzhiyun     unsigned char todhi;	char pada[0x1ff];
237*4882a593Smuzhiyun     unsigned char sdr;		char padb[0xff];
238*4882a593Smuzhiyun     unsigned char icr;		char padc[0xff];
239*4882a593Smuzhiyun     unsigned char cra;		char padd[0xff];
240*4882a593Smuzhiyun     unsigned char crb;		char pade[0xff];
241*4882a593Smuzhiyun };
242*4882a593Smuzhiyun 
243*4882a593Smuzhiyun #define zTwoBase (0x80000000)
244*4882a593Smuzhiyun #define ZTWO_PADDR(x) (((unsigned long)(x))-zTwoBase)
245*4882a593Smuzhiyun #define ZTWO_VADDR(x) ((void __iomem *)(((unsigned long)(x))+zTwoBase))
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun #define CUSTOM_PHYSADDR     (0xdff000)
248*4882a593Smuzhiyun #define amiga_custom ((*(volatile struct CUSTOM *)(zTwoBase+CUSTOM_PHYSADDR)))
249*4882a593Smuzhiyun 
250*4882a593Smuzhiyun #define CIAA_PHYSADDR	  (0xbfe001)
251*4882a593Smuzhiyun #define CIAB_PHYSADDR	  (0xbfd000)
252*4882a593Smuzhiyun #define ciaa   ((*(volatile struct CIA *)(zTwoBase + CIAA_PHYSADDR)))
253*4882a593Smuzhiyun #define ciab   ((*(volatile struct CIA *)(zTwoBase + CIAB_PHYSADDR)))
254*4882a593Smuzhiyun 
255*4882a593Smuzhiyun #define CHIP_PHYSADDR	    (0x000000)
256*4882a593Smuzhiyun 
257*4882a593Smuzhiyun void amiga_chip_init (void);
258*4882a593Smuzhiyun void *amiga_chip_alloc(unsigned long size, const char *name);
259*4882a593Smuzhiyun void *amiga_chip_alloc_res(unsigned long size, struct resource *res);
260*4882a593Smuzhiyun void amiga_chip_free(void *ptr);
261*4882a593Smuzhiyun unsigned long amiga_chip_avail( void ); /*MILAN*/
262*4882a593Smuzhiyun extern volatile unsigned short amiga_audio_min_period;
263*4882a593Smuzhiyun 
amifb_video_off(void)264*4882a593Smuzhiyun static inline void amifb_video_off(void)
265*4882a593Smuzhiyun {
266*4882a593Smuzhiyun 	if (amiga_chipset == CS_ECS || amiga_chipset == CS_AGA) {
267*4882a593Smuzhiyun 		/* program Denise/Lisa for a higher maximum play rate */
268*4882a593Smuzhiyun 		amiga_custom.htotal = 113;        /* 31 kHz */
269*4882a593Smuzhiyun 		amiga_custom.vtotal = 223;        /* 70 Hz */
270*4882a593Smuzhiyun 		amiga_custom.beamcon0 = 0x4390;   /* HARDDIS, VAR{BEAM,VSY,HSY,CSY}EN */
271*4882a593Smuzhiyun 		/* suspend the monitor */
272*4882a593Smuzhiyun 		amiga_custom.hsstrt = amiga_custom.hsstop = 116;
273*4882a593Smuzhiyun 		amiga_custom.vsstrt = amiga_custom.vsstop = 226;
274*4882a593Smuzhiyun 		amiga_audio_min_period = 57;
275*4882a593Smuzhiyun 	}
276*4882a593Smuzhiyun }
277*4882a593Smuzhiyun 
278*4882a593Smuzhiyun struct tod3000 {
279*4882a593Smuzhiyun   unsigned int  :28, second2:4;	/* lower digit */
280*4882a593Smuzhiyun   unsigned int  :28, second1:4;	/* upper digit */
281*4882a593Smuzhiyun   unsigned int  :28, minute2:4;	/* lower digit */
282*4882a593Smuzhiyun   unsigned int  :28, minute1:4;	/* upper digit */
283*4882a593Smuzhiyun   unsigned int  :28, hour2:4;	/* lower digit */
284*4882a593Smuzhiyun   unsigned int  :28, hour1:4;	/* upper digit */
285*4882a593Smuzhiyun   unsigned int  :28, weekday:4;
286*4882a593Smuzhiyun   unsigned int  :28, day2:4;	/* lower digit */
287*4882a593Smuzhiyun   unsigned int  :28, day1:4;	/* upper digit */
288*4882a593Smuzhiyun   unsigned int  :28, month2:4;	/* lower digit */
289*4882a593Smuzhiyun   unsigned int  :28, month1:4;	/* upper digit */
290*4882a593Smuzhiyun   unsigned int  :28, year2:4;	/* lower digit */
291*4882a593Smuzhiyun   unsigned int  :28, year1:4;	/* upper digit */
292*4882a593Smuzhiyun   unsigned int  :28, cntrl1:4;	/* control-byte 1 */
293*4882a593Smuzhiyun   unsigned int  :28, cntrl2:4;	/* control-byte 2 */
294*4882a593Smuzhiyun   unsigned int  :28, cntrl3:4;	/* control-byte 3 */
295*4882a593Smuzhiyun };
296*4882a593Smuzhiyun #define TOD3000_CNTRL1_HOLD	0
297*4882a593Smuzhiyun #define TOD3000_CNTRL1_FREE	9
298*4882a593Smuzhiyun #define tod_3000 ((*(volatile struct tod3000 *)(zTwoBase+0xDC0000)))
299*4882a593Smuzhiyun 
300*4882a593Smuzhiyun struct tod2000 {
301*4882a593Smuzhiyun   unsigned int  :28, second2:4;	/* lower digit */
302*4882a593Smuzhiyun   unsigned int  :28, second1:4;	/* upper digit */
303*4882a593Smuzhiyun   unsigned int  :28, minute2:4;	/* lower digit */
304*4882a593Smuzhiyun   unsigned int  :28, minute1:4;	/* upper digit */
305*4882a593Smuzhiyun   unsigned int  :28, hour2:4;	/* lower digit */
306*4882a593Smuzhiyun   unsigned int  :28, hour1:4;	/* upper digit */
307*4882a593Smuzhiyun   unsigned int  :28, day2:4;	/* lower digit */
308*4882a593Smuzhiyun   unsigned int  :28, day1:4;	/* upper digit */
309*4882a593Smuzhiyun   unsigned int  :28, month2:4;	/* lower digit */
310*4882a593Smuzhiyun   unsigned int  :28, month1:4;	/* upper digit */
311*4882a593Smuzhiyun   unsigned int  :28, year2:4;	/* lower digit */
312*4882a593Smuzhiyun   unsigned int  :28, year1:4;	/* upper digit */
313*4882a593Smuzhiyun   unsigned int  :28, weekday:4;
314*4882a593Smuzhiyun   unsigned int  :28, cntrl1:4;	/* control-byte 1 */
315*4882a593Smuzhiyun   unsigned int  :28, cntrl2:4;	/* control-byte 2 */
316*4882a593Smuzhiyun   unsigned int  :28, cntrl3:4;	/* control-byte 3 */
317*4882a593Smuzhiyun };
318*4882a593Smuzhiyun 
319*4882a593Smuzhiyun #define TOD2000_CNTRL1_HOLD	(1<<0)
320*4882a593Smuzhiyun #define TOD2000_CNTRL1_BUSY	(1<<1)
321*4882a593Smuzhiyun #define TOD2000_CNTRL3_24HMODE	(1<<2)
322*4882a593Smuzhiyun #define TOD2000_HOUR1_PM	(1<<2)
323*4882a593Smuzhiyun #define tod_2000 ((*(volatile struct tod2000 *)(zTwoBase+0xDC0000)))
324*4882a593Smuzhiyun 
325*4882a593Smuzhiyun #endif /* _M68K_AMIGAHW_H */
326