Adapt these for use on the Milan.

This commit is contained in:
leo 2001-04-11 14:45:07 +00:00
parent e366844be7
commit 3f7694f804
2 changed files with 53 additions and 28 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: ser.c,v 1.12 2000/11/02 00:32:52 eeh Exp $ */
/* $NetBSD: ser.c,v 1.13 2001/04/11 14:45:07 leo Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@ -104,6 +104,7 @@
*/
#include "opt_ddb.h"
#include "opt_mbtype.h"
#include <sys/param.h>
#include <sys/systm.h>
@ -125,9 +126,25 @@
#include <machine/iomap.h>
#include <machine/mfp.h>
#include <atari/atari/intr.h>
#include <atari/dev/ym2149reg.h>
#include <atari/dev/serreg.h>
#if !defined(_MILANHW_)
#include <atari/dev/ym2149reg.h>
#else
/* MILAN has no ym2149 */
#define ym2149_dtr(set) { \
if (set) \
single_inst_bset_b(MFP->mf_gpip, 0x08); \
else single_inst_bclr_b(MFP->mf_gpip, 0x08); \
}
#define ym2149_rts(set) { \
if (set) \
single_inst_bset_b(MFP->mf_gpip, 0x01); \
else single_inst_bclr_b(MFP->mf_gpip, 0x01); \
}
#endif /* _MILANHW_ */
/* #define SER_DEBUG */
#define SERUNIT(x) (minor(x) & 0x7ffff)

View File

@ -1,4 +1,4 @@
/* $NetBSD: mfp.h,v 1.3 1997/07/15 08:26:08 leo Exp $ */
/* $NetBSD: mfp.h,v 1.4 2001/04/11 14:45:07 leo Exp $ */
/*
* Copyright (c) 1995 Leo Weppelman.
@ -32,6 +32,7 @@
#ifndef _MACHINE_MFP_H
#define _MACHINE_MFP_H
/*
* Atari TT hardware: MFP1/MFP2
* Motorola 68901 Multi-Function Peripheral
@ -40,34 +41,41 @@
#define MFP ((struct mfp *)AD_MFP)
#define MFP2 ((struct mfp *)AD_MFP2)
#ifdef _MILANHW_
#define __MR(n) (3 + (4 * n))
#endif
#ifdef _ATARIHW_
#define __MR(n) (1 + (2 * n))
#endif
struct mfp {
volatile u_char mfb[48]; /* use only the odd bytes */
volatile u_char mfb[__MR(24)-1]; /* Sparse */
};
#define mf_gpip mfb[ 1] /* general purpose I/O interrupt port */
#define mf_aer mfb[ 3] /* active edge register */
#define mf_ddr mfb[ 5] /* data direction register */
#define mf_iera mfb[ 7] /* interrupt enable register A */
#define mf_ierb mfb[ 9] /* interrupt enable register B */
#define mf_ipra mfb[11] /* interrupt pending register A */
#define mf_iprb mfb[13] /* interrupt pending register B */
#define mf_isra mfb[15] /* interrupt in-service register A */
#define mf_isrb mfb[17] /* interrupt in-service register B */
#define mf_imra mfb[19] /* interrupt mask register A */
#define mf_imrb mfb[21] /* interrupt mask register B */
#define mf_vr mfb[23] /* vector register */
#define mf_tacr mfb[25] /* timer control register A */
#define mf_tbcr mfb[27] /* timer control register B */
#define mf_tcdcr mfb[29] /* timer control register C+D */
#define mf_tadr mfb[31] /* timer data register A */
#define mf_tbdr mfb[33] /* timer data register B */
#define mf_tcdr mfb[35] /* timer data register C */
#define mf_tddr mfb[37] /* timer data register D */
#define mf_scr mfb[39] /* synchronous character register */
#define mf_ucr mfb[41] /* USART control register */
#define mf_rsr mfb[43] /* receiver status register */
#define mf_tsr mfb[45] /* transmitter status register */
#define mf_udr mfb[47] /* USART data register */
#define mf_gpip mfb[__MR(0) ] /* gen-purp I/O interrupt port */
#define mf_aer mfb[__MR(1) ] /* active edge register */
#define mf_ddr mfb[__MR(2) ] /* data direction register */
#define mf_iera mfb[__MR(3) ] /* interrupt enable register A */
#define mf_ierb mfb[__MR(4) ] /* interrupt enable register B */
#define mf_ipra mfb[__MR(5) ] /* interrupt pending register A */
#define mf_iprb mfb[__MR(6) ] /* interrupt pending register B */
#define mf_isra mfb[__MR(7) ] /* interrupt in-service register A */
#define mf_isrb mfb[__MR(8) ] /* interrupt in-service register B */
#define mf_imra mfb[__MR(9) ] /* interrupt mask register A */
#define mf_imrb mfb[__MR(10)] /* interrupt mask register B */
#define mf_vr mfb[__MR(11)] /* vector register */
#define mf_tacr mfb[__MR(12)] /* timer control register A */
#define mf_tbcr mfb[__MR(13)] /* timer control register B */
#define mf_tcdcr mfb[__MR(14)] /* timer control register C+D */
#define mf_tadr mfb[__MR(15)] /* timer data register A */
#define mf_tbdr mfb[__MR(16)] /* timer data register B */
#define mf_tcdr mfb[__MR(17)] /* timer data register C */
#define mf_tddr mfb[__MR(18)] /* timer data register D */
#define mf_scr mfb[__MR(19)] /* synchronous character register */
#define mf_ucr mfb[__MR(20)] /* USART control register */
#define mf_rsr mfb[__MR(21)] /* receiver status register */
#define mf_tsr mfb[__MR(22)] /* transmitter status register */
#define mf_udr mfb[__MR(23)] /* USART data register */
/* names of IO port bits: */
#define IO_PBSY 0x01 /* Parallel Busy */