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) 433 #define I2C_getTargetOwnAddressAlternateMask DL_I2C_getTargetOwnAddressAlternateMask 445 I2C_DMA_TRIG1_IIDX_STAT_STXFIFOTRG,
448 I2C_DMA_TRIG1_IIDX_STAT_SRXFIFOTRG
503 I2C_TARGET_PECSR_PECSTS_CHECK_CLEARED,
511 I2C_TARGET_PECSR_PECSTS_ERROR_CLEARED,
570 I2C_CONTROLLER_PECSR_PECSTS_CHECK_SET,
574 I2C_CONTROLLER_PECSR_PECSTS_CHECK_CLEARED,
582 I2C_CONTROLLER_PECSR_PECSTS_ERROR_SET,
586 I2C_CONTROLLER_PECSR_PECSTS_ERROR_CLEARED,
703 I2C_CPU_INT_IIDX_STAT_MDMA_DONE_TX,
706 I2C_CPU_INT_IIDX_STAT_MDMA_DONE_RX,
793 I2C_Regs *i2c,
const uint8_t *buffer, uint16_t count);
821 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFIFOCNT_MASK) ==
822 I2C_MFIFOSR_TXFIFOCNT_MINIMUM);
837 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFIFOCNT_MASK) ==
853 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFIFOCNT_MASK) ==
854 I2C_MFIFOSR_RXFIFOCNT_MINIMUM);
867 i2c->MASTER.MCTR = 0x00;
883 uint32_t targetAddr, DL_I2C_CONTROLLER_DIRECTION direction,
888 ((targetAddr << I2C_MSA_SADDR_OFS) | (uint32_t) direction),
889 (I2C_MSA_SADDR_MASK | I2C_MSA_DIR_MASK));
893 (((uint32_t) length << I2C_MCTR_MBLEN_OFS) | I2C_MCTR_BURSTRUN_ENABLE |
894 I2C_MCTR_START_ENABLE | I2C_MCTR_STOP_ENABLE),
895 (I2C_MCTR_MBLEN_MASK | I2C_MCTR_BURSTRUN_MASK | I2C_MCTR_START_MASK |
896 I2C_MCTR_STOP_MASK));
914 uint32_t targetAddr, DL_I2C_CONTROLLER_DIRECTION direction,
915 uint16_t length, DL_I2C_CONTROLLER_START start,
916 DL_I2C_CONTROLLER_STOP stop, DL_I2C_CONTROLLER_ACK ack)
920 ((targetAddr << I2C_MSA_SADDR_OFS) | (uint32_t) direction),
921 (I2C_MSA_SADDR_MASK | I2C_MSA_DIR_MASK));
924 (((uint32_t) length << I2C_MCTR_MBLEN_OFS) | I2C_MCTR_BURSTRUN_ENABLE |
925 (uint32_t) start | (uint32_t) stop | (uint32_t) ack),
926 (I2C_MCTR_MBLEN_MASK | I2C_MCTR_BURSTRUN_MASK | I2C_MCTR_START_MASK |
927 I2C_MCTR_STOP_MASK | I2C_MCTR_ACK_MASK));
942 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFIFOCNT_MASK) ==
943 I2C_SFIFOSR_TXFIFOCNT_MINIMUM);
958 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFIFOCNT_MASK) ==
974 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFIFOCNT_MASK) ==
975 I2C_SFIFOSR_RXFIFOCNT_MINIMUM);
988 I2C_Regs *i2c,
const uint8_t *buffer, uint8_t count);
1071 i2c->GPRCM.PWREN = (I2C_PWREN_KEY_UNLOCK_W | I2C_PWREN_ENABLE_ENABLE);
1086 i2c->GPRCM.PWREN = (I2C_PWREN_KEY_UNLOCK_W | I2C_PWREN_ENABLE_DISABLE);
1108 (i2c->GPRCM.PWREN & I2C_PWREN_ENABLE_MASK) == I2C_PWREN_ENABLE_ENABLE);
1119 (I2C_RSTCTL_KEY_UNLOCK_W | I2C_RSTCTL_RESETSTKYCLR_CLR |
1120 I2C_RSTCTL_RESETASSERT_ASSERT);
1134 return ((i2c->GPRCM.STAT & I2C_STAT_RESETSTKY_MASK) ==
1135 I2C_STAT_RESETSTKY_RESET);
1149 I2C_Regs *i2c, DL_I2C_CLOCK clockSource)
1152 I2C_CLKSEL_BUSCLK_SEL_MASK | I2C_CLKSEL_MFCLK_SEL_MASK);
1164 I2C_Regs *i2c, DL_I2C_CLOCK_DIVIDE clockDivider)
1167 &i2c->CLKDIV, (uint32_t) clockDivider, I2C_CLKDIV_RATIO_MASK);
1181 __STATIC_INLINE DL_I2C_ANALOG_GLITCH_FILTER_WIDTH
1184 uint32_t filterWidth = i2c->GFCTL & I2C_GFCTL_AGFSEL_MASK;
1186 return (DL_I2C_ANALOG_GLITCH_FILTER_WIDTH)(filterWidth);
1199 I2C_Regs *i2c, DL_I2C_ANALOG_GLITCH_FILTER_WIDTH filterWidth)
1202 &i2c->GFCTL, (uint32_t) filterWidth, I2C_GFCTL_AGFSEL_MASK);
1217 __STATIC_INLINE DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH
1220 uint32_t filterWidth = i2c->GFCTL & I2C_GFCTL_DGFSEL_MASK;
1222 return (DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH)(filterWidth);
1236 I2C_Regs *i2c, DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH filterWidth)
1239 &i2c->GFCTL, (uint32_t) filterWidth, I2C_GFCTL_DGFSEL_MASK);
1249 i2c->GFCTL &= ~(I2C_GFCTL_AGFEN_MASK);
1264 return ((i2c->GFCTL & I2C_GFCTL_AGFEN_MASK) == I2C_GFCTL_AGFEN_ENABLE);
1274 i2c->GFCTL |= I2C_GFCTL_AGFEN_ENABLE;
1287 const I2C_Regs *i2c)
1289 uint32_t direction = i2c->MASTER.MSA & I2C_MSA_DIR_MASK;
1291 return (DL_I2C_CONTROLLER_DIRECTION)(direction);
1303 I2C_Regs *i2c, DL_I2C_CONTROLLER_DIRECTION direction)
1306 &i2c->MASTER.MSA, (uint32_t) direction, I2C_MSA_DIR_MASK);
1327 return ((i2c->MASTER.MSA & I2C_MSA_SADDR_MASK) >> I2C_MSA_SADDR_OFS);
1344 I2C_Regs *i2c, uint32_t targetAddress)
1347 I2C_MSA_SADDR_MASK);
1360 __STATIC_INLINE DL_I2C_CONTROLLER_ADDRESSING_MODE
1363 uint32_t mode = i2c->MASTER.MSA & I2C_MSA_MMODE_MASK;
1365 return (DL_I2C_CONTROLLER_ADDRESSING_MODE)(mode);
1379 I2C_Regs *i2c, DL_I2C_CONTROLLER_ADDRESSING_MODE mode)
1391 i2c->MASTER.MCTR &= ~(I2C_MCTR_MACKOEN_MASK);
1407 (i2c->MASTER.MCTR & I2C_MCTR_MACKOEN_MASK) == I2C_MCTR_MACKOEN_ENABLE);
1427 i2c->MASTER.MCTR |= I2C_MCTR_MACKOEN_ENABLE;
1437 i2c->MASTER.MCTR &= ~(I2C_MCTR_RD_ON_TXEMPTY_MASK);
1451 const I2C_Regs *i2c)
1453 return ((i2c->MASTER.MCTR & I2C_MCTR_RD_ON_TXEMPTY_MASK) ==
1454 I2C_MCTR_RD_ON_TXEMPTY_ENABLE);
1476 i2c->MASTER.MCTR |= I2C_MCTR_RD_ON_TXEMPTY_ENABLE;
1490 return (i2c->MASTER.CONTROLLER_I2CPECCTL &
1491 I2C_CONTROLLER_I2CPECCTL_PECCNT_MASK);
1505 I2C_Regs *i2c, uint32_t count)
1508 I2C_CONTROLLER_I2CPECCTL_PECCNT_MASK);
1518 i2c->MASTER.CONTROLLER_I2CPECCTL &= ~(I2C_CONTROLLER_I2CPECCTL_PECEN_MASK);
1534 return ((i2c->MASTER.CONTROLLER_I2CPECCTL &
1535 I2C_CONTROLLER_I2CPECCTL_PECEN_MASK) ==
1536 I2C_CONTROLLER_I2CPECCTL_PECEN_ENABLE);
1555 i2c->MASTER.CONTROLLER_I2CPECCTL |= I2C_CONTROLLER_I2CPECCTL_PECEN_ENABLE;
1569 const I2C_Regs *i2c)
1572 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_CHECK_MASK);
1587 __STATIC_INLINE DL_I2C_CONTROLLER_PEC_STATUS
1591 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_CHECK_MASK;
1593 return (DL_I2C_CONTROLLER_PEC_STATUS)(status);
1608 __STATIC_INLINE DL_I2C_CONTROLLER_PEC_CHECK_ERROR
1612 i2c->MASTER.CONTROLLER_PECSR & I2C_CONTROLLER_PECSR_PECSTS_ERROR_MASK;
1614 return (DL_I2C_CONTROLLER_PEC_CHECK_ERROR)(error);
1624 i2c->MASTER.MCTR &= ~(I2C_MCTR_BURSTRUN_MASK);
1639 return ((i2c->GFCTL & I2C_MCTR_BURSTRUN_MASK) == I2C_MCTR_BURSTRUN_ENABLE);
1649 i2c->MASTER.MCTR |= I2C_MCTR_BURSTRUN_ENABLE;
1659 i2c->MASTER.MCTR &= ~(I2C_MCTR_START_MASK);
1674 return ((i2c->MASTER.MCTR & I2C_MCTR_START_MASK) == I2C_MCTR_START_ENABLE);
1684 i2c->MASTER.MCTR |= I2C_MCTR_START_ENABLE;
1694 i2c->MASTER.MCTR &= ~(I2C_MCTR_STOP_MASK);
1709 return ((i2c->MASTER.MCTR & I2C_MCTR_STOP_MASK) == I2C_MCTR_STOP_ENABLE);
1719 i2c->MASTER.MCTR |= I2C_MCTR_STOP_ENABLE;
1733 i2c->MASTER.MCTR &= ~(I2C_MCTR_ACK_MASK);
1749 return ((i2c->MASTER.MCTR & I2C_MCTR_ACK_MASK) == I2C_MCTR_ACK_ENABLE);
1763 i2c->MASTER.MCTR |= I2C_MCTR_ACK_MASK;
1777 return ((i2c->MASTER.MCTR & I2C_MCTR_MBLEN_MASK) >> I2C_MCTR_MBLEN_OFS);
1788 I2C_Regs *i2c, uint32_t length)
1791 I2C_MCTR_MBLEN_MASK);
1805 return (i2c->MASTER.MSR);
1820 (i2c->MASTER.MSR & I2C_MSR_MBCNT_MASK) >> I2C_MSR_MBCNT_OFS));
1836 return ((uint8_t)(i2c->MASTER.MRXDATA & I2C_MRXDATA_VALUE_MASK));
1850 i2c->MASTER.MTXDATA = data;
1876 return ((uint8_t)(i2c->MASTER.MTPR & I2C_MTPR_TPR_MASK));
1900 i2c->MASTER.MTPR = period;
1910 i2c->MASTER.MCR &= ~(I2C_MCR_LPBK_MASK);
1925 return ((i2c->MASTER.MCR & I2C_MCR_LPBK_MASK) == I2C_MCR_LPBK_ENABLE);
1935 i2c->MASTER.MCR |= I2C_MCR_LPBK_ENABLE;
1945 i2c->MASTER.MCR &= ~(I2C_MCR_MMST_MASK);
1960 return ((i2c->MASTER.MCR & I2C_MCR_MMST_MASK) == I2C_MCR_MMST_ENABLE);
1974 i2c->MASTER.MCR |= I2C_MCR_MMST_ENABLE;
1984 i2c->MASTER.MCR &= ~(I2C_MCR_ACTIVE_MASK);
1999 return ((i2c->MASTER.MCR & I2C_MCR_ACTIVE_MASK) == I2C_MCR_ACTIVE_ENABLE);
2012 i2c->MASTER.MCR |= I2C_MCR_ACTIVE_ENABLE;
2026 i2c->MASTER.MCR &= ~(I2C_MCR_CLKSTRETCH_MASK);
2040 const I2C_Regs *i2c)
2042 return ((i2c->MASTER.MCR & I2C_MCR_CLKSTRETCH_MASK) ==
2043 I2C_MCR_CLKSTRETCH_ENABLE);
2057 i2c->MASTER.MCR |= I2C_MCR_CLKSTRETCH_ENABLE;
2071 uint32_t sclStatus = i2c->MASTER.MBMON & I2C_MBMON_SCL_MASK;
2073 return (DL_I2C_CONTROLLER_SCL)(sclStatus);
2087 uint32_t sdaStatus = i2c->MASTER.MBMON & I2C_MBMON_SDA_MASK;
2089 return (DL_I2C_CONTROLLER_SDA)(sdaStatus);
2102 const I2C_Regs *i2c)
2104 uint32_t level = i2c->MASTER.MFIFOCTL & I2C_MFIFOCTL_TXTRIG_MASK;
2106 return (DL_I2C_TX_FIFO_LEVEL)(level);
2118 I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
2121 &i2c->MASTER.MFIFOCTL, (uint32_t) level, I2C_MFIFOCTL_TXTRIG_MASK);
2134 i2c->MASTER.MFIFOCTL &= ~(I2C_MFIFOCTL_TXFLUSH_MASK);
2144 i2c->MASTER.MFIFOCTL |= I2C_MFIFOCTL_TXFLUSH_MASK;
2157 const I2C_Regs *i2c)
2159 uint32_t level = i2c->MASTER.MFIFOCTL & I2C_MFIFOCTL_RXTRIG_MASK;
2161 return (DL_I2C_RX_FIFO_LEVEL)(level);
2173 I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
2176 &i2c->MASTER.MFIFOCTL, (uint32_t) level, I2C_MFIFOCTL_RXTRIG_MASK);
2189 i2c->MASTER.MFIFOCTL &= ~(I2C_MFIFOCTL_RXFLUSH_MASK);
2199 i2c->MASTER.MFIFOCTL |= I2C_MFIFOCTL_RXFLUSH_MASK;
2213 return (i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFIFOCNT_MASK);
2227 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFIFOCNT_MASK) >>
2228 I2C_MFIFOSR_TXFIFOCNT_OFS);
2243 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_RXFLUSH_MASK) ==
2244 I2C_MFIFOSR_RXFLUSH_ACTIVE);
2259 return ((i2c->MASTER.MFIFOSR & I2C_MFIFOSR_TXFLUSH_MASK) ==
2260 I2C_MFIFOSR_TXFLUSH_ACTIVE);
2294 return (i2c->SLAVE.SOAR & I2C_SOAR_OAR_MASK);
2306 i2c->SLAVE.SOAR |= I2C_SOAR_OAREN_ENABLE;
2316 i2c->SLAVE.SOAR &= ~(I2C_SOAR_OAREN_MASK);
2331 return ((i2c->SLAVE.SOAR & I2C_SOAR_OAREN_MASK) == I2C_SOAR_OAREN_ENABLE);
2345 I2C_Regs *i2c, DL_I2C_TARGET_ADDRESSING_MODE mode)
2348 &i2c->SLAVE.SOAR, (uint32_t) mode, I2C_SOAR_SMODE_MASK);
2361 const I2C_Regs *i2c)
2363 uint32_t mode = i2c->SLAVE.SOAR & I2C_SOAR_SMODE_MASK;
2365 return (DL_I2C_TARGET_ADDRESSING_MODE)(mode);
2378 return (i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2_MASK);
2388 I2C_Regs *i2c, uint32_t addr)
2404 const I2C_Regs *i2c)
2406 return ((i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2_MASK_MASK) >>
2407 I2C_SOAR2_OAR2_MASK_OFS);
2423 I2C_Regs *i2c, uint32_t addressMask)
2426 addressMask << I2C_SOAR2_OAR2_MASK_OFS, I2C_SOAR2_OAR2_MASK_MASK);
2436 i2c->SLAVE.SOAR2 &= ~(I2C_SOAR2_OAR2EN_MASK);
2450 const I2C_Regs *i2c)
2453 (i2c->SLAVE.SOAR2 & I2C_SOAR2_OAR2EN_MASK) == I2C_SOAR2_OAR2EN_ENABLE);
2463 i2c->SLAVE.SOAR2 |= I2C_SOAR2_OAR2EN_ENABLE;
2479 (i2c->SLAVE.SSR & I2C_SSR_ADDRMATCH_MASK) >> I2C_SSR_ADDRMATCH_OFS);
2495 i2c->SLAVE.SCTR &= ~(I2C_SCTR_SCLKSTRETCH_MASK);
2510 return ((i2c->SLAVE.SCTR & I2C_SCTR_SCLKSTRETCH_MASK) ==
2511 I2C_SCTR_SCLKSTRETCH_ENABLE);
2527 i2c->SLAVE.SCTR |= I2C_SCTR_SCLKSTRETCH_ENABLE;
2543 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXEMPTY_ON_TREQ_MASK);
2558 const I2C_Regs *i2c)
2560 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXEMPTY_ON_TREQ_MASK) ==
2561 I2C_SCTR_TXEMPTY_ON_TREQ_ENABLE);
2575 i2c->SLAVE.SCTR |= I2C_SCTR_TXEMPTY_ON_TREQ_ENABLE;
2588 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXTRIG_TXMODE_MASK);
2602 const I2C_Regs *i2c)
2604 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXTRIG_TXMODE_MASK) ==
2605 I2C_SCTR_TXTRIG_TXMODE_ENABLE);
2626 i2c->SLAVE.SCTR |= I2C_SCTR_TXTRIG_TXMODE_ENABLE;
2639 i2c->SLAVE.SCTR &= ~(I2C_SCTR_TXWAIT_STALE_TXFIFO_MASK);
2657 const I2C_Regs *i2c)
2659 return ((i2c->SLAVE.SCTR & I2C_SCTR_TXWAIT_STALE_TXFIFO_MASK) ==
2660 I2C_SCTR_TXWAIT_STALE_TXFIFO_ENABLE);
2677 i2c->SLAVE.SCTR |= I2C_SCTR_TXWAIT_STALE_TXFIFO_ENABLE;
2694 i2c->SLAVE.SCTR &= ~(I2C_SCTR_RXFULL_ON_RREQ_MASK);
2708 const I2C_Regs *i2c)
2710 return ((i2c->SLAVE.SCTR & I2C_SCTR_RXFULL_ON_RREQ_MASK) ==
2711 I2C_SCTR_RXFULL_ON_RREQ_ENABLE);
2727 i2c->SLAVE.SCTR |= I2C_SCTR_RXFULL_ON_RREQ_ENABLE;
2742 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_DEFHOSTADR_MASK);
2758 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_DEFHOSTADR_MASK) ==
2759 I2C_SCTR_EN_DEFHOSTADR_ENABLE);
2772 i2c->SLAVE.SCTR |= I2C_SCTR_EN_DEFHOSTADR_ENABLE;
2788 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_ALRESPADR_MASK);
2804 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_ALRESPADR_MASK) ==
2805 I2C_SCTR_EN_ALRESPADR_ENABLE);
2818 i2c->SLAVE.SCTR |= I2C_SCTR_EN_ALRESPADR_ENABLE;
2834 i2c->SLAVE.SCTR &= ~(I2C_SCTR_EN_DEFDEVADR_MASK);
2850 return ((i2c->SLAVE.SCTR & I2C_SCTR_EN_DEFDEVADR_MASK) ==
2851 I2C_SCTR_EN_DEFDEVADR_ENABLE);
2864 i2c->SLAVE.SCTR |= I2C_SCTR_EN_DEFDEVADR_ENABLE;
2877 i2c->SLAVE.SCTR &= ~(I2C_SCTR_SWUEN_MASK);
2892 return ((i2c->SLAVE.SCTR & I2C_SCTR_SWUEN_MASK) == I2C_SCTR_SWUEN_ENABLE);
2907 i2c->SLAVE.SCTR |= I2C_SCTR_SWUEN_ENABLE;
2917 i2c->SLAVE.SCTR &= ~(I2C_SCTR_ACTIVE_MASK);
2933 (i2c->SLAVE.SCTR & I2C_SCTR_ACTIVE_MASK) == I2C_SCTR_ACTIVE_ENABLE);
2943 i2c->SLAVE.SCTR |= I2C_SCTR_ACTIVE_ENABLE;
2953 i2c->SLAVE.SCTR &= ~(I2C_SCTR_GENCALL_MASK);
2969 (i2c->SLAVE.SCTR & I2C_SCTR_GENCALL_MASK) == I2C_SCTR_GENCALL_ENABLE);
2979 i2c->SLAVE.SCTR |= I2C_SCTR_GENCALL_ENABLE;
2993 return (i2c->SLAVE.SSR);
3009 return (uint8_t)(i2c->SLAVE.SRXDATA & I2C_SRXDATA_VALUE_MASK);
3021 i2c->SLAVE.STXDATA = data;
3034 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_MASK);
3049 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_MASK) ==
3050 I2C_SACKCTL_ACKOEN_ENABLE);
3066 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ENABLE;
3081 __STATIC_INLINE DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE
3084 uint32_t value = i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOVAL_MASK;
3086 return (DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE)(value);
3102 I2C_Regs *i2c, DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE value)
3105 &i2c->SLAVE.SACKCTL, (uint32_t) value, I2C_SACKCTL_ACKOVAL_MASK);
3115 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_START_MASK);
3130 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_START_MASK) ==
3131 I2C_SACKCTL_ACKOEN_ON_START_ENABLE);
3146 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_START_ENABLE;
3156 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_PECNEXT_MASK);
3172 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_PECNEXT_MASK) ==
3173 I2C_SACKCTL_ACKOEN_ON_PECNEXT_ENABLE);
3191 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_PECNEXT_ENABLE;
3201 i2c->SLAVE.SACKCTL &= ~(I2C_SACKCTL_ACKOEN_ON_PECDONE_MASK);
3217 return ((i2c->SLAVE.SACKCTL & I2C_SACKCTL_ACKOEN_ON_PECDONE_MASK) ==
3218 I2C_SACKCTL_ACKOEN_ON_PECDONE_ENABLE);
3233 i2c->SLAVE.SACKCTL |= I2C_SACKCTL_ACKOEN_ON_PECDONE_ENABLE;
3248 return (i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECCTL_PECCNT_MASK);
3263 I2C_Regs *i2c, uint32_t count)
3266 &i2c->SLAVE.TARGET_PECCTL, count, I2C_TARGET_PECCTL_PECCNT_MASK);
3276 i2c->SLAVE.TARGET_PECCTL &= ~(I2C_TARGET_PECCTL_PECEN_MASK);
3292 return ((i2c->SLAVE.TARGET_PECCTL & I2C_TARGET_PECCTL_PECEN_MASK) ==
3293 I2C_TARGET_PECCTL_PECEN_ENABLE);
3312 i2c->SLAVE.TARGET_PECCTL |= I2C_TARGET_PECCTL_PECEN_ENABLE;
3327 return (i2c->SLAVE.TARGET_PECSR & I2C_TARGET_PECSR_PECBYTECNT_MASK);
3344 const I2C_Regs *i2c)
3347 i2c->SLAVE.TARGET_PECSR & I2C_TARGET_PECSR_PECSTS_CHECK_MASK;
3349 return (DL_I2C_TARGET_PEC_STATUS)(status);
3365 const I2C_Regs *i2c)
3368 i2c->SLAVE.TARGET_PECSR & I2C_TARGET_PECSR_PECSTS_ERROR_MASK;
3370 return (DL_I2C_TARGET_PEC_CHECK_ERROR)(status);
3383 const I2C_Regs *i2c)
3385 uint32_t level = i2c->SLAVE.SFIFOCTL & I2C_SFIFOCTL_TXTRIG_MASK;
3387 return (DL_I2C_TX_FIFO_LEVEL)(level);
3399 I2C_Regs *i2c, DL_I2C_TX_FIFO_LEVEL level)
3402 (uint32_t) I2C_SFIFOCTL_TXTRIG_MASK);
3415 i2c->SLAVE.SFIFOCTL &= ~(I2C_SFIFOCTL_TXFLUSH_MASK);
3425 i2c->SLAVE.SFIFOCTL |= I2C_SFIFOCTL_TXFLUSH_MASK;
3438 i2c->SLAVE.SFIFOCTL &= ~(I2C_SFIFOCTL_RXFLUSH_MASK);
3448 i2c->SLAVE.SFIFOCTL |= I2C_SFIFOCTL_RXFLUSH_MASK;
3461 const I2C_Regs *i2c)
3463 uint32_t level = i2c->SLAVE.SFIFOCTL & I2C_SFIFOCTL_RXTRIG_MASK;
3465 return (DL_I2C_RX_FIFO_LEVEL)(level);
3477 I2C_Regs *i2c, DL_I2C_RX_FIFO_LEVEL level)
3480 &i2c->SLAVE.SFIFOCTL, (uint32_t) level, I2C_SFIFOCTL_RXTRIG_MASK);
3494 return (i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFIFOCNT_MASK);
3508 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFIFOCNT_MASK) >>
3509 I2C_SFIFOSR_TXFIFOCNT_OFS);
3524 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_RXFLUSH_MASK) ==
3525 I2C_SFIFOSR_RXFLUSH_ACTIVE);
3540 return ((i2c->SLAVE.SFIFOSR & I2C_SFIFOSR_TXFLUSH_MASK) ==
3541 I2C_SFIFOSR_TXFLUSH_ACTIVE);
3553 I2C_Regs *i2c, uint32_t interruptMask)
3555 i2c->CPU_INT.IMASK |= interruptMask;
3567 I2C_Regs *i2c, uint32_t interruptMask)
3569 i2c->CPU_INT.IMASK &= ~(interruptMask);
3585 const I2C_Regs *i2c, uint32_t interruptMask)
3587 return (i2c->CPU_INT.IMASK & interruptMask);
3608 const I2C_Regs *i2c, uint32_t interruptMask)
3610 return (i2c->CPU_INT.MIS & interruptMask);
3629 const I2C_Regs *i2c, uint32_t interruptMask)
3631 return (i2c->CPU_INT.RIS & interruptMask);
3648 return ((DL_I2C_IIDX) i2c->CPU_INT.IIDX);
3660 I2C_Regs *i2c, uint32_t interruptMask)
3662 i2c->CPU_INT.ICLR = interruptMask;
3686 i2c->DMA_TRIG1.IMASK = interrupt;
3689 i2c->DMA_TRIG0.IMASK = interrupt;
3715 i2c->DMA_TRIG1.IMASK &= ~(interrupt);
3718 i2c->DMA_TRIG0.IMASK &= ~(interrupt);
3746 volatile uint32_t *pReg = &i2c->DMA_TRIG1.IMASK;
3748 return ((*(pReg + (uint32_t) index) & interruptMask));
3776 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.MIS;
3778 return ((*(pReg + (uint32_t) index) & interruptMask));
3802 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.RIS;
3804 return ((*(pReg + (uint32_t) index) & interruptMask));
3826 const volatile uint32_t *pReg = &i2c->DMA_TRIG1.IIDX;
3828 return (DL_I2C_DMA_IIDX)((*(pReg + (uint32_t) index)));
3847 i2c->DMA_TRIG1.ICLR |= interrupt;
3850 i2c->DMA_TRIG0.ICLR |= interrupt;
3867 i2c->GFCTL &= ~(I2C_GFCTL_CHAIN_MASK);
3882 return ((i2c->GFCTL & I2C_GFCTL_CHAIN_MASK) == I2C_GFCTL_CHAIN_ENABLE);
3895 i2c->GFCTL |= I2C_GFCTL_CHAIN_ENABLE;
3909 return (i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTLA_MASK);
3940 i2c->TIMEOUT_CTL &= ~(I2C_TIMEOUT_CTL_TCNTAEN_MASK);
3955 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTAEN_MASK) ==
3956 I2C_TIMEOUT_CTL_TCNTAEN_ENABLE);
3966 i2c->TIMEOUT_CTL |= I2C_TIMEOUT_CTL_TCNTAEN_ENABLE;
3983 return (i2c->TIMEOUT_CNT & I2C_TIMEOUT_CNT_TCNTA_MASK);
3997 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTLB_MASK) >>
3998 I2C_TIMEOUT_CTL_TCNTLB_OFS);
4018 (count << I2C_TIMEOUT_CTL_TCNTLB_OFS), I2C_TIMEOUT_CTL_TCNTLB_MASK);
4028 i2c->TIMEOUT_CTL &= ~(I2C_TIMEOUT_CTL_TCNTBEN_MASK);
4043 return ((i2c->TIMEOUT_CTL & I2C_TIMEOUT_CTL_TCNTBEN_MASK) ==
4044 I2C_TIMEOUT_CTL_TCNTBEN_ENABLE);
4054 i2c->TIMEOUT_CTL |= I2C_TIMEOUT_CTL_TCNTBEN_ENABLE;
4071 return (i2c->TIMEOUT_CNT & I2C_TIMEOUT_CNT_TCNTB_MASK);
__STATIC_INLINE void DL_I2C_disableController(I2C_Regs *i2c)
Disable controller.
Definition: dl_i2c.h:1982
__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:1343
DL_I2C_CLOCK_DIVIDE
Definition: dl_i2c.h:468
__STATIC_INLINE void DL_I2C_disableTargetTXWaitWhenTXFIFOStale(I2C_Regs *i2c)
Disable target TX transfer waits when stale data in TX FIFO.
Definition: dl_i2c.h:2637
DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE
Definition: dl_i2c.h:670
__STATIC_INLINE void DL_I2C_enableTargetClockStretching(I2C_Regs *i2c)
Enable target clock stretching.
Definition: dl_i2c.h:2525
__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:3325
__STATIC_INLINE bool DL_I2C_isACKOverrideOnStartEnabled(const I2C_Regs *i2c)
Checks if target ACK override on Start condition is enabled.
Definition: dl_i2c.h:3128
__STATIC_INLINE void DL_I2C_enableTimeoutB(I2C_Regs *i2c)
Enable Timeout Counter B.
Definition: dl_i2c.h:4052
__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:3364
__STATIC_INLINE void DL_I2C_enableTargetTXWaitWhenTXFIFOStale(I2C_Regs *i2c)
Enable target TX transfer waits when stale data in TX FIFO.
Definition: dl_i2c.h:2675
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOFull(const I2C_Regs *i2c)
Checks if target TX FIFO is full.
Definition: dl_i2c.h:940
__STATIC_INLINE void DL_I2C_disableTargetTXTriggerInTXMode(I2C_Regs *i2c)
Disable target TX trigger in TX mode.
Definition: dl_i2c.h:2586
__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:3215
__STATIC_INLINE uint32_t DL_I2C_getEnabledInterrupts(const I2C_Regs *i2c, uint32_t interruptMask)
Check which I2C interrupts are enabled.
Definition: dl_i2c.h:3584
__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:1568
__STATIC_INLINE void DL_I2C_startFlushControllerRXFIFO(I2C_Regs *i2c)
Start controller RX FIFO flush.
Definition: dl_i2c.h:2197
__STATIC_INLINE void DL_I2C_disableDefaultHostAddress(I2C_Regs *i2c)
Disable SMBus/PMBus default host address of 000 1000b.
Definition: dl_i2c.h:2740
DL_I2C_TARGET_PEC_STATUS
Definition: dl_i2c.h:496
__STATIC_INLINE DL_I2C_CONTROLLER_SCL DL_I2C_getSCLStatus(const I2C_Regs *i2c)
Get SCL signal status.
Definition: dl_i2c.h:2069
__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:3799
__STATIC_INLINE bool DL_I2C_isControllerBurstEnabled(const I2C_Regs *i2c)
Checks if I2C controller burst mode is enabled.
Definition: dl_i2c.h:1637
__STATIC_INLINE void DL_I2C_disableGeneralCall(I2C_Regs *i2c)
Disable general call address of 000 0000b.
Definition: dl_i2c.h:2951
__STATIC_INLINE void DL_I2C_disableTimeoutB(I2C_Regs *i2c)
Disable Timeout Counter B.
Definition: dl_i2c.h:4026
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:3144
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:3710
__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:913
__STATIC_INLINE void DL_I2C_disableInterrupt(I2C_Regs *i2c, uint32_t interruptMask)
Disable I2C interrupts.
Definition: dl_i2c.h:3566
__STATIC_INLINE void DL_I2C_disableTargetWakeup(I2C_Regs *i2c)
Disable target wakeup.
Definition: dl_i2c.h:2875
__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:3506
__STATIC_INLINE bool DL_I2C_isTargetClockStretchingEnabled(const I2C_Regs *i2c)
Checks if target clock stretching is enabled.
Definition: dl_i2c.h:2508
__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:1504
DL_I2C_CONTROLLER_SCL
Definition: dl_i2c.h:590
__STATIC_INLINE void DL_I2C_startFlushControllerTXFIFO(I2C_Regs *i2c)
Start controller TX FIFO flush.
Definition: dl_i2c.h:2142
__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:2225
DL_I2C_CLOCK_DIVIDE divideRatio
Definition: dl_i2c.h:759
__STATIC_INLINE void DL_I2C_disableControllerBurst(I2C_Regs *i2c)
Disable I2C controller burst mode.
Definition: dl_i2c.h:1622
__STATIC_INLINE void DL_I2C_disableACKOverrideOnStart(I2C_Regs *i2c)
Disable target ACK override on Start Condition.
Definition: dl_i2c.h:3113
__STATIC_INLINE uint32_t DL_I2C_getTargetOwnAddressAlternateMask(const I2C_Regs *i2c)
Get target own address alternate mask.
Definition: dl_i2c.h:2403
__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:1488
__STATIC_INLINE void DL_I2C_disablePower(I2C_Regs *i2c)
Disables the Peripheral Write Enable (PWREN) register for the I2C.
Definition: dl_i2c.h:1084
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:2241
__STATIC_INLINE void DL_I2C_enableAlertResponseAddress(I2C_Regs *i2c)
Enable SMBus/PMBus Alert response address (ARA) of 000 1100b.
Definition: dl_i2c.h:2816
DL_I2C_ANALOG_GLITCH_FILTER_WIDTH
Definition: dl_i2c.h:518
__STATIC_INLINE void DL_I2C_enableStartCondition(I2C_Regs *i2c)
Enable I2C START generation.
Definition: dl_i2c.h:1682
__STATIC_INLINE DL_I2C_TX_FIFO_LEVEL DL_I2C_getControllerTXFIFOThreshold(const I2C_Regs *i2c)
Get controller TX FIFO threshold level.
Definition: dl_i2c.h:2101
__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:3019
__STATIC_INLINE void DL_I2C_disableACKOverrideOnPECDone(I2C_Regs *i2c)
Disable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3199
__STATIC_INLINE DL_I2C_CONTROLLER_ADDRESSING_MODE DL_I2C_getControllerAddressingMode(const I2C_Regs *i2c)
Get controller addressing mode.
Definition: dl_i2c.h:1361
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:1218
__STATIC_INLINE DL_I2C_TX_FIFO_LEVEL DL_I2C_getTargetTXFIFOThreshold(const I2C_Regs *i2c)
Get target TX FIFO threshold level.
Definition: dl_i2c.h:3382
__STATIC_INLINE void DL_I2C_setTargetOwnAddressAlternateMask(I2C_Regs *i2c, uint32_t addressMask)
Set target own address alternate mask.
Definition: dl_i2c.h:2422
__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:1588
DL_I2C_CONTROLLER_SDA
Definition: dl_i2c.h:598
DL_I2C_CONTROLLER_START
Definition: dl_i2c.h:606
__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:1874
__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:1898
__STATIC_INLINE void DL_I2C_enableTargetOwnAddress(I2C_Regs *i2c)
Enable target own address.
Definition: dl_i2c.h:2304
__STATIC_INLINE void DL_I2C_enableGeneralCall(I2C_Regs *i2c)
Enable usage of general call address of 000 0000b.
Definition: dl_i2c.h:2977
__STATIC_INLINE void DL_I2C_enableControllerACKOverride(I2C_Regs *i2c)
Enable controller ACK override.
Definition: dl_i2c.h:1425
#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:972
__STATIC_INLINE DL_I2C_RX_FIFO_LEVEL DL_I2C_getControllerRXFIFOThreshold(const I2C_Regs *i2c)
Get controller RX FIFO threshold level.
Definition: dl_i2c.h:2156
__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:1325
__STATIC_INLINE void DL_I2C_stopFlushControllerRXFIFO(I2C_Regs *i2c)
Stop controller RX FIFO flush.
Definition: dl_i2c.h:2187
DL_I2C_CLOCK
Definition: dl_i2c.h:460
__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:3492
__STATIC_INLINE void DL_I2C_enableDefaultHostAddress(I2C_Regs *i2c)
Enable SMBus/PMBus default host address of 000 1000b.
Definition: dl_i2c.h:2770
DL_I2C_CONTROLLER_ACK
Definition: dl_i2c.h:622
__STATIC_INLINE void DL_I2C_stopFlushControllerTXFIFO(I2C_Regs *i2c)
Stop controller TX FIFO flush.
Definition: dl_i2c.h:2132
__STATIC_INLINE void DL_I2C_setControllerDirection(I2C_Regs *i2c, DL_I2C_CONTROLLER_DIRECTION direction)
Set direction of next controller operation.
Definition: dl_i2c.h:1302
__STATIC_INLINE uint8_t DL_I2C_receiveTargetData(const I2C_Regs *i2c)
Get byte of data from I2C target.
Definition: dl_i2c.h:3007
__STATIC_INLINE DL_I2C_CONTROLLER_SDA DL_I2C_getSDAStatus(const I2C_Regs *i2c)
Get SDA signal status.
Definition: dl_i2c.h:2085
__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:1235
__STATIC_INLINE bool DL_I2C_isTargetOwnAddressEnabled(const I2C_Regs *i2c)
Checks if target own address is enabled.
Definition: dl_i2c.h:2329
DL_I2C_CONTROLLER_ADDRESSING_MODE
Definition: dl_i2c.h:558
__STATIC_INLINE uint32_t DL_I2C_getCurrentTimeoutBCounter(const I2C_Regs *i2c)
Get the current Timer Counter B value.
Definition: dl_i2c.h:4069
__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:3823
__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:3343
__STATIC_INLINE uint8_t DL_I2C_receiveControllerData(const I2C_Regs *i2c)
Get byte of data from I2C controller.
Definition: dl_i2c.h:1834
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:1474
__STATIC_INLINE void DL_I2C_disableTargetClockStretching(I2C_Regs *i2c)
Disable target clock stretching.
Definition: dl_i2c.h:2493
__STATIC_INLINE void DL_I2C_enableTargetTXEmptyOnTXRequest(I2C_Regs *i2c)
Enable target TX empty interrupt on transmit request.
Definition: dl_i2c.h:2573
__STATIC_INLINE void DL_I2C_disableACKOverrideOnPECNext(I2C_Regs *i2c)
Disable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3154
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:2117
__STATIC_INLINE void DL_I2C_enableTarget(I2C_Regs *i2c)
Enable usage of target functionality.
Definition: dl_i2c.h:2941
__STATIC_INLINE uint16_t DL_I2C_getTransactionCount(const I2C_Regs *i2c)
Get transaction count in bytes.
Definition: dl_i2c.h:1817
__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:1609
__STATIC_INLINE uint32_t DL_I2C_getTargetOwnAddress(const I2C_Regs *i2c)
Get target own address.
Definition: dl_i2c.h:2292
__STATIC_INLINE void DL_I2C_selectClockDivider(I2C_Regs *i2c, DL_I2C_CLOCK_DIVIDE clockDivider)
Set Clock Divider.
Definition: dl_i2c.h:1163
__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:3170
__STATIC_INLINE void DL_I2C_enableACKOverrideOnPECDone(I2C_Regs *i2c)
Enable target ACK override when SMBus/PMBus PEC is done.
Definition: dl_i2c.h:3231
__STATIC_INLINE void DL_I2C_setTransactionLength(I2C_Regs *i2c, uint32_t length)
Set transaction length in bytes.
Definition: dl_i2c.h:1787
__STATIC_INLINE void DL_I2C_disableGlitchFilterChaining(I2C_Regs *i2c)
Disable analog and digital glitch filter chaining.
Definition: dl_i2c.h:3865
__STATIC_INLINE void DL_I2C_enableController(I2C_Regs *i2c)
Enable controller.
Definition: dl_i2c.h:2010
__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:3607
__STATIC_INLINE void DL_I2C_setTargetOwnAddressAlternate(I2C_Regs *i2c, uint32_t addr)
Set target own address alternate.
Definition: dl_i2c.h:2387
__STATIC_INLINE bool DL_I2C_isTimeoutBEnabled(const I2C_Regs *i2c)
Checks if Timeout Counter B is enabled.
Definition: dl_i2c.h:4041
__STATIC_INLINE bool DL_I2C_isTargetTXTriggerInTXModeEnabled(const I2C_Regs *i2c)
Checks if target TX trigger in TX mode is enabled.
Definition: dl_i2c.h:2601
__STATIC_INLINE bool DL_I2C_isMultiControllerModeEnabled(const I2C_Regs *i2c)
Checks if multicontroller mode is enabled.
Definition: dl_i2c.h:1958
__STATIC_INLINE bool DL_I2C_isTargetOwnAddressAlternateEnabled(const I2C_Regs *i2c)
Checks if target own address alternate is enabled.
Definition: dl_i2c.h:2449
__STATIC_INLINE void DL_I2C_setTimeoutACount(I2C_Regs *i2c, uint32_t count)
Set the Timeout Counter A value.
Definition: dl_i2c.h:3928
__STATIC_INLINE DL_I2C_RX_FIFO_LEVEL DL_I2C_getTargetRXFIFOThreshold(const I2C_Regs *i2c)
Get target RX FIFO threshold level.
Definition: dl_i2c.h:3460
__STATIC_INLINE bool DL_I2C_isTargetEnabled(const I2C_Regs *i2c)
Checks if target functionality is enabled.
Definition: dl_i2c.h:2930
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOEmpty(const I2C_Regs *i2c)
Checks if controller TX FIFO is empty.
Definition: dl_i2c.h:835
__STATIC_INLINE void DL_I2C_disableStartCondition(I2C_Regs *i2c)
Disable I2C START generation.
Definition: dl_i2c.h:1657
__STATIC_INLINE void DL_I2C_setTargetAddressingMode(I2C_Regs *i2c, DL_I2C_TARGET_ADDRESSING_MODE mode)
Set target addressing mode.
Definition: dl_i2c.h:2344
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOFlushActive(const I2C_Regs *i2c)
Checks if target TX FIFO flush is active.
Definition: dl_i2c.h:3538
__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:2756
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOFull(const I2C_Regs *i2c)
Checks if controller TX FIFO is full.
Definition: dl_i2c.h:819
__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:3773
DL_I2C_DIGITAL_GLITCH_FILTER_WIDTH
Definition: dl_i2c.h:530
__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:3476
__STATIC_INLINE void DL_I2C_reset(I2C_Regs *i2c)
Resets i2c peripheral.
Definition: dl_i2c.h:1116
__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:3101
__STATIC_INLINE void DL_I2C_disableMultiControllerMode(I2C_Regs *i2c)
Disable multicontroller mode.
Definition: dl_i2c.h:1943
__STATIC_INLINE void DL_I2C_stopFlushTargetTXFIFO(I2C_Regs *i2c)
Stop target TX FIFO flush.
Definition: dl_i2c.h:3413
__STATIC_INLINE void DL_I2C_enableMultiControllerMode(I2C_Regs *i2c)
Enable multicontroller mode.
Definition: dl_i2c.h:1972
__STATIC_INLINE void DL_I2C_resetControllerTransfer(I2C_Regs *i2c)
Reset transfers from from I2C controller.
Definition: dl_i2c.h:864
DL_I2C_RX_FIFO_LEVEL
Definition: dl_i2c.h:650
__STATIC_INLINE bool DL_I2C_isTargetRXFIFOFlushActive(const I2C_Regs *i2c)
Checks if target RX FIFO flush is active.
Definition: dl_i2c.h:3522
__STATIC_INLINE uint32_t DL_I2C_getTimeoutBCount(const I2C_Regs *i2c)
Get the Timeout Counter B value.
Definition: dl_i2c.h:3995
__STATIC_INLINE uint32_t DL_I2C_getTimeoutACount(const I2C_Regs *i2c)
Get the Timeout Counter A value.
Definition: dl_i2c.h:3907
__STATIC_INLINE void DL_I2C_enableTimeoutA(I2C_Regs *i2c)
Enable Timeout Counter A.
Definition: dl_i2c.h:3964
DL_I2C_CONTROLLER_PEC_STATUS
Definition: dl_i2c.h:566
__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:1182
__STATIC_INLINE void DL_I2C_enablePower(I2C_Regs *i2c)
Enables the Peripheral Write Enable (PWREN) register for the I2C.
Definition: dl_i2c.h:1069
__STATIC_INLINE void DL_I2C_disableLoopbackMode(I2C_Regs *i2c)
Disable loopback mode.
Definition: dl_i2c.h:1908
DL_I2C_CONTROLLER_PEC_CHECK_ERROR
Definition: dl_i2c.h:578
__STATIC_INLINE uint32_t DL_I2C_getTransactionLength(const I2C_Regs *i2c)
Get transaction length in bytes.
Definition: dl_i2c.h:1775
__STATIC_INLINE DL_I2C_TARGET_ADDRESSING_MODE DL_I2C_getTargetAddressingMode(const I2C_Regs *i2c)
Get target addressing mode.
Definition: dl_i2c.h:2360
DL_I2C_CONTROLLER_DIRECTION
Definition: dl_i2c.h:550
__STATIC_INLINE void DL_I2C_enableLoopbackMode(I2C_Regs *i2c)
Enable loopback mode.
Definition: dl_i2c.h:1933
Configuration struct for DL_I2C_setClockConfig.
Definition: dl_i2c.h:755
__STATIC_INLINE uint32_t DL_I2C_getTargetStatus(const I2C_Regs *i2c)
Get status of I2C bus controller for target.
Definition: dl_i2c.h:2991
__STATIC_INLINE void DL_I2C_enableGlitchFilterChaining(I2C_Regs *i2c)
Enable analog and digitial glitch filter chaining.
Definition: dl_i2c.h:3893
__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:3246
__STATIC_INLINE bool DL_I2C_isTargetTXFIFOEmpty(const I2C_Regs *i2c)
Checks if target TX FIFO is empty.
Definition: dl_i2c.h:956
__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:2707
__STATIC_INLINE void DL_I2C_clearInterruptStatus(I2C_Regs *i2c, uint32_t interruptMask)
Clear pending I2C interrupts.
Definition: dl_i2c.h:3659
__STATIC_INLINE void DL_I2C_disableTargetOwnAddressAlternate(I2C_Regs *i2c)
Disable usage of target own address alternate.
Definition: dl_i2c.h:2434
__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:3262
__STATIC_INLINE DL_I2C_CONTROLLER_DIRECTION DL_I2C_getControllerDirection(const I2C_Regs *i2c)
Get direction of next controller operation.
Definition: dl_i2c.h:1286
__STATIC_INLINE void DL_I2C_disableControllerACKOverride(I2C_Regs *i2c)
Disable controller ACK override.
Definition: dl_i2c.h:1389
__STATIC_INLINE void DL_I2C_stopFlushTargetRXFIFO(I2C_Regs *i2c)
Stop target RX FIFO flush.
Definition: dl_i2c.h:3436
__STATIC_INLINE void DL_I2C_disableDefaultDeviceAddress(I2C_Regs *i2c)
Disable SMBus/PMBus default device address of 110 0001b.
Definition: dl_i2c.h:2832
__STATIC_INLINE bool DL_I2C_isLoopbackModeEnabled(const I2C_Regs *i2c)
Checks if loopback mode is enabled.
Definition: dl_i2c.h:1923
__STATIC_INLINE uint32_t DL_I2C_getTargetAddressMatch(const I2C_Regs *i2c)
Get the address for which address match happened.
Definition: dl_i2c.h:2476
__STATIC_INLINE uint32_t DL_I2C_getCurrentTimeoutACounter(const I2C_Regs *i2c)
Get the current Timer Counter A value.
Definition: dl_i2c.h:3981
__STATIC_INLINE void DL_I2C_startFlushTargetTXFIFO(I2C_Regs *i2c)
Start target TX FIFO flush.
Definition: dl_i2c.h:3423
__STATIC_INLINE DL_I2C_IIDX DL_I2C_getPendingInterrupt(const I2C_Regs *i2c)
Get highest priority pending I2C interrupt.
Definition: dl_i2c.h:3646
__STATIC_INLINE bool DL_I2C_isGlitchFilterChainingEnabled(const I2C_Regs *i2c)
Checks if analog and digital glitch filter chaining is enabled.
Definition: dl_i2c.h:3880
__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:3398
DL_I2C_DMA_IIDX
Definition: dl_i2c.h:438
__STATIC_INLINE void DL_I2C_disableControllerACK(I2C_Regs *i2c)
Disable I2C controller data acknowledge (ACK or NACK)
Definition: dl_i2c.h:1731
__STATIC_INLINE bool DL_I2C_isGeneralCallEnabled(const I2C_Regs *i2c)
Checks if general call address of 000 0000b is enabled.
Definition: dl_i2c.h:2966
__STATIC_INLINE void DL_I2C_enableControllerClockStretching(I2C_Regs *i2c)
Enable controller clock stretching.
Definition: dl_i2c.h:2055
__STATIC_INLINE bool DL_I2C_isControllerACKOverrideEnabled(const I2C_Regs *i2c)
Checks if controller ACK override is enabled.
Definition: dl_i2c.h:1404
void DL_I2C_flushTargetTXFIFO(I2C_Regs *i2c)
Flushes/removes all elements in the target TX FIFO.
DL_I2C_CONTROLLER_STOP
Definition: dl_i2c.h:614
__STATIC_INLINE void DL_I2C_disableTargetOwnAddress(I2C_Regs *i2c)
Disable target own address.
Definition: dl_i2c.h:2314
__STATIC_INLINE bool DL_I2C_isStartConditionEnabled(const I2C_Regs *i2c)
Checks if I2C START generation is enabled.
Definition: dl_i2c.h:1672
__STATIC_INLINE bool DL_I2C_isControllerReadOnTXEmptyEnabled(const I2C_Regs *i2c)
Checks if controller read on TX empty is enabled.
Definition: dl_i2c.h:1450
__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:2848
__STATIC_INLINE void DL_I2C_setTimeoutBCount(I2C_Regs *i2c, uint32_t count)
Set the Timeout Counter B value.
Definition: dl_i2c.h:4015
__STATIC_INLINE void DL_I2C_disableControllerReadOnTXEmpty(I2C_Regs *i2c)
Disable controller read on TX empty.
Definition: dl_i2c.h:1435
DL_I2C_EVENT_ROUTE
Definition: dl_i2c.h:452
__STATIC_INLINE void DL_I2C_disableControllerPEC(I2C_Regs *i2c)
Disable controller SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:1516
__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:3681
__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:2656
void DL_I2C_transmitTargetDataBlocking(I2C_Regs *i2c, uint8_t data)
Transmit target data, blocking until transmit request is received. Will wait indefintely until bus is...
__STATIC_INLINE void DL_I2C_enableDefaultDeviceAddress(I2C_Regs *i2c)
Enable SMBus/PMBus default device address of 110 0001b.
Definition: dl_i2c.h:2862
__STATIC_INLINE void DL_I2C_enableControllerPEC(I2C_Regs *i2c)
Enable controller SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:1553
__STATIC_INLINE void DL_I2C_disableStopCondition(I2C_Regs *i2c)
Disable I2C STOP generation.
Definition: dl_i2c.h:1692
__STATIC_INLINE bool DL_I2C_isControllerRXFIFOEmpty(const I2C_Regs *i2c)
Checks if controller RX FIFO is empty.
Definition: dl_i2c.h:851
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:1378
__STATIC_INLINE uint32_t DL_I2C_getControllerStatus(const I2C_Regs *i2c)
Get status of I2C bus controller for controller.
Definition: dl_i2c.h:1803
__STATIC_INLINE void DL_I2C_enableAnalogGlitchFilter(I2C_Regs *i2c)
Enable Analog Glitch Suppression.
Definition: dl_i2c.h:1272
__STATIC_INLINE bool DL_I2C_isControllerClockStretchingEnabled(const I2C_Regs *i2c)
Checks if controller clock stretching is enabled.
Definition: dl_i2c.h:2039
__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:3290
__STATIC_INLINE bool DL_I2C_isAnalogGlitchFilterEnabled(const I2C_Regs *i2c)
Checks if analog glitch suppression is enabled.
Definition: dl_i2c.h:1262
__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:3743
__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:2802
__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:1848
__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:1198
__STATIC_INLINE bool DL_I2C_isControllerEnabled(const I2C_Regs *i2c)
Checks if controller is enabled.
Definition: dl_i2c.h:1997
__STATIC_INLINE void DL_I2C_disableTarget(I2C_Regs *i2c)
Disable target functionality.
Definition: dl_i2c.h:2915
__STATIC_INLINE void DL_I2C_disableAnalogGlitchFilter(I2C_Regs *i2c)
Disable Analog Glitch Suppression.
Definition: dl_i2c.h:1247
__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:3842
__STATIC_INLINE void DL_I2C_enableControllerACK(I2C_Regs *i2c)
Enable I2C controller data acknowledge (ACK or NACK)
Definition: dl_i2c.h:1761
__STATIC_INLINE void DL_I2C_disableControllerClockStretching(I2C_Regs *i2c)
Disable controller clock stretching.
Definition: dl_i2c.h:2024
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:3552
__STATIC_INLINE void DL_I2C_enableACKOverrideOnPECNext(I2C_Regs *i2c)
Enable target ACK override when SMBus/PMBus PEC is next byte.
Definition: dl_i2c.h:3189
__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:1532
__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:2557
__STATIC_INLINE void DL_I2C_enableTargetWakeup(I2C_Regs *i2c)
Enable target wakeup.
Definition: dl_i2c.h:2905
__STATIC_INLINE void DL_I2C_disableTimeoutA(I2C_Regs *i2c)
Disable Timeout Counter A.
Definition: dl_i2c.h:3938
__STATIC_INLINE void DL_I2C_selectClockSource(I2C_Regs *i2c, DL_I2C_CLOCK clockSource)
Set Clock Source.
Definition: dl_i2c.h:1148
__STATIC_INLINE bool DL_I2C_isTargetACKOverrideEnabled(const I2C_Regs *i2c)
Checks if target ACK override is enabled.
Definition: dl_i2c.h:3047
__STATIC_INLINE void DL_I2C_enableTargetPEC(I2C_Regs *i2c)
Enable target SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:3310
__STATIC_INLINE void DL_I2C_enableTargetACKOverride(I2C_Regs *i2c)
Enable target ACK override.
Definition: dl_i2c.h:3064
__STATIC_INLINE void DL_I2C_enableTargetRXFullOnRXRequest(I2C_Regs *i2c)
Enable target RX full interrupt on receive request.
Definition: dl_i2c.h:2725
__STATIC_INLINE void DL_I2C_enableTargetTXTriggerInTXMode(I2C_Regs *i2c)
Enable TX trigger when target is in TX mode.
Definition: dl_i2c.h:2624
__STATIC_INLINE void DL_I2C_setTargetOwnAddress(I2C_Regs *i2c, uint32_t addr)
Set target own address.
Definition: dl_i2c.h:2274
__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:882
__STATIC_INLINE void DL_I2C_enableTargetOwnAddressAlternate(I2C_Regs *i2c)
Enable usage of target own address alternate.
Definition: dl_i2c.h:2461
__STATIC_INLINE bool DL_I2C_isTimeoutAEnabled(const I2C_Regs *i2c)
Checks if Timeout Counter A is enabled.
Definition: dl_i2c.h:3953
DL_I2C_TX_FIFO_LEVEL
Definition: dl_i2c.h:630
__STATIC_INLINE uint32_t I2C_getTargetOwnAddressAlternate(const I2C_Regs *i2c)
Get target own address alternate.
Definition: dl_i2c.h:2376
__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:2172
DL_I2C_CLOCK clockSel
Definition: dl_i2c.h:757
__STATIC_INLINE bool DL_I2C_isTargetWakeupEnabled(const I2C_Regs *i2c)
Checks if target wakeup is enabled.
Definition: dl_i2c.h:2890
__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:2211
__STATIC_INLINE void DL_I2C_enableControllerBurst(I2C_Regs *i2c)
Enable I2C controller burst mode.
Definition: dl_i2c.h:1647
__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:1747
DL_I2C_TARGET_ADDRESSING_MODE
Definition: dl_i2c.h:488
__STATIC_INLINE void DL_I2C_enableStopCondition(I2C_Regs *i2c)
Enable I2C STOP generation.
Definition: dl_i2c.h:1717
__STATIC_INLINE void DL_I2C_disableTargetTXEmptyOnTXRequest(I2C_Regs *i2c)
Disable target TX empty interrupt on transmit request.
Definition: dl_i2c.h:2541
__STATIC_INLINE bool DL_I2C_isStopConditionEnabled(const I2C_Regs *i2c)
Checks if I2C STOP generation is enabled.
Definition: dl_i2c.h:1707
__STATIC_INLINE void DL_I2C_disableTargetRXFullOnRXRequest(I2C_Regs *i2c)
Disable target RX full interrupt on receive request.
Definition: dl_i2c.h:2692
__STATIC_INLINE bool DL_I2C_isControllerTXFIFOFlushActive(const I2C_Regs *i2c)
Checks if controller TX FIFO flush is active.
Definition: dl_i2c.h:2257
__STATIC_INLINE void DL_I2C_disableTargetACKOverride(I2C_Regs *i2c)
Disable target ACK override.
Definition: dl_i2c.h:3032
DL_I2C_IIDX
Definition: dl_i2c.h:678
DL_I2C_TARGET_PEC_CHECK_ERROR
Definition: dl_i2c.h:507
__STATIC_INLINE bool DL_I2C_isReset(const I2C_Regs *i2c)
Returns if i2c peripheral was reset.
Definition: dl_i2c.h:1132
__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:1105
__STATIC_INLINE DL_I2C_TARGET_RESPONSE_OVERRIDE_VALUE DL_I2C_getTargetACKOverrideValue(const I2C_Regs *i2c)
Get target acknowledge override value.
Definition: dl_i2c.h:3082
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:3446
__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:3628
__STATIC_INLINE void DL_I2C_disableTargetPEC(I2C_Regs *i2c)
Disable target SMBus/PMBus Packet Error Checking (PEC)
Definition: dl_i2c.h:3274
__STATIC_INLINE void DL_I2C_disableAlertResponseAddress(I2C_Regs *i2c)
Disable SMBus/PMBus Alert response address (ARA) of 000 1100b.
Definition: dl_i2c.h:2786