51 #ifndef ti_dl_dl_i2c__include 52 #define ti_dl_dl_i2c__include 57 #include <ti/devices/msp/msp.h> 60 #ifdef __MSPM0_HAS_I2C__ 74 #define DL_I2C_TX_FIFO_COUNT_MAXIMUM ((uint32_t)I2C_SYS_FENTRIES << 8) 82 #define DL_I2C_RX_FIFO_COUNT_MAXIMUM ((uint32_t)I2C_SYS_FENTRIES) 94 #define DL_I2C_CONTROLLER_STATUS_BUSY (I2C_MSR_BUSY_MASK) 102 #define DL_I2C_CONTROLLER_STATUS_ERROR (I2C_MSR_ERR_MASK) 107 #define DL_I2C_CONTROLLER_STATUS_ADDR_ACK (I2C_MSR_ADRACK_MASK) 112 #define DL_I2C_CONTROLLER_STATUS_DATA_ACK (I2C_MSR_DATACK_MASK) 117 #define DL_I2C_CONTROLLER_STATUS_ARBITRATION_LOST (I2C_MSR_ARBLST_MASK) 122 #define DL_I2C_CONTROLLER_STATUS_IDLE (I2C_MSR_IDLE_MASK) 129 #define DL_I2C_CONTROLLER_STATUS_BUSY_BUS (I2C_MSR_BUSBSY_MASK) 141 #define DL_I2C_TARGET_STATUS_ADDRESS_MATCH (I2C_SSR_ADDRMATCH_MASK) 150 #define DL_I2C_TARGET_STATUS_STALE_TX_FIFO (I2C_SSR_STALE_TXFIFO_MASK) 160 #define DL_I2C_TARGET_STATUS_TX_MODE (I2C_SSR_TXMODE_MASK) 169 #define DL_I2C_TARGET_STATUS_BUS_BUSY (I2C_SSR_BUSBSY_MASK) 179 #define DL_I2C_TARGET_STATUS_RX_MODE (I2C_SSR_RXMODE_MASK) 188 #define DL_I2C_TARGET_STATUS_QUICK_COMMAND_READ_WRITE (I2C_SSR_QCMDRW_MASK) 196 #define DL_I2C_TARGET_STATUS_QUICK_COMMAND_STATUS (I2C_SSR_QCMDST_MASK) 201 #define DL_I2C_TARGET_STATUS_OWN_ADDR_ALTERNATE_MATCHED (I2C_SSR_OAR2SEL_MASK) 206 #define DL_I2C_TARGET_STATUS_TRANSMIT_REQUEST (I2C_SSR_TREQ_MASK) 211 #define DL_I2C_TARGET_STATUS_RECEIVE_REQUEST (I2C_SSR_RREQ_MASK) 221 #define DL_I2C_INTERRUPT_CONTROLLER_RX_DONE (I2C_CPU_INT_IMASK_MRXDONE_SET) 226 #define DL_I2C_INTERRUPT_CONTROLLER_TX_DONE (I2C_CPU_INT_IMASK_MTXDONE_SET) 231 #define DL_I2C_INTERRUPT_CONTROLLER_RXFIFO_TRIGGER \ 232 (I2C_CPU_INT_IMASK_MRXFIFOTRG_SET) 237 #define DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER \ 238 (I2C_CPU_INT_IMASK_MTXFIFOTRG_SET) 243 #define DL_I2C_INTERRUPT_CONTROLLER_RXFIFO_FULL \ 244 (I2C_CPU_INT_IMASK_MRXFIFOFULL_SET) 249 #define DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_EMPTY \ 250 (I2C_CPU_INT_IMASK_MTXEMPTY_SET) 255 #define DL_I2C_INTERRUPT_CONTROLLER_NACK (I2C_CPU_INT_IMASK_MNACK_SET) 260 #define DL_I2C_INTERRUPT_CONTROLLER_START (I2C_CPU_INT_IMASK_MSTART_SET) 265 #define DL_I2C_INTERRUPT_CONTROLLER_STOP (I2C_CPU_INT_IMASK_MSTOP_SET) 270 #define DL_I2C_INTERRUPT_CONTROLLER_ARBITRATION_LOST \ 271 (I2C_CPU_INT_IMASK_MARBLOST_SET) 276 #define DL_I2C_INTERRUPT_CONTROLLER_EVENT1_DMA_DONE \ 277 (I2C_CPU_INT_IMASK_MDMA_DONE_TX_SET) 282 #define DL_I2C_INTERRUPT_CONTROLLER_EVENT2_DMA_DONE \ 283 (I2C_CPU_INT_IMASK_MDMA_DONE_RX_SET) 289 #define DL_I2C_INTERRUPT_CONTROLLER_PEC_RX_ERROR \ 290 (I2C_CPU_INT_IMASK_MPEC_RX_ERR_SET) 296 #define DL_I2C_INTERRUPT_TARGET_RX_DONE (I2C_CPU_INT_IMASK_SRXDONE_SET) 301 #define DL_I2C_INTERRUPT_TARGET_TX_DONE (I2C_CPU_INT_IMASK_STXDONE_SET) 306 #define DL_I2C_INTERRUPT_TARGET_RXFIFO_TRIGGER \ 307 (I2C_CPU_INT_IMASK_SRXFIFOTRG_SET) 312 #define DL_I2C_INTERRUPT_TARGET_TXFIFO_TRIGGER \ 313 (I2C_CPU_INT_IMASK_STXFIFOTRG_SET) 318 #define DL_I2C_INTERRUPT_TARGET_RXFIFO_FULL \ 319 (I2C_CPU_INT_IMASK_SRXFIFOFULL_SET) 325 #define DL_I2C_INTERRUPT_TARGET_TXFIFO_EMPTY \ 326 (I2C_CPU_INT_IMASK_STXEMPTY_SET) 331 #define DL_I2C_INTERRUPT_TARGET_START \ 332 (I2C_CPU_INT_IMASK_SSTART_SET) 337 #define DL_I2C_INTERRUPT_TARGET_STOP (I2C_CPU_INT_IMASK_SSTOP_SET) 342 #define DL_I2C_INTERRUPT_TARGET_GENERAL_CALL \ 343 (I2C_CPU_INT_IMASK_SGENCALL_SET) 348 #define DL_I2C_INTERRUPT_TARGET_EVENT1_DMA_DONE \ 349 (I2C_CPU_INT_IMASK_SDMA_DONE_TX_SET) 354 #define DL_I2C_INTERRUPT_TARGET_EVENT2_DMA_DONE \ 355 (I2C_CPU_INT_IMASK_SDMA_DONE_RX_SET) 361 #define DL_I2C_INTERRUPT_TARGET_PEC_RX_ERROR \ 362 (I2C_CPU_INT_IMASK_SPEC_RX_ERR_SET) 367 #define DL_I2C_INTERRUPT_TARGET_TXFIFO_UNDERFLOW \ 368 (I2C_CPU_INT_IMASK_STX_UNFL_SET) 373 #define DL_I2C_INTERRUPT_TARGET_RXFIFO_OVERFLOW \ 374 (I2C_CPU_INT_IMASK_SRX_OVFL_SET) 379 #define DL_I2C_INTERRUPT_TARGET_ARBITRATION_LOST \ 380 (I2C_CPU_INT_IMASK_SARBLOST_SET) 386 #define DL_I2C_TARGET_INTERRUPT_OVERFLOW (I2C_CPU_INT_IMASK_INTR_OVFL_SET) 391 #define DL_I2C_INTERRUPT_TIMEOUT_A (I2C_CPU_INT_IMASK_TIMEOUTA_SET) 396 #define DL_I2C_INTERRUPT_TIMEOUT_B (I2C_CPU_INT_IMASK_TIMEOUTB_SET) 407 #define DL_I2C_DMA_INTERRUPT_TARGET_TXFIFO_TRIGGER \ 408 (I2C_DMA_TRIG1_IMASK_STXFIFOTRG_SET) 413 #define DL_I2C_DMA_INTERRUPT_TARGET_RXFIFO_TRIGGER \ 414 (I2C_DMA_TRIG1_IMASK_SRXFIFOTRG_SET) 419 #define DL_I2C_DMA_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER \ 420 (I2C_DMA_TRIG1_IMASK_MTXFIFOTRG_SET) 425 #define DL_I2C_DMA_INTERRUPT_CONTROLLER_RXFIFO_TRIGGER \ 426 (I2C_DMA_TRIG1_IMASK_MRXFIFOTRG_SET) 440 I2C_DMA_TRIG1_IIDX_STAT_STXFIFOTRG,
443 I2C_DMA_TRIG1_IIDX_STAT_SRXFIFOTRG
498 I2C_TARGET_PECSR_PECSTS_CHECK_CLEARED,
506 I2C_TARGET_PECSR_PECSTS_ERROR_CLEARED,
565 I2C_CONTROLLER_PECSR_PECSTS_CHECK_SET,
569 I2C_CONTROLLER_PECSR_PECSTS_CHECK_CLEARED,
577 I2C_CONTROLLER_PECSR_PECSTS_ERROR_SET,
581 I2C_CONTROLLER_PECSR_PECSTS_ERROR_CLEARED,
698 I2C_CPU_INT_IIDX_STAT_MDMA_DONE_TX,
701 I2C_CPU_INT_IIDX_STAT_MDMA_DONE_RX,
787 I2C_Regs *i2c, uint8_t *buffer, uint16_t count);
815 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFIFOCNT_MASK) ==
816 I2C_MFIFOSR_TXFIFOCNT_MINIMUM);
831 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFIFOCNT_MASK) ==
832 I2C_MFIFOSR_TXFIFOCNT_MAXIMUM);
847 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFIFOCNT_MASK) ==
848 I2C_MFIFOSR_RXFIFOCNT_MINIMUM);
861 i2c->MASTER.MCTR = 0x00;
876 uint32_t targetAddr, DL_I2C_CONTROLLER_DIRECTION direction,
881 ((targetAddr << I2C_MSA_SADDR_OFS) | (uint32_t) direction),
882 (I2C_MSA_SADDR_MASK | I2C_MSA_DIR_MASK));
886 (((uint32_t) length << I2C_MCTR_MBLEN_OFS) | I2C_MCTR_BURSTRUN_ENABLE |
887 I2C_MCTR_START_ENABLE | I2C_MCTR_STOP_ENABLE),
888 (I2C_MCTR_MBLEN_MASK | I2C_MCTR_BURSTRUN_MASK | I2C_MCTR_START_MASK |
889 I2C_MCTR_STOP_MASK));
907 uint32_t targetAddr, DL_I2C_CONTROLLER_DIRECTION direction,
908 uint16_t length, DL_I2C_CONTROLLER_START start,
909 DL_I2C_CONTROLLER_STOP stop, DL_I2C_CONTROLLER_ACK ack)
913 ((targetAddr << I2C_MSA_SADDR_OFS) | (uint32_t) direction),
914 (I2C_MSA_SADDR_MASK | I2C_MSA_DIR_MASK));
917 (((uint32_t) length << I2C_MCTR_MBLEN_OFS) | I2C_MCTR_BURSTRUN_ENABLE |
918 (uint32_t) start | (uint32_t) stop | (uint32_t) ack),
919 (I2C_MCTR_MBLEN_MASK | I2C_MCTR_BURSTRUN_MASK | I2C_MCTR_START_MASK |
920 I2C_MCTR_STOP_MASK | I2C_MCTR_ACK_MASK));
935 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFIFOCNT_MASK) ==
936 I2C_SFIFOSR_TXFIFOCNT_MINIMUM);
951 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFIFOCNT_MASK) ==
967 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFIFOCNT_MASK) ==
968 I2C_SFIFOSR_RXFIFOCNT_MINIMUM);
1056 i2c->GPRCM.PWREN = (I2C_PWREN_KEY_UNLOCK_W | I2C_PWREN_ENABLE_ENABLE);
1066 i2c->GPRCM.PWREN = (I2C_PWREN_KEY_UNLOCK_W | I2C_PWREN_ENABLE_DISABLE);
1080 (i2c->GPRCM.PWREN & I2C_PWREN_ENABLE_MASK) == I2C_PWREN_ENABLE_ENABLE);
1091 (I2C_RSTCTL_KEY_UNLOCK_W | I2C_RSTCTL_RESETSTKYCLR_CLR |
1092 I2C_RSTCTL_RESETASSERT_ASSERT);
1106 return ((i2c->GPRCM.STAT & I2C_STAT_RESETSTKY_MASK) ==
1107 I2C_STAT_RESETSTKY_RESET);
1121 I2C_Regs *i2c, DL_I2C_CLOCK clockSource)
1124 I2C_CLKSEL_BUSCLK_SEL_MASK | I2C_CLKSEL_MFCLK_SEL_MASK);
1136 I2C_Regs *i2c, DL_I2C_CLOCK_DIVIDE clockDivider)
1139 &i2c->CLKDIV, (uint32_t) clockDivider, I2C_CLKDIV_RATIO_MASK);
1153 __STATIC_INLINE DL_I2C_ANALOG_GLITCH_FILTER_WIDTH
1156 uint32_t filterWidth = i2c->GFCTL & I2C_GFCTL_AGFSEL_MASK;
1158 return (DL_I2C_ANALOG_GLITCH_FILTER_WIDTH)(filterWidth);
1171 I2C_Regs *i2c, DL_I2C_ANALOG_GLITCH_FILTER_WIDTH filterWidth)
1174 &i2c->GFCTL, (uint32_t) filterWidth, I2C_GFCTL_AGFSEL_MASK);
1189 __STATIC_INLINE DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH
1192 uint32_t filterWidth = i2c->GFCTL & I2C_GFCTL_DGFSEL_MASK;
1194 return (DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH)(filterWidth);
1208 I2C_Regs *i2c, DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH filterWidth)
1211 &i2c->GFCTL, (uint32_t) filterWidth, I2C_GFCTL_DGFSEL_MASK);
1221 i2c->GFCTL &= ~(I2C_GFCTL_AGFEN_MASK);
1236 return ((i2c->GFCTL & I2C_GFCTL_AGFEN_MASK) == I2C_GFCTL_AGFEN_ENABLE);
1246 i2c->GFCTL |= I2C_GFCTL_AGFEN_ENABLE;
1261 uint32_t direction = i2c->MASTER.MSA & I2C_MSA_DIR_MASK;
1263 return (DL_I2C_CONTROLLER_DIRECTION)(direction);
1275 I2C_Regs *i2c, DL_I2C_CONTROLLER_DIRECTION direction)
1278 &i2c->MASTER.MSA, (uint32_t) direction, I2C_MSA_DIR_MASK);
1299 return ((i2c->MASTER.MSA & I2C_MSA_SADDR_MASK) >> I2C_MSA_SADDR_OFS);
1316 I2C_Regs *i2c, uint32_t targetAddress)
1319 I2C_MSA_SADDR_MASK);
1332 __STATIC_INLINE DL_I2C_CONTROLLER_ADDRESSING_MODE
1335 uint32_t mode = i2c->MASTER.MSA & I2C_MSA_MMODE_MASK;
1337 return (DL_I2C_CONTROLLER_ADDRESSING_MODE)(mode);
1351 I2C_Regs *i2c, DL_I2C_CONTROLLER_ADDRESSING_MODE mode)
1363 i2c->MASTER.MCTR &= ~(I2C_MCTR_MACKOEN_MASK);
1379 (i2c->MASTER.MCTR & I2C_MCTR_MACKOEN_MASK) == I2C_MCTR_MACKOEN_ENABLE);
1399 i2c->MASTER.MCTR |= I2C_MCTR_MACKOEN_ENABLE;
1409 i2c->MASTER.MCTR &= ~(I2C_MCTR_RD_ON_TXEMPTY_MASK);
1424 return ((i2c->MASTER.MCTR & I2C_MCTR_RD_ON_TXEMPTY_MASK) ==
1425 I2C_MCTR_RD_ON_TXEMPTY_ENABLE);
1447 i2c->MASTER.MCTR |= I2C_MCTR_RD_ON_TXEMPTY_ENABLE;
1461 return (i2c->MASTER.CONTROLLER_I2CPECCTL &
1462 I2C_CONTROLLER_I2CPECCTL_PECCNT_MASK);
1476 I2C_Regs *i2c, uint32_t count)
1479 I2C_CONTROLLER_I2CPECCTL_PECCNT_MASK);
1489 i2c->MASTER.CONTROLLER_I2CPECCTL &= ~(I2C_CONTROLLER_I2CPECCTL_PECEN_MASK);
1505 return ((i2c->MASTER.CONTROLLER_I2CPECCTL &
1506 I2C_CONTROLLER_I2CPECCTL_PECEN_MASK) ==
1507 I2C_CONTROLLER_I2CPECCTL_PECEN_ENABLE);
1526 i2c->MASTER.CONTROLLER_I2CPECCTL |= I2C_CONTROLLER_I2CPECCTL_PECEN_ENABLE;
1542 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_CHECK_MASK);
1557 __STATIC_INLINE DL_I2C_CONTROLLER_PEC_STATUS
1561 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_CHECK_MASK;
1563 return (DL_I2C_CONTROLLER_PEC_STATUS)(status);
1578 __STATIC_INLINE DL_I2C_CONTROLLER_PEC_CHECK_ERROR
1582 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_ERROR_MASK;
1584 return (DL_I2C_CONTROLLER_PEC_CHECK_ERROR)(error);
1594 i2c->MASTER.MCTR &= ~(I2C_MCTR_BURSTRUN_MASK);
1609 return ((i2c->GFCTL & I2C_MCTR_BURSTRUN_MASK) == I2C_MCTR_BURSTRUN_ENABLE);
1619 i2c->MASTER.MCTR |= I2C_MCTR_BURSTRUN_ENABLE;
1629 i2c->MASTER.MCTR &= ~(I2C_MCTR_START_MASK);
1644 return ((i2c->MASTER.MCTR & I2C_MCTR_START_MASK) == I2C_MCTR_START_ENABLE);
1654 i2c->MASTER.MCTR |= I2C_MCTR_START_ENABLE;
1664 i2c->MASTER.MCTR &= ~(I2C_MCTR_STOP_MASK);
1679 return ((i2c->MASTER.MCTR & I2C_MCTR_STOP_MASK) == I2C_MCTR_STOP_ENABLE);
1689 i2c->MASTER.MCTR |= I2C_MCTR_STOP_ENABLE;
1703 i2c->MASTER.MCTR &= ~(I2C_MCTR_ACK_MASK);
1719 return ((i2c->MASTER.MCTR & I2C_MCTR_ACK_MASK) == I2C_MCTR_ACK_ENABLE);
1733 i2c->MASTER.MCTR |= I2C_MCTR_ACK_MASK;
1747 return ((i2c->MASTER.MCTR & I2C_MCTR_MBLEN_MASK) >> I2C_MCTR_MBLEN_OFS);
1758 I2C_Regs *i2c, uint32_t length)
1761 I2C_MCTR_MBLEN_MASK);
1775 return (i2c->MASTER.MSR);
1790 (i2c->MASTER.MSR & I2C_MSR_MBCNT_MASK) >> I2C_MSR_MBCNT_OFS));
1806 return ((uint8_t)(i2c->MASTER.MRXDATA & I2C_MRXDATA_VALUE_MASK));
1820 i2c->MASTER.MTXDATA = data;
1846 return ((uint8_t)(i2c->MASTER.MTPR & I2C_MTPR_TPR_MASK));
1870 i2c->MASTER.MTPR = period;
1880 i2c->MASTER.MCR &= ~(I2C_MCR_LPBK_MASK);
1895 return ((i2c->MASTER.MCR & I2C_MCR_LPBK_MASK) == I2C_MCR_LPBK_ENABLE);
1905 i2c->MASTER.MCR |= I2C_MCR_LPBK_ENABLE;
1915 i2c->MASTER.MCR &= ~(I2C_MCR_MMST_MASK);
1930 return ((i2c->MASTER.MCR & I2C_MCR_MMST_MASK) == I2C_MCR_MMST_ENABLE);
1944 i2c->MASTER.MCR |= I2C_MCR_MMST_ENABLE;
1954 i2c->MASTER.MCR &= ~(I2C_MCR_ACTIVE_MASK);
1969 return ((i2c->MASTER.MCR & I2C_MCR_ACTIVE_MASK) == I2C_MCR_ACTIVE_ENABLE);
1982 i2c->MASTER.MCR |= I2C_MCR_ACTIVE_ENABLE;
1996 i2c->MASTER.MCR &= ~(I2C_MCR_CLKSTRETCH_MASK);
2011 return ((i2c->MASTER.MCR & I2C_MCR_CLKSTRETCH_MASK) ==
2012 I2C_MCR_CLKSTRETCH_ENABLE);
2026 i2c->MASTER.MCR |= I2C_MCR_CLKSTRETCH_ENABLE;
2040 uint32_t sclStatus = i2c->MASTER.MBMON & I2C_MBMON_SCL_MASK;
2042 return (DL_I2C_CONTROLLER_SCL)(sclStatus);
2056 uint32_t sdaStatus = i2c->MASTER.MBMON & I2C_MBMON_SDA_MASK;
2058 return (DL_I2C_CONTROLLER_SDA)(sdaStatus);
2073 uint32_t level = i2c->MASTER.MFIFOCTL & I2C_MFIFOCTL_TXTRIG_MASK;
2075 return (DL_I2C_TX_FIFO_LEVEL)(level);
2087 I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
2090 &i2c->MASTER.MFIFOCTL, (uint32_t) level, I2C_MFIFOCTL_TXTRIG_MASK);
2103 i2c->MASTER.MFIFOCTL &= ~(I2C_MFIFOCTL_TXFLUSH_MASK);
2113 i2c->MASTER.MFIFOCTL |= I2C_MFIFOCTL_TXFLUSH_MASK;
2128 uint32_t level = i2c->MASTER.MFIFOCTL & I2C_MFIFOCTL_RXTRIG_MASK;
2130 return (DL_I2C_RX_FIFO_LEVEL)(level);
2142 I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
2145 &i2c->MASTER.MFIFOCTL, (uint32_t) level, I2C_MFIFOCTL_RXTRIG_MASK);
2158 i2c->MASTER.MFIFOCTL &= ~(I2C_MFIFOCTL_RXFLUSH_MASK);
2168 i2c->MASTER.MFIFOCTL |= I2C_MFIFOCTL_RXFLUSH_MASK;
2182 return (i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFIFOCNT_MASK);
2196 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFIFOCNT_MASK) >>
2197 I2C_MFIFOSR_TXFIFOCNT_OFS);
2212 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFLUSH_MASK) ==
2213 I2C_MFIFOSR_RXFLUSH_ACTIVE);
2228 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFLUSH_MASK) ==
2229 I2C_MFIFOSR_TXFLUSH_ACTIVE);
2263 return (i2c->SLAVE.SOAR & I2C_SOAR_OAR_MASK);
2275 i2c->SLAVE.SOAR |= I2C_SOAR_OAREN_ENABLE;
2285 i2c->SLAVE.SOAR &= ~(I2C_SOAR_OAREN_MASK);
2300 return ((i2c->SLAVE.SOAR & I2C_SOAR_OAREN_MASK) == I2C_SOAR_OAREN_ENABLE);
2314 I2C_Regs *i2c, DL_I2C_TARGET_ADDRESSING_MODE mode)
2317 &i2c->SLAVE.SOAR, (uint32_t) mode, I2C_SOAR_SMODE_MASK);
2332 uint32_t mode = i2c->SLAVE.SOAR & I2C_SOAR_SMODE_MASK;
2334 return (DL_I2C_TARGET_ADDRESSING_MODE)(mode);
2347 return (i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2_MASK);
2357 I2C_Regs *i2c, uint32_t addr)
2374 return ((i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2_MASK_MASK) >>
2375 I2C_SOAR2_OAR2_MASK_OFS);
2391 I2C_Regs *i2c, uint32_t addressMask)
2394 addressMask << I2C_SOAR2_OAR2_MASK_OFS, I2C_SOAR2_OAR2_MASK_MASK);
2404 i2c->SLAVE.SOAR2 &= ~(I2C_SOAR2_OAR2EN_MASK);
2420 (i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2EN_MASK) == I2C_SOAR2_OAR2EN_ENABLE);
2430 i2c->SLAVE.SOAR2 |= I2C_SOAR2_OAR2EN_ENABLE;
2446 (i2c->SLAVE.SSR & I2C_SSR_ADDRMATCH_MASK) >> I2C_SSR_ADDRMATCH_OFS);
2462 i2c->SLAVE.SCTR &= ~(I2C_SCTR_SCLKSTRETCH_MASK);
2477 return ((i2c->SLAVE.SCTR & I2C_SCTR_SCLKSTRETCH_MASK) ==
2478 I2C_SCTR_SCLKSTRETCH_ENABLE);
2494 i2c->SLAVE.SCTR |= I2C_SCTR_SCLKSTRETCH_ENABLE;
2510 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXEMPTY_ON_TREQ_MASK);
2526 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXEMPTY_ON_TREQ_MASK) ==
2527 I2C_SCTR_TXEMPTY_ON_TREQ_ENABLE);
2541 i2c->SLAVE.SCTR |= I2C_SCTR_TXEMPTY_ON_TREQ_ENABLE;
2554 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXTRIG_TXMODE_MASK);
2569 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXTRIG_TXMODE_MASK) ==
2570 I2C_SCTR_TXTRIG_TXMODE_ENABLE);
2591 i2c->SLAVE.SCTR |= I2C_SCTR_TXTRIG_TXMODE_ENABLE;
2604 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXWAIT_STALE_TXFIFO_MASK);
2623 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXWAIT_STALE_TXFIFO_MASK) ==
2624 I2C_SCTR_TXWAIT_STALE_TXFIFO_ENABLE);
2641 i2c->SLAVE.SCTR |= I2C_SCTR_TXWAIT_STALE_TXFIFO_ENABLE;
2658 i2c->SLAVE.SCTR &= ~(I2C_SCTR_RXFULL_ON_RREQ_MASK);
2673 return ((i2c->SLAVE.SCTR & I2C_SCTR_RXFULL_ON_RREQ_MASK) ==
2674 I2C_SCTR_RXFULL_ON_RREQ_ENABLE);
2690 i2c->SLAVE.SCTR |= I2C_SCTR_RXFULL_ON_RREQ_ENABLE;
2705 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_DEFHOSTADR_MASK);
2721 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_DEFHOSTADR_MASK) ==
2722 I2C_SCTR_EN_DEFHOSTADR_ENABLE);
2735 i2c->SLAVE.SCTR |= I2C_SCTR_EN_DEFHOSTADR_ENABLE;
2751 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_ALRESPADR_MASK);
2767 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_ALRESPADR_MASK) ==
2768 I2C_SCTR_EN_ALRESPADR_ENABLE);
2781 i2c->SLAVE.SCTR |= I2C_SCTR_EN_ALRESPADR_ENABLE;
2797 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_DEFDEVADR_MASK);
2813 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_DEFDEVADR_MASK) ==
2814 I2C_SCTR_EN_DEFDEVADR_ENABLE);
2827 i2c->SLAVE.SCTR |= I2C_SCTR_EN_DEFDEVADR_ENABLE;
2840 i2c->SLAVE.SCTR &= ~(I2C_SCTR_SWUEN_MASK);
2855 return ((i2c->SLAVE.SCTR & I2C_SCTR_SWUEN_MASK) == I2C_SCTR_SWUEN_ENABLE);
2870 i2c->SLAVE.SCTR |= I2C_SCTR_SWUEN_ENABLE;
2880 i2c->SLAVE.SCTR &= ~(I2C_SCTR_ACTIVE_MASK);
2896 (i2c->SLAVE.SCTR & I2C_SCTR_ACTIVE_MASK) == I2C_SCTR_ACTIVE_ENABLE);
2906 i2c->SLAVE.SCTR |= I2C_SCTR_ACTIVE_ENABLE;
2916 i2c->SLAVE.SCTR &= ~(I2C_SCTR_GENCALL_MASK);
2932 (i2c->SLAVE.SCTR & I2C_SCTR_GENCALL_MASK) == I2C_SCTR_GENCALL_ENABLE);
2942 i2c->SLAVE.SCTR |= I2C_SCTR_GENCALL_ENABLE;
2956 return (i2c->SLAVE.SSR);
2972 return (uint8_t)(i2c->SLAVE.SRXDATA & I2C_SRXDATA_VALUE_MASK);
2984 i2c->SLAVE.STXDATA = data;
2997 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_MASK);
3012 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_MASK) ==
3013 I2C_SACKCTL_ACKOEN_ENABLE);
3029 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ENABLE;
3044 __STATIC_INLINE DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE
3047 uint32_t value = i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOVAL_MASK;
3049 return (DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE)(value);
3065 I2C_Regs *i2c, DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE value)
3068 &i2c->SLAVE.SACKCTL, (uint32_t) value, I2C_SACKCTL_ACKOVAL_MASK);
3078 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_START_MASK);
3093 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_START_MASK) ==
3094 I2C_SACKCTL_ACKOEN_ON_START_ENABLE);
3109 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_START_ENABLE;
3119 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_PECNEXT_MASK);
3135 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_PECNEXT_MASK) ==
3136 I2C_SACKCTL_ACKOEN_ON_PECNEXT_ENABLE);
3154 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_PECNEXT_ENABLE;
3164 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_PECDONE_MASK);
3180 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_PECDONE_MASK) ==
3181 I2C_SACKCTL_ACKOEN_ON_PECDONE_ENABLE);
3196 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_PECDONE_ENABLE;
3211 return (i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECCTL_PECCNT_MASK);
3226 I2C_Regs *i2c, uint32_t count)
3229 &i2c->SLAVE.TARGET_PECCTL, count, I2C_TARGET_PECCTL_PECCNT_MASK);
3239 i2c->SLAVE.TARGET_PECCTL &= ~(I2C_TARGET_PECCTL_PECEN_MASK);
3255 return ((i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECCTL_PECEN_MASK) ==
3256 I2C_TARGET_PECCTL_PECEN_ENABLE);
3275 i2c->SLAVE.TARGET_PECCTL |= I2C_TARGET_PECCTL_PECEN_ENABLE;
3290 return (i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECSR_PECBYTECNT_MASK);
3310 i2c->SLAVE.TARGET_PECSR & I2C_TARGET_PECSR_PECSTS_CHECK_MASK;
3312 return (DL_I2C_TARGET_PEC_STATUS)(status);
3331 i2c->SLAVE.TARGET_PECSR & I2C_TARGET_PECSR_PECSTS_ERROR_MASK;
3333 return (DL_I2C_TARGET_PEC_CHECK_ERROR)(status);
3348 uint32_t level = i2c->SLAVE.SFIFOCTL & I2C_SFIFOCTL_TXTRIG_MASK;
3350 return (DL_I2C_TX_FIFO_LEVEL)(level);
3362 I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
3365 (uint32_t) I2C_SFIFOCTL_TXTRIG_MASK);
3378 i2c->SLAVE.SFIFOCTL &= ~(I2C_SFIFOCTL_TXFLUSH_MASK);
3388 i2c->SLAVE.SFIFOCTL |= I2C_SFIFOCTL_TXFLUSH_MASK;
3401 i2c->SLAVE.SFIFOCTL &= ~(I2C_SFIFOCTL_RXFLUSH_MASK);
3411 i2c->SLAVE.SFIFOCTL |= I2C_SFIFOCTL_RXFLUSH_MASK;
3426 uint32_t level = i2c->SLAVE.SFIFOCTL & I2C_SFIFOCTL_RXTRIG_MASK;
3428 return (DL_I2C_RX_FIFO_LEVEL)(level);
3440 I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
3443 &i2c->SLAVE.SFIFOCTL, (uint32_t) level, I2C_SFIFOCTL_RXTRIG_MASK);
3457 return (i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFIFOCNT_MASK);
3471 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFIFOCNT_MASK) >>
3472 I2C_SFIFOSR_TXFIFOCNT_OFS);
3487 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFLUSH_MASK) ==
3488 I2C_SFIFOSR_RXFLUSH_ACTIVE);
3503 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFLUSH_MASK) ==
3504 I2C_SFIFOSR_TXFLUSH_ACTIVE);
3516 I2C_Regs *i2c, uint32_t interruptMask)
3518 i2c->CPU_INT.IMASK |= interruptMask;
3530 I2C_Regs *i2c, uint32_t interruptMask)
3532 i2c->CPU_INT.IMASK &= ~(interruptMask);
3548 I2C_Regs *i2c, uint32_t interruptMask)
3550 return (i2c->CPU_INT.IMASK & interruptMask);
3571 I2C_Regs *i2c, uint32_t interruptMask)
3573 return (i2c->CPU_INT.MIS & interruptMask);
3592 I2C_Regs *i2c, uint32_t interruptMask)
3594 return (i2c->CPU_INT.RIS & interruptMask);
3611 return ((DL_I2C_IIDX) i2c->CPU_INT.IIDX);
3623 I2C_Regs *i2c, uint32_t interruptMask)
3625 i2c->CPU_INT.ICLR = interruptMask;
3649 i2c->DMA_TRIG1.IMASK = interrupt;
3652 i2c->DMA_TRIG0.IMASK = interrupt;
3678 i2c->DMA_TRIG1.IMASK &= ~(interrupt);
3681 i2c->DMA_TRIG0.IMASK &= ~(interrupt);
3709 volatile uint32_t *pReg = &i2c->DMA_TRIG1.IMASK;
3711 return ((*(pReg + (uint32_t) index) & interruptMask));
3739 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.MIS;
3741 return ((*(pReg + (uint32_t) index) & interruptMask));
3765 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.RIS;
3767 return ((*(pReg + (uint32_t) index) & interruptMask));
3789 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.IIDX;
3791 return (DL_I2C_DMA_IIDX)((*(pReg + (uint32_t) index)));
3810 i2c->DMA_TRIG1.ICLR |= interrupt;
3813 i2c->DMA_TRIG0.ICLR |= interrupt;
3830 i2c->GFCTL &= ~(I2C_GFCTL_CHAIN_MASK);
3845 return ((i2c->GFCTL & I2C_GFCTL_CHAIN_MASK) == I2C_GFCTL_CHAIN_ENABLE);
3858 i2c->GFCTL |= I2C_GFCTL_CHAIN_ENABLE;
3872 return (i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTLA_MASK);
3903 i2c->TIMEOUT_CTL &= ~(I2C_TIMEOUT_CTL_TCNTAEN_MASK);
3918 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTAEN_MASK) ==
3919 I2C_TIMEOUT_CTL_TCNTAEN_ENABLE);
3929 i2c->TIMEOUT_CTL |= I2C_TIMEOUT_CTL_TCNTAEN_ENABLE;
3946 return (i2c->TIMEOUT_CNT & I2C_TIMEOUT_CNT_TCNTA_MASK);
3960 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTLB_MASK) >>
3961 I2C_TIMEOUT_CTL_TCNTLB_OFS);
3981 (count << I2C_TIMEOUT_CTL_TCNTLB_OFS), I2C_TIMEOUT_CTL_TCNTLB_MASK);
3991 i2c->TIMEOUT_CTL &= ~(I2C_TIMEOUT_CTL_TCNTBEN_MASK);
4006 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTBEN_MASK) ==
4007 I2C_TIMEOUT_CTL_TCNTBEN_ENABLE);
4017 i2c->TIMEOUT_CTL |= I2C_TIMEOUT_CTL_TCNTBEN_ENABLE;
4034 return (i2c->TIMEOUT_CNT & I2C_TIMEOUT_CNT_TCNTB_MASK);
bool DL_I2C_receiveTargetDataCheck(I2C_Regs *i2c, uint8_t *buffer)
Receive target data.
__STATIC_INLINE void DL_I2C_disableController(I2C_Regs *i2c)
Disable controller.
Definition: dl_i2c.h:1952
__STATIC_INLINE void DL_I2C_setTargetAddress(I2C_Regs *i2c, uint32_t targetAddress)
Set the address of the target being addressed when configured as an I2C controller.
Definition: dl_i2c.h:1315
DL_I2C_CLOCK_DIVIDE
Definition: dl_i2c.h:463
__STATIC_INLINE void DL_I2C_disableTargetTXWaitWhenTXFIFOStale(I2C_Regs *i2c)
Disable target TX transfer waits when stale data in TX FIFO.
Definition: dl_i2c.h:2602
DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE
Definition: dl_i2c.h:665
__STATIC_INLINE DL_I2C_TARGET_PEC_STATUS DL_I2C_getTargetPECCheckedStatus(I2C_Regs *i2c)
Get status if SMBus/PMBus target PEC was checked in last transaction.
Definition: dl_i2c.h:3306
__STATIC_INLINE void DL_I2C_enableTargetClockStretching(I2C_Regs *i2c)
Enable target clock stretching.
Definition: dl_i2c.h:2492
__STATIC_INLINE void DL_Common_updateReg(volatile uint32_t *reg, uint32_t val, uint32_t mask)
Writes value to specified register - retaining bits unaffected by mask.
Definition: dl_common.h:63
__STATIC_INLINE uint32_t DL_I2C_getControllerStatus(I2C_Regs *i2c)
Get status of I2C bus controller for controller.
Definition: dl_i2c.h:1773
__STATIC_INLINE void DL_I2C_enableTimeoutB(I2C_Regs *i2c)
Enable Timeout Counter B.
Definition: dl_i2c.h:4015
__STATIC_INLINE bool DL_I2C_isStartConditionEnabled(I2C_Regs *i2c)
Checks if I2C START generation is enabled.
Definition: dl_i2c.h:1642
__STATIC_INLINE void DL_I2C_enableTargetTXWaitWhenTXFIFOStale(I2C_Regs *i2c)
Enable target TX transfer waits when stale data in TX FIFO.
Definition: dl_i2c.h:2639
__STATIC_INLINE bool DL_I2C_isLoopbackModeEnabled(I2C_Regs *i2c)
Checks if loopback mode is enabled.
Definition: dl_i2c.h:1893
__STATIC_INLINE bool DL_I2C_isTargetTXWaitWhenTXFIFOStaleEnabled(I2C_Regs *i2c)
Checks if target TX transfer waits when stale data in TX FIFO is enabled.
Definition: dl_i2c.h:2621
__STATIC_INLINE uint32_t DL_I2C_getEnabledInterruptStatus(I2C_Regs *i2c, uint32_t interruptMask)
Check interrupt flag of enabled I2C interrupts.
Definition: dl_i2c.h:3570
__STATIC_INLINE uint32_t DL_I2C_getCurrentTimeoutACounter(I2C_Regs *i2c)
Get the current Timer Counter A value.
Definition: dl_i2c.h:3944
__STATIC_INLINE void DL_I2C_disableTargetTXTriggerInTXMode(I2C_Regs *i2c)
Disable target TX trigger in TX mode.
Definition: dl_i2c.h:2552
__STATIC_INLINE void DL_I2C_startFlushControllerRXFIFO(I2C_Regs *i2c)
Start controller RX FIFO flush.
Definition: dl_i2c.h:2166
__STATIC_INLINE uint32_t DL_I2C_getTransactionLength(I2C_Regs *i2c)
Get transaction length in bytes.
Definition: dl_i2c.h:1745
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOFlushActive(I2C_Regs *i2c)
Checks if target TX FIFO flush is active.
Definition: dl_i2c.h:3501
__STATIC_INLINE void DL_I2C_disableDefaultHostAddress(I2C_Regs *i2c)
Disable SMBus/PMBus default host address of 000 1000b.
Definition: dl_i2c.h:2703
DL_I2C_TARGET_PEC_STATUS
Definition: dl_i2c.h:491
__STATIC_INLINE uint32_t DL_I2C_getEnabledDMAEventStatus(I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index, uint32_t interruptMask)
Check interrupt flag of enabled I2C interrupt for DMA event.
Definition: dl_i2c.h:3736
__STATIC_INLINE bool DL_I2C_isACKOverrideOnPECNextEnabled(I2C_Regs *i2c)
Checks if target ACK override when SMBus/PMBus PEC is next byte is enabled.
Definition: dl_i2c.h:3133
__STATIC_INLINE void DL_I2C_disableGeneralCall(I2C_Regs *i2c)
Disable general call address of 000 0000b.
Definition: dl_i2c.h:2914
__STATIC_INLINE void DL_I2C_disableTimeoutB(I2C_Regs *i2c)
Disable Timeout Counter B.
Definition: dl_i2c.h:3989
bool DL_I2C_transmitTargetDataCheck(I2C_Regs *i2c, uint8_t data)
Transmit target data.
__STATIC_INLINE uint32_t DL_I2C_getRawInterruptStatus(I2C_Regs *i2c, uint32_t interruptMask)
Check interrupt flag of any I2C interrupt.
Definition: dl_i2c.h:3591
__STATIC_INLINE void DL_I2C_enableACKOverrideOnStart(I2C_Regs *i2c)
Enable target ACK override on Start condition.
Definition: dl_i2c.h:3107
__STATIC_INLINE bool DL_I2C_isTargetRXFIFOFlushActive(I2C_Regs *i2c)
Checks if target RX FIFO flush is active.
Definition: dl_i2c.h:3485
void DL_I2C_flushControllerTXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the controller TX FIFO.
__STATIC_INLINE void DL_I2C_disableDMAEvent(I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index, uint32_t interrupt)
Disables I2C interrupt from triggering DMA events.
Definition: dl_i2c.h:3673
__STATIC_INLINE void DL_I2C_startControllerTransferAdvanced(I2C_Regs *i2c, uint32_t targetAddr, DL_I2C_CONTROLLER_DIRECTION direction, uint16_t length, DL_I2C_CONTROLLER_START start, DL_I2C_CONTROLLER_STOP stop, DL_I2C_CONTROLLER_ACK ack)
Sets up a transfer from I2C controller with control of START, STOP and ACK.
Definition: dl_i2c.h:906
uint8_t DL_I2C_receiveTargetDataBlocking(I2C_Regs *i2c)
Receive target data, waiting until receive request.
__STATIC_INLINE void DL_I2C_disableInterrupt(I2C_Regs *i2c, uint32_t interruptMask)
Disable I2C interrupts.
Definition: dl_i2c.h:3529
__STATIC_INLINE void DL_I2C_disableTargetWakeup(I2C_Regs *i2c)
Disable target wakeup.
Definition: dl_i2c.h:2838
__STATIC_INLINE bool DL_I2C_isDefaultHostAddressEnabled(I2C_Regs *i2c)
Checks if SMBus/PMBus default host address of 000 1000b is enabled.
Definition: dl_i2c.h:2719
__STATIC_INLINE void DL_I2C_setControllerPECCountValue(I2C_Regs *i2c, uint32_t count)
Set the SMBus/PMBus Packet Error Checking (PEC) count value.
Definition: dl_i2c.h:1475
__STATIC_INLINE DL_I2C_TX_FIFO_LEVEL DL_I2C_getTargetTXFIFOThreshold(I2C_Regs *i2c)
Get target TX FIFO threshold level.
Definition: dl_i2c.h:3345
DL_I2C_CONTROLLER_SCL
Definition: dl_i2c.h:585
__STATIC_INLINE void DL_I2C_startFlushControllerTXFIFO(I2C_Regs *i2c)
Start controller TX FIFO flush.
Definition: dl_i2c.h:2111
uint16_t DL_I2C_fillControllerTXFIFO(I2C_Regs *i2c, uint8_t *buffer, uint16_t count)
Fills the controller TX FIFO with data.
DL_I2C_CLOCK_DIVIDE divideRatio
Definition: dl_i2c.h:754
__STATIC_INLINE void DL_I2C_disableControllerBurst(I2C_Regs *i2c)
Disable I2C controller burst mode.
Definition: dl_i2c.h:1592
__STATIC_INLINE void DL_I2C_disableACKOverrideOnStart(I2C_Regs *i2c)
Disable target ACK override on Start Condition.
Definition: dl_i2c.h:3076
__STATIC_INLINE DL_I2C_TX_FIFO_LEVEL DL_I2C_getControllerTXFIFOThreshold(I2C_Regs *i2c)
Get controller TX FIFO threshold level.
Definition: dl_i2c.h:2070
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOFull(I2C_Regs *i2c)
Checks if controller TX FIFO is full.
Definition: dl_i2c.h:813
__STATIC_INLINE DL_I2C_RX_FIFO_LEVEL DL_I2C_getTargetRXFIFOThreshold(I2C_Regs *i2c)
Get target RX FIFO threshold level.
Definition: dl_i2c.h:3423
__STATIC_INLINE void DL_I2C_disablePower(I2C_Regs *i2c)
Disables power on i2c module.
Definition: dl_i2c.h:1064
__STATIC_INLINE uint8_t DL_I2C_receiveTargetData(I2C_Regs *i2c)
Get byte of data from I2C target.
Definition: dl_i2c.h:2970
void DL_I2C_flushControllerRXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the controller RX FIFO.
__STATIC_INLINE DL_I2C_CONTROLLER_ADDRESSING_MODE DL_I2C_getControllerAddressingMode(I2C_Regs *i2c)
Get controller addressing mode.
Definition: dl_i2c.h:1333
__STATIC_INLINE DL_I2C_CONTROLLER_PEC_CHECK_ERROR DL_I2C_getControllerPECCheckError(I2C_Regs *i2c)
Get the status of the controller SMBus/PMBus PEC Check error.
Definition: dl_i2c.h:1579
__STATIC_INLINE void DL_I2C_enableAlertResponseAddress(I2C_Regs *i2c)
Enable SMBus/PMBus Alert response address (ARA) of 000 1100b.
Definition: dl_i2c.h:2779
DL_I2C_ANALOG_GLITCH_FILTER_WIDTH
Definition: dl_i2c.h:513
__STATIC_INLINE void DL_I2C_enableStartCondition(I2C_Regs *i2c)
Enable I2C START generation.
Definition: dl_i2c.h:1652
__STATIC_INLINE void DL_I2C_transmitTargetData(I2C_Regs *i2c, uint8_t data)
Set next byte to be transferred during the next transaction.
Definition: dl_i2c.h:2982
__STATIC_INLINE void DL_I2C_disableACKOverrideOnPECDone(I2C_Regs *i2c)
Disable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3162
__STATIC_INLINE void DL_I2C_setTargetOwnAddressAlternateMask(I2C_Regs *i2c, uint32_t addressMask)
Set target own address alternate mask.
Definition: dl_i2c.h:2390
DL_I2C_CONTROLLER_SDA
Definition: dl_i2c.h:593
__STATIC_INLINE DL_I2C_RX_FIFO_LEVEL DL_I2C_getControllerRXFIFOThreshold(I2C_Regs *i2c)
Get controller RX FIFO threshold level.
Definition: dl_i2c.h:2125
DL_I2C_CONTROLLER_START
Definition: dl_i2c.h:601
__STATIC_INLINE uint8_t DL_I2C_receiveControllerData(I2C_Regs *i2c)
Get byte of data from I2C controller.
Definition: dl_i2c.h:1804
__STATIC_INLINE void DL_I2C_setTimerPeriod(I2C_Regs *i2c, uint8_t period)
Set timer period This field is used in the equation to configure SCL_PERIOD:
Definition: dl_i2c.h:1868
__STATIC_INLINE void DL_I2C_enableTargetOwnAddress(I2C_Regs *i2c)
Enable target own address.
Definition: dl_i2c.h:2273
__STATIC_INLINE bool DL_I2C_isControllerReadOnTXEmptyEnabled(I2C_Regs *i2c)
Checks if controller read on TX empty is enabled.
Definition: dl_i2c.h:1422
__STATIC_INLINE void DL_I2C_enableGeneralCall(I2C_Regs *i2c)
Enable usage of general call address of 000 0000b.
Definition: dl_i2c.h:2940
__STATIC_INLINE void DL_I2C_enableControllerACKOverride(I2C_Regs *i2c)
Enable controller ACK override.
Definition: dl_i2c.h:1397
__STATIC_INLINE uint32_t DL_I2C_getTargetTXFIFOCounter(I2C_Regs *i2c)
Get number of bytes which can be put into TX FIFO.
Definition: dl_i2c.h:3469
#define DL_I2C_TX_FIFO_COUNT_MAXIMUM
I2C number of bytes which could be put into the TX FIFO.
Definition: dl_i2c.h:74
__STATIC_INLINE void DL_I2C_stopFlushControllerRXFIFO(I2C_Regs *i2c)
Stop controller RX FIFO flush.
Definition: dl_i2c.h:2156
__STATIC_INLINE uint32_t DL_I2C_getTargetAddressMatch(I2C_Regs *i2c)
Get the address for which address match happened.
Definition: dl_i2c.h:2443
DL_I2C_CLOCK
Definition: dl_i2c.h:455
__STATIC_INLINE bool DL_I2C_isPowerEnabled(I2C_Regs *i2c)
Returns if power on i2c module.
Definition: dl_i2c.h:1077
__STATIC_INLINE bool DL_I2C_isTargetTXEmptyOnTXRequestEnabled(I2C_Regs *i2c)
Checks if target TX empty interrupt on transmit request is enabled.
Definition: dl_i2c.h:2524
__STATIC_INLINE bool DL_I2C_isTimeoutBEnabled(I2C_Regs *i2c)
Checks if Timeout Counter B is enabled.
Definition: dl_i2c.h:4004
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOEmpty(I2C_Regs *i2c)
Checks if target TX FIFO is empty.
Definition: dl_i2c.h:949
__STATIC_INLINE uint32_t DL_I2C_getTargetPECCountValue(I2C_Regs *i2c)
Get the target SMBus/PMBus Packet Error Checking (PEC) count value.
Definition: dl_i2c.h:3209
__STATIC_INLINE void DL_I2C_enableDefaultHostAddress(I2C_Regs *i2c)
Enable SMBus/PMBus default host address of 000 1000b.
Definition: dl_i2c.h:2733
DL_I2C_CONTROLLER_ACK
Definition: dl_i2c.h:617
__STATIC_INLINE void DL_I2C_stopFlushControllerTXFIFO(I2C_Regs *i2c)
Stop controller TX FIFO flush.
Definition: dl_i2c.h:2101
__STATIC_INLINE void DL_I2C_setControllerDirection(I2C_Regs *i2c, DL_I2C_CONTROLLER_DIRECTION direction)
Set direction of next controller operation.
Definition: dl_i2c.h:1274
__STATIC_INLINE void DL_I2C_setDigitalGlitchFilterPulseWidth(I2C_Regs *i2c, DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH filterWidth)
Set Digital Glitch Suppression Pulse Width.
Definition: dl_i2c.h:1207
__STATIC_INLINE bool DL_I2C_isAlertResponseAddressEnabled(I2C_Regs *i2c)
Checks if SMBus/PMBus Alert response address (ARA) of 000 1100b is enabled.
Definition: dl_i2c.h:2765
__STATIC_INLINE uint32_t DL_I2C_getControllerCurrentPECCount(I2C_Regs *i2c)
Get the current SMBus/PMBus PEC byte count of the controller state machine.
Definition: dl_i2c.h:1539
DL_I2C_CONTROLLER_ADDRESSING_MODE
Definition: dl_i2c.h:553
__STATIC_INLINE uint32_t DL_I2C_getTargetAddress(I2C_Regs *i2c)
Get the address of the target being addressed when configured as an I2C controller.
Definition: dl_i2c.h:1297
void DL_I2C_flushTargetRXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the target RX FIFO.
__STATIC_INLINE bool DL_I2C_isControllerPECEnabled(I2C_Regs *i2c)
Checks if controller SMBus/PMBus Packet Error Checking (PEC) is enabled.
Definition: dl_i2c.h:1503
__STATIC_INLINE void DL_I2C_enableControllerReadOnTXEmpty(I2C_Regs *i2c)
Enable controller read on TX empty.
Definition: dl_i2c.h:1445
__STATIC_INLINE DL_I2C_CONTROLLER_SCL DL_I2C_getSCLStatus(I2C_Regs *i2c)
Get SCL signal status.
Definition: dl_i2c.h:2038
__STATIC_INLINE void DL_I2C_disableTargetClockStretching(I2C_Regs *i2c)
Disable target clock stretching.
Definition: dl_i2c.h:2460
__STATIC_INLINE bool DL_I2C_isACKOverrideOnPECDoneEnabled(I2C_Regs *i2c)
Checks if target ACK override when SMBus/PMBus PEC is next byte is enabled.
Definition: dl_i2c.h:3178
__STATIC_INLINE bool DL_I2C_isTargetWakeupEnabled(I2C_Regs *i2c)
Checks if target wakeup is enabled.
Definition: dl_i2c.h:2853
__STATIC_INLINE void DL_I2C_enableTargetTXEmptyOnTXRequest(I2C_Regs *i2c)
Enable target TX empty interrupt on transmit request.
Definition: dl_i2c.h:2539
__STATIC_INLINE void DL_I2C_disableACKOverrideOnPECNext(I2C_Regs *i2c)
Disable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3117
__STATIC_INLINE void DL_I2C_setControllerTXFIFOThreshold(I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
Set controller TX FIFO threshold level.
Definition: dl_i2c.h:2086
__STATIC_INLINE bool DL_I2C_isControllerBurstEnabled(I2C_Regs *i2c)
Checks if I2C controller burst mode is enabled.
Definition: dl_i2c.h:1607
__STATIC_INLINE bool DL_I2C_isTargetClockStretchingEnabled(I2C_Regs *i2c)
Checks if target clock stretching is enabled.
Definition: dl_i2c.h:2475
__STATIC_INLINE void DL_I2C_enableTarget(I2C_Regs *i2c)
Enable usage of target functionality.
Definition: dl_i2c.h:2904
__STATIC_INLINE void DL_I2C_selectClockDivider(I2C_Regs *i2c, DL_I2C_CLOCK_DIVIDE clockDivider)
Set Clock Divider.
Definition: dl_i2c.h:1135
__STATIC_INLINE uint32_t I2C_getTargetOwnAddressAlternateMask(I2C_Regs *i2c)
Get target own address alternate mask.
Definition: dl_i2c.h:2372
__STATIC_INLINE bool DL_I2C_isGlitchFilterChainingEnabled(I2C_Regs *i2c)
Checks if analog and digital glitch filter chaining is enabled.
Definition: dl_i2c.h:3843
__STATIC_INLINE void DL_I2C_enableACKOverrideOnPECDone(I2C_Regs *i2c)
Enable target ACK override when SMBus/PMBus PEC is done.
Definition: dl_i2c.h:3194
__STATIC_INLINE void DL_I2C_setTransactionLength(I2C_Regs *i2c, uint32_t length)
Set transaction length in bytes.
Definition: dl_i2c.h:1757
__STATIC_INLINE void DL_I2C_disableGlitchFilterChaining(I2C_Regs *i2c)
Disable analog and digital glitch filter chaining.
Definition: dl_i2c.h:3828
__STATIC_INLINE void DL_I2C_enableController(I2C_Regs *i2c)
Enable controller.
Definition: dl_i2c.h:1980
__STATIC_INLINE uint32_t DL_I2C_getControllerPECCountValue(I2C_Regs *i2c)
Get the SMBus/PMBus Packet Error Checking (PEC) count value.
Definition: dl_i2c.h:1459
__STATIC_INLINE void DL_I2C_setTargetOwnAddressAlternate(I2C_Regs *i2c, uint32_t addr)
Set target own address alternate.
Definition: dl_i2c.h:2356
__STATIC_INLINE DL_I2C_IIDX DL_I2C_getPendingInterrupt(I2C_Regs *i2c)
Get highest priority pending I2C interrupt.
Definition: dl_i2c.h:3609
__STATIC_INLINE bool DL_I2C_isTargetPECEnabled(I2C_Regs *i2c)
Checks if target SMBus/PMBus Packet Error Checking (PEC) is enabled.
Definition: dl_i2c.h:3253
__STATIC_INLINE void DL_I2C_setTimeoutACount(I2C_Regs *i2c, uint32_t count)
Set the Timeout Counter A value.
Definition: dl_i2c.h:3891
__STATIC_INLINE uint32_t DL_I2C_getRawDMAEventStatus(I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index, uint32_t interruptMask)
Check interrupt flag of any I2C interrupt for DMA event.
Definition: dl_i2c.h:3762
__STATIC_INLINE bool DL_I2C_isControllerACKOverrideEnabled(I2C_Regs *i2c)
Checks if controller ACK override is enabled.
Definition: dl_i2c.h:1376
__STATIC_INLINE uint32_t DL_I2C_getTargetStatus(I2C_Regs *i2c)
Get status of I2C bus controller for target.
Definition: dl_i2c.h:2954
__STATIC_INLINE bool DL_I2C_isTargetOwnAddressAlternateEnabled(I2C_Regs *i2c)
Checks if target own address alternate is enabled.
Definition: dl_i2c.h:2417
__STATIC_INLINE void DL_I2C_disableStartCondition(I2C_Regs *i2c)
Disable I2C START generation.
Definition: dl_i2c.h:1627
__STATIC_INLINE void DL_I2C_setTargetAddressingMode(I2C_Regs *i2c, DL_I2C_TARGET_ADDRESSING_MODE mode)
Set target addressing mode.
Definition: dl_i2c.h:2313
DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH
Definition: dl_i2c.h:525
__STATIC_INLINE void DL_I2C_setTargetRXFIFOThreshold(I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
Set target RX FIFO threshold level.
Definition: dl_i2c.h:3439
__STATIC_INLINE bool DL_I2C_isMultiControllerModeEnabled(I2C_Regs *i2c)
Checks if multicontroller mode is enabled.
Definition: dl_i2c.h:1928
__STATIC_INLINE void DL_I2C_reset(I2C_Regs *i2c)
Resets i2c peripheral.
Definition: dl_i2c.h:1088
__STATIC_INLINE void DL_I2C_setTargetACKOverrideValue(I2C_Regs *i2c, DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE value)
Set target acknowledge override value.
Definition: dl_i2c.h:3064
__STATIC_INLINE void DL_I2C_disableMultiControllerMode(I2C_Regs *i2c)
Disable multicontroller mode.
Definition: dl_i2c.h:1913
__STATIC_INLINE void DL_I2C_stopFlushTargetTXFIFO(I2C_Regs *i2c)
Stop target TX FIFO flush.
Definition: dl_i2c.h:3376
__STATIC_INLINE void DL_I2C_enableMultiControllerMode(I2C_Regs *i2c)
Enable multicontroller mode.
Definition: dl_i2c.h:1942
__STATIC_INLINE void DL_I2C_resetControllerTransfer(I2C_Regs *i2c)
Reset transfers from from I2C controller.
Definition: dl_i2c.h:858
DL_I2C_RX_FIFO_LEVEL
Definition: dl_i2c.h:645
__STATIC_INLINE bool DL_I2C_isTargetRXFIFOEmpty(I2C_Regs *i2c)
Checks if target RX FIFO is empty.
Definition: dl_i2c.h:965
__STATIC_INLINE void DL_I2C_enableTimeoutA(I2C_Regs *i2c)
Enable Timeout Counter A.
Definition: dl_i2c.h:3927
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOFlushActive(I2C_Regs *i2c)
Checks if controller TX FIFO flush is active.
Definition: dl_i2c.h:2226
__STATIC_INLINE uint32_t DL_I2C_getCurrentTimeoutBCounter(I2C_Regs *i2c)
Get the current Timer Counter B value.
Definition: dl_i2c.h:4032
DL_I2C_CONTROLLER_PEC_STATUS
Definition: dl_i2c.h:561
__STATIC_INLINE bool DL_I2C_isTargetEnabled(I2C_Regs *i2c)
Checks if target functionality is enabled.
Definition: dl_i2c.h:2893
__STATIC_INLINE void DL_I2C_enablePower(I2C_Regs *i2c)
Enables power on I2C module.
Definition: dl_i2c.h:1054
__STATIC_INLINE uint32_t DL_I2C_getTimeoutBCount(I2C_Regs *i2c)
Get the Timeout Counter B value.
Definition: dl_i2c.h:3958
__STATIC_INLINE DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE DL_I2C_getTargetACKOverrideValue(I2C_Regs *i2c)
Get target acknowledge override value.
Definition: dl_i2c.h:3045
__STATIC_INLINE void DL_I2C_disableLoopbackMode(I2C_Regs *i2c)
Disable loopback mode.
Definition: dl_i2c.h:1878
__STATIC_INLINE DL_I2C_DMA_IIDX DL_I2C_getPendingDMAEvent(I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index)
Get highest priority pending I2C interrupt for DMA event.
Definition: dl_i2c.h:3786
DL_I2C_CONTROLLER_PEC_CHECK_ERROR
Definition: dl_i2c.h:573
__STATIC_INLINE uint32_t DL_I2C_getEnabledInterrupts(I2C_Regs *i2c, uint32_t interruptMask)
Check which I2C interrupts are enabled.
Definition: dl_i2c.h:3547
__STATIC_INLINE bool DL_I2C_isGeneralCallEnabled(I2C_Regs *i2c)
Checks if general call address of 000 0000b is enabled.
Definition: dl_i2c.h:2929
DL_I2C_CONTROLLER_DIRECTION
Definition: dl_i2c.h:545
__STATIC_INLINE DL_I2C_TARGET_ADDRESSING_MODE DL_I2C_getTargetAddressingMode(I2C_Regs *i2c)
Get target addressing mode.
Definition: dl_i2c.h:2329
__STATIC_INLINE bool DL_I2C_isTargetOwnAddressEnabled(I2C_Regs *i2c)
Checks if target own address is enabled.
Definition: dl_i2c.h:2298
__STATIC_INLINE void DL_I2C_enableLoopbackMode(I2C_Regs *i2c)
Enable loopback mode.
Definition: dl_i2c.h:1903
Configuration struct for DL_I2C_setClockConfig.
Definition: dl_i2c.h:750
__STATIC_INLINE void DL_I2C_enableGlitchFilterChaining(I2C_Regs *i2c)
Enable analog and digitial glitch filter chaining.
Definition: dl_i2c.h:3856
__STATIC_INLINE void DL_I2C_clearInterruptStatus(I2C_Regs *i2c, uint32_t interruptMask)
Clear pending I2C interrupts.
Definition: dl_i2c.h:3622
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOFull(I2C_Regs *i2c)
Checks if target TX FIFO is full.
Definition: dl_i2c.h:933
__STATIC_INLINE void DL_I2C_disableTargetOwnAddressAlternate(I2C_Regs *i2c)
Disable usage of target own address alternate.
Definition: dl_i2c.h:2402
__STATIC_INLINE void DL_I2C_setTargetPECCountValue(I2C_Regs *i2c, uint32_t count)
Set the target SMBus/PMBus Packet Error Checking (PEC) count value.
Definition: dl_i2c.h:3225
__STATIC_INLINE void DL_I2C_disableControllerACKOverride(I2C_Regs *i2c)
Disable controller ACK override.
Definition: dl_i2c.h:1361
__STATIC_INLINE void DL_I2C_stopFlushTargetRXFIFO(I2C_Regs *i2c)
Stop target RX FIFO flush.
Definition: dl_i2c.h:3399
__STATIC_INLINE void DL_I2C_disableDefaultDeviceAddress(I2C_Regs *i2c)
Disable SMBus/PMBus default device address of 110 0001b.
Definition: dl_i2c.h:2795
__STATIC_INLINE bool DL_I2C_isACKOverrideOnStartEnabled(I2C_Regs *i2c)
Checks if target ACK override on Start condition is enabled.
Definition: dl_i2c.h:3091
__STATIC_INLINE bool DL_I2C_isTimeoutAEnabled(I2C_Regs *i2c)
Checks if Timeout Counter A is enabled.
Definition: dl_i2c.h:3916
__STATIC_INLINE void DL_I2C_startFlushTargetTXFIFO(I2C_Regs *i2c)
Start target TX FIFO flush.
Definition: dl_i2c.h:3386
__STATIC_INLINE void DL_I2C_setTargetTXFIFOThreshold(I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
Set target TX FIFO threshold level.
Definition: dl_i2c.h:3361
__STATIC_INLINE bool DL_I2C_isAnalogGlitchFilterEnabled(I2C_Regs *i2c)
Checks if analog glitch suppression is enabled.
Definition: dl_i2c.h:1234
DL_I2C_DMA_IIDX
Definition: dl_i2c.h:433
void DL_I2C_setClockConfig(I2C_Regs *i2c, DL_I2C_ClockConfig *config)
Configure I2C source clock.
__STATIC_INLINE void DL_I2C_disableControllerACK(I2C_Regs *i2c)
Disable I2C controller data acknowledge (ACK or NACK)
Definition: dl_i2c.h:1701
__STATIC_INLINE void DL_I2C_enableControllerClockStretching(I2C_Regs *i2c)
Enable controller clock stretching.
Definition: dl_i2c.h:2024
void DL_I2C_flushTargetTXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the target TX FIFO.
__STATIC_INLINE DL_I2C_TARGET_PEC_CHECK_ERROR DL_I2C_getTargetPECCheckError(I2C_Regs *i2c)
Get status if SMBus/PMBus target PEC had an error.
Definition: dl_i2c.h:3327
DL_I2C_CONTROLLER_STOP
Definition: dl_i2c.h:609
__STATIC_INLINE bool DL_I2C_isTargetTXTriggerInTXModeEnabled(I2C_Regs *i2c)
Checks if target TX trigger in TX mode is enabled.
Definition: dl_i2c.h:2567
__STATIC_INLINE void DL_I2C_disableTargetOwnAddress(I2C_Regs *i2c)
Disable target own address.
Definition: dl_i2c.h:2283
__STATIC_INLINE bool DL_I2C_isTargetRXFullOnRXRequestEnabled(I2C_Regs *i2c)
Checks if target RX full interrupt on receive request is enabled.
Definition: dl_i2c.h:2671
__STATIC_INLINE bool DL_I2C_isControllerRXFIFOEmpty(I2C_Regs *i2c)
Checks if controller RX FIFO is empty.
Definition: dl_i2c.h:845
__STATIC_INLINE void DL_I2C_setTimeoutBCount(I2C_Regs *i2c, uint32_t count)
Set the Timeout Counter B value.
Definition: dl_i2c.h:3978
__STATIC_INLINE void DL_I2C_disableControllerReadOnTXEmpty(I2C_Regs *i2c)
Disable controller read on TX empty.
Definition: dl_i2c.h:1407
DL_I2C_EVENT_ROUTE
Definition: dl_i2c.h:447
__STATIC_INLINE void DL_I2C_disableControllerPEC(I2C_Regs *i2c)
Disable controller SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:1487
__STATIC_INLINE void DL_I2C_enableDMAEvent(I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index, uint32_t interrupt)
Enables I2C interrupt for triggering DMA events.
Definition: dl_i2c.h:3644
__STATIC_INLINE bool DL_I2C_isControllerRXFIFOFlushActive(I2C_Regs *i2c)
Checks if controller RX FIFO flush is active.
Definition: dl_i2c.h:2210
__STATIC_INLINE uint16_t DL_I2C_getTransactionCount(I2C_Regs *i2c)
Get transaction count in bytes.
Definition: dl_i2c.h:1787
void DL_I2C_transmitTargetDataBlocking(I2C_Regs *i2c, uint8_t data)
Transmit target data, waiting until transmit request.
__STATIC_INLINE void DL_I2C_enableDefaultDeviceAddress(I2C_Regs *i2c)
Enable SMBus/PMBus default device address of 110 0001b.
Definition: dl_i2c.h:2825
__STATIC_INLINE void DL_I2C_enableControllerPEC(I2C_Regs *i2c)
Enable controller SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:1524
__STATIC_INLINE void DL_I2C_disableStopCondition(I2C_Regs *i2c)
Disable I2C STOP generation.
Definition: dl_i2c.h:1662
__STATIC_INLINE uint8_t DL_I2C_getTimerPeriod(I2C_Regs *i2c)
Get timer period This field is used in the equation to configure SCL_PERIOD:
Definition: dl_i2c.h:1844
__STATIC_INLINE DL_I2C_CONTROLLER_DIRECTION DL_I2C_getControllerDirection(I2C_Regs *i2c)
Get direction of next controller operation.
Definition: dl_i2c.h:1258
__STATIC_INLINE void DL_I2C_setControllerAddressingMode(I2C_Regs *i2c, DL_I2C_CONTROLLER_ADDRESSING_MODE mode)
Set controller addressing mode between 7-bit and 10-bit mode.
Definition: dl_i2c.h:1350
__STATIC_INLINE void DL_I2C_enableAnalogGlitchFilter(I2C_Regs *i2c)
Enable Analog Glitch Suppression.
Definition: dl_i2c.h:1244
__STATIC_INLINE bool DL_I2C_isControllerACKEnabled(I2C_Regs *i2c)
Checks if I2C controller data acknowledge (ACK or NACK) is enabled.
Definition: dl_i2c.h:1717
__STATIC_INLINE uint32_t DL_I2C_getEnabledDMAEvents(I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index, uint32_t interruptMask)
Check which I2C interrupt for DMA receive events is enabled.
Definition: dl_i2c.h:3706
__STATIC_INLINE bool DL_I2C_isTargetACKOverrideEnabled(I2C_Regs *i2c)
Checks if target ACK override is enabled.
Definition: dl_i2c.h:3010
__STATIC_INLINE void DL_I2C_transmitControllerData(I2C_Regs *i2c, uint8_t data)
Set next byte to be transferred during the next transaction.
Definition: dl_i2c.h:1818
__STATIC_INLINE void DL_I2C_setAnalogGlitchFilterPulseWidth(I2C_Regs *i2c, DL_I2C_ANALOG_GLITCH_FILTER_WIDTH filterWidth)
Set Analog Glitch Suppression Pulse Width.
Definition: dl_i2c.h:1170
__STATIC_INLINE bool DL_I2C_isStopConditionEnabled(I2C_Regs *i2c)
Checks if I2C STOP generation is enabled.
Definition: dl_i2c.h:1677
__STATIC_INLINE uint32_t I2C_getTargetOwnAddressAlternate(I2C_Regs *i2c)
Get target own address alternate.
Definition: dl_i2c.h:2345
__STATIC_INLINE void DL_I2C_disableTarget(I2C_Regs *i2c)
Disable target functionality.
Definition: dl_i2c.h:2878
__STATIC_INLINE void DL_I2C_disableAnalogGlitchFilter(I2C_Regs *i2c)
Disable Analog Glitch Suppression.
Definition: dl_i2c.h:1219
__STATIC_INLINE void DL_I2C_clearDMAEvent(I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index, uint32_t interrupt)
Clear pending SPI interrupts for DMA events.
Definition: dl_i2c.h:3805
__STATIC_INLINE DL_I2C_CONTROLLER_SDA DL_I2C_getSDAStatus(I2C_Regs *i2c)
Get SDA signal status.
Definition: dl_i2c.h:2054
void DL_I2C_getClockConfig(I2C_Regs *i2c, DL_I2C_ClockConfig *config)
Get I2C source clock configuration.
__STATIC_INLINE void DL_I2C_enableControllerACK(I2C_Regs *i2c)
Enable I2C controller data acknowledge (ACK or NACK)
Definition: dl_i2c.h:1731
__STATIC_INLINE void DL_I2C_disableControllerClockStretching(I2C_Regs *i2c)
Disable controller clock stretching.
Definition: dl_i2c.h:1994
__STATIC_INLINE void DL_I2C_enableInterrupt(I2C_Regs *i2c, uint32_t interruptMask)
Enable I2C interrupts.
Definition: dl_i2c.h:3515
__STATIC_INLINE DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH DL_I2C_getDigitalGlitchFilterPulseWidth(I2C_Regs *i2c)
Get Digital Glitch Suppression Pulse Width.
Definition: dl_i2c.h:1190
__STATIC_INLINE uint32_t DL_I2C_getTargetRXFIFOCounter(I2C_Regs *i2c)
Get number of bytes which can be read from RX FIFO.
Definition: dl_i2c.h:3455
__STATIC_INLINE void DL_I2C_enableACKOverrideOnPECNext(I2C_Regs *i2c)
Enable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3152
__STATIC_INLINE uint32_t DL_I2C_getControllerTXFIFOCounter(I2C_Regs *i2c)
Get number of bytes which can be put into TX FIFO.
Definition: dl_i2c.h:2194
__STATIC_INLINE void DL_I2C_enableTargetWakeup(I2C_Regs *i2c)
Enable target wakeup.
Definition: dl_i2c.h:2868
__STATIC_INLINE DL_I2C_ANALOG_GLITCH_FILTER_WIDTH DL_I2C_getAnalogGlitchFilterPulseWidth(I2C_Regs *i2c)
Get Analog Glitch Suppression Pulse Width.
Definition: dl_i2c.h:1154
__STATIC_INLINE void DL_I2C_disableTimeoutA(I2C_Regs *i2c)
Disable Timeout Counter A.
Definition: dl_i2c.h:3901
__STATIC_INLINE void DL_I2C_selectClockSource(I2C_Regs *i2c, DL_I2C_CLOCK clockSource)
Set Clock Source.
Definition: dl_i2c.h:1120
__STATIC_INLINE void DL_I2C_enableTargetPEC(I2C_Regs *i2c)
Enable target SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:3273
__STATIC_INLINE void DL_I2C_enableTargetACKOverride(I2C_Regs *i2c)
Enable target ACK override.
Definition: dl_i2c.h:3027
__STATIC_INLINE uint32_t DL_I2C_getControllerRXFIFOCounter(I2C_Regs *i2c)
Get number of bytes which can be read from RX FIFO.
Definition: dl_i2c.h:2180
__STATIC_INLINE void DL_I2C_enableTargetRXFullOnRXRequest(I2C_Regs *i2c)
Enable target RX full interrupt on receive request.
Definition: dl_i2c.h:2688
__STATIC_INLINE void DL_I2C_enableTargetTXTriggerInTXMode(I2C_Regs *i2c)
Enable TX trigger when target is in TX mode.
Definition: dl_i2c.h:2589
__STATIC_INLINE void DL_I2C_setTargetOwnAddress(I2C_Regs *i2c, uint32_t addr)
Set target own address.
Definition: dl_i2c.h:2243
__STATIC_INLINE void DL_I2C_startControllerTransfer(I2C_Regs *i2c, uint32_t targetAddr, DL_I2C_CONTROLLER_DIRECTION direction, uint16_t length)
Sets up a transfer from I2C controller.
Definition: dl_i2c.h:875
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOEmpty(I2C_Regs *i2c)
Checks if controller TX FIFO is empty.
Definition: dl_i2c.h:829
__STATIC_INLINE bool DL_I2C_isReset(I2C_Regs *i2c)
Returns if i2c peripheral was reset.
Definition: dl_i2c.h:1104
__STATIC_INLINE void DL_I2C_enableTargetOwnAddressAlternate(I2C_Regs *i2c)
Enable usage of target own address alternate.
Definition: dl_i2c.h:2428
DL_I2C_TX_FIFO_LEVEL
Definition: dl_i2c.h:625
__STATIC_INLINE void DL_I2C_setControllerRXFIFOThreshold(I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
Set controller RX FIFO threshold level.
Definition: dl_i2c.h:2141
__STATIC_INLINE bool DL_I2C_isControllerEnabled(I2C_Regs *i2c)
Checks if controller is enabled.
Definition: dl_i2c.h:1967
DL_I2C_CLOCK clockSel
Definition: dl_i2c.h:752
__STATIC_INLINE bool DL_I2C_isControllerClockStretchingEnabled(I2C_Regs *i2c)
Checks if controller clock stretching is enabled.
Definition: dl_i2c.h:2009
__STATIC_INLINE void DL_I2C_enableControllerBurst(I2C_Regs *i2c)
Enable I2C controller burst mode.
Definition: dl_i2c.h:1617
DL_I2C_TARGET_ADDRESSING_MODE
Definition: dl_i2c.h:483
__STATIC_INLINE void DL_I2C_enableStopCondition(I2C_Regs *i2c)
Enable I2C STOP generation.
Definition: dl_i2c.h:1687
__STATIC_INLINE void DL_I2C_disableTargetTXEmptyOnTXRequest(I2C_Regs *i2c)
Disable target TX empty interrupt on transmit request.
Definition: dl_i2c.h:2508
__STATIC_INLINE void DL_I2C_disableTargetRXFullOnRXRequest(I2C_Regs *i2c)
Disable target RX full interrupt on receive request.
Definition: dl_i2c.h:2656
__STATIC_INLINE void DL_I2C_disableTargetACKOverride(I2C_Regs *i2c)
Disable target ACK override.
Definition: dl_i2c.h:2995
DL_I2C_IIDX
Definition: dl_i2c.h:673
DL_I2C_TARGET_PEC_CHECK_ERROR
Definition: dl_i2c.h:502
__STATIC_INLINE bool DL_I2C_isDefaultDeviceAddressEnabled(I2C_Regs *i2c)
Checks SMBus/PMBus default device address of 110 0001b is enabled.
Definition: dl_i2c.h:2811
__STATIC_INLINE uint32_t DL_I2C_getTargetOwnAddress(I2C_Regs *i2c)
Get target own address.
Definition: dl_i2c.h:2261
uint8_t DL_I2C_fillTargetTXFIFO(I2C_Regs *i2c, uint8_t *buffer, uint8_t count)
Fills the target TX FIFO with data.
__STATIC_INLINE uint32_t DL_I2C_getTargetCurrentPECCount(I2C_Regs *i2c)
Get the current SMBus/PMBus PEC byte count of the Target state machine.
Definition: dl_i2c.h:3288
__STATIC_INLINE DL_I2C_CONTROLLER_PEC_STATUS DL_I2C_getControllerPECCheckedStatus(I2C_Regs *i2c)
If controller SMBus/PMBus PEC was checked in last transaction.
Definition: dl_i2c.h:1558
__STATIC_INLINE uint32_t DL_I2C_getTimeoutACount(I2C_Regs *i2c)
Get the Timeout Counter A value.
Definition: dl_i2c.h:3870
__STATIC_INLINE void DL_I2C_startFlushTargetRXFIFO(I2C_Regs *i2c)
Start target RX FIFO flush.
Definition: dl_i2c.h:3409
__STATIC_INLINE void DL_I2C_disableTargetPEC(I2C_Regs *i2c)
Disable target SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:3237
__STATIC_INLINE void DL_I2C_disableAlertResponseAddress(I2C_Regs *i2c)
Disable SMBus/PMBus Alert response address (ARA) of 000 1100b.
Definition: dl_i2c.h:2749