11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** linux/atarihw.h -- This header defines some macros and pointers for 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** the various Atari custom hardware registers. 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** 51039592d6fe3221c406b02d7341ef4212bc25020David Woodhouse** Copyright 1994 by Björn Brauel 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** 5/1/94 Roman Hodek: 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** Added definitions for TT specific chips. 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** 1996-09-13 lars brinkhoff <f93labr@dd.chalmers.se>: 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** Finally added definitions for the matrix/codec and the DSP56001 host 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** interface. 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** This file is subject to the terms and conditions of the GNU General Public 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** License. See the file COPYING in the main directory of this archive 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** for more details. 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*/ 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _LINUX_ATARIHW_H_ 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _LINUX_ATARIHW_H_ 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/types.h> 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/bootinfo.h> 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/raw_io.h> 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern u_long atari_mch_cookie; 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern u_long atari_mch_type; 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern u_long atari_switches; 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern int atari_rtc_year_offset; 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern int atari_dont_touch_floppy_select; 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 33125298d2daf7c9005d5bc26313a037b798c8de70Geert Uytterhoevenextern int atari_SCC_reset_done; 34125298d2daf7c9005d5bc26313a037b798c8de70Geert Uytterhoeven 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* convenience macros for testing machine type */ 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MACH_IS_ST ((atari_mch_cookie >> 16) == ATARI_MCH_ST) 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MACH_IS_STE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \ 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (atari_mch_cookie & 0xffff) == 0) 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MACH_IS_MSTE ((atari_mch_cookie >> 16) == ATARI_MCH_STE && \ 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (atari_mch_cookie & 0xffff) == 0x10) 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MACH_IS_TT ((atari_mch_cookie >> 16) == ATARI_MCH_TT) 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MACH_IS_FALCON ((atari_mch_cookie >> 16) == ATARI_MCH_FALCON) 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MACH_IS_MEDUSA (atari_mch_type == ATARI_MACH_MEDUSA) 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MACH_IS_AB40 (atari_mch_type == ATARI_MACH_AB40) 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for atari_switches */ 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_IKBD 0x01 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_MIDI 0x02 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_SND6 0x04 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_SND7 0x08 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_OVSC_SHIFT 16 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_OVSC_IKBD (ATARI_SWITCH_IKBD << ATARI_SWITCH_OVSC_SHIFT) 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_OVSC_MIDI (ATARI_SWITCH_MIDI << ATARI_SWITCH_OVSC_SHIFT) 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_OVSC_SND6 (ATARI_SWITCH_SND6 << ATARI_SWITCH_OVSC_SHIFT) 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_OVSC_SND7 (ATARI_SWITCH_SND7 << ATARI_SWITCH_OVSC_SHIFT) 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARI_SWITCH_OVSC_MASK 0xffff0000 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Define several Hardware-Chips for indication so that for the ATARI we do 601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * no longer decide whether it is a Falcon or other machine . It's just 611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * important what hardware the machine uses 621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ++roman 08/08/95: rewritten from ORing constants to a C bitfield */ 651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARIHW_DECLARE(name) unsigned name : 1 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARIHW_SET(name) (atari_hw_present.name = 1) 681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ATARIHW_PRESENT(name) (atari_hw_present.name) 691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct atari_hw_present { 711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* video hardware */ 721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(STND_SHIFTER); /* ST-Shifter - no base low ! */ 731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(EXTD_SHIFTER); /* STe-Shifter - 24 bit address */ 741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(TT_SHIFTER); /* TT-Shifter */ 751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(VIDEL_SHIFTER); /* Falcon-Shifter */ 761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* sound hardware */ 771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(YM_2149); /* Yamaha YM 2149 */ 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(PCM_8BIT); /* PCM-Sound in STe-ATARI */ 791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(CODEC); /* CODEC Sound (Falcon) */ 801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* disk storage interfaces */ 811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(TT_SCSI); /* Directly mapped NCR5380 */ 821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(ST_SCSI); /* NCR5380 via ST-DMA (Falcon) */ 831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(ACSI); /* Standard ACSI like in STs */ 841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(IDE); /* IDE Interface */ 851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(FDCSPEED); /* 8/16 MHz switch for FDC */ 861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* other I/O hardware */ 871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(ST_MFP); /* The ST-MFP (there should be no Atari 881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds without it... but who knows?) */ 891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(TT_MFP); /* 2nd MFP */ 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(SCC); /* Serial Communications Contr. */ 911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(ST_ESCC); /* SCC Z83230 in an ST */ 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(ANALOG_JOY); /* Paddle Interface for STe 931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds and Falcon */ 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(MICROWIRE); /* Microwire Interface */ 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* DMA */ 961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(STND_DMA); /* 24 Bit limited ST-DMA */ 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(EXTD_DMA); /* 32 Bit ST-DMA */ 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(SCSI_DMA); /* DMA for the NCR5380 */ 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(SCC_DMA); /* DMA for the SCC */ 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* real time clocks */ 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(TT_CLK); /* TT compatible clock chip */ 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(MSTE_CLK); /* Mega ST(E) clock chip */ 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* supporting hardware */ 1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(SCU); /* System Control Unit */ 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(BLITTER); /* Blitter */ 1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(VME); /* VME Bus */ 1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ATARIHW_DECLARE(DSP56K); /* DSP56k processor in Falcon */ 1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern struct atari_hw_present atari_hw_present; 1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Reading the MFP port register gives a machine independent delay, since the 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MFP always has a 8 MHz clock. This avoids problems with the varying length 1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * of nops on various machines. Somebody claimed that the tstb takes 600 ns. 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MFPDELAY() \ 1183d92e8f3ae9ba21cac30370eb254ed9dc20df043Geert Uytterhoeven __asm__ __volatile__ ( "tstb %0" : : "m" (st_mfp.par_dt_reg) : "cc" ); 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Do cache push/invalidate for DMA read/write. This function obeys the 1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * snooping on some machines (Medusa) and processors: The Medusa itself can 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * snoop, but only the '040 can source data from its cache to DMA writes i.e., 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * reads from memory). Both '040 and '060 invalidate cache entries on snooped 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * DMA reads (i.e., writes to memory). 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define atari_readb raw_inb 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define atari_writeb raw_outb 1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define atari_inb_p raw_inb 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define atari_outb_p raw_outb 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/mm.h> 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <asm/cacheflush.h> 1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstatic inline void dma_cache_maintenance( unsigned long paddr, 1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned long len, 1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int writeflag ) 1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (writeflag) { 1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (!MACH_IS_MEDUSA || CPU_IS_060) 1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds cache_push( paddr, len ); 1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds else { 1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (!MACH_IS_MEDUSA) 1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds cache_clear( paddr, len ); 1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** Shifter 1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ST_LOW 0 1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ST_MID 1 1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ST_HIGH 2 1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_LOW 7 1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_MID 4 1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_HIGH 6 1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SHF_BAS (0xffff8200) 1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct SHIFTER 1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad1; 1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_hi; 1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad2; 1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_md; 1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad3; 1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char volatile vcounthi; 1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad4; 1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char volatile vcountmid; 1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad5; 1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char volatile vcountlow; 1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char volatile syncmode; 1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad6; 1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad7; 1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_lo; 1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 1831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define shifter ((*(volatile struct SHIFTER *)SHF_BAS)) 1841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SHF_FBAS (0xffff820e) 1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct SHIFTER_F030 1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short off_next; 1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short scn_width; 1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define shifter_f030 ((*(volatile struct SHIFTER_F030 *)SHF_FBAS)) 1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SHF_TBAS (0xffff8200) 1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct SHIFTER_TT { 1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy0; 1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_hi; /* video mem base addr, high and mid byte */ 1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_md; 2001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char vcount_hi; /* pointer to currently displayed byte */ 2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char vcount_md; 2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy4; 2051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char vcount_lo; 2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short st_sync; /* ST compatible sync mode register, unused */ 2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy5; 2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_lo; /* video mem addr, low byte */ 2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy6[2+3*16]; 2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* $ffff8240: */ 2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short color_reg[16]; /* 16 color registers */ 2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char st_shiftmode; /* ST compatible shift mode register, unused */ 2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy7; 2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short tt_shiftmode; /* TT shift mode register */ 2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define shifter_tt ((*(volatile struct SHIFTER_TT *)SHF_TBAS)) 2191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for shifter_tt->tt_shiftmode */ 2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_STLOW 0x0000 2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_STMID 0x0100 2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_STHIGH 0x0200 2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_TTLOW 0x0700 2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_TTMID 0x0400 2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_TTHIGH 0x0600 2271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_MODEMASK 0x0700 2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_NUMMODE 0x0008 2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_PALETTE_MASK 0x000f 2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SHIFTER_GRAYMODE 0x1000 2311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 256 TT palette registers */ 2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_PALETTE_BASE (0xffff8400) 2341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define tt_palette ((volatile u_short *)TT_PALETTE_BASE) 2351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_PALETTE_RED_MASK 0x0f00 2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_PALETTE_GREEN_MASK 0x00f0 2381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_PALETTE_BLUE_MASK 0x000f 2391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** Falcon030 VIDEL Video Controller 2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** for description see File 'linux\tools\atari\hardware.txt 2431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_col ((u_long *) 0xffff9800) 2451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_xreg ((u_short*) 0xffff8282) 2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_yreg ((u_short*) 0xffff82a2) 2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_creg ((u_short*) 0xffff82c0) 2481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_sreg ((u_short*) 0xffff8260) 2491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_mreg ((u_short*) 0xffff820a) 2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_linewidth ((u_short*) 0xffff820e) 2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define f030_hscroll ((u_char*) 0xffff8265) 2521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VIDEL_BAS (0xffff8260) 2541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct VIDEL { 2551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short st_shift; 2561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short pad1; 2571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char xoffset_s; 2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char xoffset; 2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short f_shift; 2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad2[0x1a]; 2611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short hht; 2621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short hbb; 2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short hbe; 2641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short hdb; 2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short hde; 2661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short hss; 2671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad3[0x14]; 2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short vft; 2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short vbb; 2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short vbe; 2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short vdb; 2721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short vde; 2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short vss; 2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad4[0x12]; 2751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short control; 2761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short mode; 2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define videl ((*(volatile struct VIDEL *)VIDEL_BAS)) 2791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 2811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** DMA/WD1772 Disk Controller 2821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define FWD_BAS (0xffff8604) 2851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct DMA_WD 2861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 2871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short fdc_acces_seccount; 2881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short dma_mode_status; 2891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_vhi; /* Some extended ST-DMAs can handle 32 bit addresses */ 2901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_hi; 2911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 2921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_md; 2931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 2941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_lo; 2951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short fdc_speed; 2961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 2971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define dma_wd ((*(volatile struct DMA_WD *)FWD_BAS)) 2981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* alias */ 2991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define st_dma dma_wd 3001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* The two highest bytes of an extended DMA as a short; this is a must 3011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * for the Medusa. 3021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define st_dma_ext_dmahi (*((volatile unsigned short *)0xffff8608)) 3041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 3061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** YM2149 Sound Chip 3071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** access in bytes 3081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define YM_BAS (0xffff8800) 3111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct SOUND_YM 3121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 3131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char rd_data_reg_sel; 3141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 3151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char wd_data; 3161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 3171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define sound_ym ((*(volatile struct SOUND_YM *)YM_BAS)) 3181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* TT SCSI DMA */ 3201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SCSI_DMA_BAS (0xffff8700) 3221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct TT_DMA { 3231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy0; 3241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_addr_hi; 3251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 3261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_addr_hmd; 3271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 3281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_addr_lmd; 3291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 3301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_addr_lo; 3311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy4; 3321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_cnt_hi; 3331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy5; 3341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_cnt_hmd; 3351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy6; 3361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_cnt_lmd; 3371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy7; 3381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dma_cnt_lo; 3391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_long dma_restdata; 3401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short dma_ctrl; 3411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 3421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define tt_scsi_dma ((*(volatile struct TT_DMA *)TT_SCSI_DMA_BAS)) 3431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* TT SCSI Controller 5380 */ 3451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_5380_BAS (0xffff8781) 3471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct TT_5380 { 3481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_data; 3491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 3501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_icr; 3511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 3521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_mode; 3531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 3541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_tcr; 3551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy4; 3561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_idstat; 3571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy5; 3581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_dmastat; 3591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy6; 3601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_targrcv; 3611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy7; 3621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char scsi_inircv; 3631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 3641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define tt_scsi ((*(volatile struct TT_5380 *)TT_5380_BAS)) 3651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define tt_scsi_regp ((volatile char *)TT_5380_BAS) 3661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 3691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** Falcon DMA Sound Subsystem 3701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 3711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MATRIX_BASE (0xffff8930) 3731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct MATRIX 3741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short source; 3761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short destination; 3771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char external_frequency_divider; 3781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char internal_frequency_divider; 3791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 3801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define falcon_matrix (*(volatile struct MATRIX *)MATRIX_BASE) 3811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_BASE (0xffff8936) 3831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct CODEC 3841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tracks; 3861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char input_source; 3871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_SOURCE_ADC 1 3881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_SOURCE_MATRIX 2 3891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char adc_source; 3901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ADC_SOURCE_RIGHT_PSG 1 3911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ADC_SOURCE_LEFT_PSG 2 3921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char gain; 3931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_GAIN_RIGHT 0x0f 3941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_GAIN_LEFT 0xf0 3951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char attenuation; 3961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_ATTENUATION_RIGHT 0x0f 3971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_ATTENUATION_LEFT 0xf0 3981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char unused1; 3991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char status; 4001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_OVERFLOW_RIGHT 1 4011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CODEC_OVERFLOW_LEFT 2 4021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char unused2, unused3, unused4, unused5; 4031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char gpio_directions; 404398476195a561271654ecce0fa27330688d326dfGeert Uytterhoeven#define CODEC_GPIO_IN 0 405398476195a561271654ecce0fa27330688d326dfGeert Uytterhoeven#define CODEC_GPIO_OUT 1 4061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char unused6; 4071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char gpio_data; 4081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 4091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define falcon_codec (*(volatile struct CODEC *)CODEC_BASE) 4101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 4121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** Falcon Blitter 4131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*/ 4141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define BLT_BAS (0xffff8a00) 4161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct BLITTER 4181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 4191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short halftone[16]; 4201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short src_x_inc; 4211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short src_y_inc; 4221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_long src_address; 4231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short endmask1; 4241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short endmask2; 4251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short endmask3; 4261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short dst_x_inc; 4271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short dst_y_inc; 4281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_long dst_address; 4291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short wd_per_line; 4301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short ln_per_bb; 4311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short hlf_op_reg; 4321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short log_op_reg; 4331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short lin_nm_reg; 4341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short skew_reg; 4351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 4361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define blitter ((*(volatile struct BLITTER *)BLT_BAS)) 4371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 4401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** SCC Z8530 4411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SCC_BAS (0xffff8c81) 4441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct SCC 4451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 4461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char cha_a_ctrl; 4471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 4481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char cha_a_data; 4491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 4501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char cha_b_ctrl; 4511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 4521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char cha_b_data; 4531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 454de339e4b792aed799bec23251e83f594ac44ae04Geert Uytterhoeven# define atari_scc ((*(volatile struct SCC*)SCC_BAS)) 4551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* The ESCC (Z85230) in an Atari ST. The channels are reversed! */ 4571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define st_escc ((*(volatile struct SCC*)0xfffffa31)) 4581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define st_escc_dsr ((*(volatile char *)0xfffffa39)) 4591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* TT SCC DMA Controller (same chip as SCSI DMA) */ 4611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SCC_DMA_BAS (0xffff8c00) 4631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define tt_scc_dma ((*(volatile struct TT_DMA *)TT_SCC_DMA_BAS)) 4641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 4661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** VIDEL Palette Register 4671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define FPL_BAS (0xffff9800) 4701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct VIDEL_PALETTE 4711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 4721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_long reg[256]; 4731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 4741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define videl_palette ((*(volatile struct VIDEL_PALETTE*)FPL_BAS)) 4751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 4781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** Falcon DSP Host Interface 4791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_HOST_INTERFACE_BASE (0xffffa200) 4821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct DSP56K_HOST_INTERFACE { 4831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char icr; 4841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ICR_RREQ 0x01 4851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ICR_TREQ 0x02 4861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ICR_HF0 0x08 4871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ICR_HF1 0x10 4881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ICR_HM0 0x20 4891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ICR_HM1 0x40 4901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ICR_INIT 0x80 4911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char cvr; 4931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_CVR_HV_MASK 0x1f 4941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_CVR_HC 0x80 4951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char isr; 4971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ISR_RXDF 0x01 4981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ISR_TXDE 0x02 4991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ISR_TRDY 0x04 5001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ISR_HF2 0x08 5011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ISR_HF3 0x10 5021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ISR_DMA 0x40 5031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DSP56K_ISR_HREQ 0x80 5041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char ivr; 5061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds union { 5081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char b[4]; 5091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short w[2]; 5101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_long l; 5111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } data; 5121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 5131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define dsp56k_host_interface ((*(volatile struct DSP56K_HOST_INTERFACE *)DSP56K_HOST_INTERFACE_BASE)) 5141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 5161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** MFP 68901 5171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 5181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MFP_BAS (0xfffffa01) 5201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct MFP 5211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 5221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char par_dt_reg; 5231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 5241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char active_edge; 5251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 5261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char data_dir; 5271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 5281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_en_a; 5291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy4; 5301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_en_b; 5311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy5; 5321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_pn_a; 5331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy6; 5341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_pn_b; 5351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy7; 5361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_sv_a; 5371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy8; 5381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_sv_b; 5391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy9; 5401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_mk_a; 5411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy10; 5421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_mk_b; 5431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy11; 5441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char vec_adr; 5451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy12; 5461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tim_ct_a; 5471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy13; 5481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tim_ct_b; 5491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy14; 5501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tim_ct_cd; 5511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy15; 5521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tim_dt_a; 5531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy16; 5541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tim_dt_b; 5551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy17; 5561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tim_dt_c; 5571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy18; 5581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char tim_dt_d; 5591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy19; 5601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char sync_char; 5611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy20; 5621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char usart_ctr; 5631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy21; 5641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char rcv_stat; 5651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy22; 5661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char trn_stat; 5671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy23; 5681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char usart_dta; 5691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 5703d92e8f3ae9ba21cac30370eb254ed9dc20df043Geert Uytterhoeven# define st_mfp ((*(volatile struct MFP*)MFP_BAS)) 5711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* TT's second MFP */ 5731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_MFP_BAS (0xfffffa81) 5751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define tt_mfp ((*(volatile struct MFP*)TT_MFP_BAS)) 5761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* TT System Control Unit */ 5791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_SCU_BAS (0xffff8e01) 5811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct TT_SCU { 5821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char sys_mask; 5831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 5841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char sys_stat; 5851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 5861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char softint; 5871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 5881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char vmeint; 5891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy4; 5901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char gp_reg1; 5911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy5; 5921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char gp_reg2; 5931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy6; 5941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char vme_mask; 5951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy7; 5961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char vme_stat; 5971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 5981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define tt_scu ((*(volatile struct TT_SCU *)TT_SCU_BAS)) 5991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* TT real time clock */ 6011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_RTC_BAS (0xffff8961) 6031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct TT_RTC { 6041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char regsel; 6051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy; 6061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char data; 6071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 6081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define tt_rtc ((*(volatile struct TT_RTC *)TT_RTC_BAS)) 6091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 6121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds** ACIA 6850 6131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 6141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* constants for the ACIA registers */ 6151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* baudrate selection and reset (Baudrate = clock/factor) */ 6171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_DIV1 0 6181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_DIV16 1 6191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_DIV64 2 6201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RESET 3 6211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* character format */ 6231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D7E2S (0<<2) /* 7 data, even parity, 2 stop */ 6241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D7O2S (1<<2) /* 7 data, odd parity, 2 stop */ 6251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D7E1S (2<<2) /* 7 data, even parity, 1 stop */ 6261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D7O1S (3<<2) /* 7 data, odd parity, 1 stop */ 6271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D8N2S (4<<2) /* 8 data, no parity, 2 stop */ 6281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D8N1S (5<<2) /* 8 data, no parity, 1 stop */ 6291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D8E1S (6<<2) /* 8 data, even parity, 1 stop */ 6301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_D8O1S (7<<2) /* 8 data, odd parity, 1 stop */ 6311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* transmit control */ 6331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RLTID (0<<5) /* RTS low, TxINT disabled */ 6341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RLTIE (1<<5) /* RTS low, TxINT enabled */ 6351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RHTID (2<<5) /* RTS high, TxINT disabled */ 6361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RLTIDSB (3<<5) /* RTS low, TxINT disabled, send break */ 6371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* receive control */ 6391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RID (0<<7) /* RxINT disabled */ 6401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RIE (1<<7) /* RxINT enabled */ 6411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* status fields of the ACIA */ 6431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_RDRF 1 /* Receive Data Register Full */ 6441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_TDRE (1<<1) /* Transmit Data Register Empty */ 6451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_DCD (1<<2) /* Data Carrier Detect */ 6461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_CTS (1<<3) /* Clear To Send */ 6471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_FE (1<<4) /* Framing Error */ 6481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_OVRN (1<<5) /* Receiver Overrun */ 6491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_PE (1<<6) /* Parity Error */ 6501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_IRQ (1<<7) /* Interrupt Request */ 6511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ACIA_BAS (0xfffffc00) 6531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct ACIA 6541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds { 6551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char key_ctrl; 6561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy1; 6571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char key_data; 6581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy2; 6591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char mid_ctrl; 6601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char char_dummy3; 6611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char mid_data; 6621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds }; 6631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define acia ((*(volatile struct ACIA*)ACIA_BAS)) 6641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_DMASND_BAS (0xffff8900) 6661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct TT_DMASND { 6671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_ctrl; /* Falcon: Interrupt control */ 6681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char ctrl; 6691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad2; 6701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_hi; 6711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad3; 6721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_mid; 6731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad4; 6741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char bas_low; 6751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad5; 6761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char addr_hi; 6771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad6; 6781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char addr_mid; 6791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad7; 6801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char addr_low; 6811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad8; 6821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char end_hi; 6831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad9; 6841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char end_mid; 6851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad10; 6861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char end_low; 6871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad11[12]; 6881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char track_select; /* Falcon */ 6891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char mode; 6901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char pad12[14]; 6911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* Falcon only: */ 6921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short cbar_src; 6931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short cbar_dst; 6941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char ext_div; 6951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char int_div; 6961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char rec_track_select; 6971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dac_src; 6981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char adc_src; 6991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char input_gain; 7001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short output_atten; 7011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 7021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define tt_dmasnd ((*(volatile struct TT_DMASND *)TT_DMASND_BAS)) 7031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MFP_INT_REPLAY 0x01 7051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MFP_INT_RECORD 0x02 7061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_TIMERA_INT_REPLAY 0x04 7071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_TIMERA_INT_RECORD 0x08 7081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_OFF 0x00 7101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_ON 0x01 7111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_REPEAT 0x02 7121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_RECORD_ON 0x10 7131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_RECORD_OFF 0x00 7141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_RECORD_REPEAT 0x20 7151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_SELECT_REPLAY 0x00 7161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_CTRL_SELECT_RECORD 0x80 7171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_MONO 0x80 7181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_STEREO 0x00 7191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_8BIT 0x00 7201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_16BIT 0x40 /* Falcon only */ 7211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_6KHZ 0x00 /* Falcon: mute */ 7221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_12KHZ 0x01 7231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_25KHZ 0x02 7241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASND_MODE_50KHZ 0x03 7251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASNDSetBase(bufstart) \ 7281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds do { \ 7291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tt_dmasnd.bas_hi = (unsigned char)(((bufstart) & 0xff0000) >> 16); \ 7301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tt_dmasnd.bas_mid = (unsigned char)(((bufstart) & 0x00ff00) >> 8); \ 7311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tt_dmasnd.bas_low = (unsigned char) ((bufstart) & 0x0000ff); \ 7321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } while( 0 ) 7331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASNDGetAdr() ((tt_dmasnd.addr_hi << 16) + \ 7351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (tt_dmasnd.addr_mid << 8) + \ 7361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (tt_dmasnd.addr_low)) 7371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DMASNDSetEnd(bufend) \ 7391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds do { \ 7401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tt_dmasnd.end_hi = (unsigned char)(((bufend) & 0xff0000) >> 16); \ 7411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tt_dmasnd.end_mid = (unsigned char)(((bufend) & 0x00ff00) >> 8); \ 7421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds tt_dmasnd.end_low = (unsigned char) ((bufend) & 0x0000ff); \ 7431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } while( 0 ) 7441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define TT_MICROWIRE_BAS (0xffff8922) 7471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct TT_MICROWIRE { 7481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short data; 7491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_short mask; 7501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 7511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds# define tt_microwire ((*(volatile struct TT_MICROWIRE *)TT_MICROWIRE_BAS)) 7521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_ADDR 0x0400 7541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_VOLUME(dB) \ 7561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (0x0c0 | ((dB) < -80 ? 0 : (dB) > 0 ? 40 : (((dB) + 80) / 2))) 7571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_BALLEFT(dB) \ 7581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (0x140 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2))) 7591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_BALRIGHT(dB) \ 7601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (0x100 | ((dB) < -40 ? 0 : (dB) > 0 ? 20 : (((dB) + 40) / 2))) 7611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_TREBLE(dB) \ 7621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (0x080 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6))) 7631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_BASS(dB) \ 7641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds (0x040 | ((dB) < -12 ? 0 : (dB) > 12 ? 12 : (((dB) / 2) + 6))) 7651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_PSG_LOW 0x000 7671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_PSG_HIGH 0x001 7681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MW_LM1992_PSG_OFF 0x002 7691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MSTE_RTC_BAS (0xfffffc21) 7711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct MSTE_RTC { 7731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char sec_ones; 7741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy1; 7751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char sec_tens; 7761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy2; 7771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char min_ones; 7781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy3; 7791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char min_tens; 7801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy4; 7811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char hr_ones; 7821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy5; 7831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char hr_tens; 7841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy6; 7851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char weekday; 7861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy7; 7871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char day_ones; 7881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy8; 7891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char day_tens; 7901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy9; 7911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char mon_ones; 7921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy10; 7931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char mon_tens; 7941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy11; 7951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char year_ones; 7961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy12; 7971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char year_tens; 7981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy13; 7991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char mode; 8001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy14; 8011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char test; 8021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char dummy15; 8031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u_char reset; 8041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 8051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define mste_rtc ((*(volatile struct MSTE_RTC *)MSTE_RTC_BAS)) 8071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* linux/atarihw.h */ 8091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 810