162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci** asm-m68k/amigahw.h -- This header defines some macros and pointers for 362306a36Sopenharmony_ci** the various Amiga custom hardware registers. 462306a36Sopenharmony_ci** The naming conventions used here conform to those 562306a36Sopenharmony_ci** used in the Amiga Hardware Reference Manual, 3rd Edition 662306a36Sopenharmony_ci** 762306a36Sopenharmony_ci** Copyright 1992 by Greg Harp 862306a36Sopenharmony_ci** 962306a36Sopenharmony_ci** This file is subject to the terms and conditions of the GNU General Public 1062306a36Sopenharmony_ci** License. See the file COPYING in the main directory of this archive 1162306a36Sopenharmony_ci** for more details. 1262306a36Sopenharmony_ci** 1362306a36Sopenharmony_ci** Created: 9/24/92 by Greg Harp 1462306a36Sopenharmony_ci*/ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#ifndef _M68K_AMIGAHW_H 1762306a36Sopenharmony_ci#define _M68K_AMIGAHW_H 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#include <linux/ioport.h> 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci#include <asm/bootinfo-amiga.h> 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci /* 2562306a36Sopenharmony_ci * Chipsets 2662306a36Sopenharmony_ci */ 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciextern unsigned long amiga_chipset; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci /* 3262306a36Sopenharmony_ci * Miscellaneous 3362306a36Sopenharmony_ci */ 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciextern unsigned long amiga_eclock; /* 700 kHz E Peripheral Clock */ 3662306a36Sopenharmony_ciextern unsigned long amiga_colorclock; /* 3.5 MHz Color Clock */ 3762306a36Sopenharmony_ciextern unsigned long amiga_chip_size; /* Chip RAM Size (bytes) */ 3862306a36Sopenharmony_ciextern unsigned char amiga_vblank; /* VBLANK Frequency */ 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#define AMIGAHW_DECLARE(name) unsigned name : 1 4262306a36Sopenharmony_ci#define AMIGAHW_SET(name) (amiga_hw_present.name = 1) 4362306a36Sopenharmony_ci#define AMIGAHW_PRESENT(name) (amiga_hw_present.name) 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_cistruct amiga_hw_present { 4662306a36Sopenharmony_ci /* video hardware */ 4762306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_VIDEO); /* Amiga Video */ 4862306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_BLITTER); /* Amiga Blitter */ 4962306a36Sopenharmony_ci AMIGAHW_DECLARE(AMBER_FF); /* Amber Flicker Fixer */ 5062306a36Sopenharmony_ci /* sound hardware */ 5162306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_AUDIO); /* Amiga Audio */ 5262306a36Sopenharmony_ci /* disk storage interfaces */ 5362306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_FLOPPY); /* Amiga Floppy */ 5462306a36Sopenharmony_ci AMIGAHW_DECLARE(A3000_SCSI); /* SCSI (wd33c93, A3000 alike) */ 5562306a36Sopenharmony_ci AMIGAHW_DECLARE(A4000_SCSI); /* SCSI (ncr53c710, A4000T alike) */ 5662306a36Sopenharmony_ci AMIGAHW_DECLARE(A1200_IDE); /* IDE (A1200 alike) */ 5762306a36Sopenharmony_ci AMIGAHW_DECLARE(A4000_IDE); /* IDE (A4000 alike) */ 5862306a36Sopenharmony_ci AMIGAHW_DECLARE(CD_ROM); /* CD ROM drive */ 5962306a36Sopenharmony_ci /* other I/O hardware */ 6062306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_KEYBOARD); /* Amiga Keyboard */ 6162306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_MOUSE); /* Amiga Mouse */ 6262306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_SERIAL); /* Amiga Serial */ 6362306a36Sopenharmony_ci AMIGAHW_DECLARE(AMI_PARALLEL); /* Amiga Parallel */ 6462306a36Sopenharmony_ci /* real time clocks */ 6562306a36Sopenharmony_ci AMIGAHW_DECLARE(A2000_CLK); /* Hardware Clock (A2000 alike) */ 6662306a36Sopenharmony_ci AMIGAHW_DECLARE(A3000_CLK); /* Hardware Clock (A3000 alike) */ 6762306a36Sopenharmony_ci /* supporting hardware */ 6862306a36Sopenharmony_ci AMIGAHW_DECLARE(CHIP_RAM); /* Chip RAM */ 6962306a36Sopenharmony_ci AMIGAHW_DECLARE(PAULA); /* Paula (8364) */ 7062306a36Sopenharmony_ci AMIGAHW_DECLARE(DENISE); /* Denise (8362) */ 7162306a36Sopenharmony_ci AMIGAHW_DECLARE(DENISE_HR); /* Denise (8373) */ 7262306a36Sopenharmony_ci AMIGAHW_DECLARE(LISA); /* Lisa (8375) */ 7362306a36Sopenharmony_ci AMIGAHW_DECLARE(AGNUS_PAL); /* Normal/Fat PAL Agnus (8367/8371) */ 7462306a36Sopenharmony_ci AMIGAHW_DECLARE(AGNUS_NTSC); /* Normal/Fat NTSC Agnus (8361/8370) */ 7562306a36Sopenharmony_ci AMIGAHW_DECLARE(AGNUS_HR_PAL); /* Fat Hires PAL Agnus (8372) */ 7662306a36Sopenharmony_ci AMIGAHW_DECLARE(AGNUS_HR_NTSC); /* Fat Hires NTSC Agnus (8372) */ 7762306a36Sopenharmony_ci AMIGAHW_DECLARE(ALICE_PAL); /* PAL Alice (8374) */ 7862306a36Sopenharmony_ci AMIGAHW_DECLARE(ALICE_NTSC); /* NTSC Alice (8374) */ 7962306a36Sopenharmony_ci AMIGAHW_DECLARE(MAGIC_REKICK); /* A3000 Magic Hard Rekick */ 8062306a36Sopenharmony_ci AMIGAHW_DECLARE(PCMCIA); /* PCMCIA Slot */ 8162306a36Sopenharmony_ci AMIGAHW_DECLARE(ZORRO); /* Zorro AutoConfig */ 8262306a36Sopenharmony_ci AMIGAHW_DECLARE(ZORRO3); /* Zorro III */ 8362306a36Sopenharmony_ci}; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ciextern struct amiga_hw_present amiga_hw_present; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_cistruct CUSTOM { 8862306a36Sopenharmony_ci unsigned short bltddat; 8962306a36Sopenharmony_ci unsigned short dmaconr; 9062306a36Sopenharmony_ci unsigned short vposr; 9162306a36Sopenharmony_ci unsigned short vhposr; 9262306a36Sopenharmony_ci unsigned short dskdatr; 9362306a36Sopenharmony_ci unsigned short joy0dat; 9462306a36Sopenharmony_ci unsigned short joy1dat; 9562306a36Sopenharmony_ci unsigned short clxdat; 9662306a36Sopenharmony_ci unsigned short adkconr; 9762306a36Sopenharmony_ci unsigned short pot0dat; 9862306a36Sopenharmony_ci unsigned short pot1dat; 9962306a36Sopenharmony_ci unsigned short potgor; 10062306a36Sopenharmony_ci unsigned short serdatr; 10162306a36Sopenharmony_ci unsigned short dskbytr; 10262306a36Sopenharmony_ci unsigned short intenar; 10362306a36Sopenharmony_ci unsigned short intreqr; 10462306a36Sopenharmony_ci unsigned char *dskptr; 10562306a36Sopenharmony_ci unsigned short dsklen; 10662306a36Sopenharmony_ci unsigned short dskdat; 10762306a36Sopenharmony_ci unsigned short refptr; 10862306a36Sopenharmony_ci unsigned short vposw; 10962306a36Sopenharmony_ci unsigned short vhposw; 11062306a36Sopenharmony_ci unsigned short copcon; 11162306a36Sopenharmony_ci unsigned short serdat; 11262306a36Sopenharmony_ci unsigned short serper; 11362306a36Sopenharmony_ci unsigned short potgo; 11462306a36Sopenharmony_ci unsigned short joytest; 11562306a36Sopenharmony_ci unsigned short strequ; 11662306a36Sopenharmony_ci unsigned short strvbl; 11762306a36Sopenharmony_ci unsigned short strhor; 11862306a36Sopenharmony_ci unsigned short strlong; 11962306a36Sopenharmony_ci unsigned short bltcon0; 12062306a36Sopenharmony_ci unsigned short bltcon1; 12162306a36Sopenharmony_ci unsigned short bltafwm; 12262306a36Sopenharmony_ci unsigned short bltalwm; 12362306a36Sopenharmony_ci unsigned char *bltcpt; 12462306a36Sopenharmony_ci unsigned char *bltbpt; 12562306a36Sopenharmony_ci unsigned char *bltapt; 12662306a36Sopenharmony_ci unsigned char *bltdpt; 12762306a36Sopenharmony_ci unsigned short bltsize; 12862306a36Sopenharmony_ci unsigned char pad2d; 12962306a36Sopenharmony_ci unsigned char bltcon0l; 13062306a36Sopenharmony_ci unsigned short bltsizv; 13162306a36Sopenharmony_ci unsigned short bltsizh; 13262306a36Sopenharmony_ci unsigned short bltcmod; 13362306a36Sopenharmony_ci unsigned short bltbmod; 13462306a36Sopenharmony_ci unsigned short bltamod; 13562306a36Sopenharmony_ci unsigned short bltdmod; 13662306a36Sopenharmony_ci unsigned short spare2[4]; 13762306a36Sopenharmony_ci unsigned short bltcdat; 13862306a36Sopenharmony_ci unsigned short bltbdat; 13962306a36Sopenharmony_ci unsigned short bltadat; 14062306a36Sopenharmony_ci unsigned short spare3[3]; 14162306a36Sopenharmony_ci unsigned short deniseid; 14262306a36Sopenharmony_ci unsigned short dsksync; 14362306a36Sopenharmony_ci unsigned short *cop1lc; 14462306a36Sopenharmony_ci unsigned short *cop2lc; 14562306a36Sopenharmony_ci unsigned short copjmp1; 14662306a36Sopenharmony_ci unsigned short copjmp2; 14762306a36Sopenharmony_ci unsigned short copins; 14862306a36Sopenharmony_ci unsigned short diwstrt; 14962306a36Sopenharmony_ci unsigned short diwstop; 15062306a36Sopenharmony_ci unsigned short ddfstrt; 15162306a36Sopenharmony_ci unsigned short ddfstop; 15262306a36Sopenharmony_ci unsigned short dmacon; 15362306a36Sopenharmony_ci unsigned short clxcon; 15462306a36Sopenharmony_ci unsigned short intena; 15562306a36Sopenharmony_ci unsigned short intreq; 15662306a36Sopenharmony_ci unsigned short adkcon; 15762306a36Sopenharmony_ci struct { 15862306a36Sopenharmony_ci unsigned short *audlc; 15962306a36Sopenharmony_ci unsigned short audlen; 16062306a36Sopenharmony_ci unsigned short audper; 16162306a36Sopenharmony_ci unsigned short audvol; 16262306a36Sopenharmony_ci unsigned short auddat; 16362306a36Sopenharmony_ci unsigned short audspare[2]; 16462306a36Sopenharmony_ci } aud[4]; 16562306a36Sopenharmony_ci unsigned char *bplpt[8]; 16662306a36Sopenharmony_ci unsigned short bplcon0; 16762306a36Sopenharmony_ci unsigned short bplcon1; 16862306a36Sopenharmony_ci unsigned short bplcon2; 16962306a36Sopenharmony_ci unsigned short bplcon3; 17062306a36Sopenharmony_ci unsigned short bpl1mod; 17162306a36Sopenharmony_ci unsigned short bpl2mod; 17262306a36Sopenharmony_ci unsigned short bplcon4; 17362306a36Sopenharmony_ci unsigned short clxcon2; 17462306a36Sopenharmony_ci unsigned short bpldat[8]; 17562306a36Sopenharmony_ci unsigned char *sprpt[8]; 17662306a36Sopenharmony_ci struct { 17762306a36Sopenharmony_ci unsigned short pos; 17862306a36Sopenharmony_ci unsigned short ctl; 17962306a36Sopenharmony_ci unsigned short dataa; 18062306a36Sopenharmony_ci unsigned short datab; 18162306a36Sopenharmony_ci } spr[8]; 18262306a36Sopenharmony_ci unsigned short color[32]; 18362306a36Sopenharmony_ci unsigned short htotal; 18462306a36Sopenharmony_ci unsigned short hsstop; 18562306a36Sopenharmony_ci unsigned short hbstrt; 18662306a36Sopenharmony_ci unsigned short hbstop; 18762306a36Sopenharmony_ci unsigned short vtotal; 18862306a36Sopenharmony_ci unsigned short vsstop; 18962306a36Sopenharmony_ci unsigned short vbstrt; 19062306a36Sopenharmony_ci unsigned short vbstop; 19162306a36Sopenharmony_ci unsigned short sprhstrt; 19262306a36Sopenharmony_ci unsigned short sprhstop; 19362306a36Sopenharmony_ci unsigned short bplhstrt; 19462306a36Sopenharmony_ci unsigned short bplhstop; 19562306a36Sopenharmony_ci unsigned short hhposw; 19662306a36Sopenharmony_ci unsigned short hhposr; 19762306a36Sopenharmony_ci unsigned short beamcon0; 19862306a36Sopenharmony_ci unsigned short hsstrt; 19962306a36Sopenharmony_ci unsigned short vsstrt; 20062306a36Sopenharmony_ci unsigned short hcenter; 20162306a36Sopenharmony_ci unsigned short diwhigh; 20262306a36Sopenharmony_ci unsigned short spare4[11]; 20362306a36Sopenharmony_ci unsigned short fmode; 20462306a36Sopenharmony_ci}; 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci/* 20762306a36Sopenharmony_ci * DMA register bits 20862306a36Sopenharmony_ci */ 20962306a36Sopenharmony_ci#define DMAF_SETCLR (0x8000) 21062306a36Sopenharmony_ci#define DMAF_AUD0 (0x0001) 21162306a36Sopenharmony_ci#define DMAF_AUD1 (0x0002) 21262306a36Sopenharmony_ci#define DMAF_AUD2 (0x0004) 21362306a36Sopenharmony_ci#define DMAF_AUD3 (0x0008) 21462306a36Sopenharmony_ci#define DMAF_DISK (0x0010) 21562306a36Sopenharmony_ci#define DMAF_SPRITE (0x0020) 21662306a36Sopenharmony_ci#define DMAF_BLITTER (0x0040) 21762306a36Sopenharmony_ci#define DMAF_COPPER (0x0080) 21862306a36Sopenharmony_ci#define DMAF_RASTER (0x0100) 21962306a36Sopenharmony_ci#define DMAF_MASTER (0x0200) 22062306a36Sopenharmony_ci#define DMAF_BLITHOG (0x0400) 22162306a36Sopenharmony_ci#define DMAF_BLTNZERO (0x2000) 22262306a36Sopenharmony_ci#define DMAF_BLTDONE (0x4000) 22362306a36Sopenharmony_ci#define DMAF_ALL (0x01FF) 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_cistruct CIA { 22662306a36Sopenharmony_ci unsigned char pra; char pad0[0xff]; 22762306a36Sopenharmony_ci unsigned char prb; char pad1[0xff]; 22862306a36Sopenharmony_ci unsigned char ddra; char pad2[0xff]; 22962306a36Sopenharmony_ci unsigned char ddrb; char pad3[0xff]; 23062306a36Sopenharmony_ci unsigned char talo; char pad4[0xff]; 23162306a36Sopenharmony_ci unsigned char tahi; char pad5[0xff]; 23262306a36Sopenharmony_ci unsigned char tblo; char pad6[0xff]; 23362306a36Sopenharmony_ci unsigned char tbhi; char pad7[0xff]; 23462306a36Sopenharmony_ci unsigned char todlo; char pad8[0xff]; 23562306a36Sopenharmony_ci unsigned char todmid; char pad9[0xff]; 23662306a36Sopenharmony_ci unsigned char todhi; char pada[0x1ff]; 23762306a36Sopenharmony_ci unsigned char sdr; char padb[0xff]; 23862306a36Sopenharmony_ci unsigned char icr; char padc[0xff]; 23962306a36Sopenharmony_ci unsigned char cra; char padd[0xff]; 24062306a36Sopenharmony_ci unsigned char crb; char pade[0xff]; 24162306a36Sopenharmony_ci}; 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci#define zTwoBase (0x80000000) 24462306a36Sopenharmony_ci#define ZTWO_PADDR(x) (((unsigned long)(x))-zTwoBase) 24562306a36Sopenharmony_ci#define ZTWO_VADDR(x) ((void __iomem *)(((unsigned long)(x))+zTwoBase)) 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci#define CUSTOM_PHYSADDR (0xdff000) 24862306a36Sopenharmony_ci#define amiga_custom ((*(volatile struct CUSTOM *)(zTwoBase+CUSTOM_PHYSADDR))) 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci#define CIAA_PHYSADDR (0xbfe001) 25162306a36Sopenharmony_ci#define CIAB_PHYSADDR (0xbfd000) 25262306a36Sopenharmony_ci#define ciaa ((*(volatile struct CIA *)(zTwoBase + CIAA_PHYSADDR))) 25362306a36Sopenharmony_ci#define ciab ((*(volatile struct CIA *)(zTwoBase + CIAB_PHYSADDR))) 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci#define CHIP_PHYSADDR (0x000000) 25662306a36Sopenharmony_ci 25762306a36Sopenharmony_civoid amiga_chip_init (void); 25862306a36Sopenharmony_civoid *amiga_chip_alloc(unsigned long size, const char *name); 25962306a36Sopenharmony_civoid *amiga_chip_alloc_res(unsigned long size, struct resource *res); 26062306a36Sopenharmony_civoid amiga_chip_free(void *ptr); 26162306a36Sopenharmony_ciunsigned long amiga_chip_avail( void ); /*MILAN*/ 26262306a36Sopenharmony_ciextern volatile unsigned short amiga_audio_min_period; 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_cistatic inline void amifb_video_off(void) 26562306a36Sopenharmony_ci{ 26662306a36Sopenharmony_ci if (amiga_chipset == CS_ECS || amiga_chipset == CS_AGA) { 26762306a36Sopenharmony_ci /* program Denise/Lisa for a higher maximum play rate */ 26862306a36Sopenharmony_ci amiga_custom.htotal = 113; /* 31 kHz */ 26962306a36Sopenharmony_ci amiga_custom.vtotal = 223; /* 70 Hz */ 27062306a36Sopenharmony_ci amiga_custom.beamcon0 = 0x4390; /* HARDDIS, VAR{BEAM,VSY,HSY,CSY}EN */ 27162306a36Sopenharmony_ci /* suspend the monitor */ 27262306a36Sopenharmony_ci amiga_custom.hsstrt = amiga_custom.hsstop = 116; 27362306a36Sopenharmony_ci amiga_custom.vsstrt = amiga_custom.vsstop = 226; 27462306a36Sopenharmony_ci amiga_audio_min_period = 57; 27562306a36Sopenharmony_ci } 27662306a36Sopenharmony_ci} 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_cistruct tod3000 { 27962306a36Sopenharmony_ci unsigned int :28, second2:4; /* lower digit */ 28062306a36Sopenharmony_ci unsigned int :28, second1:4; /* upper digit */ 28162306a36Sopenharmony_ci unsigned int :28, minute2:4; /* lower digit */ 28262306a36Sopenharmony_ci unsigned int :28, minute1:4; /* upper digit */ 28362306a36Sopenharmony_ci unsigned int :28, hour2:4; /* lower digit */ 28462306a36Sopenharmony_ci unsigned int :28, hour1:4; /* upper digit */ 28562306a36Sopenharmony_ci unsigned int :28, weekday:4; 28662306a36Sopenharmony_ci unsigned int :28, day2:4; /* lower digit */ 28762306a36Sopenharmony_ci unsigned int :28, day1:4; /* upper digit */ 28862306a36Sopenharmony_ci unsigned int :28, month2:4; /* lower digit */ 28962306a36Sopenharmony_ci unsigned int :28, month1:4; /* upper digit */ 29062306a36Sopenharmony_ci unsigned int :28, year2:4; /* lower digit */ 29162306a36Sopenharmony_ci unsigned int :28, year1:4; /* upper digit */ 29262306a36Sopenharmony_ci unsigned int :28, cntrl1:4; /* control-byte 1 */ 29362306a36Sopenharmony_ci unsigned int :28, cntrl2:4; /* control-byte 2 */ 29462306a36Sopenharmony_ci unsigned int :28, cntrl3:4; /* control-byte 3 */ 29562306a36Sopenharmony_ci}; 29662306a36Sopenharmony_ci#define TOD3000_CNTRL1_HOLD 0 29762306a36Sopenharmony_ci#define TOD3000_CNTRL1_FREE 9 29862306a36Sopenharmony_ci#define tod_3000 ((*(volatile struct tod3000 *)(zTwoBase+0xDC0000))) 29962306a36Sopenharmony_ci 30062306a36Sopenharmony_cistruct tod2000 { 30162306a36Sopenharmony_ci unsigned int :28, second2:4; /* lower digit */ 30262306a36Sopenharmony_ci unsigned int :28, second1:4; /* upper digit */ 30362306a36Sopenharmony_ci unsigned int :28, minute2:4; /* lower digit */ 30462306a36Sopenharmony_ci unsigned int :28, minute1:4; /* upper digit */ 30562306a36Sopenharmony_ci unsigned int :28, hour2:4; /* lower digit */ 30662306a36Sopenharmony_ci unsigned int :28, hour1:4; /* upper digit */ 30762306a36Sopenharmony_ci unsigned int :28, day2:4; /* lower digit */ 30862306a36Sopenharmony_ci unsigned int :28, day1:4; /* upper digit */ 30962306a36Sopenharmony_ci unsigned int :28, month2:4; /* lower digit */ 31062306a36Sopenharmony_ci unsigned int :28, month1:4; /* upper digit */ 31162306a36Sopenharmony_ci unsigned int :28, year2:4; /* lower digit */ 31262306a36Sopenharmony_ci unsigned int :28, year1:4; /* upper digit */ 31362306a36Sopenharmony_ci unsigned int :28, weekday:4; 31462306a36Sopenharmony_ci unsigned int :28, cntrl1:4; /* control-byte 1 */ 31562306a36Sopenharmony_ci unsigned int :28, cntrl2:4; /* control-byte 2 */ 31662306a36Sopenharmony_ci unsigned int :28, cntrl3:4; /* control-byte 3 */ 31762306a36Sopenharmony_ci}; 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci#define TOD2000_CNTRL1_HOLD (1<<0) 32062306a36Sopenharmony_ci#define TOD2000_CNTRL1_BUSY (1<<1) 32162306a36Sopenharmony_ci#define TOD2000_CNTRL3_24HMODE (1<<2) 32262306a36Sopenharmony_ci#define TOD2000_HOUR1_PM (1<<2) 32362306a36Sopenharmony_ci#define tod_2000 ((*(volatile struct tod2000 *)(zTwoBase+0xDC0000))) 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci#endif /* _M68K_AMIGAHW_H */ 326