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,
const 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) ==
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);
981 I2C_Regs *i2c,
const uint8_t *buffer, uint8_t count);
1061 i2c->GPRCM.PWREN = (I2C_PWREN_KEY_UNLOCK_W | I2C_PWREN_ENABLE_ENABLE);
1076 i2c->GPRCM.PWREN = (I2C_PWREN_KEY_UNLOCK_W | I2C_PWREN_ENABLE_DISABLE);
1098 (i2c->GPRCM.PWREN & I2C_PWREN_ENABLE_MASK) == I2C_PWREN_ENABLE_ENABLE);
1109 (I2C_RSTCTL_KEY_UNLOCK_W | I2C_RSTCTL_RESETSTKYCLR_CLR |
1110 I2C_RSTCTL_RESETASSERT_ASSERT);
1124 return ((i2c->GPRCM.STAT & I2C_STAT_RESETSTKY_MASK) ==
1125 I2C_STAT_RESETSTKY_RESET);
1139 I2C_Regs *i2c, DL_I2C_CLOCK clockSource)
1142 I2C_CLKSEL_BUSCLK_SEL_MASK | I2C_CLKSEL_MFCLK_SEL_MASK);
1154 I2C_Regs *i2c, DL_I2C_CLOCK_DIVIDE clockDivider)
1157 &i2c->CLKDIV, (uint32_t) clockDivider, I2C_CLKDIV_RATIO_MASK);
1171 __STATIC_INLINE DL_I2C_ANALOG_GLITCH_FILTER_WIDTH
1174 uint32_t filterWidth = i2c->GFCTL & I2C_GFCTL_AGFSEL_MASK;
1176 return (DL_I2C_ANALOG_GLITCH_FILTER_WIDTH)(filterWidth);
1189 I2C_Regs *i2c, DL_I2C_ANALOG_GLITCH_FILTER_WIDTH filterWidth)
1192 &i2c->GFCTL, (uint32_t) filterWidth, I2C_GFCTL_AGFSEL_MASK);
1207 __STATIC_INLINE DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH
1210 uint32_t filterWidth = i2c->GFCTL & I2C_GFCTL_DGFSEL_MASK;
1212 return (DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH)(filterWidth);
1226 I2C_Regs *i2c, DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH filterWidth)
1229 &i2c->GFCTL, (uint32_t) filterWidth, I2C_GFCTL_DGFSEL_MASK);
1239 i2c->GFCTL &= ~(I2C_GFCTL_AGFEN_MASK);
1254 return ((i2c->GFCTL & I2C_GFCTL_AGFEN_MASK) == I2C_GFCTL_AGFEN_ENABLE);
1264 i2c->GFCTL |= I2C_GFCTL_AGFEN_ENABLE;
1277 const I2C_Regs *i2c)
1279 uint32_t direction = i2c->MASTER.MSA & I2C_MSA_DIR_MASK;
1281 return (DL_I2C_CONTROLLER_DIRECTION)(direction);
1293 I2C_Regs *i2c, DL_I2C_CONTROLLER_DIRECTION direction)
1296 &i2c->MASTER.MSA, (uint32_t) direction, I2C_MSA_DIR_MASK);
1317 return ((i2c->MASTER.MSA & I2C_MSA_SADDR_MASK) >> I2C_MSA_SADDR_OFS);
1334 I2C_Regs *i2c, uint32_t targetAddress)
1337 I2C_MSA_SADDR_MASK);
1350 __STATIC_INLINE DL_I2C_CONTROLLER_ADDRESSING_MODE
1353 uint32_t mode = i2c->MASTER.MSA & I2C_MSA_MMODE_MASK;
1355 return (DL_I2C_CONTROLLER_ADDRESSING_MODE)(mode);
1369 I2C_Regs *i2c, DL_I2C_CONTROLLER_ADDRESSING_MODE mode)
1381 i2c->MASTER.MCTR &= ~(I2C_MCTR_MACKOEN_MASK);
1397 (i2c->MASTER.MCTR & I2C_MCTR_MACKOEN_MASK) == I2C_MCTR_MACKOEN_ENABLE);
1417 i2c->MASTER.MCTR |= I2C_MCTR_MACKOEN_ENABLE;
1427 i2c->MASTER.MCTR &= ~(I2C_MCTR_RD_ON_TXEMPTY_MASK);
1441 const I2C_Regs *i2c)
1443 return ((i2c->MASTER.MCTR & I2C_MCTR_RD_ON_TXEMPTY_MASK) ==
1444 I2C_MCTR_RD_ON_TXEMPTY_ENABLE);
1466 i2c->MASTER.MCTR |= I2C_MCTR_RD_ON_TXEMPTY_ENABLE;
1480 return (i2c->MASTER.CONTROLLER_I2CPECCTL &
1481 I2C_CONTROLLER_I2CPECCTL_PECCNT_MASK);
1495 I2C_Regs *i2c, uint32_t count)
1498 I2C_CONTROLLER_I2CPECCTL_PECCNT_MASK);
1508 i2c->MASTER.CONTROLLER_I2CPECCTL &= ~(I2C_CONTROLLER_I2CPECCTL_PECEN_MASK);
1524 return ((i2c->MASTER.CONTROLLER_I2CPECCTL &
1525 I2C_CONTROLLER_I2CPECCTL_PECEN_MASK) ==
1526 I2C_CONTROLLER_I2CPECCTL_PECEN_ENABLE);
1545 i2c->MASTER.CONTROLLER_I2CPECCTL |= I2C_CONTROLLER_I2CPECCTL_PECEN_ENABLE;
1559 const I2C_Regs *i2c)
1562 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_CHECK_MASK);
1577 __STATIC_INLINE DL_I2C_CONTROLLER_PEC_STATUS
1581 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_CHECK_MASK;
1583 return (DL_I2C_CONTROLLER_PEC_STATUS)(status);
1598 __STATIC_INLINE DL_I2C_CONTROLLER_PEC_CHECK_ERROR
1602 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_ERROR_MASK;
1604 return (DL_I2C_CONTROLLER_PEC_CHECK_ERROR)(error);
1614 i2c->MASTER.MCTR &= ~(I2C_MCTR_BURSTRUN_MASK);
1629 return ((i2c->GFCTL & I2C_MCTR_BURSTRUN_MASK) == I2C_MCTR_BURSTRUN_ENABLE);
1639 i2c->MASTER.MCTR |= I2C_MCTR_BURSTRUN_ENABLE;
1649 i2c->MASTER.MCTR &= ~(I2C_MCTR_START_MASK);
1664 return ((i2c->MASTER.MCTR & I2C_MCTR_START_MASK) == I2C_MCTR_START_ENABLE);
1674 i2c->MASTER.MCTR |= I2C_MCTR_START_ENABLE;
1684 i2c->MASTER.MCTR &= ~(I2C_MCTR_STOP_MASK);
1699 return ((i2c->MASTER.MCTR & I2C_MCTR_STOP_MASK) == I2C_MCTR_STOP_ENABLE);
1709 i2c->MASTER.MCTR |= I2C_MCTR_STOP_ENABLE;
1723 i2c->MASTER.MCTR &= ~(I2C_MCTR_ACK_MASK);
1739 return ((i2c->MASTER.MCTR & I2C_MCTR_ACK_MASK) == I2C_MCTR_ACK_ENABLE);
1753 i2c->MASTER.MCTR |= I2C_MCTR_ACK_MASK;
1767 return ((i2c->MASTER.MCTR & I2C_MCTR_MBLEN_MASK) >> I2C_MCTR_MBLEN_OFS);
1778 I2C_Regs *i2c, uint32_t length)
1781 I2C_MCTR_MBLEN_MASK);
1795 return (i2c->MASTER.MSR);
1810 (i2c->MASTER.MSR & I2C_MSR_MBCNT_MASK) >> I2C_MSR_MBCNT_OFS));
1826 return ((uint8_t)(i2c->MASTER.MRXDATA & I2C_MRXDATA_VALUE_MASK));
1840 i2c->MASTER.MTXDATA = data;
1866 return ((uint8_t)(i2c->MASTER.MTPR & I2C_MTPR_TPR_MASK));
1890 i2c->MASTER.MTPR = period;
1900 i2c->MASTER.MCR &= ~(I2C_MCR_LPBK_MASK);
1915 return ((i2c->MASTER.MCR & I2C_MCR_LPBK_MASK) == I2C_MCR_LPBK_ENABLE);
1925 i2c->MASTER.MCR |= I2C_MCR_LPBK_ENABLE;
1935 i2c->MASTER.MCR &= ~(I2C_MCR_MMST_MASK);
1950 return ((i2c->MASTER.MCR & I2C_MCR_MMST_MASK) == I2C_MCR_MMST_ENABLE);
1964 i2c->MASTER.MCR |= I2C_MCR_MMST_ENABLE;
1974 i2c->MASTER.MCR &= ~(I2C_MCR_ACTIVE_MASK);
1989 return ((i2c->MASTER.MCR & I2C_MCR_ACTIVE_MASK) == I2C_MCR_ACTIVE_ENABLE);
2002 i2c->MASTER.MCR |= I2C_MCR_ACTIVE_ENABLE;
2016 i2c->MASTER.MCR &= ~(I2C_MCR_CLKSTRETCH_MASK);
2030 const I2C_Regs *i2c)
2032 return ((i2c->MASTER.MCR & I2C_MCR_CLKSTRETCH_MASK) ==
2033 I2C_MCR_CLKSTRETCH_ENABLE);
2047 i2c->MASTER.MCR |= I2C_MCR_CLKSTRETCH_ENABLE;
2061 uint32_t sclStatus = i2c->MASTER.MBMON & I2C_MBMON_SCL_MASK;
2063 return (DL_I2C_CONTROLLER_SCL)(sclStatus);
2077 uint32_t sdaStatus = i2c->MASTER.MBMON & I2C_MBMON_SDA_MASK;
2079 return (DL_I2C_CONTROLLER_SDA)(sdaStatus);
2092 const I2C_Regs *i2c)
2094 uint32_t level = i2c->MASTER.MFIFOCTL & I2C_MFIFOCTL_TXTRIG_MASK;
2096 return (DL_I2C_TX_FIFO_LEVEL)(level);
2108 I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
2111 &i2c->MASTER.MFIFOCTL, (uint32_t) level, I2C_MFIFOCTL_TXTRIG_MASK);
2124 i2c->MASTER.MFIFOCTL &= ~(I2C_MFIFOCTL_TXFLUSH_MASK);
2134 i2c->MASTER.MFIFOCTL |= I2C_MFIFOCTL_TXFLUSH_MASK;
2147 const I2C_Regs *i2c)
2149 uint32_t level = i2c->MASTER.MFIFOCTL & I2C_MFIFOCTL_RXTRIG_MASK;
2151 return (DL_I2C_RX_FIFO_LEVEL)(level);
2163 I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
2166 &i2c->MASTER.MFIFOCTL, (uint32_t) level, I2C_MFIFOCTL_RXTRIG_MASK);
2179 i2c->MASTER.MFIFOCTL &= ~(I2C_MFIFOCTL_RXFLUSH_MASK);
2189 i2c->MASTER.MFIFOCTL |= I2C_MFIFOCTL_RXFLUSH_MASK;
2203 return (i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFIFOCNT_MASK);
2217 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFIFOCNT_MASK) >>
2218 I2C_MFIFOSR_TXFIFOCNT_OFS);
2233 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFLUSH_MASK) ==
2234 I2C_MFIFOSR_RXFLUSH_ACTIVE);
2249 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFLUSH_MASK) ==
2250 I2C_MFIFOSR_TXFLUSH_ACTIVE);
2284 return (i2c->SLAVE.SOAR & I2C_SOAR_OAR_MASK);
2296 i2c->SLAVE.SOAR |= I2C_SOAR_OAREN_ENABLE;
2306 i2c->SLAVE.SOAR &= ~(I2C_SOAR_OAREN_MASK);
2321 return ((i2c->SLAVE.SOAR & I2C_SOAR_OAREN_MASK) == I2C_SOAR_OAREN_ENABLE);
2335 I2C_Regs *i2c, DL_I2C_TARGET_ADDRESSING_MODE mode)
2338 &i2c->SLAVE.SOAR, (uint32_t) mode, I2C_SOAR_SMODE_MASK);
2351 const I2C_Regs *i2c)
2353 uint32_t mode = i2c->SLAVE.SOAR & I2C_SOAR_SMODE_MASK;
2355 return (DL_I2C_TARGET_ADDRESSING_MODE)(mode);
2368 return (i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2_MASK);
2378 I2C_Regs *i2c, uint32_t addr)
2394 const I2C_Regs *i2c)
2396 return ((i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2_MASK_MASK) >>
2397 I2C_SOAR2_OAR2_MASK_OFS);
2413 I2C_Regs *i2c, uint32_t addressMask)
2416 addressMask << I2C_SOAR2_OAR2_MASK_OFS, I2C_SOAR2_OAR2_MASK_MASK);
2426 i2c->SLAVE.SOAR2 &= ~(I2C_SOAR2_OAR2EN_MASK);
2440 const I2C_Regs *i2c)
2443 (i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2EN_MASK) == I2C_SOAR2_OAR2EN_ENABLE);
2453 i2c->SLAVE.SOAR2 |= I2C_SOAR2_OAR2EN_ENABLE;
2469 (i2c->SLAVE.SSR & I2C_SSR_ADDRMATCH_MASK) >> I2C_SSR_ADDRMATCH_OFS);
2485 i2c->SLAVE.SCTR &= ~(I2C_SCTR_SCLKSTRETCH_MASK);
2500 return ((i2c->SLAVE.SCTR & I2C_SCTR_SCLKSTRETCH_MASK) ==
2501 I2C_SCTR_SCLKSTRETCH_ENABLE);
2517 i2c->SLAVE.SCTR |= I2C_SCTR_SCLKSTRETCH_ENABLE;
2533 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXEMPTY_ON_TREQ_MASK);
2548 const I2C_Regs *i2c)
2550 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXEMPTY_ON_TREQ_MASK) ==
2551 I2C_SCTR_TXEMPTY_ON_TREQ_ENABLE);
2565 i2c->SLAVE.SCTR |= I2C_SCTR_TXEMPTY_ON_TREQ_ENABLE;
2578 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXTRIG_TXMODE_MASK);
2592 const I2C_Regs *i2c)
2594 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXTRIG_TXMODE_MASK) ==
2595 I2C_SCTR_TXTRIG_TXMODE_ENABLE);
2616 i2c->SLAVE.SCTR |= I2C_SCTR_TXTRIG_TXMODE_ENABLE;
2629 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXWAIT_STALE_TXFIFO_MASK);
2647 const I2C_Regs *i2c)
2649 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXWAIT_STALE_TXFIFO_MASK) ==
2650 I2C_SCTR_TXWAIT_STALE_TXFIFO_ENABLE);
2667 i2c->SLAVE.SCTR |= I2C_SCTR_TXWAIT_STALE_TXFIFO_ENABLE;
2684 i2c->SLAVE.SCTR &= ~(I2C_SCTR_RXFULL_ON_RREQ_MASK);
2698 const I2C_Regs *i2c)
2700 return ((i2c->SLAVE.SCTR & I2C_SCTR_RXFULL_ON_RREQ_MASK) ==
2701 I2C_SCTR_RXFULL_ON_RREQ_ENABLE);
2717 i2c->SLAVE.SCTR |= I2C_SCTR_RXFULL_ON_RREQ_ENABLE;
2732 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_DEFHOSTADR_MASK);
2748 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_DEFHOSTADR_MASK) ==
2749 I2C_SCTR_EN_DEFHOSTADR_ENABLE);
2762 i2c->SLAVE.SCTR |= I2C_SCTR_EN_DEFHOSTADR_ENABLE;
2778 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_ALRESPADR_MASK);
2794 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_ALRESPADR_MASK) ==
2795 I2C_SCTR_EN_ALRESPADR_ENABLE);
2808 i2c->SLAVE.SCTR |= I2C_SCTR_EN_ALRESPADR_ENABLE;
2824 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_DEFDEVADR_MASK);
2840 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_DEFDEVADR_MASK) ==
2841 I2C_SCTR_EN_DEFDEVADR_ENABLE);
2854 i2c->SLAVE.SCTR |= I2C_SCTR_EN_DEFDEVADR_ENABLE;
2867 i2c->SLAVE.SCTR &= ~(I2C_SCTR_SWUEN_MASK);
2882 return ((i2c->SLAVE.SCTR & I2C_SCTR_SWUEN_MASK) == I2C_SCTR_SWUEN_ENABLE);
2897 i2c->SLAVE.SCTR |= I2C_SCTR_SWUEN_ENABLE;
2907 i2c->SLAVE.SCTR &= ~(I2C_SCTR_ACTIVE_MASK);
2923 (i2c->SLAVE.SCTR & I2C_SCTR_ACTIVE_MASK) == I2C_SCTR_ACTIVE_ENABLE);
2933 i2c->SLAVE.SCTR |= I2C_SCTR_ACTIVE_ENABLE;
2943 i2c->SLAVE.SCTR &= ~(I2C_SCTR_GENCALL_MASK);
2959 (i2c->SLAVE.SCTR & I2C_SCTR_GENCALL_MASK) == I2C_SCTR_GENCALL_ENABLE);
2969 i2c->SLAVE.SCTR |= I2C_SCTR_GENCALL_ENABLE;
2983 return (i2c->SLAVE.SSR);
2999 return (uint8_t)(i2c->SLAVE.SRXDATA & I2C_SRXDATA_VALUE_MASK);
3011 i2c->SLAVE.STXDATA = data;
3024 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_MASK);
3039 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_MASK) ==
3040 I2C_SACKCTL_ACKOEN_ENABLE);
3056 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ENABLE;
3071 __STATIC_INLINE DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE
3074 uint32_t value = i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOVAL_MASK;
3076 return (DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE)(value);
3092 I2C_Regs *i2c, DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE value)
3095 &i2c->SLAVE.SACKCTL, (uint32_t) value, I2C_SACKCTL_ACKOVAL_MASK);
3105 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_START_MASK);
3120 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_START_MASK) ==
3121 I2C_SACKCTL_ACKOEN_ON_START_ENABLE);
3136 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_START_ENABLE;
3146 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_PECNEXT_MASK);
3162 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_PECNEXT_MASK) ==
3163 I2C_SACKCTL_ACKOEN_ON_PECNEXT_ENABLE);
3181 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_PECNEXT_ENABLE;
3191 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_PECDONE_MASK);
3207 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_PECDONE_MASK) ==
3208 I2C_SACKCTL_ACKOEN_ON_PECDONE_ENABLE);
3223 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_PECDONE_ENABLE;
3238 return (i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECCTL_PECCNT_MASK);
3253 I2C_Regs *i2c, uint32_t count)
3256 &i2c->SLAVE.TARGET_PECCTL, count, I2C_TARGET_PECCTL_PECCNT_MASK);
3266 i2c->SLAVE.TARGET_PECCTL &= ~(I2C_TARGET_PECCTL_PECEN_MASK);
3282 return ((i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECCTL_PECEN_MASK) ==
3283 I2C_TARGET_PECCTL_PECEN_ENABLE);
3302 i2c->SLAVE.TARGET_PECCTL |= I2C_TARGET_PECCTL_PECEN_ENABLE;
3317 return (i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECSR_PECBYTECNT_MASK);
3334 const I2C_Regs *i2c)
3337 i2c->SLAVE.TARGET_PECSR & I2C_TARGET_PECSR_PECSTS_CHECK_MASK;
3339 return (DL_I2C_TARGET_PEC_STATUS)(status);
3355 const I2C_Regs *i2c)
3358 i2c->SLAVE.TARGET_PECSR & I2C_TARGET_PECSR_PECSTS_ERROR_MASK;
3360 return (DL_I2C_TARGET_PEC_CHECK_ERROR)(status);
3373 const I2C_Regs *i2c)
3375 uint32_t level = i2c->SLAVE.SFIFOCTL & I2C_SFIFOCTL_TXTRIG_MASK;
3377 return (DL_I2C_TX_FIFO_LEVEL)(level);
3389 I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
3392 (uint32_t) I2C_SFIFOCTL_TXTRIG_MASK);
3405 i2c->SLAVE.SFIFOCTL &= ~(I2C_SFIFOCTL_TXFLUSH_MASK);
3415 i2c->SLAVE.SFIFOCTL |= I2C_SFIFOCTL_TXFLUSH_MASK;
3428 i2c->SLAVE.SFIFOCTL &= ~(I2C_SFIFOCTL_RXFLUSH_MASK);
3438 i2c->SLAVE.SFIFOCTL |= I2C_SFIFOCTL_RXFLUSH_MASK;
3451 const I2C_Regs *i2c)
3453 uint32_t level = i2c->SLAVE.SFIFOCTL & I2C_SFIFOCTL_RXTRIG_MASK;
3455 return (DL_I2C_RX_FIFO_LEVEL)(level);
3467 I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
3470 &i2c->SLAVE.SFIFOCTL, (uint32_t) level, I2C_SFIFOCTL_RXTRIG_MASK);
3484 return (i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFIFOCNT_MASK);
3498 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFIFOCNT_MASK) >>
3499 I2C_SFIFOSR_TXFIFOCNT_OFS);
3514 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFLUSH_MASK) ==
3515 I2C_SFIFOSR_RXFLUSH_ACTIVE);
3530 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFLUSH_MASK) ==
3531 I2C_SFIFOSR_TXFLUSH_ACTIVE);
3543 I2C_Regs *i2c, uint32_t interruptMask)
3545 i2c->CPU_INT.IMASK |= interruptMask;
3557 I2C_Regs *i2c, uint32_t interruptMask)
3559 i2c->CPU_INT.IMASK &= ~(interruptMask);
3575 const I2C_Regs *i2c, uint32_t interruptMask)
3577 return (i2c->CPU_INT.IMASK & interruptMask);
3598 const I2C_Regs *i2c, uint32_t interruptMask)
3600 return (i2c->CPU_INT.MIS & interruptMask);
3619 const I2C_Regs *i2c, uint32_t interruptMask)
3621 return (i2c->CPU_INT.RIS & interruptMask);
3638 return ((DL_I2C_IIDX) i2c->CPU_INT.IIDX);
3650 I2C_Regs *i2c, uint32_t interruptMask)
3652 i2c->CPU_INT.ICLR = interruptMask;
3676 i2c->DMA_TRIG1.IMASK = interrupt;
3679 i2c->DMA_TRIG0.IMASK = interrupt;
3705 i2c->DMA_TRIG1.IMASK &= ~(interrupt);
3708 i2c->DMA_TRIG0.IMASK &= ~(interrupt);
3736 volatile uint32_t *pReg = &i2c->DMA_TRIG1.IMASK;
3738 return ((*(pReg + (uint32_t) index) & interruptMask));
3766 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.MIS;
3768 return ((*(pReg + (uint32_t) index) & interruptMask));
3792 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.RIS;
3794 return ((*(pReg + (uint32_t) index) & interruptMask));
3816 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.IIDX;
3818 return (DL_I2C_DMA_IIDX)((*(pReg + (uint32_t) index)));
3837 i2c->DMA_TRIG1.ICLR |= interrupt;
3840 i2c->DMA_TRIG0.ICLR |= interrupt;
3857 i2c->GFCTL &= ~(I2C_GFCTL_CHAIN_MASK);
3872 return ((i2c->GFCTL & I2C_GFCTL_CHAIN_MASK) == I2C_GFCTL_CHAIN_ENABLE);
3885 i2c->GFCTL |= I2C_GFCTL_CHAIN_ENABLE;
3899 return (i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTLA_MASK);
3930 i2c->TIMEOUT_CTL &= ~(I2C_TIMEOUT_CTL_TCNTAEN_MASK);
3945 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTAEN_MASK) ==
3946 I2C_TIMEOUT_CTL_TCNTAEN_ENABLE);
3956 i2c->TIMEOUT_CTL |= I2C_TIMEOUT_CTL_TCNTAEN_ENABLE;
3973 return (i2c->TIMEOUT_CNT & I2C_TIMEOUT_CNT_TCNTA_MASK);
3987 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTLB_MASK) >>
3988 I2C_TIMEOUT_CTL_TCNTLB_OFS);
4008 (count << I2C_TIMEOUT_CTL_TCNTLB_OFS), I2C_TIMEOUT_CTL_TCNTLB_MASK);
4018 i2c->TIMEOUT_CTL &= ~(I2C_TIMEOUT_CTL_TCNTBEN_MASK);
4033 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTBEN_MASK) ==
4034 I2C_TIMEOUT_CTL_TCNTBEN_ENABLE);
4044 i2c->TIMEOUT_CTL |= I2C_TIMEOUT_CTL_TCNTBEN_ENABLE;
4061 return (i2c->TIMEOUT_CNT & I2C_TIMEOUT_CNT_TCNTB_MASK);
__STATIC_INLINE void DL_I2C_disableController(I2C_Regs *i2c)
Disable controller.
Definition: dl_i2c.h:1972
__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:1333
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:2627
DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE
Definition: dl_i2c.h:665
__STATIC_INLINE void DL_I2C_enableTargetClockStretching(I2C_Regs *i2c)
Enable target clock stretching.
Definition: dl_i2c.h:2515
__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_getTargetCurrentPECCount(const I2C_Regs *i2c)
Get the current SMBus/PMBus PEC byte count of the Target state machine.
Definition: dl_i2c.h:3315
__STATIC_INLINE bool DL_I2C_isACKOverrideOnStartEnabled(const I2C_Regs *i2c)
Checks if target ACK override on Start condition is enabled.
Definition: dl_i2c.h:3118
__STATIC_INLINE void DL_I2C_enableTimeoutB(I2C_Regs *i2c)
Enable Timeout Counter B.
Definition: dl_i2c.h:4042
__STATIC_INLINE DL_I2C_TARGET_PEC_CHECK_ERROR DL_I2C_getTargetPECCheckError(const I2C_Regs *i2c)
Get status if SMBus/PMBus target PEC had an error.
Definition: dl_i2c.h:3354
__STATIC_INLINE void DL_I2C_enableTargetTXWaitWhenTXFIFOStale(I2C_Regs *i2c)
Enable target TX transfer waits when stale data in TX FIFO.
Definition: dl_i2c.h:2665
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOFull(const I2C_Regs *i2c)
Checks if target TX FIFO is full.
Definition: dl_i2c.h:933
__STATIC_INLINE void DL_I2C_disableTargetTXTriggerInTXMode(I2C_Regs *i2c)
Disable target TX trigger in TX mode.
Definition: dl_i2c.h:2576
__STATIC_INLINE bool DL_I2C_isACKOverrideOnPECDoneEnabled(const I2C_Regs *i2c)
Checks if target ACK override when SMBus/PMBus PEC is next byte is enabled.
Definition: dl_i2c.h:3205
__STATIC_INLINE uint32_t DL_I2C_getEnabledInterrupts(const I2C_Regs *i2c, uint32_t interruptMask)
Check which I2C interrupts are enabled.
Definition: dl_i2c.h:3574
__STATIC_INLINE uint32_t DL_I2C_getControllerCurrentPECCount(const I2C_Regs *i2c)
Get the current SMBus/PMBus PEC byte count of the controller state machine.
Definition: dl_i2c.h:1558
__STATIC_INLINE void DL_I2C_startFlushControllerRXFIFO(I2C_Regs *i2c)
Start controller RX FIFO flush.
Definition: dl_i2c.h:2187
__STATIC_INLINE void DL_I2C_disableDefaultHostAddress(I2C_Regs *i2c)
Disable SMBus/PMBus default host address of 000 1000b.
Definition: dl_i2c.h:2730
DL_I2C_TARGET_PEC_STATUS
Definition: dl_i2c.h:491
__STATIC_INLINE DL_I2C_CONTROLLER_SCL DL_I2C_getSCLStatus(const I2C_Regs *i2c)
Get SCL signal status.
Definition: dl_i2c.h:2059
__STATIC_INLINE uint32_t DL_I2C_getRawDMAEventStatus(const 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:3789
__STATIC_INLINE bool DL_I2C_isControllerBurstEnabled(const I2C_Regs *i2c)
Checks if I2C controller burst mode is enabled.
Definition: dl_i2c.h:1627
__STATIC_INLINE void DL_I2C_disableGeneralCall(I2C_Regs *i2c)
Disable general call address of 000 0000b.
Definition: dl_i2c.h:2941
__STATIC_INLINE void DL_I2C_disableTimeoutB(I2C_Regs *i2c)
Disable Timeout Counter B.
Definition: dl_i2c.h:4016
bool DL_I2C_transmitTargetDataCheck(I2C_Regs *i2c, uint8_t data)
Transmit target data.
__STATIC_INLINE void DL_I2C_enableACKOverrideOnStart(I2C_Regs *i2c)
Enable target ACK override on Start condition.
Definition: dl_i2c.h:3134
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:3700
__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
__STATIC_INLINE void DL_I2C_disableInterrupt(I2C_Regs *i2c, uint32_t interruptMask)
Disable I2C interrupts.
Definition: dl_i2c.h:3556
__STATIC_INLINE void DL_I2C_disableTargetWakeup(I2C_Regs *i2c)
Disable target wakeup.
Definition: dl_i2c.h:2865
__STATIC_INLINE uint32_t DL_I2C_getTargetTXFIFOCounter(const I2C_Regs *i2c)
Get number of bytes which can be put into TX FIFO.
Definition: dl_i2c.h:3496
__STATIC_INLINE bool DL_I2C_isTargetClockStretchingEnabled(const I2C_Regs *i2c)
Checks if target clock stretching is enabled.
Definition: dl_i2c.h:2498
__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:1494
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:2132
__STATIC_INLINE uint32_t DL_I2C_getControllerTXFIFOCounter(const I2C_Regs *i2c)
Get number of bytes which can be put into TX FIFO.
Definition: dl_i2c.h:2215
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:1612
__STATIC_INLINE void DL_I2C_disableACKOverrideOnStart(I2C_Regs *i2c)
Disable target ACK override on Start Condition.
Definition: dl_i2c.h:3103
__STATIC_INLINE uint32_t DL_I2C_getControllerPECCountValue(const I2C_Regs *i2c)
Get the SMBus/PMBus Packet Error Checking (PEC) count value.
Definition: dl_i2c.h:1478
__STATIC_INLINE void DL_I2C_disablePower(I2C_Regs *i2c)
Disables the Peripheral Write Enable (PWREN) register for the I2C.
Definition: dl_i2c.h:1074
void DL_I2C_flushControllerRXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the controller RX FIFO.
__STATIC_INLINE bool DL_I2C_isControllerRXFIFOFlushActive(const I2C_Regs *i2c)
Checks if controller RX FIFO flush is active.
Definition: dl_i2c.h:2231
__STATIC_INLINE void DL_I2C_enableAlertResponseAddress(I2C_Regs *i2c)
Enable SMBus/PMBus Alert response address (ARA) of 000 1100b.
Definition: dl_i2c.h:2806
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:1672
__STATIC_INLINE DL_I2C_TX_FIFO_LEVEL DL_I2C_getControllerTXFIFOThreshold(const I2C_Regs *i2c)
Get controller TX FIFO threshold level.
Definition: dl_i2c.h:2091
__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:3009
__STATIC_INLINE void DL_I2C_disableACKOverrideOnPECDone(I2C_Regs *i2c)
Disable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3189
__STATIC_INLINE DL_I2C_CONTROLLER_ADDRESSING_MODE DL_I2C_getControllerAddressingMode(const I2C_Regs *i2c)
Get controller addressing mode.
Definition: dl_i2c.h:1351
void DL_I2C_setClockConfig(I2C_Regs *i2c, const DL_I2C_ClockConfig *config)
Configure I2C source clock.
__STATIC_INLINE DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH DL_I2C_getDigitalGlitchFilterPulseWidth(const I2C_Regs *i2c)
Get Digital Glitch Suppression Pulse Width.
Definition: dl_i2c.h:1208
__STATIC_INLINE DL_I2C_TX_FIFO_LEVEL DL_I2C_getTargetTXFIFOThreshold(const I2C_Regs *i2c)
Get target TX FIFO threshold level.
Definition: dl_i2c.h:3372
__STATIC_INLINE void DL_I2C_setTargetOwnAddressAlternateMask(I2C_Regs *i2c, uint32_t addressMask)
Set target own address alternate mask.
Definition: dl_i2c.h:2412
__STATIC_INLINE DL_I2C_CONTROLLER_PEC_STATUS DL_I2C_getControllerPECCheckedStatus(const I2C_Regs *i2c)
If controller SMBus/PMBus PEC was checked in last transaction.
Definition: dl_i2c.h:1578
DL_I2C_CONTROLLER_SDA
Definition: dl_i2c.h:593
DL_I2C_CONTROLLER_START
Definition: dl_i2c.h:601
__STATIC_INLINE uint8_t DL_I2C_getTimerPeriod(const I2C_Regs *i2c)
Get timer period This field is used in the equation to configure SCL_PERIOD:
Definition: dl_i2c.h:1864
__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:1888
__STATIC_INLINE void DL_I2C_enableTargetOwnAddress(I2C_Regs *i2c)
Enable target own address.
Definition: dl_i2c.h:2294
__STATIC_INLINE void DL_I2C_enableGeneralCall(I2C_Regs *i2c)
Enable usage of general call address of 000 0000b.
Definition: dl_i2c.h:2967
__STATIC_INLINE void DL_I2C_enableControllerACKOverride(I2C_Regs *i2c)
Enable controller ACK override.
Definition: dl_i2c.h:1415
#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 bool DL_I2C_isTargetRXFIFOEmpty(const I2C_Regs *i2c)
Checks if target RX FIFO is empty.
Definition: dl_i2c.h:965
__STATIC_INLINE DL_I2C_RX_FIFO_LEVEL DL_I2C_getControllerRXFIFOThreshold(const I2C_Regs *i2c)
Get controller RX FIFO threshold level.
Definition: dl_i2c.h:2146
__STATIC_INLINE uint32_t DL_I2C_getTargetAddress(const I2C_Regs *i2c)
Get the address of the target being addressed when configured as an I2C controller.
Definition: dl_i2c.h:1315
__STATIC_INLINE void DL_I2C_stopFlushControllerRXFIFO(I2C_Regs *i2c)
Stop controller RX FIFO flush.
Definition: dl_i2c.h:2177
DL_I2C_CLOCK
Definition: dl_i2c.h:455
__STATIC_INLINE uint32_t DL_I2C_getTargetRXFIFOCounter(const I2C_Regs *i2c)
Get number of bytes which can be read from RX FIFO.
Definition: dl_i2c.h:3482
__STATIC_INLINE void DL_I2C_enableDefaultHostAddress(I2C_Regs *i2c)
Enable SMBus/PMBus default host address of 000 1000b.
Definition: dl_i2c.h:2760
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:2122
__STATIC_INLINE void DL_I2C_setControllerDirection(I2C_Regs *i2c, DL_I2C_CONTROLLER_DIRECTION direction)
Set direction of next controller operation.
Definition: dl_i2c.h:1292
__STATIC_INLINE uint8_t DL_I2C_receiveTargetData(const I2C_Regs *i2c)
Get byte of data from I2C target.
Definition: dl_i2c.h:2997
__STATIC_INLINE DL_I2C_CONTROLLER_SDA DL_I2C_getSDAStatus(const I2C_Regs *i2c)
Get SDA signal status.
Definition: dl_i2c.h:2075
__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:1225
__STATIC_INLINE bool DL_I2C_isTargetOwnAddressEnabled(const I2C_Regs *i2c)
Checks if target own address is enabled.
Definition: dl_i2c.h:2319
DL_I2C_CONTROLLER_ADDRESSING_MODE
Definition: dl_i2c.h:553
__STATIC_INLINE uint32_t DL_I2C_getCurrentTimeoutBCounter(const I2C_Regs *i2c)
Get the current Timer Counter B value.
Definition: dl_i2c.h:4059
__STATIC_INLINE DL_I2C_DMA_IIDX DL_I2C_getPendingDMAEvent(const I2C_Regs *i2c, DL_I2C_EVENT_ROUTE index)
Get highest priority pending I2C interrupt for DMA event.
Definition: dl_i2c.h:3813
__STATIC_INLINE DL_I2C_TARGET_PEC_STATUS DL_I2C_getTargetPECCheckedStatus(const I2C_Regs *i2c)
Get status if SMBus/PMBus target PEC was checked in last transaction.
Definition: dl_i2c.h:3333
__STATIC_INLINE uint8_t DL_I2C_receiveControllerData(const I2C_Regs *i2c)
Get byte of data from I2C controller.
Definition: dl_i2c.h:1824
void DL_I2C_flushTargetRXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the target RX FIFO.
uint8_t DL_I2C_fillTargetTXFIFO(I2C_Regs *i2c, const uint8_t *buffer, uint8_t count)
Fills the target TX FIFO with data.
__STATIC_INLINE void DL_I2C_enableControllerReadOnTXEmpty(I2C_Regs *i2c)
Enable controller read on TX empty.
Definition: dl_i2c.h:1464
__STATIC_INLINE void DL_I2C_disableTargetClockStretching(I2C_Regs *i2c)
Disable target clock stretching.
Definition: dl_i2c.h:2483
__STATIC_INLINE void DL_I2C_enableTargetTXEmptyOnTXRequest(I2C_Regs *i2c)
Enable target TX empty interrupt on transmit request.
Definition: dl_i2c.h:2563
__STATIC_INLINE void DL_I2C_disableACKOverrideOnPECNext(I2C_Regs *i2c)
Disable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3144
uint8_t DL_I2C_receiveTargetDataBlocking(const I2C_Regs *i2c)
Receive target data, waiting until receive request.
__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:2107
__STATIC_INLINE void DL_I2C_enableTarget(I2C_Regs *i2c)
Enable usage of target functionality.
Definition: dl_i2c.h:2931
__STATIC_INLINE uint16_t DL_I2C_getTransactionCount(const I2C_Regs *i2c)
Get transaction count in bytes.
Definition: dl_i2c.h:1807
__STATIC_INLINE DL_I2C_CONTROLLER_PEC_CHECK_ERROR DL_I2C_getControllerPECCheckError(const I2C_Regs *i2c)
Get the status of the controller SMBus/PMBus PEC Check error.
Definition: dl_i2c.h:1599
__STATIC_INLINE uint32_t DL_I2C_getTargetOwnAddress(const I2C_Regs *i2c)
Get target own address.
Definition: dl_i2c.h:2282
__STATIC_INLINE void DL_I2C_selectClockDivider(I2C_Regs *i2c, DL_I2C_CLOCK_DIVIDE clockDivider)
Set Clock Divider.
Definition: dl_i2c.h:1153
__STATIC_INLINE bool DL_I2C_isACKOverrideOnPECNextEnabled(const I2C_Regs *i2c)
Checks if target ACK override when SMBus/PMBus PEC is next byte is enabled.
Definition: dl_i2c.h:3160
__STATIC_INLINE void DL_I2C_enableACKOverrideOnPECDone(I2C_Regs *i2c)
Enable target ACK override when SMBus/PMBus PEC is done.
Definition: dl_i2c.h:3221
__STATIC_INLINE void DL_I2C_setTransactionLength(I2C_Regs *i2c, uint32_t length)
Set transaction length in bytes.
Definition: dl_i2c.h:1777
__STATIC_INLINE void DL_I2C_disableGlitchFilterChaining(I2C_Regs *i2c)
Disable analog and digital glitch filter chaining.
Definition: dl_i2c.h:3855
__STATIC_INLINE void DL_I2C_enableController(I2C_Regs *i2c)
Enable controller.
Definition: dl_i2c.h:2000
__STATIC_INLINE uint32_t DL_I2C_getEnabledInterruptStatus(const I2C_Regs *i2c, uint32_t interruptMask)
Check interrupt flag of enabled I2C interrupts.
Definition: dl_i2c.h:3597
__STATIC_INLINE void DL_I2C_setTargetOwnAddressAlternate(I2C_Regs *i2c, uint32_t addr)
Set target own address alternate.
Definition: dl_i2c.h:2377
__STATIC_INLINE bool DL_I2C_isTimeoutBEnabled(const I2C_Regs *i2c)
Checks if Timeout Counter B is enabled.
Definition: dl_i2c.h:4031
__STATIC_INLINE bool DL_I2C_isTargetTXTriggerInTXModeEnabled(const I2C_Regs *i2c)
Checks if target TX trigger in TX mode is enabled.
Definition: dl_i2c.h:2591
__STATIC_INLINE bool DL_I2C_isMultiControllerModeEnabled(const I2C_Regs *i2c)
Checks if multicontroller mode is enabled.
Definition: dl_i2c.h:1948
__STATIC_INLINE bool DL_I2C_isTargetOwnAddressAlternateEnabled(const I2C_Regs *i2c)
Checks if target own address alternate is enabled.
Definition: dl_i2c.h:2439
__STATIC_INLINE void DL_I2C_setTimeoutACount(I2C_Regs *i2c, uint32_t count)
Set the Timeout Counter A value.
Definition: dl_i2c.h:3918
__STATIC_INLINE DL_I2C_RX_FIFO_LEVEL DL_I2C_getTargetRXFIFOThreshold(const I2C_Regs *i2c)
Get target RX FIFO threshold level.
Definition: dl_i2c.h:3450
__STATIC_INLINE bool DL_I2C_isTargetEnabled(const I2C_Regs *i2c)
Checks if target functionality is enabled.
Definition: dl_i2c.h:2920
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOEmpty(const I2C_Regs *i2c)
Checks if controller TX FIFO is empty.
Definition: dl_i2c.h:829
__STATIC_INLINE void DL_I2C_disableStartCondition(I2C_Regs *i2c)
Disable I2C START generation.
Definition: dl_i2c.h:1647
__STATIC_INLINE void DL_I2C_setTargetAddressingMode(I2C_Regs *i2c, DL_I2C_TARGET_ADDRESSING_MODE mode)
Set target addressing mode.
Definition: dl_i2c.h:2334
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOFlushActive(const I2C_Regs *i2c)
Checks if target TX FIFO flush is active.
Definition: dl_i2c.h:3528
__STATIC_INLINE bool DL_I2C_isDefaultHostAddressEnabled(const I2C_Regs *i2c)
Checks if SMBus/PMBus default host address of 000 1000b is enabled.
Definition: dl_i2c.h:2746
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOFull(const I2C_Regs *i2c)
Checks if controller TX FIFO is full.
Definition: dl_i2c.h:813
__STATIC_INLINE uint32_t DL_I2C_getEnabledDMAEventStatus(const 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:3763
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:3466
__STATIC_INLINE void DL_I2C_reset(I2C_Regs *i2c)
Resets i2c peripheral.
Definition: dl_i2c.h:1106
__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:3091
__STATIC_INLINE void DL_I2C_disableMultiControllerMode(I2C_Regs *i2c)
Disable multicontroller mode.
Definition: dl_i2c.h:1933
__STATIC_INLINE void DL_I2C_stopFlushTargetTXFIFO(I2C_Regs *i2c)
Stop target TX FIFO flush.
Definition: dl_i2c.h:3403
__STATIC_INLINE void DL_I2C_enableMultiControllerMode(I2C_Regs *i2c)
Enable multicontroller mode.
Definition: dl_i2c.h:1962
__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_isTargetRXFIFOFlushActive(const I2C_Regs *i2c)
Checks if target RX FIFO flush is active.
Definition: dl_i2c.h:3512
__STATIC_INLINE uint32_t DL_I2C_getTimeoutBCount(const I2C_Regs *i2c)
Get the Timeout Counter B value.
Definition: dl_i2c.h:3985
__STATIC_INLINE uint32_t DL_I2C_getTimeoutACount(const I2C_Regs *i2c)
Get the Timeout Counter A value.
Definition: dl_i2c.h:3897
__STATIC_INLINE void DL_I2C_enableTimeoutA(I2C_Regs *i2c)
Enable Timeout Counter A.
Definition: dl_i2c.h:3954
DL_I2C_CONTROLLER_PEC_STATUS
Definition: dl_i2c.h:561
__STATIC_INLINE DL_I2C_ANALOG_GLITCH_FILTER_WIDTH DL_I2C_getAnalogGlitchFilterPulseWidth(const I2C_Regs *i2c)
Get Analog Glitch Suppression Pulse Width.
Definition: dl_i2c.h:1172
__STATIC_INLINE void DL_I2C_enablePower(I2C_Regs *i2c)
Enables the Peripheral Write Enable (PWREN) register for the I2C.
Definition: dl_i2c.h:1059
__STATIC_INLINE void DL_I2C_disableLoopbackMode(I2C_Regs *i2c)
Disable loopback mode.
Definition: dl_i2c.h:1898
DL_I2C_CONTROLLER_PEC_CHECK_ERROR
Definition: dl_i2c.h:573
__STATIC_INLINE uint32_t DL_I2C_getTransactionLength(const I2C_Regs *i2c)
Get transaction length in bytes.
Definition: dl_i2c.h:1765
__STATIC_INLINE uint32_t I2C_getTargetOwnAddressAlternateMask(const I2C_Regs *i2c)
Get target own address alternate mask.
Definition: dl_i2c.h:2393
__STATIC_INLINE DL_I2C_TARGET_ADDRESSING_MODE DL_I2C_getTargetAddressingMode(const I2C_Regs *i2c)
Get target addressing mode.
Definition: dl_i2c.h:2350
DL_I2C_CONTROLLER_DIRECTION
Definition: dl_i2c.h:545
__STATIC_INLINE void DL_I2C_enableLoopbackMode(I2C_Regs *i2c)
Enable loopback mode.
Definition: dl_i2c.h:1923
Configuration struct for DL_I2C_setClockConfig.
Definition: dl_i2c.h:750
__STATIC_INLINE uint32_t DL_I2C_getTargetStatus(const I2C_Regs *i2c)
Get status of I2C bus controller for target.
Definition: dl_i2c.h:2981
__STATIC_INLINE void DL_I2C_enableGlitchFilterChaining(I2C_Regs *i2c)
Enable analog and digitial glitch filter chaining.
Definition: dl_i2c.h:3883
__STATIC_INLINE uint32_t DL_I2C_getTargetPECCountValue(const I2C_Regs *i2c)
Get the target SMBus/PMBus Packet Error Checking (PEC) count value.
Definition: dl_i2c.h:3236
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOEmpty(const I2C_Regs *i2c)
Checks if target TX FIFO is empty.
Definition: dl_i2c.h:949
__STATIC_INLINE bool DL_I2C_isTargetRXFullOnRXRequestEnabled(const I2C_Regs *i2c)
Checks if target RX full interrupt on receive request is enabled.
Definition: dl_i2c.h:2697
__STATIC_INLINE void DL_I2C_clearInterruptStatus(I2C_Regs *i2c, uint32_t interruptMask)
Clear pending I2C interrupts.
Definition: dl_i2c.h:3649
__STATIC_INLINE void DL_I2C_disableTargetOwnAddressAlternate(I2C_Regs *i2c)
Disable usage of target own address alternate.
Definition: dl_i2c.h:2424
__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:3252
__STATIC_INLINE DL_I2C_CONTROLLER_DIRECTION DL_I2C_getControllerDirection(const I2C_Regs *i2c)
Get direction of next controller operation.
Definition: dl_i2c.h:1276
__STATIC_INLINE void DL_I2C_disableControllerACKOverride(I2C_Regs *i2c)
Disable controller ACK override.
Definition: dl_i2c.h:1379
__STATIC_INLINE void DL_I2C_stopFlushTargetRXFIFO(I2C_Regs *i2c)
Stop target RX FIFO flush.
Definition: dl_i2c.h:3426
__STATIC_INLINE void DL_I2C_disableDefaultDeviceAddress(I2C_Regs *i2c)
Disable SMBus/PMBus default device address of 110 0001b.
Definition: dl_i2c.h:2822
__STATIC_INLINE bool DL_I2C_isLoopbackModeEnabled(const I2C_Regs *i2c)
Checks if loopback mode is enabled.
Definition: dl_i2c.h:1913
__STATIC_INLINE uint32_t DL_I2C_getTargetAddressMatch(const I2C_Regs *i2c)
Get the address for which address match happened.
Definition: dl_i2c.h:2466
__STATIC_INLINE uint32_t DL_I2C_getCurrentTimeoutACounter(const I2C_Regs *i2c)
Get the current Timer Counter A value.
Definition: dl_i2c.h:3971
__STATIC_INLINE void DL_I2C_startFlushTargetTXFIFO(I2C_Regs *i2c)
Start target TX FIFO flush.
Definition: dl_i2c.h:3413
__STATIC_INLINE DL_I2C_IIDX DL_I2C_getPendingInterrupt(const I2C_Regs *i2c)
Get highest priority pending I2C interrupt.
Definition: dl_i2c.h:3636
__STATIC_INLINE bool DL_I2C_isGlitchFilterChainingEnabled(const I2C_Regs *i2c)
Checks if analog and digital glitch filter chaining is enabled.
Definition: dl_i2c.h:3870
__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:3388
DL_I2C_DMA_IIDX
Definition: dl_i2c.h:433
__STATIC_INLINE void DL_I2C_disableControllerACK(I2C_Regs *i2c)
Disable I2C controller data acknowledge (ACK or NACK)
Definition: dl_i2c.h:1721
__STATIC_INLINE bool DL_I2C_isGeneralCallEnabled(const I2C_Regs *i2c)
Checks if general call address of 000 0000b is enabled.
Definition: dl_i2c.h:2956
__STATIC_INLINE void DL_I2C_enableControllerClockStretching(I2C_Regs *i2c)
Enable controller clock stretching.
Definition: dl_i2c.h:2045
__STATIC_INLINE bool DL_I2C_isControllerACKOverrideEnabled(const I2C_Regs *i2c)
Checks if controller ACK override is enabled.
Definition: dl_i2c.h:1394
void DL_I2C_flushTargetTXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the target TX FIFO.
DL_I2C_CONTROLLER_STOP
Definition: dl_i2c.h:609
__STATIC_INLINE void DL_I2C_disableTargetOwnAddress(I2C_Regs *i2c)
Disable target own address.
Definition: dl_i2c.h:2304
__STATIC_INLINE bool DL_I2C_isStartConditionEnabled(const I2C_Regs *i2c)
Checks if I2C START generation is enabled.
Definition: dl_i2c.h:1662
__STATIC_INLINE bool DL_I2C_isControllerReadOnTXEmptyEnabled(const I2C_Regs *i2c)
Checks if controller read on TX empty is enabled.
Definition: dl_i2c.h:1440
__STATIC_INLINE bool DL_I2C_isDefaultDeviceAddressEnabled(const I2C_Regs *i2c)
Checks SMBus/PMBus default device address of 110 0001b is enabled.
Definition: dl_i2c.h:2838
__STATIC_INLINE void DL_I2C_setTimeoutBCount(I2C_Regs *i2c, uint32_t count)
Set the Timeout Counter B value.
Definition: dl_i2c.h:4005
__STATIC_INLINE void DL_I2C_disableControllerReadOnTXEmpty(I2C_Regs *i2c)
Disable controller read on TX empty.
Definition: dl_i2c.h:1425
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:1506
__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:3671
__STATIC_INLINE bool DL_I2C_isTargetTXWaitWhenTXFIFOStaleEnabled(const I2C_Regs *i2c)
Checks if target TX transfer waits when stale data in TX FIFO is enabled.
Definition: dl_i2c.h:2646
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:2852
__STATIC_INLINE void DL_I2C_enableControllerPEC(I2C_Regs *i2c)
Enable controller SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:1543
__STATIC_INLINE void DL_I2C_disableStopCondition(I2C_Regs *i2c)
Disable I2C STOP generation.
Definition: dl_i2c.h:1682
__STATIC_INLINE bool DL_I2C_isControllerRXFIFOEmpty(const I2C_Regs *i2c)
Checks if controller RX FIFO is empty.
Definition: dl_i2c.h:845
void DL_I2C_getClockConfig(const I2C_Regs *i2c, DL_I2C_ClockConfig *config)
Get I2C source clock configuration.
__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:1368
__STATIC_INLINE uint32_t DL_I2C_getControllerStatus(const I2C_Regs *i2c)
Get status of I2C bus controller for controller.
Definition: dl_i2c.h:1793
__STATIC_INLINE void DL_I2C_enableAnalogGlitchFilter(I2C_Regs *i2c)
Enable Analog Glitch Suppression.
Definition: dl_i2c.h:1262
__STATIC_INLINE bool DL_I2C_isControllerClockStretchingEnabled(const I2C_Regs *i2c)
Checks if controller clock stretching is enabled.
Definition: dl_i2c.h:2029
__STATIC_INLINE bool DL_I2C_isTargetPECEnabled(const I2C_Regs *i2c)
Checks if target SMBus/PMBus Packet Error Checking (PEC) is enabled.
Definition: dl_i2c.h:3280
__STATIC_INLINE bool DL_I2C_isAnalogGlitchFilterEnabled(const I2C_Regs *i2c)
Checks if analog glitch suppression is enabled.
Definition: dl_i2c.h:1252
__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:3733
__STATIC_INLINE bool DL_I2C_isAlertResponseAddressEnabled(const I2C_Regs *i2c)
Checks if SMBus/PMBus Alert response address (ARA) of 000 1100b is enabled.
Definition: dl_i2c.h:2792
__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:1838
__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:1188
__STATIC_INLINE bool DL_I2C_isControllerEnabled(const I2C_Regs *i2c)
Checks if controller is enabled.
Definition: dl_i2c.h:1987
__STATIC_INLINE void DL_I2C_disableTarget(I2C_Regs *i2c)
Disable target functionality.
Definition: dl_i2c.h:2905
__STATIC_INLINE void DL_I2C_disableAnalogGlitchFilter(I2C_Regs *i2c)
Disable Analog Glitch Suppression.
Definition: dl_i2c.h:1237
__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:3832
__STATIC_INLINE void DL_I2C_enableControllerACK(I2C_Regs *i2c)
Enable I2C controller data acknowledge (ACK or NACK)
Definition: dl_i2c.h:1751
__STATIC_INLINE void DL_I2C_disableControllerClockStretching(I2C_Regs *i2c)
Disable controller clock stretching.
Definition: dl_i2c.h:2014
bool DL_I2C_receiveTargetDataCheck(const I2C_Regs *i2c, uint8_t *buffer)
Receive target data.
__STATIC_INLINE void DL_I2C_enableInterrupt(I2C_Regs *i2c, uint32_t interruptMask)
Enable I2C interrupts.
Definition: dl_i2c.h:3542
__STATIC_INLINE void DL_I2C_enableACKOverrideOnPECNext(I2C_Regs *i2c)
Enable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3179
__STATIC_INLINE bool DL_I2C_isControllerPECEnabled(const I2C_Regs *i2c)
Checks if controller SMBus/PMBus Packet Error Checking (PEC) is enabled.
Definition: dl_i2c.h:1522
__STATIC_INLINE bool DL_I2C_isTargetTXEmptyOnTXRequestEnabled(const I2C_Regs *i2c)
Checks if target TX empty interrupt on transmit request is enabled.
Definition: dl_i2c.h:2547
__STATIC_INLINE void DL_I2C_enableTargetWakeup(I2C_Regs *i2c)
Enable target wakeup.
Definition: dl_i2c.h:2895
__STATIC_INLINE void DL_I2C_disableTimeoutA(I2C_Regs *i2c)
Disable Timeout Counter A.
Definition: dl_i2c.h:3928
__STATIC_INLINE void DL_I2C_selectClockSource(I2C_Regs *i2c, DL_I2C_CLOCK clockSource)
Set Clock Source.
Definition: dl_i2c.h:1138
__STATIC_INLINE bool DL_I2C_isTargetACKOverrideEnabled(const I2C_Regs *i2c)
Checks if target ACK override is enabled.
Definition: dl_i2c.h:3037
__STATIC_INLINE void DL_I2C_enableTargetPEC(I2C_Regs *i2c)
Enable target SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:3300
__STATIC_INLINE void DL_I2C_enableTargetACKOverride(I2C_Regs *i2c)
Enable target ACK override.
Definition: dl_i2c.h:3054
__STATIC_INLINE void DL_I2C_enableTargetRXFullOnRXRequest(I2C_Regs *i2c)
Enable target RX full interrupt on receive request.
Definition: dl_i2c.h:2715
__STATIC_INLINE void DL_I2C_enableTargetTXTriggerInTXMode(I2C_Regs *i2c)
Enable TX trigger when target is in TX mode.
Definition: dl_i2c.h:2614
__STATIC_INLINE void DL_I2C_setTargetOwnAddress(I2C_Regs *i2c, uint32_t addr)
Set target own address.
Definition: dl_i2c.h:2264
__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 void DL_I2C_enableTargetOwnAddressAlternate(I2C_Regs *i2c)
Enable usage of target own address alternate.
Definition: dl_i2c.h:2451
__STATIC_INLINE bool DL_I2C_isTimeoutAEnabled(const I2C_Regs *i2c)
Checks if Timeout Counter A is enabled.
Definition: dl_i2c.h:3943
DL_I2C_TX_FIFO_LEVEL
Definition: dl_i2c.h:625
__STATIC_INLINE uint32_t I2C_getTargetOwnAddressAlternate(const I2C_Regs *i2c)
Get target own address alternate.
Definition: dl_i2c.h:2366
__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:2162
DL_I2C_CLOCK clockSel
Definition: dl_i2c.h:752
__STATIC_INLINE bool DL_I2C_isTargetWakeupEnabled(const I2C_Regs *i2c)
Checks if target wakeup is enabled.
Definition: dl_i2c.h:2880
__STATIC_INLINE uint32_t DL_I2C_getControllerRXFIFOCounter(const I2C_Regs *i2c)
Get number of bytes which can be read from RX FIFO.
Definition: dl_i2c.h:2201
__STATIC_INLINE void DL_I2C_enableControllerBurst(I2C_Regs *i2c)
Enable I2C controller burst mode.
Definition: dl_i2c.h:1637
__STATIC_INLINE bool DL_I2C_isControllerACKEnabled(const I2C_Regs *i2c)
Checks if I2C controller data acknowledge (ACK or NACK) is enabled.
Definition: dl_i2c.h:1737
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:1707
__STATIC_INLINE void DL_I2C_disableTargetTXEmptyOnTXRequest(I2C_Regs *i2c)
Disable target TX empty interrupt on transmit request.
Definition: dl_i2c.h:2531
__STATIC_INLINE bool DL_I2C_isStopConditionEnabled(const I2C_Regs *i2c)
Checks if I2C STOP generation is enabled.
Definition: dl_i2c.h:1697
__STATIC_INLINE void DL_I2C_disableTargetRXFullOnRXRequest(I2C_Regs *i2c)
Disable target RX full interrupt on receive request.
Definition: dl_i2c.h:2682
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOFlushActive(const I2C_Regs *i2c)
Checks if controller TX FIFO flush is active.
Definition: dl_i2c.h:2247
__STATIC_INLINE void DL_I2C_disableTargetACKOverride(I2C_Regs *i2c)
Disable target ACK override.
Definition: dl_i2c.h:3022
DL_I2C_IIDX
Definition: dl_i2c.h:673
DL_I2C_TARGET_PEC_CHECK_ERROR
Definition: dl_i2c.h:502
__STATIC_INLINE bool DL_I2C_isReset(const I2C_Regs *i2c)
Returns if i2c peripheral was reset.
Definition: dl_i2c.h:1122
__STATIC_INLINE bool DL_I2C_isPowerEnabled(const I2C_Regs *i2c)
Returns if the Peripheral Write Enable (PWREN) register for the I2C is enabled.
Definition: dl_i2c.h:1095
__STATIC_INLINE DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE DL_I2C_getTargetACKOverrideValue(const I2C_Regs *i2c)
Get target acknowledge override value.
Definition: dl_i2c.h:3072
uint16_t DL_I2C_fillControllerTXFIFO(I2C_Regs *i2c, const uint8_t *buffer, uint16_t count)
Fills the controller TX FIFO with data.
__STATIC_INLINE void DL_I2C_startFlushTargetRXFIFO(I2C_Regs *i2c)
Start target RX FIFO flush.
Definition: dl_i2c.h:3436
__STATIC_INLINE uint32_t DL_I2C_getRawInterruptStatus(const I2C_Regs *i2c, uint32_t interruptMask)
Check interrupt flag of any I2C interrupt.
Definition: dl_i2c.h:3618
__STATIC_INLINE void DL_I2C_disableTargetPEC(I2C_Regs *i2c)
Disable target SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:3264
__STATIC_INLINE void DL_I2C_disableAlertResponseAddress(I2C_Regs *i2c)
Disable SMBus/PMBus Alert response address (ARA) of 000 1100b.
Definition: dl_i2c.h:2776