IC_TAR
Name: I2C Target Address Register
Size: 12 bits; when I2C_DYNAMIC_TAR_UPDATE = 0 and IC_DEVICE_ID = 0
13 bits; when I2C_DYNAMIC_TAR_UPDATE = 1 and IC_DEVICE_ID = 0
14 bits; when IC_DEVICE_ID=1 irrespective of I2C_DYNAMIC_TAR_UPDATE is set.
17 bits; when IC_SMBUS=1
Address Offset: 0x04
Read/Write Access: Read/Write
If the configuration parameter I2C_DYNAMIC_TAR_UPDATE is set to 'No' (0),
this register is 12 bits wide, and bits 31:12 are reserved. This register
can be written to only when IC_ENABLE[0] is set to 0.
However, if I2C_DYNAMIC_TAR_UPDATE = 1, then the register becomes 13 bits wide.
All bits can be dynamically updated as long as any set of the following
conditions are true:
- DW_apb_i2c is NOT enabled (IC_ENABLE[0] is set to 0);
or
- DW_apb_i2c is enabled (IC_ENABLE[0]=1);
AND
DW_apb_i2c is NOT engaged in any Master (tx, rx) operation (IC_STATUS[5]=0);
AND
DW_apb_i2c is enabled to operate in Master mode (IC_CON[0]=1);
AND
there are NO entries in the TX FIFO (IC_STATUS[2]=1)
Module Instance | Base Address | Register Address |
---|---|---|
sdm_i_i2c_0_DW_apb_i2c_addr_block1 | 0xFF8D0100 | 0xFF8D0104 |
sdm_i_i2c_1_DW_apb_i2c_addr_block1 | 0xFF8D0200 | 0xFF8D0204 |
Size: 32
Offset: 0x4
Access: RW
Bit Fields | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RSVD_IC_TAR_2 RO 0x0 |
RSVD_SMBUS_QUICK_CMD RO 0x0 |
||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RSVD_IC_TAR_1 RO 0x0 |
RSVD_DEVICE_ID RO 0x0 |
IC_10BITADDR_MASTER RW 0x1 |
SPECIAL RW 0x0 |
GC_OR_START RW 0x0 |
IC_TAR RW 0x55 |
IC_TAR Fields
Bit | Name | Description | Access | Reset | ||||||
---|---|---|---|---|---|---|---|---|---|---|
31:17 | RSVD_IC_TAR_2 |
Reserved bits - Read Only |
RO | 0x0 | ||||||
16 | RSVD_SMBUS_QUICK_CMD |
Reserved bits - Read Only |
RO | 0x0 | ||||||
15:14 | RSVD_IC_TAR_1 |
Reserved bits - Read Only |
RO | 0x0 | ||||||
13 | RSVD_DEVICE_ID |
Reserved bits - Read Only |
RO | 0x0 | ||||||
12 | IC_10BITADDR_MASTER |
This bit controls whether the DW_apb_i2c starts its transfers in 7- or 10-bit addressing mode when acting as a master. 0: 7-bit addressing 1: 10-bit addressing Dependencies: This bit exists in this register only if the I2C_DYNAMIC_TAR_UPDATE configuration parameter is set to 'Yes' (1). Reset value: IC_10BITADDR_MASTER configuration parameter
|
RW | 0x1 | ||||||
11 | SPECIAL |
This bit indicates whether software performs a Device-ID or General Call or START BYTE command. 0: ignore bit 10 GC_OR_START and use IC_TAR normally 1: perform special I2C command as specified in Device_ID or GC_OR_START bit Reset value: 0x0
|
RW | 0x0 | ||||||
10 | GC_OR_START |
If bit 11 (SPECIAL) is set to 1 and bit 13(Device-ID) is set to 0, then this bit indicates whether a General Call or START byte command is to be performed by the DW_apb_i2c. 0: General Call Address after issuing a General Call, only writes may be performed. Attempting to issue a read command results in setting bit 6 (TX_ABRT) of the IC_RAW_INTR_STAT register. The DW_apb_i2c remains in General Call mode until the SPECIAL bit value (bit 11) is cleared. 1: START BYTE Reset value: 0x0
|
RW | 0x0 | ||||||
9:0 | IC_TAR |
This is the target address for any master transaction. When transmitting a General Call, these bits are ignored. To generate a START BYTE, the CPU needs to write only once into these bits. Reset value: IC_DEFAULT_TAR_SLAVE_ADDR configuration parameter If the IC_TAR and IC_SAR are the same, loopback exists but the FIFOs are shared between master and slave, so full loopback is not feasible. Only one direction loopback mode is supported (simplex), not duplex. A master cannot transmit to itself; it can transmit to only a slave. |
RW | 0x55 |