Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:40

0001 /*  Blackfin Two Wire Interface Registers
0002  *
0003  *  Copyright (c) 2008 Kallisti Labs, Los Gatos, CA, USA
0004  *             written by Allan Hessenflow <allanh@kallisti.com>
0005  *
0006  *  The license and distribution terms for this file may be
0007  *  found in the file LICENSE in this distribution or at
0008  *  http://www.rtems.org/license/LICENSE.
0009  */
0010 
0011 #ifndef _twiRegs_h_
0012 #define _twiRegs_h_
0013 
0014 
0015 /* register addresses */
0016 
0017 #define TWI_CLKDIV_OFFSET                             0x0000
0018 #define TWI_CONTROL_OFFSET                            0x0004
0019 #define TWI_SLAVE_CTL_OFFSET                          0x0008
0020 #define TWI_SLAVE_STAT_OFFSET                         0x000c
0021 #define TWI_SLAVE_ADDR_OFFSET                         0x0010
0022 #define TWI_MASTER_CTL_OFFSET                         0x0014
0023 #define TWI_MASTER_STAT_OFFSET                        0x0018
0024 #define TWI_MASTER_ADDR_OFFSET                        0x001c
0025 #define TWI_INT_STAT_OFFSET                           0x0020
0026 #define TWI_INT_MASK_OFFSET                           0x0024
0027 #define TWI_FIFO_CTL_OFFSET                           0x0028
0028 #define TWI_FIFO_STAT_OFFSET                          0x002c
0029 #define TWI_XMT_DATA8_OFFSET                          0x0080
0030 #define TWI_XMT_DATA16_OFFSET                         0x0084
0031 #define TWI_RCV_DATA8_OFFSET                          0x0088
0032 #define TWI_RCV_DATA16_OFFSET                         0x008c
0033 
0034 
0035 /* register fields */
0036 
0037 #define TWI_CLKDIV_CLKHI_MASK                         0xff00
0038 #define TWI_CLKDIV_CLKHI_SHIFT                             8
0039 #define TWI_CLKDIV_CLKLOW_MASK                        0x00ff
0040 #define TWI_CLKDIV_CLKLOW_SHIFT                            0
0041 
0042 #define TWI_CONTROL_SCCB                              0x0200
0043 #define TWI_CONTROL_TWI_ENA                           0x0080
0044 #define TWI_CONTROL_PRESCALE_MASK                     0x007f
0045 #define TWI_CONTROL_PRESCALE_SHIFT                         0
0046 
0047 #define TWI_SLAVE_CTL_GEN                             0x0010
0048 #define TWI_SLAVE_CTL_NAK                             0x0008
0049 #define TWI_SLAVE_CTL_STDVAL                          0x0004
0050 #define TWI_SLAVE_CTL_SEN                             0x0001
0051 
0052 #define TWI_SLAVE_STAT_GCALL                          0x0002
0053 #define TWI_SLAVE_STAT_SDIR                           0x0001
0054 
0055 #define TWI_SLAVE_ADDR_SADDR_MASK                     0x007f
0056 #define TWI_SLAVE_ADDR_SADDR_SHIFT                         0
0057 
0058 #define TWI_MASTER_CTL_SCLOVR                         0x8000
0059 #define TWI_MASTER_CTL_SDAOVR                         0x4000
0060 #define TWI_MASTER_CTL_DCNT_MASK                      0x3fc0
0061 #define TWI_MASTER_CTL_DCNT_SHIFT                          6
0062 #define TWI_MASTER_CTL_RSTART                         0x0020
0063 #define TWI_MASTER_CTL_STOP                           0x0010
0064 #define TWI_MASTER_CTL_FAST                           0x0008
0065 #define TWI_MASTER_CTL_MDIR                           0x0004
0066 #define TWI_MASTER_CTL_MEN                            0x0001
0067 
0068 #define TWI_MASTER_STAT_BUSBUSY                       0x0100
0069 #define TWI_MASTER_STAT_SCLSEN                        0x0080
0070 #define TWI_MASTER_STAT_SDASEN                        0x0040
0071 #define TWI_MASTER_STAT_BUFWRERR                      0x0020
0072 #define TWI_MASTER_STAT_BUFRDERR                      0x0010
0073 #define TWI_MASTER_STAT_DNAK                          0x0008
0074 #define TWI_MASTER_STAT_ANAK                          0x0004
0075 #define TWI_MASTER_STAT_LOSTARB                       0x0002
0076 #define TWI_MASTER_STAT_MPROG                         0x0001
0077 
0078 #define TWI_MASTER_ADDR_MADDR_MASK                    0x007f
0079 #define TWI_MASTER_ADDR_MADDR_SHIFT                        0
0080 
0081 #define TWI_INT_STAT_RCVSERV                          0x0080
0082 #define TWI_INT_STAT_XMTSERV                          0x0040
0083 #define TWI_INT_STAT_MERR                             0x0020
0084 #define TWI_INT_STAT_MCOMP                            0x0010
0085 #define TWI_INT_STAT_SOVF                             0x0008
0086 #define TWI_INT_STAT_SERR                             0x0004
0087 #define TWI_INT_STAT_SCOMP                            0x0002
0088 #define TWI_INT_STAT_SINIT                            0x0001
0089 
0090 #define TWI_INT_MASK_RCVSERVM                         0x0080
0091 #define TWI_INT_MASK_XMTSERVM                         0x0040
0092 #define TWI_INT_MASK_MERRM                            0x0020
0093 #define TWI_INT_MASK_MCOMPM                           0x0010
0094 #define TWI_INT_MASK_SOVFM                            0x0008
0095 #define TWI_INT_MASK_SERRM                            0x0004
0096 #define TWI_INT_MASK_SCOMPM                           0x0002
0097 #define TWI_INT_MASK_SINITM                           0x0001
0098 
0099 #define TWI_FIFO_CTL_RCVINTLEN                        0x0008
0100 #define TWI_FIFO_CTL_XMTINTLEN                        0x0004
0101 #define TWI_FIFO_CTL_RCVFLUSH                         0x0002
0102 #define TWI_FIFO_CTL_XMTFLUSH                         0x0001
0103 
0104 #define TWI_FIFO_STAT_RCVSTAT_MASK                    0x000c
0105 #define TWI_FIFO_STAT_RCVSTAT_EMPTY                   0x0000
0106 #define TWI_FIFO_STAT_RCVSTAT_SHIFT                        2
0107 #define TWI_FIFO_STAT_XMTSTAT_MASK                    0x0003
0108 #define TWI_FIFO_STAT_XMTSTAT_FULL                    0x0003
0109 #define TWI_FIFO_STAT_XMTSTAT_SHIFT                        0
0110 
0111 #define TWI_XMT_DATA8_XMTDATA8_MASK                   0x00ff
0112 #define TWI_XMT_DATA8_XMTDATA8_SHIFT                       0
0113 
0114 #define TWI_RCV_DATA8_RCVDATA8_MASK                   0x00ff
0115 #define TWI_RCV_DATA8_RCVDATA8_SHIFT                       0
0116 
0117 
0118 #endif /* _twiRegs_h_ */