Home | History | Annotate | Line # | Download | only in ic
      1  1.7  christos /* $NetBSD: am7930reg.h,v 1.7 2005/12/11 12:21:25 christos Exp $ */
      2  1.1        pk 
      3  1.1        pk /*
      4  1.4  augustss  * Am79C30A direct registers
      5  1.1        pk  */
      6  1.1        pk 
      7  1.4  augustss #define AM7930_DREG_CR		0	/* command register (wo) */
      8  1.4  augustss #define AM7930_DREG_IR		0	/* interrupt register (ro) */
      9  1.4  augustss #define		AM7930_IR_DTTHRSH	0x01	/* D-channel TX empty */
     10  1.4  augustss #define		AM7930_IR_DRTHRSH	0x02	/* D-channel RX avail */
     11  1.4  augustss #define		AM7930_IR_DSRI		0x04	/* D-channel packet status */
     12  1.4  augustss #define		AM7930_IR_DERI		0x08	/* D-channel error */
     13  1.4  augustss #define		AM7930_IR_BBUFF		0x10	/* Bb or Bc byte avail/empty */
     14  1.4  augustss #define		AM7930_IR_LSRI		0x20	/* LIU status */
     15  1.4  augustss #define		AM7930_IR_DSR2I		0x40	/* D-channel buffer status */
     16  1.4  augustss #define		AM7930_IR_PPMF		0x80	/* Multiframe or PP */
     17  1.4  augustss #define AM7930_DREG_DR		1	/* data register (rw) */
     18  1.4  augustss #define AM7930_DREG_DSR1	2	/* D-channel status register 1 (ro) */
     19  1.4  augustss #define AM7930_DREG_DER		3	/* D-channel error register (ro) */
     20  1.4  augustss #define AM7930_DREG_DCTB	4	/* D-channel transmit register (wo) */
     21  1.4  augustss #define AM7930_DREG_DCRB	4	/* D-channel receive register (ro) */
     22  1.4  augustss #define AM7930_DREG_BBTB	5	/* Bb-channel transmit register (wo) */
     23  1.4  augustss #define AM7930_DREG_BBRB	5	/* Bb-channel receive register (ro) */
     24  1.4  augustss #define AM7930_DREG_BCTB	6	/* Bc-channel transmit register (wo) */
     25  1.4  augustss #define AM7930_DREG_BCRB	6	/* Bc-channel receive register (ro) */
     26  1.4  augustss #define AM7930_DREG_DSR2	7	/* D-channel status register 2 (ro) */
     27  1.5   mycroft 
     28  1.5   mycroft #define	AM7930_DREG_SIZE	8
     29  1.4  augustss 
     30  1.1        pk /*
     31  1.4  augustss  * Am79C30A indirect registers
     32  1.1        pk  */
     33  1.1        pk 
     34  1.4  augustss /* Initialisation registers */
     35  1.4  augustss 
     36  1.4  augustss #define AM7930_IREG_INIT	0x21
     37  1.4  augustss #define AM7930_IREG_INIT2	0x20
     38  1.4  augustss /* power mode selection */
     39  1.4  augustss #define		AM7930_INIT_PMS_IDLE		0x00
     40  1.4  augustss #define		AM7930_INIT_PMS_ACTIVE		0x01
     41  1.4  augustss #define		AM7930_INIT_PMS_ACTIVE_DATA	0x02
     42  1.4  augustss #define		AM7930_INIT_PMS_MASK		0x03
     43  1.4  augustss /* interrupt selection */
     44  1.4  augustss #define		AM7930_INIT_INT_ENABLE		0x00
     45  1.4  augustss #define		AM7930_INIT_INT_DISABLE		0x04
     46  1.4  augustss #define		AM7930_INIT_INT_MASK		0x04
     47  1.4  augustss /* clock divider selection */
     48  1.4  augustss #define		AM7930_INIT_CDS_DIV2		0x00
     49  1.4  augustss #define		AM7930_INIT_CDS_DIV1		0x08
     50  1.4  augustss #define		AM7930_INIT_CDS_DIV4		0x10
     51  1.4  augustss #define		AM7930_INIT_CDS_DIV3		0x20
     52  1.4  augustss #define		AM7930_INIT_CDS_MASK		0x38
     53  1.4  augustss /* abort selection */
     54  1.4  augustss #define		AM7930_INIT_AS_RX		0x40
     55  1.4  augustss #define		AM7930_INIT_AS_NRX		0x00
     56  1.4  augustss #define		AM7930_INIT_AS_TX		0x80
     57  1.4  augustss #define		AM7930_INIT_AS_NTX		0x00
     58  1.4  augustss #define		AM7930_INIT_AS_MASK		0xc0
     59  1.4  augustss 
     60  1.4  augustss /* Line Interface Unit registers */
     61  1.4  augustss 
     62  1.4  augustss #define AM7930_IREG_LIU_LSR	0xa1	/* LIU status (ro) */
     63  1.4  augustss #define AM7930_IREG_LIU_LPR	0xa2	/* LIU priority (rw) */
     64  1.4  augustss #define AM7930_IREG_LIU_LMR1	0xa3	/* LIU mode register 1 (rw) */
     65  1.4  augustss #define AM7930_IREG_LIU_LMR2	0xa4	/* LIU mode register 2 (rw) */
     66  1.4  augustss #define AM7930_IREG_LIU_2_4	0xa5
     67  1.4  augustss #define AM7930_IREG_LIU_MF	0xa6	/* Multiframe (rw) */
     68  1.4  augustss #define AM7930_IREG_LIU_MFSB	0xa7	/* Multiframe S-bit/status (ro) */
     69  1.4  augustss #define AM7930_IREG_LIU_MFQB	0xa8	/* Multiframe Q-bit buffer (wo) */
     70  1.4  augustss 
     71  1.4  augustss /* Multiplexer registers */
     72  1.4  augustss 
     73  1.4  augustss #define AM7930_IREG_MUX_MCR1	0x41	/* MUX command register 1 (rw) */
     74  1.4  augustss #define AM7930_IREG_MUX_MCR2	0x42	/* MUX command register 2 (rw) */
     75  1.4  augustss #define AM7930_IREG_MUX_MCR3	0x43	/* MUX command register 3 (rw) */
     76  1.6      kent #define		AM7930_MCRCHAN_NC		0x00
     77  1.6      kent #define		AM7930_MCRCHAN_B1		0x01
     78  1.6      kent #define		AM7930_MCRCHAN_B2		0x02
     79  1.6      kent #define		AM7930_MCRCHAN_BA		0x03
     80  1.6      kent #define		AM7930_MCRCHAN_BB		0x04
     81  1.6      kent #define		AM7930_MCRCHAN_BC		0x05
     82  1.6      kent #define		AM7930_MCRCHAN_BD		0x06
     83  1.6      kent #define		AM7930_MCRCHAN_BE		0x07
     84  1.6      kent #define		AM7930_MCRCHAN_BF		0x08
     85  1.4  augustss #define AM7930_IREG_MUX_MCR4	0x44	/* MUX command register 4 (rw) */
     86  1.4  augustss #define		AM7930_MCR4_INT_ENABLE		(1 << 3)
     87  1.4  augustss #define		AM7930_MCR4_SWAPBB		(1 << 4)
     88  1.4  augustss #define		AM7930_MCR4_SWAPBC		(1 << 5)
     89  1.4  augustss #define AM7930_IREG_MUX_1_4	0x45
     90  1.4  augustss 
     91  1.4  augustss /* Main Audio Processor registers */
     92  1.4  augustss 
     93  1.4  augustss #define AM7930_IREG_MAP_X	0x61	/* X filter coefficient (rw) */
     94  1.4  augustss #define AM7930_IREG_MAP_R	0x62	/* R filter coefficient (rw) */
     95  1.4  augustss #define AM7930_IREG_MAP_GX	0x63	/* GX gain coefficient (rw) */
     96  1.4  augustss #define AM7930_IREG_MAP_GR	0x64	/* GR gain coefficient (rw) */
     97  1.4  augustss #define AM7930_IREG_MAP_GER	0x65	/* GER gain coefficient (rw) */
     98  1.4  augustss #define AM7930_IREG_MAP_STG	0x66	/* Sidetone gain coefficient (rw) */
     99  1.4  augustss #define AM7930_IREG_MAP_FTGR	0x67	/* Frequency tone generator 1,2 (rw) */
    100  1.4  augustss #define AM7930_IREG_MAP_ATGR	0x68	/* Amplitude tone generator 1,2 (rw) */
    101  1.4  augustss #define AM7930_IREG_MAP_MMR1	0x69	/* MAP mode register 1 (rw) */
    102  1.4  augustss #define		AM7930_MMR1_ALAW	0x01
    103  1.4  augustss #define		AM7930_MMR1_GX		0x02
    104  1.4  augustss #define		AM7930_MMR1_GR		0x04
    105  1.4  augustss #define		AM7930_MMR1_GER		0x08
    106  1.4  augustss #define		AM7930_MMR1_X		0x10
    107  1.4  augustss #define		AM7930_MMR1_R		0x20
    108  1.4  augustss #define		AM7930_MMR1_STG		0x40
    109  1.4  augustss #define		AM7930_MMR1_LOOP	0x80
    110  1.4  augustss #define AM7930_IREG_MAP_MMR2	0x6a	/* MAP mode register 2 (rw) */
    111  1.4  augustss #define		AM7930_MMR2_AINB	0x01
    112  1.4  augustss #define		AM7930_MMR2_LS		0x02
    113  1.4  augustss #define		AM7930_MMR2_DTMF	0x04
    114  1.4  augustss #define		AM7930_MMR2_GEN		0x08
    115  1.4  augustss #define		AM7930_MMR2_RNG		0x10
    116  1.4  augustss #define		AM7930_MMR2_DIS_HPF	0x20
    117  1.4  augustss #define		AM7930_MMR2_DIS_AZ	0x40
    118  1.4  augustss #define AM7930_IREG_MAP_1_10	0x6b
    119  1.4  augustss #define AM7930_IREG_MAP_MMR3	0x6c	/* MAP mode register 3 (rw) */
    120  1.4  augustss #define		AM7930_MMR3_BOTH	0x02
    121  1.4  augustss #define		AM7930_MMR3_MBZ		0x01
    122  1.4  augustss #define		AM7930_MMR3_GA		0x70
    123  1.4  augustss #define		AM7930_MMR3_GA0		0x00
    124  1.4  augustss #define		AM7930_MMR3_GA6		0x10
    125  1.4  augustss #define		AM7930_MMR3_GA12	0x20
    126  1.4  augustss #define		AM7930_MMR3_GA18	0x30
    127  1.4  augustss #define		AM7930_MMR3_GA24	0x40
    128  1.4  augustss #define		AM7930_MMR3_MUTE	0x08
    129  1.4  augustss #define		AM7930_MMR3_STR		0x01
    130  1.4  augustss #define AM7930_IREG_MAP_STRA	0x6d	/* Second tone ringer amplitude (rw) */
    131  1.4  augustss #define AM7930_IREG_MAP_STRF	0x6e	/* Second tone ringer frequency (rw) */
    132  1.4  augustss 
    133  1.4  augustss /* Data Link Controller registers */
    134  1.4  augustss 
    135  1.4  augustss #define AM7930_IREG_DLC_FRAR123	0x81	/* First rcvd byte address 123 (rw) */
    136  1.4  augustss #define AM7930_IREG_DLC_SRAR123 0x82	/* Second rcvd byte address 123 (rw) */
    137  1.4  augustss #define AM7930_IREG_DLC_TAR	0x83	/* Transmit address (rw) */
    138  1.4  augustss #define AM7930_IREG_DLC_DRLR	0x84	/* D-channel receive byte limit (rw) */
    139  1.4  augustss #define AM7930_IREG_DLC_DTCR	0x85	/* D-channel transmit byte count (rw)*/
    140  1.4  augustss #define AM7930_IREG_DLC_DMR1	0x86	/* D-channel mode register 1 (rw) */
    141  1.4  augustss #define AM7930_IREG_DLC_DMR2	0x87	/* D-channel mode register 2 (rw) */
    142  1.4  augustss #define AM7930_IREG_DLC_1_7	0x88
    143  1.4  augustss #define AM7930_IREG_DLC_DRCR	0x89	/* D-channel receive byte count (ro) */
    144  1.4  augustss #define AM7930_IREG_DLC_RNGR1	0x8a	/* Random number generator LSB (rw) */
    145  1.4  augustss #define AM7930_IREG_DLC_RNGR2	0x8b	/* Random number generator MSB (rw) */
    146  1.4  augustss #define AM7930_IREG_DLC_FRAR4	0x8c	/* First rcvd byte address 4 (rw) */
    147  1.4  augustss #define AM7930_IREG_DLC_SRAR4	0x8d	/* Second rcvd byte address 4 (rw) */
    148  1.4  augustss #define AM7930_IREG_DLC_DMR3	0x8e	/* D-channel mode register 3 (rw) */
    149  1.4  augustss #define AM7930_IREG_DLC_DMR4	0x8f	/* D-channel mode register 4 (rw) */
    150  1.4  augustss #define AM7930_IREG_DLC_12_15	0x90
    151  1.4  augustss #define AM7930_IREG_DLC_ASR	0x91	/* Address status register (ro) */
    152  1.4  augustss #define AM7930_IREG_DLC_EFCR	0x92	/* Extended FIFO control (rw) */
    153  1.4  augustss 
    154  1.4  augustss /* Peripheral Port registers */
    155  1.4  augustss 
    156  1.4  augustss #define AM7930_IREG_PP_PPCR1	0xc0	/* Peripheral port control 1 (rw) */
    157  1.4  augustss #define		AM7930_PPCR1_DISABLE	0x00
    158  1.4  augustss #define		AM7930_PPCR1_SBP	0x01
    159  1.4  augustss #define		AM7930_PPCR1_IOM2SL	0x10
    160  1.4  augustss #define		AM7930_PPCR1_IOM2MA	0x11
    161  1.4  augustss #define AM7930_IREG_PP_PPSR	0xc1	/* Peripheral port control 2 (ro) */
    162  1.4  augustss #define AM7930_IREG_PP_PPIER	0xc2	/* Peripheral port intr enable (rw) */
    163  1.4  augustss #define AM7930_IREG_PP_MTDR	0xc3	/* monitor transmit data (wo) */
    164  1.4  augustss #define AM7930_IREG_PP_MRDR	0xc3	/* monitor receive data (ro) */
    165  1.4  augustss #define AM7930_IREG_PP_CITDR0	0xc4	/* C/I transmit data register 0 (wo) */
    166  1.4  augustss #define AM7930_IREG_PP_CIRDR0	0xc4	/* C/I receive data register 0 (ro) */
    167  1.4  augustss #define AM7930_IREG_PP_CITDR1	0xc5	/* C/I transmit data register 1 (wo) */
    168  1.4  augustss #define AM7930_IREG_PP_CIRDR1	0xc5	/* C/I receive data register 1 (ro) */
    169  1.4  augustss #define AM7930_IREG_PP_PPCR2	0xc8	/* Peripheral port control 2 (rw) */
    170