Home | History | Annotate | Line # | Download | only in ic
      1  1.15    andvar /*	$NetBSD: hd64570reg.h,v 1.15 2025/08/18 20:59:55 andvar Exp $	*/
      2   1.1  explorer 
      3   1.1  explorer /*
      4   1.1  explorer  * Copyright (c) 1998 Vixie Enterprises
      5   1.1  explorer  * All rights reserved.
      6   1.1  explorer  *
      7   1.1  explorer  * Redistribution and use in source and binary forms, with or without
      8   1.1  explorer  * modification, are permitted provided that the following conditions
      9   1.1  explorer  * are met:
     10   1.1  explorer  *
     11   1.1  explorer  * 1. Redistributions of source code must retain the above copyright
     12   1.1  explorer  *    notice, this list of conditions and the following disclaimer.
     13   1.1  explorer  * 2. Redistributions in binary form must reproduce the above copyright
     14   1.1  explorer  *    notice, this list of conditions and the following disclaimer in the
     15   1.1  explorer  *    documentation and/or other materials provided with the distribution.
     16   1.1  explorer  * 3. Neither the name of Vixie Enterprises nor the names
     17   1.1  explorer  *    of its contributors may be used to endorse or promote products derived
     18   1.1  explorer  *    from this software without specific prior written permission.
     19   1.1  explorer  *
     20   1.1  explorer  * THIS SOFTWARE IS PROVIDED BY VIXIE ENTERPRISES AND
     21   1.1  explorer  * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
     22   1.1  explorer  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     23   1.1  explorer  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     24   1.1  explorer  * DISCLAIMED.  IN NO EVENT SHALL VIXIE ENTERPRISES OR
     25   1.1  explorer  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     26   1.1  explorer  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     27   1.1  explorer  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
     28   1.1  explorer  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     29   1.1  explorer  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     30   1.1  explorer  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
     31   1.1  explorer  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     32   1.1  explorer  * SUCH DAMAGE.
     33   1.1  explorer  *
     34   1.1  explorer  * This software has been written for Vixie Enterprises by Michael Graff
     35   1.1  explorer  * <explorer (at) flame.org>.  To learn more about Vixie Enterprises, see
     36   1.1  explorer  * ``http://www.vix.com''.
     37   1.1  explorer  */
     38   1.1  explorer 
     39   1.2    kleink #ifndef _DEV_IC_HD64570REG_H_
     40   1.2    kleink #define _DEV_IC_HD64570REG_H_
     41   1.1  explorer 
     42   1.1  explorer /* XXX
     43   1.1  explorer  * This is really HDLC specific stuff, but...
     44   1.1  explorer  */
     45   1.1  explorer #define CISCO_MULTICAST         0x8f    /* Cisco multicast address */
     46   1.1  explorer #define CISCO_UNICAST           0x0f    /* Cisco unicast address */
     47   1.1  explorer #define CISCO_KEEPALIVE         0x8035  /* Cisco keepalive protocol */
     48   1.1  explorer #define CISCO_ADDR_REQ          0       /* Cisco address request */
     49   1.1  explorer #define CISCO_ADDR_REPLY        1       /* Cisco address reply */
     50   1.1  explorer #define CISCO_KEEPALIVE_REQ     2       /* Cisco keepalive request */
     51   1.1  explorer 
     52   1.4    chopps struct cisco_pkt {
     53   1.1  explorer         u_int32_t	type;
     54   1.1  explorer         u_int32_t	par1;
     55   1.1  explorer         u_int32_t	par2;
     56   1.1  explorer         u_int16_t	rel;
     57   1.1  explorer         u_int16_t	time0;
     58   1.1  explorer         u_int16_t	time1;
     59   1.4    chopps };
     60   1.1  explorer #define CISCO_PKT_LEN	18	/* sizeof doesn't work right... */
     61   1.1  explorer 
     62   1.1  explorer #define HDLC_PROTOCOL_IP	0x0800	/* IP */
     63   1.6    itojun #define HDLC_PROTOCOL_IPV6	0x86dd	/* IPv6 */
     64   1.4    chopps #define HDLC_PROTOCOL_ISO	0xfefe	/* LLC_ISO_LSAP dsap,ssap */
     65   1.1  explorer 
     66   1.4    chopps struct hdlc_header {
     67   1.4    chopps 	u_int8_t	h_addr;
     68   1.4    chopps 	u_int8_t	h_resv;
     69   1.4    chopps 	u_int16_t	h_proto;
     70   1.4    chopps };
     71   1.1  explorer #define HDLC_HDRLEN	4
     72   1.4    chopps 
     73   1.4    chopps struct hdlc_llc_header {
     74   1.4    chopps 	u_int8_t	hl_addr;
     75   1.4    chopps 	u_int8_t	hl_resv;
     76   1.4    chopps 	u_int8_t	hl_dsap;
     77   1.4    chopps 	u_int8_t	hl_ssap;
     78   1.5    chopps 	u_int8_t	hl_ffb;		/* cisco: friendly fudge byte */
     79   1.4    chopps };
     80   1.1  explorer 
     81   1.1  explorer /*
     82  1.13    andvar  * Hitachi HD64570  definitions
     83   1.1  explorer  */
     84   1.1  explorer 
     85   1.1  explorer /*  SCA Control Registers  */
     86   1.1  explorer #define  SCA_PABR0 2
     87   1.1  explorer #define  SCA_PABR1 3
     88   1.1  explorer #define  SCA_WCRL  4        /* Wait Control reg */
     89   1.1  explorer #define  SCA_WCRM  5        /* Wait Control reg */
     90   1.1  explorer #define  SCA_WCRH  6        /* Wait Control reg */
     91   1.1  explorer #define  SCA_PCR   8        /* DMA priority control reg */
     92   1.1  explorer 
     93   1.1  explorer /*   Interrupt registers  */
     94   1.1  explorer #define  SCA_ISR0   0x10    /* Interrupt status register 0  */
     95   1.1  explorer #define  SCA_ISR1   0x11    /* Interrupt status register 1  */
     96   1.1  explorer #define  SCA_ISR2   0x12    /* Interrupt status register 2  */
     97   1.1  explorer #define  SCA_IER0   0x14    /* Interrupt enable register 0  */
     98   1.1  explorer #define  SCA_IER1   0x15    /* Interrupt enable register 1  */
     99   1.1  explorer #define  SCA_IER2   0x16    /* Interrupt enable register 2  */
    100   1.1  explorer #define  SCA_ITCR   0x18    /* interrupt control register */
    101   1.1  explorer #define  SCA_IVR    0x1a    /* interrupt vector */
    102   1.1  explorer #define  SCA_IMVR   0x1c    /* modified interrupt vector */
    103   1.1  explorer 
    104   1.1  explorer /*  MSCI  Channel 0 Registers  */
    105  1.10     perry #define  SCA_TRBL0  0x20    /* TX/RX buffer reg */
    106  1.10     perry #define  SCA_TRBH0  0x21    /* TX/RX buffer reg */
    107   1.1  explorer #define  SCA_ST00   0x22     /* Status reg 0 */
    108   1.1  explorer #define  SCA_ST10   0x23     /* Status reg 1 */
    109   1.1  explorer #define  SCA_ST20   0x24     /* Status reg 2 */
    110   1.1  explorer #define  SCA_ST30   0x25     /* Status reg 3 */
    111   1.1  explorer #define  SCA_FST0   0x26     /* frame Status reg  */
    112   1.1  explorer #define  SCA_IE00   0x28     /* Interrupt enable reg 0 */
    113   1.1  explorer #define  SCA_IE10   0x29     /* Interrupt enable reg 1 */
    114   1.1  explorer #define  SCA_IE20   0x2a     /* Interrupt enable reg 2 */
    115   1.1  explorer #define  SCA_FIE0   0x2b     /* Frame Interrupt enable reg  */
    116   1.1  explorer #define  SCA_CMD0   0x2c     /* Command reg */
    117   1.1  explorer #define  SCA_MD00   0x2e     /* Mode reg 0 */
    118   1.1  explorer #define  SCA_MD10   0x2f     /* Mode reg 1 */
    119   1.1  explorer #define  SCA_MD20   0x30     /* Mode reg 2 */
    120   1.1  explorer #define  SCA_CTL0   0x31     /* Control reg */
    121   1.1  explorer #define  SCA_SA00   0x32     /* Syn Address reg 0 */
    122   1.1  explorer #define  SCA_SA10   0x33     /* Syn Address reg 1 */
    123   1.1  explorer #define  SCA_IDL0   0x34    /* Idle register */
    124   1.1  explorer #define  SCA_TMC0   0x35     /* Time constant */
    125   1.1  explorer #define  SCA_RXS0   0x36     /* RX clock source */
    126   1.1  explorer #define  SCA_TXS0   0x37     /* TX clock source */
    127  1.10     perry #define  SCA_TRC00  0x38    /* TX Ready control reg 0 */
    128  1.10     perry #define  SCA_TRC10  0x39    /* TX Ready control reg 1 */
    129  1.10     perry #define  SCA_RRC0   0x3A    /* RX Ready control reg */
    130   1.1  explorer 
    131   1.1  explorer /*  MSCI  Channel 1 Registers  */
    132  1.10     perry #define  SCA_TRBL1  0x40    /* TX/RX buffer reg */
    133  1.10     perry #define  SCA_TRBH1  0x41    /* TX/RX buffer reg */
    134   1.1  explorer #define  SCA_ST01   0x42     /* Status reg 0 */
    135   1.1  explorer #define  SCA_ST11   0x43     /* Status reg 1 */
    136   1.1  explorer #define  SCA_ST21   0x44     /* Status reg 2 */
    137   1.1  explorer #define  SCA_ST31   0x45     /* Status reg 3 */
    138   1.1  explorer #define  SCA_FST1   0x46     /* Frame Status reg  */
    139   1.1  explorer #define  SCA_IE01   0x48     /* Interrupt enable reg 0 */
    140   1.1  explorer #define  SCA_IE11   0x49     /* Interrupt enable reg 1 */
    141   1.1  explorer #define  SCA_IE21   0x4a     /* Interrupt enable reg 2 */
    142   1.1  explorer #define  SCA_FIE1   0x4b     /* Frame Interrupt enable reg  */
    143   1.1  explorer #define  SCA_CMD1   0x4c     /* Command reg */
    144   1.1  explorer #define  SCA_MD01   0x4e     /* Mode reg 0 */
    145   1.1  explorer #define  SCA_MD11   0x4f     /* Mode reg 1 */
    146   1.1  explorer #define  SCA_MD21   0x50     /* Mode reg 2 */
    147   1.1  explorer #define  SCA_CTL1   0x51     /* Control reg */
    148   1.1  explorer #define  SCA_SA01   0x52     /* Syn Address reg 0 */
    149   1.1  explorer #define  SCA_SA11   0x53     /* Syn Address reg 1 */
    150   1.1  explorer #define  SCA_IDL1   0x54    /* Idle register */
    151   1.1  explorer #define  SCA_TMC1   0x55     /* Time constant */
    152   1.1  explorer #define  SCA_RXS1   0x56     /* RX clock source */
    153   1.1  explorer #define  SCA_TXS1   0x57     /* TX clock source */
    154  1.10     perry #define  SCA_TRC01  0x58    /* TX Ready control reg 0 */
    155  1.10     perry #define  SCA_TRC11  0x59    /* TX Ready control reg 1 */
    156  1.10     perry #define  SCA_RRC1   0x5A    /* RX Ready control reg */
    157   1.1  explorer 
    158   1.1  explorer 
    159   1.1  explorer /*  SCA  DMA  registers  */
    160   1.1  explorer 
    161   1.1  explorer #define  SCA_DMER   0x9     /* DMA Master Enable reg */
    162   1.1  explorer 
    163   1.1  explorer /*   DMA   Channel 0   Registers (MSCI -> memory, or rx) */
    164   1.1  explorer #define  SCA_BARL0  0x80    /* buffer address reg  */
    165   1.1  explorer #define  SCA_BARH0  0x81    /* buffer address reg  */
    166   1.1  explorer #define  SCA_BARB0  0x82    /* buffer address reg  */
    167   1.1  explorer #define  SCA_DARL0  0x80    /* Dest. address reg  */
    168   1.1  explorer #define  SCA_DARH0  0x81    /* Dest. address reg  */
    169   1.1  explorer #define  SCA_DARB0  0x82    /* Dest. address reg  */
    170   1.1  explorer #define  SCA_CPB0   0x86    /* Chain pointer base  */
    171   1.1  explorer #define  SCA_CDAL0  0x88    /* Current descriptor address  */
    172   1.1  explorer #define  SCA_CDAH0  0x89    /* Current descriptor address  */
    173   1.1  explorer #define  SCA_EDAL0  0x8A    /* Error descriptor address  */
    174   1.1  explorer #define  SCA_EDAH0  0x8B    /* Error descriptor address  */
    175   1.1  explorer #define  SCA_BFLL0  0x8C    /* RX buffer length Low  */
    176   1.1  explorer #define  SCA_BFLH0  0x8D    /* RX buffer length High */
    177   1.1  explorer #define  SCA_BCRL0  0x8E    /* Byte Count reg  */
    178   1.1  explorer #define  SCA_BCRH0  0x8F    /* Byte Count reg  */
    179   1.1  explorer #define  SCA_DSR0   0x90    /* DMA Status reg  */
    180   1.1  explorer #define  SCA_DMR0   0x91    /* DMA Mode reg    */
    181   1.1  explorer #define  SCA_FCT0   0x93    /* Frame end interrupt Counter */
    182   1.1  explorer #define  SCA_DIR0   0x94    /* DMA interrupt enable */
    183   1.1  explorer #define  SCA_DCR0   0x95    /* DMA Command reg  */
    184   1.1  explorer 
    185   1.1  explorer /*   DMA  Channel 1   Registers (memory -> MSCI, or tx) */
    186   1.1  explorer #define  SCA_BARL1  0xA0    /* buffer address reg  */
    187   1.1  explorer #define  SCA_BARH1  0xA1    /* buffer address reg  */
    188   1.1  explorer #define  SCA_BARB1  0xA2    /* buffer address reg  */
    189   1.1  explorer #define  SCA_SARL1  0xA4    /* Source address reg  */
    190   1.1  explorer #define  SCA_SARH1  0xA5    /* Source address reg  */
    191   1.1  explorer #define  SCA_SARB1  0xA6    /* Source address reg  */
    192   1.1  explorer #define  SCA_CPB1   0xA6    /* Chain pointer base  */
    193   1.1  explorer #define  SCA_CDAL1  0xA8    /* Current descriptor address  */
    194   1.1  explorer #define  SCA_CDAH1  0xA9    /* Current descriptor address  */
    195   1.1  explorer #define  SCA_EDAL1  0xAA    /* Error descriptor address  */
    196   1.1  explorer #define  SCA_EDAH1  0xAB    /* Error descriptor address  */
    197   1.1  explorer #define  SCA_BCRL1  0xAE    /* Byte Count reg  */
    198   1.1  explorer #define  SCA_BCRH1  0xAF    /* Byte Count reg  */
    199   1.1  explorer #define  SCA_DSR1   0xB0    /* DMA Status reg  */
    200   1.1  explorer #define  SCA_DMR1   0xB1    /* DMA Mode reg    */
    201   1.1  explorer #define  SCA_FCT1   0xB3    /* Frame end interrupt Counter */
    202   1.1  explorer #define  SCA_DIR1   0xB4    /* DMA interrupt enable */
    203   1.1  explorer #define  SCA_DCR1   0xB5    /* DMA Command reg  */
    204   1.1  explorer 
    205   1.1  explorer /*   DMA   Channel 2   Registers (MSCI -> memory) */
    206   1.1  explorer #define  SCA_BARL2  0xC0    /* buffer address reg  */
    207   1.1  explorer #define  SCA_BARH2  0xC1    /* buffer address reg  */
    208   1.1  explorer #define  SCA_BARB2  0xC2    /* buffer address reg  */
    209   1.3    chopps #define	SCA_CDAL2	0xC8
    210   1.1  explorer #define  SCA_DSR2   0xD0    /* DMA Status reg  */
    211   1.1  explorer 
    212   1.1  explorer /*   DMA   Channel 3   Registers (memory -> MSCI) */
    213   1.1  explorer #define  SCA_BARL3  0xE0    /* buffer address reg  */
    214   1.1  explorer #define  SCA_BARH3  0xE1    /* buffer address reg  */
    215   1.1  explorer #define  SCA_BARB3  0xE2    /* buffer address reg  */
    216   1.3    chopps #define	SCA_CDAL3	0xE8
    217   1.1  explorer #define  SCA_DSR3   0xF0    /* DMA Status reg  */
    218   1.1  explorer 
    219   1.1  explorer /*
    220   1.3    chopps  * Timer Registers
    221   1.3    chopps  */
    222   1.3    chopps 
    223   1.3    chopps /* Timer up-counter */
    224   1.3    chopps #define	SCA_TCNTL0	0x60	/* channel 0 */
    225   1.3    chopps #define	SCA_TCNTH0	0x61	/* channel 0 */
    226   1.3    chopps #define	SCA_TCNTL1	0x68	/* channel 1 */
    227   1.3    chopps #define	SCA_TCNTH1	0x69	/* channel 1 */
    228   1.3    chopps #define	SCA_TCNTL2	0x70	/* channel 2 */
    229   1.3    chopps #define	SCA_TCNTH2	0x71	/* channel 2 */
    230   1.3    chopps #define	SCA_TCNTL3	0x78	/* channel 3 */
    231   1.3    chopps #define	SCA_TCNTH3	0x79	/* channel 3 */
    232   1.3    chopps 
    233   1.3    chopps /* Timer constant register */
    234   1.3    chopps #define	SCA_TCONRL0	0x62	/* channel 0 */
    235   1.3    chopps #define	SCA_TCONRH0	0x63	/* channel 0 */
    236   1.3    chopps #define	SCA_TCONRL1	0x6a	/* channel 1 */
    237   1.3    chopps #define	SCA_TCONRH1	0x6b	/* channel 1 */
    238   1.3    chopps #define	SCA_TCONRL2	0x72	/* channel 2 */
    239   1.3    chopps #define	SCA_TCONRH2	0x73	/* channel 2 */
    240   1.3    chopps #define	SCA_TCONRL3	0x7a	/* channel 3 */
    241   1.3    chopps #define	SCA_TCONRH3	0x7b	/* channel 3 */
    242   1.3    chopps 
    243   1.3    chopps /* Timer control/status register */
    244   1.3    chopps #define	SCA_TCSR0	0x64	/* channel 0 */
    245   1.3    chopps #define	SCA_TCSR1	0x6c	/* channel 1 */
    246   1.3    chopps #define	SCA_TCSR2	0x74	/* channel 2 */
    247   1.3    chopps #define	SCA_TCSR3	0x7c	/* channel 3 */
    248   1.3    chopps 
    249   1.3    chopps /* Timer expand prescale register */
    250   1.3    chopps #define	SCA_TEPR0	0x65	/* channel 0 */
    251   1.3    chopps #define	SCA_TEPR1	0x6d	/* channel 1 */
    252   1.3    chopps #define	SCA_TEPR2	0x75	/* channel 2 */
    253   1.3    chopps #define	SCA_TEPR3	0x7d	/* channel 3 */
    254   1.3    chopps 
    255   1.3    chopps /*
    256   1.1  explorer  * SCA HD64570 Register Definitions
    257   1.1  explorer  */
    258   1.1  explorer 
    259   1.1  explorer #define ST3_CTS   8    /* modem input  /CTS bit */
    260   1.1  explorer #define ST3_DCD   4    /* modem input  /DCD bit */
    261   1.1  explorer 
    262   1.1  explorer /*
    263   1.1  explorer  * SCA commands
    264   1.1  explorer  */
    265   1.1  explorer #define SCA_CMD_TXRESET         0x01
    266   1.1  explorer #define SCA_CMD_TXENABLE        0x02
    267   1.1  explorer #define SCA_CMD_TXDISABLE       0x03
    268   1.1  explorer #define SCA_CMD_TXCRCINIT       0x04
    269   1.1  explorer #define SCA_CMD_TXCRCEXCL       0x05
    270   1.1  explorer #define SCA_CMS_TXEOM           0x06
    271   1.1  explorer #define SCA_CMD_TXABORT         0x07
    272   1.1  explorer #define SCA_CMD_MPON            0x08
    273   1.1  explorer #define SCA_CMD_TXBCLEAR        0x09
    274   1.1  explorer 
    275   1.1  explorer #define SCA_CMD_RXRESET         0x11
    276   1.1  explorer #define SCA_CMD_RXENABLE        0x12
    277   1.1  explorer #define SCA_CMD_RXDISABLE       0x13
    278   1.1  explorer #define SCA_CMD_RXCRCINIT       0x14
    279   1.1  explorer #define SCA_CMD_RXMSGREJ        0x15
    280   1.1  explorer #define SCA_CMD_MPSEARCH        0x16
    281   1.1  explorer #define SCA_CMD_RXCRCEXCL       0x17
    282   1.1  explorer #define SCA_CMD_RXCRCCALC       0x18
    283   1.1  explorer 
    284   1.1  explorer #define SCA_CMD_NOP             0x00
    285   1.1  explorer #define SCA_CMD_RESET           0x21
    286   1.1  explorer #define SCA_CMD_SEARCH          0x31
    287   1.1  explorer 
    288   1.1  explorer #define SCA_MD0_CRC_1           0x01
    289   1.1  explorer #define SCA_MD0_CRC_CCITT       0x02
    290   1.1  explorer #define SCA_MD0_CRC_ENABLE      0x04
    291   1.1  explorer #define SCA_MD0_AUTO_ENABLE     0x10
    292   1.1  explorer #define SCA_MD0_MODE_ASYNC      0x00
    293   1.1  explorer #define SCA_MD0_MODE_BYTESYNC1  0x20
    294   1.1  explorer #define SCA_MD0_MODE_BISYNC     0x40
    295   1.1  explorer #define SCA_MD0_MODE_BYTESYNC2  0x60
    296   1.1  explorer #define SCA_MD0_MODE_HDLC       0x80
    297   1.1  explorer 
    298   1.1  explorer #define SCA_MD1_NOADDRCHK       0x00
    299   1.1  explorer #define SCA_MD1_SNGLADDR1       0x40
    300   1.1  explorer #define SCA_MD1_SNGLADDR2       0x80
    301   1.1  explorer #define SCA_MD1_DUALADDR        0xC0
    302   1.1  explorer 
    303   1.1  explorer #define SCA_MD2_DUPLEX          0x00
    304   1.1  explorer #define SCA_MD2_ECHO            0x01
    305   1.1  explorer #define SCA_MD2_LOOPBACK        0x03
    306   1.1  explorer #define SCA_MD2_ADPLLx8         0x00
    307   1.1  explorer #define SCA_MD2_ADPLLx16        0x08
    308   1.1  explorer #define SCA_MD2_ADPLLx32        0x10
    309   1.1  explorer #define SCA_MD2_NRZ             0x00
    310   1.1  explorer #define SCA_MD2_NRZI            0x20
    311   1.1  explorer #define SCA_MD2_MANCHESTER      0x80
    312   1.1  explorer #define SCA_MD2_FM0             0xC0
    313   1.1  explorer #define SCA_MD2_FM1             0xA0
    314   1.1  explorer 
    315   1.3    chopps #define	SCA_CTL_RTS_MASK	0x01	/* control state of RTS */
    316   1.3    chopps #define SCA_CTL_RTS_HIGH	0x00	/* raise RTS (low !RTS) */
    317   1.3    chopps #define SCA_CTL_RTS_LOW		0x01	/* lower RTS (raise !RTS) */
    318   1.3    chopps #define	SCA_CTL_IDLC_MASK	0x10	/* control idle state */
    319   1.3    chopps #define	SCA_CTL_IDLC_MARK	0x00	/* transmit mark in idle state */
    320  1.15    andvar #define SCA_CTL_IDLC_PATTERN	0x10	/* transmit idle pattern */
    321   1.7       wiz #define SCA_CTL_UDRNC_MASK	0x20	/* control underrun state */
    322   1.3    chopps #define	SCA_CTL_UDRNC_AFTER_ABORT	0x00	/* idle after aborting trans */
    323   1.3    chopps #define SCA_CTL_UDRNC_AFTER_FCS	0x20	/* idle after FCS and flag trans */
    324   1.3    chopps 
    325   1.3    chopps #define SCA_RXS_DIV_MASK        0x0F	/* BRG divisor is 2^(value) */
    326   1.3    chopps #define SCA_RXS_DIV_1		0x00	/* 1 */
    327   1.3    chopps #define SCA_RXS_DIV_2		0x01	/* 2 */
    328   1.3    chopps #define SCA_RXS_DIV_4		0x02	/* 4 */
    329   1.3    chopps #define SCA_RXS_DIV_8		0x03	/* 8 */
    330   1.3    chopps #define SCA_RXS_DIV_16		0x04	/* 16 */
    331   1.3    chopps #define SCA_RXS_DIV_32		0x05	/* 32 */
    332   1.3    chopps #define SCA_RXS_DIV_64		0x06	/* 64 */
    333   1.3    chopps #define SCA_RXS_DIV_128		0x07	/* 128 */
    334   1.3    chopps #define SCA_RXS_DIV_256		0x08	/* 256 */
    335   1.3    chopps #define SCA_RXS_DIV_512		0x09	/* 512 */
    336   1.3    chopps #define SCA_RXS_CLK_MASK	0x70	/* which clock source */
    337   1.3    chopps #define SCA_RXS_CLK_LINE	0x00	/* RXC line input */
    338   1.3    chopps #define SCA_RXS_CLK_LINE_SN	0x20	/* RXC line with noise suppression */
    339   1.3    chopps #define SCA_RXS_CLK_INTERNAL	0x40	/* Baud Rate Gen. output */
    340   1.3    chopps #define SCA_RXS_CLK_ADPLL_OUT   0x60	/* BRG out for ADPLL clock */
    341   1.3    chopps #define SCA_RXS_CLK_ADPLL_IN    0x70	/* line input for ADPLL clock */
    342   1.3    chopps 
    343  1.12    andvar #define SCA_TXS_DIV_MASK	0x0F	/* BRG divisor is 2^(value) */
    344   1.3    chopps #define SCA_TXS_DIV_1		0x00	/* 1 */
    345   1.3    chopps #define SCA_TXS_DIV_2		0x01	/* 2 */
    346   1.3    chopps #define SCA_TXS_DIV_4		0x02	/* 4 */
    347   1.3    chopps #define SCA_TXS_DIV_8		0x03	/* 8 */
    348   1.3    chopps #define SCA_TXS_DIV_16		0x04	/* 16 */
    349   1.3    chopps #define SCA_TXS_DIV_32		0x05	/* 32 */
    350   1.3    chopps #define SCA_TXS_DIV_64		0x06	/* 64 */
    351   1.3    chopps #define SCA_TXS_DIV_128		0x07	/* 128 */
    352   1.3    chopps #define SCA_TXS_DIV_256		0x08	/* 256 */
    353   1.3    chopps #define SCA_TXS_DIV_512		0x09	/* 512 */
    354   1.3    chopps #define SCA_TXS_CLK_MASK	0x70	/* which clock source */
    355   1.3    chopps #define SCA_TXS_CLK_LINE	0x00	/* TXC line input */
    356   1.3    chopps #define SCA_TXS_CLK_INTERNAL	0x40	/* Baud Rate Gen. output */
    357   1.8       wiz #define SCA_TXS_CLK_RXCLK	0x60	/* Receive clock */
    358   1.1  explorer 
    359   1.1  explorer #define SCA_ST0_RXRDY           0x01
    360   1.1  explorer #define SCA_ST0_TXRDY           0x02
    361   1.1  explorer #define SCA_ST0_RXINT           0x40
    362   1.1  explorer #define SCA_ST0_TXINT           0x80
    363   1.1  explorer 
    364   1.1  explorer #define SCA_ST1_IDLST           0x01
    365   1.1  explorer #define SCA_ST1_ABTST           0x02
    366   1.1  explorer #define SCA_ST1_DCDCHG          0x04
    367   1.1  explorer #define SCA_ST1_CTSCHG          0x08
    368   1.1  explorer #define SCA_ST1_FLAG            0x10
    369   1.1  explorer #define SCA_ST1_TXIDL           0x40
    370   1.1  explorer #define SCA_ST1_UDRN            0x80
    371   1.1  explorer 
    372   1.1  explorer /* ST2 and FST look the same */
    373   1.1  explorer #define SCA_FST_CRCERR          0x04
    374   1.1  explorer #define SCA_FST_OVRN            0x08
    375   1.1  explorer #define SCA_FST_RESFRM          0x10
    376   1.1  explorer #define SCA_FST_ABRT            0x20
    377   1.1  explorer #define SCA_FST_SHRT            0x40
    378   1.1  explorer #define SCA_FST_EOM             0x80
    379   1.1  explorer 
    380   1.1  explorer #define SCA_ST3_RXENA           0x01
    381   1.1  explorer #define SCA_ST3_TXENA           0x02
    382   1.1  explorer #define SCA_ST3_DCD             0x04
    383   1.1  explorer #define SCA_ST3_CTS             0x08
    384   1.1  explorer #define SCA_ST3_ADPLLSRCH       0x10
    385   1.1  explorer #define SCA_ST3_TXDATA          0x20
    386   1.1  explorer 
    387   1.1  explorer #define SCA_FIE_EOMFE           0x80
    388   1.1  explorer 
    389   1.1  explorer #define SCA_IE0_RXRDY           0x01
    390   1.1  explorer #define SCA_IE0_TXRDY           0x02
    391   1.1  explorer #define SCA_IE0_RXINT           0x40
    392   1.1  explorer #define SCA_IE0_TXINT           0x80
    393   1.1  explorer 
    394   1.1  explorer #define SCA_IE1_IDLDE           0x01
    395   1.1  explorer #define SCA_IE1_ABTDE           0x02
    396   1.1  explorer #define SCA_IE1_DCD             0x04
    397   1.1  explorer #define SCA_IE1_CTS             0x08
    398   1.1  explorer #define SCA_IE1_FLAG            0x10
    399   1.1  explorer #define SCA_IE1_IDL             0x40
    400   1.1  explorer #define SCA_IE1_UDRN            0x80
    401   1.1  explorer 
    402   1.1  explorer #define SCA_IE2_CRCERR          0x04
    403   1.1  explorer #define SCA_IE2_OVRN            0x08
    404   1.1  explorer #define SCA_IE2_RESFRM          0x10
    405   1.1  explorer #define SCA_IE2_ABRT            0x20
    406   1.1  explorer #define SCA_IE2_SHRT            0x40
    407   1.1  explorer #define SCA_IE2_EOM             0x80
    408   1.1  explorer 
    409   1.3    chopps 
    410   1.3    chopps /*
    411   1.3    chopps  * Interrupt status register bits
    412   1.3    chopps  */
    413   1.3    chopps #define	SCA_ISR0_MSCI_RXRDY0	0x01	/* rx ready port 0 int */
    414   1.3    chopps #define	SCA_ISR0_MSCI_TXRDY0	0x02	/* tx ready port 0 int */
    415   1.3    chopps #define	SCA_ISR0_MSCI_RXINT0	0x04	/* rx error port 0 int */
    416   1.3    chopps #define	SCA_ISR0_MSCI_TXINT0	0x08	/* tx error port 0 int */
    417   1.3    chopps #define	SCA_ISR0_MSCI_RXRDY1	0x10	/* rx ready port 1 int */
    418   1.3    chopps #define	SCA_ISR0_MSCI_TXRDY1	0x20	/* tx ready port 1 int */
    419   1.3    chopps #define	SCA_ISR0_MSCI_RXINT1	0x40	/* rx error port 1 int */
    420   1.3    chopps #define	SCA_ISR0_MSCI_TXINT1	0x80	/* tx error port 1 int */
    421   1.3    chopps 
    422   1.3    chopps #define	SCA_ISR1_DMAC_RX0A	0x01	/* dmac channel 0 int a */
    423   1.3    chopps #define	SCA_ISR1_DMAC_RX0B	0x02	/* dmac channel 0 int b */
    424   1.3    chopps #define	SCA_ISR1_DMAC_TX0A	0x04	/* dmac channel 1 int a */
    425   1.3    chopps #define	SCA_ISR1_DMAC_TX0B	0x08	/* dmac channel 1 int b */
    426   1.3    chopps #define	SCA_ISR1_DMAC_RX1A	0x10	/* dmac channel 2 int a */
    427   1.3    chopps #define	SCA_ISR1_DMAC_RX1B	0x20	/* dmac channel 2 int b */
    428   1.3    chopps #define	SCA_ISR1_DMAC_TX1A	0x40	/* dmac channel 3 int a */
    429   1.3    chopps #define	SCA_ISR1_DMAC_TX1B	0x80	/* dmac channel 3 int b */
    430   1.3    chopps 
    431   1.3    chopps #define	SCA_ISR2_TIMER_IRQ0	0x10	/* timer channel 0 int */
    432   1.3    chopps #define	SCA_ISR2_TIMER_IRQ1	0x20	/* timer channel 1 int */
    433   1.3    chopps #define	SCA_ISR2_TIMER_IRQ2	0x40	/* timer channel 2 int */
    434   1.3    chopps #define	SCA_ISR2_TIMER_IRQ3	0x80	/* timer channel 3 int */
    435   1.3    chopps 
    436   1.3    chopps /* masks/values for the Interrupt Control Register (ITCR) */
    437  1.14    andvar #define SCA_ITCR_INTR_PRI_MASK	0x80	/* priority of interrupts */
    438   1.3    chopps #define	SCA_ITCR_INTR_PRI_MSCI	0x00	/* msci over dmac */
    439   1.3    chopps #define	SCA_ITCR_INTR_PRI_DMAC	0x80	/* dmac over msci */
    440   1.3    chopps #define	SCA_ITCR_ACK_MASK	0x60	/* mask for intr ack cycle setting */
    441   1.3    chopps #define	SCA_ITCR_ACK_NONE	0x00	/* no intr ack cycle */
    442   1.3    chopps #define	SCA_ITCR_ACK_SINGLE	0x20	/* single intr ack cycle */
    443   1.3    chopps #define	SCA_ITCR_ACK_DOUBLE	0x40	/* double intr ack cycle */
    444   1.3    chopps #define	SCA_ITCR_ACK_RESV	0x60	/* reserverd */
    445   1.3    chopps #define	SCA_ITCR_VOUT_MASK	0x10	/* vector output */
    446   1.3    chopps #define	SCA_ITCR_VOUT_IVR	0x00	/* use IVR */
    447   1.3    chopps #define	SCA_ITCR_VOUT_IMVR	0x10	/* use IMVR */
    448   1.3    chopps 
    449   1.3    chopps /*
    450   1.3    chopps  * Interrupt enable register bits
    451   1.3    chopps  */
    452   1.3    chopps #define	SCA_IER0_MSCI_RXRDY0	0x01	/* enable rx ready port 0 int */
    453   1.3    chopps #define	SCA_IER0_MSCI_TXRDY0	0x02	/* enable tx ready port 0 int */
    454   1.3    chopps #define	SCA_IER0_MSCI_RXINT0	0x04	/* enable rx error port 0 int */
    455   1.3    chopps #define	SCA_IER0_MSCI_TXINT0	0x08	/* enable tx error port 0 int */
    456   1.3    chopps #define	SCA_IER0_MSCI_RXRDY1	0x10	/* enable rx ready port 1 int */
    457   1.3    chopps #define	SCA_IER0_MSCI_TXRDY1	0x20	/* enable tx ready port 1 int */
    458   1.3    chopps #define	SCA_IER0_MSCI_RXINT1	0x40	/* enable rx error port 1 int */
    459   1.3    chopps #define	SCA_IER0_MSCI_TXINT1	0x80	/* enable tx error port 1 int */
    460   1.3    chopps 
    461   1.3    chopps #define	SCA_IER1_DMAC_RX0A	0x01	/* enable dmac channel 0 int a */
    462   1.3    chopps #define	SCA_IER1_DMAC_RX0B	0x02	/* enable dmac channel 0 int b */
    463   1.3    chopps #define	SCA_IER1_DMAC_TX0A	0x04	/* enable dmac channel 1 int a */
    464   1.3    chopps #define	SCA_IER1_DMAC_TX0B	0x08	/* enable dmac channel 1 int b */
    465   1.3    chopps #define	SCA_IER1_DMAC_RX1A	0x10	/* enable dmac channel 2 int a */
    466   1.3    chopps #define	SCA_IER1_DMAC_RX1B	0x20	/* enable dmac channel 2 int b */
    467   1.3    chopps #define	SCA_IER1_DMAC_TX1A	0x40	/* enable dmac channel 3 int a */
    468   1.3    chopps #define	SCA_IER1_DMAC_TX1B	0x80	/* enable dmac channel 3 int b */
    469   1.3    chopps 
    470   1.3    chopps #define	SCA_IER2_TIMER_IRQ0	0x10	/* enable timer channel 0 int */
    471   1.3    chopps #define	SCA_IER2_TIMER_IRQ1	0x20	/* enable timer channel 1 int */
    472   1.3    chopps #define	SCA_IER2_TIMER_IRQ2	0x40	/* enable timer channel 2 int */
    473   1.3    chopps #define	SCA_IER2_TIMER_IRQ3	0x80	/* enable timer channel 3 int */
    474   1.3    chopps 
    475   1.1  explorer /* This is for RRC, TRC0 and TRC1. */
    476   1.1  explorer #define SCA_RCR_MASK            0x1F
    477   1.1  explorer 
    478   1.1  explorer #define SCA_IE1_
    479   1.1  explorer 
    480   1.1  explorer #define SCA_IV_CHAN0            0x00
    481   1.1  explorer #define SCA_IV_CHAN1            0x20
    482   1.1  explorer 
    483   1.1  explorer #define SCA_IV_RXRDY            0x04
    484   1.1  explorer #define SCA_IV_TXRDY            0x06
    485   1.1  explorer #define SCA_IV_RXINT            0x08
    486   1.1  explorer #define SCA_IV_TXINT            0x0A
    487   1.1  explorer 
    488   1.1  explorer #define SCA_IV_DMACH0           0x00
    489   1.1  explorer #define SCA_IV_DMACH1           0x08
    490   1.1  explorer #define SCA_IV_DMACH2           0x20
    491   1.1  explorer #define SCA_IV_DMACH3           0x28
    492   1.1  explorer 
    493   1.1  explorer #define SCA_IV_DMIA             0x14
    494   1.1  explorer #define SCA_IV_DMIB             0x16
    495   1.1  explorer 
    496   1.1  explorer #define SCA_IV_TIMER0           0x1C
    497   1.1  explorer #define SCA_IV_TIMER1           0x1E
    498   1.1  explorer #define SCA_IV_TIMER2           0x3C
    499   1.1  explorer #define SCA_IV_TIMER3           0x3E
    500   1.1  explorer 
    501   1.1  explorer /*
    502   1.1  explorer  * DMA registers
    503   1.1  explorer  */
    504   1.1  explorer #define SCA_DSR_EOT             0x80
    505   1.1  explorer #define SCA_DSR_EOM             0x40
    506   1.1  explorer #define SCA_DSR_BOF             0x20
    507   1.1  explorer #define SCA_DSR_COF             0x10
    508   1.1  explorer #define SCA_DSR_DE              0x02
    509   1.1  explorer #define SCA_DSR_DEWD            0x01	/* write DISABLE DE bit */
    510   1.1  explorer 
    511   1.1  explorer #define SCA_DMR_TMOD            0x10
    512   1.1  explorer #define SCA_DMR_NF              0x04
    513   1.1  explorer #define SCA_DMR_CNTE            0x02
    514   1.1  explorer 
    515   1.1  explorer #define SCA_DMER_EN             0x80
    516   1.1  explorer 
    517   1.1  explorer #define SCA_DCR_ABRT            0x01
    518   1.1  explorer #define SCA_DCR_FCCLR           0x02  /* Clear frame end intr counter */
    519   1.1  explorer 
    520   1.1  explorer #define SCA_DIR_EOT             0x80
    521   1.1  explorer #define SCA_DIR_EOM             0x40
    522   1.1  explorer #define SCA_DIR_BOF             0x20
    523   1.1  explorer #define SCA_DIR_COF             0x10
    524   1.1  explorer 
    525   1.1  explorer #define SCA_PCR_BRC             0x10
    526   1.1  explorer #define SCA_PCR_CCC             0x08
    527   1.1  explorer #define SCA_PCR_PR2             0x04
    528   1.1  explorer #define SCA_PCR_PR1             0x02
    529   1.1  explorer #define SCA_PCR_PR0             0x01
    530   1.1  explorer 
    531  1.10     perry /*
    532   1.1  explorer  * Descriptor Status byte bit definitions:
    533   1.1  explorer  *
    534   1.1  explorer  *  Bit    Receive Status            Transmit Status
    535   1.1  explorer  * -------------------------------------------------
    536   1.1  explorer  *   7         EOM                       EOM
    537   1.1  explorer  *   6         Short Frame               ...
    538   1.1  explorer  *   5         Abort                     ...
    539   1.1  explorer  *   4         Residual bit              ...
    540   1.1  explorer  *   3         Overrun                   ...
    541   1.1  explorer  *   2         CRC                       ...
    542   1.1  explorer  *   1         ...                       ...
    543   1.1  explorer  *   0         ...                       EOT
    544   1.1  explorer  * -------------------------------------------------
    545   1.1  explorer  */
    546   1.1  explorer 
    547   1.1  explorer #define  ST_EOM    0x80    /* End of frame  */
    548   1.1  explorer #define  ST_SHRT   0x40    /* Short frame  */
    549   1.1  explorer #define  ST_ABT    0x20    /* Abort detected */
    550   1.1  explorer #define  ST_RBIT   0x10    /* Residual bit detected */
    551   1.1  explorer #define  ST_OVRN   0x8     /* Overrun error */
    552   1.1  explorer #define  ST_CRCE   0x4     /* CRC Error */
    553   1.1  explorer #define  ST_OVFL   0x1     /* Buffer OverFlow error  (software defined) */
    554   1.1  explorer 
    555   1.1  explorer #define  ST_EOT      1     /* End of transmit command */
    556  1.10     perry 
    557   1.1  explorer 
    558   1.1  explorer /*  DMA  Status register (DSR)  bit definitions  */
    559   1.1  explorer #define  DSR_EOT  0x80      /* end of transfer EOT bit */
    560   1.1  explorer #define  DSR_EOM  0x40      /* end of frame EOM bit */
    561   1.1  explorer #define  DSR_BOF  0x20      /* buffer overflow BOF bit */
    562   1.1  explorer #define  DSR_COF  0x10      /* counter overflow  COF bit */
    563   1.1  explorer #define  DSR_DWE     1      /* write disable DWE bit */
    564   1.1  explorer 
    565   1.1  explorer /*  MSCI Status register 0 bits  */
    566   1.1  explorer 
    567   1.1  explorer #define  RXRDY_BIT  1       /* RX ready */
    568   1.1  explorer #define  TXRDY_BIT  2       /* TX ready */
    569   1.1  explorer 
    570   1.1  explorer #define ST3_CTS   8    /* modem input  /CTS bit */
    571   1.1  explorer #define ST3_DCD   4    /* modem input  /DCD bit */
    572   1.3    chopps 
    573   1.3    chopps /*
    574   1.3    chopps  * timer register values
    575   1.3    chopps  */
    576   1.3    chopps #define	SCA_TCSR_TME		0x10	/* timer enable */
    577   1.3    chopps #define	SCA_TCSR_ECMI		0x40	/* interrupt enable */
    578   1.3    chopps #define	SCA_TCSR_CMF		0x80	/* timer complete */
    579   1.3    chopps 
    580   1.3    chopps #define SCA_TEPR_DIV_1		0x00	/* 2^(n) prescale divisor */
    581   1.3    chopps #define SCA_TEPR_DIV_2		0x01
    582   1.3    chopps #define SCA_TEPR_DIV_4		0x02
    583   1.3    chopps #define SCA_TEPR_DIV_8		0x03
    584   1.3    chopps #define SCA_TEPR_DIV_16		0x04
    585   1.3    chopps #define SCA_TEPR_DIV_32		0x05
    586   1.3    chopps #define SCA_TEPR_DIV_64		0x06
    587   1.3    chopps #define SCA_TEPR_DIV_128	0x06
    588   1.1  explorer 
    589   1.1  explorer 
    590   1.1  explorer /*  TX and RX Clock Source  */
    591   1.1  explorer #define CLK_LINE	0x00	/* TX/RX line input */
    592   1.1  explorer #define CLK_BRG		0x40	/* internal baud rate generator */
    593   1.1  explorer #define CLK_RXC		0x60	/* receive clock */
    594   1.1  explorer 
    595  1.10     perry /*   Clocking options  */
    596   1.1  explorer #define  CLK_INT   0        /* Internal - Baud Rate generator output */
    597   1.1  explorer #define  CLK_EXT   1        /* External - both clocks */
    598   1.1  explorer #define  CLK_RXCI  2        /* External - Receive Clock only */
    599   1.1  explorer #define  CLK_EETC  3        /* EETC clock:  TX = int. / RX = ext.*/
    600   1.1  explorer 
    601   1.1  explorer #define SCA_DMAC_OFF_0		0x00	/* offset of DMAC for port 0 */
    602   1.1  explorer #define SCA_DMAC_OFF_1		0x40	/* offset of DMAC for port 1 */
    603   1.1  explorer #define SCA_MSCI_OFF_0		0x00	/* offset of MSCI for port 0 */
    604   1.1  explorer #define SCA_MSCI_OFF_1		0x20	/* offset of MSCI for port 1 */
    605   1.1  explorer 
    606   1.1  explorer /*
    607   1.1  explorer  * DMA constraints
    608   1.1  explorer  */
    609   1.1  explorer #define SCA_DMA_ALIGNMENT	(64 * 1024)	/* 64 KB alignment */
    610   1.9       wiz #define SCA_DMA_BOUNDARY	(16 * 1024 * 1024)	/* 16 MB region */
    611   1.1  explorer 
    612   1.2    kleink #endif /* _DEV_IC_HD64570REG_H_ */
    613