86 #include <ti/csl/src/ip/i2c/V2/cslr_i2c.h> 99 #define I2C_CFG_MST_TX (((uint32_t) I2C_CON_TRX_MASK) | \ 100 (uint32_t) (I2C_CON_MST_MASK)) 104 #define I2C_CFG_MST_RX ((uint32_t) I2C_CON_MST_MASK) 108 #define I2C_CFG_STOP ((uint32_t) I2C_CON_STP_MASK) 112 #define I2C_CFG_N0RMAL_MODE ((uint32_t) 0 << I2C_CON_STB_SHIFT) 116 #define I2C_CFG_SRT_BYTE_MODE ((uint32_t) I2C_CON_STB_MASK) 120 #define I2C_CFG_7BIT_SLAVE_ADDR ((uint32_t) 0 << I2C_CON_XSA_SHIFT) 124 #define I2C_CFG_10BIT_SLAVE_ADDR ((uint32_t) I2C_CON_XSA_MASK) 128 #define I2C_CFG_10BIT_OWN_ADDR_0 ((uint32_t) I2C_CON_XOA0_MASK) 132 #define I2C_CFG_10BIT_OWN_ADDR_1 ((uint32_t) I2C_CON_XOA1_MASK) 136 #define I2C_CFG_10BIT_OWN_ADDR_2 ((uint32_t) I2C_CON_XOA2_MASK) 140 #define I2C_CFG_10BIT_OWN_ADDR_3 ((uint32_t) I2C_CON_XOA3_MASK) 144 #define I2C_CFG_7BIT_OWN_ADDR_0 ((uint32_t) 0 << I2C_CON_XOA0_SHIFT) 148 #define I2C_CFG_7BIT_OWN_ADDR_1 ((uint32_t) 0 << I2C_CON_XOA1_SHIFT) 152 #define I2C_CFG_7BIT_OWN_ADDR_2 ((uint32_t) 0 << I2C_CON_XOA2_SHIFT) 156 #define I2C_CFG_7BIT_OWN_ADDR_3 ((uint32_t) 0 << I2C_CON_XOA3_SHIFT) 160 #define I2C_CFG_MST_ENABLE ((uint32_t) I2C_CON_I2C_EN_MASK) 164 #define I2C_CFG_START ((uint32_t) I2C_CON_STT_MASK) 168 #define I2C_CFG_MST ((uint32_t) I2C_CON_MST_MASK) 172 #define I2C_CFG_HS_MOD ((uint32_t) CSL_I2C_CON_OPMODE_HSI2C << CSL_I2C_CON_OPMODE_SHIFT) 184 #define I2C_INT_ARBITRATION_LOST ((uint32_t) I2C_IRQSTATUS_AL_MASK) 188 #define I2C_INT_NO_ACK ((uint32_t) I2C_IRQSTATUS_NACK_MASK) 192 #define I2C_INT_ADRR_READY_ACESS ((uint32_t) I2C_IRQSTATUS_ARDY_MASK) 196 #define I2C_INT_RECV_READY ((uint32_t) I2C_IRQSTATUS_RRDY_MASK) 200 #define I2C_INT_TRANSMIT_READY ((uint32_t) I2C_IRQSTATUS_XRDY_MASK) 204 #define I2C_INT_GENERAL_CALL ((uint32_t) I2C_IRQSTATUS_GC_MASK) 208 #define I2C_INT_START ((uint32_t) I2C_IRQSTATUS_STC_MASK) 212 #define I2C_INT_ACCESS_ERROR ((uint32_t) I2C_IRQSTATUS_AERR_MASK) 216 #define I2C_INT_STOP_CONDITION ((uint32_t) I2C_IRQSTATUS_BF_MASK) 220 #define I2C_INT_ADRR_SLAVE ((uint32_t) I2C_IRQSTATUS_AAS_MASK) 224 #define I2C_INT_TRANSMIT_UNDER_FLOW ((uint32_t) I2C_IRQSTATUS_XUDF_MASK) 228 #define I2C_INT_RECV_OVER_RUN ((uint32_t) I2C_IRQSTATUS_ROVR_MASK) 232 #define I2C_INT_RECV_DRAIN ((uint32_t) I2C_IRQSTATUS_RDR_MASK) 236 #define I2C_INT_TRANSMIT_DRAIN ((uint32_t) I2C_IRQSTATUS_XDR_MASK) 240 #define I2C_INT_BUS_BUSY ((uint32_t) I2C_IRQSTATUS_RAW_BB_MASK) 244 #define I2C_INT_BUS_FREE ((uint32_t) I2C_IRQSTATUS_RAW_BF_MASK) 248 #define I2C_INT_ALL ((uint32_t) 0x7FFFU) 259 #define I2C_TX_MODE ((uint32_t) 1U) 263 #define I2C_RX_MODE ((uint32_t) 0U) 274 #define I2C_TX_BUFFER_STATUS ((uint32_t) 0U) 278 #define I2C_RX_BUFFER_STATUS ((uint32_t) 1U) 282 #define I2C_FIFO_DEPTH ((uint32_t) 2U) 293 #define I2C_WAKE_UP_ARBITRATION_LOST (I2C_WE_AL_MASK) 297 #define I2C_WAKE_UP_NO_ACK (I2C_WE_NACK_MASK) 301 #define I2C_WAKE_UP_ADRR_RDY_ACCESS (I2C_WE_ARDY_MASK) 305 #define I2C_WAKE_UP_GENERAL_CALL (I2C_WE_GC_MASK) 309 #define I2C_WAKE_UP_START (I2C_WE_STC_MASK) 313 #define I2C_WAKE_UP_STOP_CONDITION (I2C_WE_BF_MASK) 317 #define I2C_WAKE_UP_ADRR_SLAVE (I2C_WE_AAS_MASK) 321 #define I2C_WAKE_UP_TX_UNDER_FLOW (I2C_WE_XUDF_MASK) 325 #define I2C_WAKE_UP_RECV_OVER_RUN (I2C_WE_ROVR_MASK) 329 #define I2C_WAKE_UP_RECV_DRAIN (I2C_WE_RDR_MASK) 333 #define I2C_WAKE_UP_TRANSMIT_DRAIN (I2C_WE_XDR_MASK) 337 #define I2C_WAKE_UP_DATA_RECV_TX_RDY (I2C_WE_DRDY_MASK) 348 #define I2C_WAKE_UP_IRQ ((uint32_t) 1U) 352 #define I2C_WAKE_UP_DMA_RECV ((uint32_t) 2U) 356 #define I2C_WAKE_UP_DMA_TRANSMIT ((uint32_t) 3U) 368 #define I2C_STATUS_RAW ((uint32_t) 0U) 372 #define I2C_STATUS ((uint32_t) 1U) 377 #define HAL_HSI2C_SUCCESS ((uint32_t) 0U) 381 #define HAL_HSI2C_FAIL ((uint32_t) 1U) 392 #define I2C_OWN_ADDR_0 ((uint32_t) 0U) 396 #define I2C_OWN_ADDR_1 ((uint32_t) 1U) 400 #define I2C_OWN_ADDR_2 ((uint32_t) 2U) 404 #define I2C_OWN_ADDR_3 ((uint32_t) 3U) 414 #define I2C_AUTOIDLE_DISABLE (I2C_SYSC_AUTOIDLE_DISABLE) 418 #define I2C_AUTOIDLE_ENABLE ((uint32_t) I2C_SYSC_AUTOIDLE_ENABLE << \ 419 I2C_SYSC_AUTOIDLE_SHIFT) 429 #define I2C_CUT_OFF_BOTH_CLK (I2C_SYSC_CLKACTIVITY_BOOTHOFF) 434 #define I2C_CUT_OFF_SYS_CLK ((uint32_t) I2C_SYSC_CLKACTIVITY_OCPON << \ 435 I2C_SYSC_CLKACTIVITY_SHIFT) 440 #define I2C_CUT_OFF_OCP_CLK ((uint32_t) I2C_SYSC_CLKACTIVITY_SYSON << \ 441 I2C_SYSC_CLKACTIVITY_SHIFT) 445 #define I2C_KEEP_ALIVE_BOTH_CLK ((uint32_t) I2C_SYSC_CLKACTIVITY_BOOTHON << \ 446 I2C_SYSC_CLKACTIVITY_SHIFT) 456 #define I2C_ENAWAKEUP_DISABLE (I2C_SYSC_ENAWAKEUP_DISABLE) 460 #define I2C_ENAWAKEUP_ENABLE ((uint32_t) I2C_SYSC_ENAWAKEUP_ENABLE << \ 461 I2C_SYSC_ENAWAKEUP_SHIFT) 471 #define I2C_FORCE_IDLE_MODE (I2C_SYSC_IDLEMODE_FORCEIDLE) 475 #define I2C_NO_IDLE_MODE ((uint32_t) I2C_SYSC_IDLEMODE_NOIDLE << \ 476 I2C_SYSC_IDLEMODE_SHIFT) 480 #define I2C_SMART_IDLE_MODE ((uint32_t) I2C_SYSC_IDLEMODE_SMARTIDLE << \ 481 I2C_SYSC_IDLEMODE_SHIFT) 486 #define I2C_SMART_IDLE_WAKEUP_MODE ((uint32_t) I2C_SYSC_IDLEMODE_SMARTIDLE_WAKEUP << \ 487 I2C_SYSC_IDLEMODE_SHIFT) 497 #define I2C_OPMODE_FAST_STAND_MODE (I2C_CON_OPMODE_FSI2C) 501 #define I2C_OPMODE_HIGH_SPEED_MODE ((uint32_t) I2C_CON_OPMODE_HSI2C << \ 502 I2C_CON_OPMODE_SHIFT) 512 #define I2C_NORMAL_MODE (I2C_CON_STB_NORMAL) 516 #define I2C_STB_MODE ((uint32_t) I2C_CON_STB_STB << I2C_CON_STB_SHIFT) 526 #define I2C_XSA_7BIT (I2C_CON_XSA_B07) 530 #define I2C_XSA_10BIT ((uint32_t) I2C_CON_XSA_B10 << I2C_CON_XSA_SHIFT) 558 uint32_t internalClk,
1172 uint32_t thresholdVal,
1560 void I2CSyscInit(uintptr_t baseAddr, uint32_t syscFlag);
1573 void I2CConfig(uintptr_t baseAddr, uint32_t conParams);
void I2CMasterStart(uintptr_t baseAddr)
This API starts a I2C transaction on the bus. This API must be called after all the configuration for...
void I2CSlaveIntRawStatusClearEx(uintptr_t baseAddr, uint32_t intFlag)
This API Clears the raw status of specified interrupts in Slave mode.
uint32_t I2CSlaveIntStatus(uintptr_t baseAddr)
This API returns the status of interrupts in slave mode.
void I2CSyscInit(uintptr_t baseAddr, uint32_t syscFlag)
This function configures SYSC register.
uint32_t I2CMasterSlaveAddrGet(uintptr_t baseAddr)
This API returns the address of the slave device with which I2C wants to communicate.
void I2CSlaveIntDisableEx(uintptr_t baseAddr, uint32_t intFlag)
This API disables only specified I2C interrupts in Slave mode.
void I2CGlobalWakeUpDisable(uintptr_t baseAddr)
This API disables wakeup mechanism.
uint32_t I2CMasterIntStatus(uintptr_t baseAddr)
This API returns the status of interrupts in master mode.
void I2CMasterDisable(uintptr_t baseAddr)
Disables the I2C Module.This will put the I2C module in reset. Only Tx and Rx are cleared,...
uint32_t count
Definition: tisci_rm_ra.h:166
void I2CMasterSetSysTest(uintptr_t baseAddr, uint32_t sysTest)
Set the I2C systest register.
void I2CIdleModeSelect(uintptr_t baseAddr, uint32_t flag)
This API selects one of the idle mode operation mechanism.
uint32_t I2CSlaveIntStatusEx(uintptr_t baseAddr, uint32_t intFlag)
This API returns the status of specified interrupts in slave mode.
void I2CMasterIntEnableEx(uintptr_t baseAddr, uint32_t intFlag)
This API enables only specified I2C interrupts in master mode.
void I2CMasterIntDisableEx(uintptr_t baseAddr, uint32_t intFlag)
This API disables only specified I2C interrupts in master mode.
uint32_t I2CMasterIntRawStatusEx(uintptr_t baseAddr, uint32_t intFlag)
This API returns the raw status of specified interrupts in master mode.
void I2CFlushFifo(uintptr_t baseAddr)
This clears the I2C TX and RX FIFO.
void I2CSlaveDataPut(uintptr_t baseAddr, uint32_t data)
This API transmits a byte from the I2C in Slave mode.
uint32_t I2CMasterIntStatusEx(uintptr_t baseAddr, uint32_t intFlag)
This API returns the status of specified interrupts in master mode.
uint32_t I2CMasterIntRawStatus(uintptr_t baseAddr)
This API returns the raw status of interrupts in master mode.
void I2CMasterInitExpClk(uintptr_t baseAddr, uint32_t sysClk, uint32_t internalClk, uint32_t outputClk)
This API will divide the system clock fed to I2C module between 12 and 100Mhz.It will also configure ...
uint8_t I2CMasterDataGet(uintptr_t baseAddr)
This API Receives a byte that has been sent to the I2C in Master mode.
uint8_t I2CSlaveDataGet(uintptr_t baseAddr)
This API Receives a byte that has been sent to the I2C in Slave mode.
uint32_t I2CMasterErr(uintptr_t baseAddr)
This API determines whether error occurred or not during I2C operation.
void I2CClockActivitySelect(uintptr_t baseAddr, uint32_t flag)
This API disable external clock gating mechanism by selecting appropriate type of clock activity.
void I2CSoftReset(uintptr_t baseAddr)
This API reset the entire I2C module.On reset,are set to power up reset values.
uint32_t data[13]
Definition: csl_udmap_tr.h:625
uint32_t I2CDataCountGet(uintptr_t baseAddr)
This API gets the number of bytes transferred over the I2C bus. The value in the I2C data count regis...
void I2CMasterIntRawStatusClearEx(uintptr_t baseAddr, uint32_t intFlag)
This API Clears the raw status of specified interrupts in master mode.
uint32_t I2CSlaveIntRawStatusEx(uintptr_t baseAddr, uint32_t intFlag)
This API returns the raw status of specified interrupts in slave mode.
void I2CMasterIntClearEx(uintptr_t baseAddr, uint32_t intFlag)
This API Clears the status of specified interrupts in master mode.
void I2CMasterControl(uintptr_t baseAddr, uint32_t cmd)
This API configure I2C in different modes of operation.
void I2CMasterEnable(uintptr_t baseAddr)
This API Enables the I2C module.This will bring the I2C module out of reset.
void I2CSlaveIntEnableEx(uintptr_t baseAddr, uint32_t intFlag)
This API enables only specified I2C interrupts in Slave mode.
void I2CSlaveIntClearEx(uintptr_t baseAddr, uint32_t intFlag)
This API Clears the status of specified interrupts in Slave mode.
void I2CDMATxEventDisable(uintptr_t baseAddr)
This API Disables Transmit event.
void I2CClockBlockingControl(uintptr_t baseAddr, uint32_t ownAdd0, uint32_t ownAdd1, uint32_t ownAdd2, uint32_t ownAdd3)
This API blocks or unblocks the clock for any of the module's four own addresses.
void I2CAutoIdleDisable(uintptr_t baseAddr)
This API disables auto idle mechanism.
void I2CWakeUpEnable(uintptr_t baseAddr, uint32_t eventFlag, uint32_t flag)
This API Enables a specific IRQ/DMA request source to generate an asynchronous wakeup signal....
void I2COwnAddressSet(uintptr_t baseAddr, uint32_t ownAdd, uint32_t flag)
This API configures any one of the own address field out of four present in I2C controller.
void I2CDMARxEventEnable(uintptr_t baseAddr)
This API Enables generation of Receive DMA Event, when I2C_DATA register is full.
gptp_ipc_command_t cmd
Definition: gptpipc.h:140
void I2CAutoIdleEnable(uintptr_t baseAddr)
This API enables auto idle mechanism.
uint32_t I2CGetEnabledIntStatus(uintptr_t baseAddr, uint32_t intFlag)
This API gets the status of enabled interrupt for the interrupt flag passed.
uint32_t I2CSystemStatusGet(uintptr_t baseAddr)
This API indicates the state of the reset in case of hardware reset,global reset or partial reset.
void I2CDMATxEventEnable(uintptr_t baseAddr)
This API Enables generation of Transmit Event,when I2C_DATA register is empty.
void I2CGlobalWakeUpEnable(uintptr_t baseAddr)
This API enables wakeup mechanism.
void I2CMasterSlaveAddrSet(uintptr_t baseAddr, uint32_t slaveAdd)
This API sets the address of the slave device with which I2C wants to communicate.
void I2CFIFOClear(uintptr_t baseAddr, uint32_t flag)
This API clears Transmit and Receive FIFO.
void I2CConfig(uintptr_t baseAddr, uint32_t conParams)
This API configures the I2C operation mode(F/S or HS), slave address 7bit or 10bit,...
uint32_t I2CSlaveIntRawStatus(uintptr_t baseAddr)
This API returns the raw status of interrupts in slave mode.
uint32_t I2CBufferStatus(uintptr_t baseAddr, uint32_t flag)
This API returns the status of the internal buffers.
uint32_t I2CActiveOwnAddressGet(uintptr_t baseAddr)
This API returns one of the module's four own addresses,which external master used when addressing th...
void I2CWakeUpDisable(uintptr_t baseAddr, uint32_t eventFlag, uint32_t flag)
This API Disables a specific IRQ/DMA request source to generate an asynchronous wakeup signal....
void I2CMasterStop(uintptr_t baseAddr)
This API stops a I2C transaction on the bus. This API must be used in case a deliberate STOP needs to...
void I2CFIFOThresholdConfig(uintptr_t baseAddr, uint32_t thresholdVal, uint32_t flag)
This API configures the threshold value for FIFO buffer.
void I2CMasterDataPut(uintptr_t baseAddr, uint8_t data)
This API transmits a byte from the I2C in Master mode.
uint32_t I2CMasterGetSysTest(uintptr_t baseAddr)
Get the I2C systest register.
void I2CSetDataCount(uintptr_t baseAddr, uint32_t count)
This API configure I2C data count register with a value. The value in the I2C data count register ind...
int32_t I2CMasterBusBusy(uintptr_t baseAddr)
This API determines whether bus is busy or not.
void I2CMasterEnableFreeRun(uintptr_t baseAddr)
Enables the I2C free run module.
uint32_t I2CMasterBusy(uintptr_t baseAddr)
This API determines whether Master is busy or not.
void I2CDMARxEventDisable(uintptr_t baseAddr)
This API Disables Receive event.