Home | History | Annotate | Line # | Download | only in ic
      1  1.1  bjh21 /* $NetBSD: nec71071reg.h,v 1.1 2006/10/01 12:39:35 bjh21 Exp $ */
      2  1.1  bjh21 
      3  1.1  bjh21 /*
      4  1.1  bjh21  * Ben Harris 2006
      5  1.1  bjh21  *
      6  1.1  bjh21  * This file is in the public domain.
      7  1.1  bjh21  */
      8  1.1  bjh21 
      9  1.1  bjh21 /*
     10  1.1  bjh21  * NEC uPD71071 DMA Controller
     11  1.1  bjh21  * register definitions
     12  1.1  bjh21  */
     13  1.1  bjh21 
     14  1.1  bjh21 /*
     15  1.1  bjh21  * This chip is suspiciously much like the Intel 8237, but not actually
     16  1.1  bjh21  * compatible with it.
     17  1.1  bjh21  */
     18  1.1  bjh21 
     19  1.1  bjh21 /* Register offsets */
     20  1.1  bjh21 
     21  1.1  bjh21 #define NEC71071_INIT		0x0  /* Initialize */
     22  1.1  bjh21 #define		 INIT_RES	0x01 /* Reset */
     23  1.1  bjh21 #define		 INIT_16B	0x02 /* 16-bit data bus */
     24  1.1  bjh21 #define NEC71071_CHANNEL	0x1  /* Channel Register Read/Write */
     25  1.1  bjh21 #define		 CHANNEL_SEL0	0x01 /* Channel 0 selected (R) */
     26  1.1  bjh21 #define		 CHANNEL_SEL1	0x02 /* Channel 1 selected (R) */
     27  1.1  bjh21 #define		 CHANNEL_SEL2	0x04 /* Channel 2 selected (R) */
     28  1.1  bjh21 #define		 CHANNEL_SEL3	0x08 /* Channel 3 selected (R) */
     29  1.1  bjh21 #define		 CHANNEL_RBASE	0x10 /* Only base registers may be accessed */
     30  1.1  bjh21 #define		 CHANNEL_SELCH	0x03 /* Channel to select (W) */
     31  1.1  bjh21 #define		 CHANNEL_WBASE	0x04 /* Only base registers may be accessed */
     32  1.1  bjh21 #define NEC71071_COUNTLO	0x2  /* Count register, low byte */
     33  1.1  bjh21 #define NEC71071_COUNTHI	0x3  /* Count register, high byte */
     34  1.1  bjh21 #define NEC71071_ADDRLO		0x4  /* Address register, low byte */
     35  1.1  bjh21 #define NEC71071_ADDRMID	0x5  /* Address register, middle byte */
     36  1.1  bjh21 #define NEC71071_ADDRHI		0x6  /* Address register, high byte */
     37  1.1  bjh21 #define NEC71071_DCTRL1		0x8  /* Device control register, low byte */
     38  1.1  bjh21 #define		 DCTRL1_MTM	0x01 /* Memory-to-Memory */
     39  1.1  bjh21 #define		 DCTRL1_AHLD	0x02 /* Fixed Address */
     40  1.1  bjh21 #define		 DCTRL1_DDMA	0x04 /* Disable DMA Operation */
     41  1.1  bjh21 #define		 DCTRL1_CMP	0x08 /* Compressed Timing */
     42  1.1  bjh21 #define		 DCTRL1_ROT	0x10 /* Rotational Priority */
     43  1.1  bjh21 #define		 DCTRL1_EXW	0x20 /* Extended Writing */
     44  1.1  bjh21 #define		 DCTRL1_RQL	0x40 /* DMARQ active low */
     45  1.1  bjh21 #define		 DCTRL1_AKL	0x80 /* DMAAK active high */
     46  1.1  bjh21 #define NEC71071_DCTRL2		0x9  /* Device control register, high byte */
     47  1.1  bjh21 #define		 DCTRL2_BHLD	0x01 /* Bus Hold mode */
     48  1.1  bjh21 #define		 DCTRL2_WEV	0x02 /* Write Enable During Verify */
     49  1.1  bjh21 #define NEC71071_MODE		0xA  /* Mode control register */
     50  1.1  bjh21 #define		 MODE_WNB	0x01 /* Word (not byte) transfer */
     51  1.1  bjh21 #define		 MODE_TDIR	0x0c /* Transfer direction */
     52  1.1  bjh21 #define		 MODE_TDIR_VRFY	0x00 /* Verify */
     53  1.1  bjh21 #define		 MODE_TDIR_IOTM	0x04 /* I/O to memory */
     54  1.1  bjh21 #define		 MODE_TDIR_MTIO	0x08 /* memory to I/O */
     55  1.1  bjh21 #define		 MODE_AUTI	0x10 /* Autoinitialize */
     56  1.1  bjh21 #define		 MODE_ADIR	0x20 /* Address direction (decrement) */
     57  1.1  bjh21 #define		 MODE_TMODE	0xc0 /* Transfer mode */
     58  1.1  bjh21 #define		 MODE_TMODE_DMD	0x00 /* Demand mode */
     59  1.1  bjh21 #define		 MODE_TMODE_SGL 0x40 /* Single mode */
     60  1.1  bjh21 #define		 MODE_TMODE_BLK	0x80 /* Block mode */
     61  1.1  bjh21 #define		 MODE_TMODE_CAS 0xc0 /* Cascade mode */
     62  1.1  bjh21 #define NEC71071_STATUS		0xB  /* Status register */
     63  1.1  bjh21 #define		 STATUS_TC	0x0f /* Terminal count (one per channel) */
     64  1.1  bjh21 #define		 STATUS_RQ	0xf0 /* DMA Request active (one per channel) */
     65  1.1  bjh21 #define NEC71071_TEMPLO		0xC  /* Temporary register (low byte) */
     66  1.1  bjh21 #define NEC71071_TEMPHI		0xD  /* Temporary register (high byte) */
     67  1.1  bjh21 #define NEC71071_REQUEST	0xE  /* Request register (one bit/channel) */
     68  1.1  bjh21 #define NEC71071_MASK		0xF  /* Mask register (one bit/channel) */
     69  1.1  bjh21 
     70