Files
2026-06-06 20:50:54 +08:00

2819 lines
260 KiB
C

/*****************************************************************************
Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the
distribution.
Neither the name of Texas Instruments Incorporated nor the names of
its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
#ifndef ti_devices_msp_peripherals_hw_i2c__include
#define ti_devices_msp_peripherals_hw_i2c__include
/* Filename: hw_i2c.h */
/* Revised: 2023-06-14 10:18:34 */
/* Revision: 638bba738cb61945408cf5e8bcfecf08798f4b8b */
#ifndef __CORTEX_M
#ifdef __cplusplus
#define __I volatile /*!< Defines 'read only' permissions */
#else
#define __I volatile const /*!< Defines 'read only' permissions */
#endif
#define __O volatile /*!< Defines 'write only' permissions */
#define __IO volatile /*!< Defines 'read / write' permissions */
/* following defines should be used for structure members */
#define __IM volatile const /*! Defines 'read only' structure member permissions */
#define __OM volatile /*! Defines 'write only' structure member permissions */
#define __IOM volatile /*! Defines 'read / write' structure member permissions */
#endif
/* Use standard integer types with explicit width */
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined ( __CC_ARM )
#pragma anon_unions
#endif
/******************************************************************************
* I2C Registers
******************************************************************************/
#define I2C_SLAVE_OFS ((uint32_t)0x00001250U)
#define I2C_MASTER_OFS ((uint32_t)0x00001210U)
#define I2C_DMA_TRIG0_OFS ((uint32_t)0x00001080U)
#define I2C_DMA_TRIG1_OFS ((uint32_t)0x00001050U)
#define I2C_CPU_INT_OFS ((uint32_t)0x00001020U)
#define I2C_GPRCM_OFS ((uint32_t)0x00000800U)
/** @addtogroup I2C_SLAVE
@{
*/
typedef struct {
__IO uint32_t SOAR; /* !< (@ 0x00001250) I2C Target Own Address */
__IO uint32_t SOAR2; /* !< (@ 0x00001254) I2C Target Own Address 2 */
__IO uint32_t SCTR; /* !< (@ 0x00001258) I2C Target Control Register */
__I uint32_t SSR; /* !< (@ 0x0000125C) I2C Target Status Register */
__I uint32_t SRXDATA; /* !< (@ 0x00001260) I2C Target RXData */
__IO uint32_t STXDATA; /* !< (@ 0x00001264) I2C Target TXData */
__IO uint32_t SACKCTL; /* !< (@ 0x00001268) I2C Target ACK Control */
__IO uint32_t SFIFOCTL; /* !< (@ 0x0000126C) I2C Target FIFO Control */
__I uint32_t SFIFOSR; /* !< (@ 0x00001270) I2C Target FIFO Status Register */
__IO uint32_t TARGET_PECCTL; /* !< (@ 0x00001274) I2C Target PEC control register */
__I uint32_t TARGET_PECSR; /* !< (@ 0x00001278) I2C Target PEC status register */
} I2C_SLAVE_Regs;
/*@}*/ /* end of group I2C_SLAVE */
/** @addtogroup I2C_MASTER
@{
*/
typedef struct {
__IO uint32_t MSA; /* !< (@ 0x00001210) I2C Controller Target Address Register */
__IO uint32_t MCTR; /* !< (@ 0x00001214) I2C Controller Control Register */
__I uint32_t MSR; /* !< (@ 0x00001218) I2C Controller Status Register */
__I uint32_t MRXDATA; /* !< (@ 0x0000121C) I2C Controller RXData */
__IO uint32_t MTXDATA; /* !< (@ 0x00001220) I2C Controller TXData */
__IO uint32_t MTPR; /* !< (@ 0x00001224) I2C Controller Timer Period */
__IO uint32_t MCR; /* !< (@ 0x00001228) I2C Controller Configuration */
uint32_t RESERVED0[2];
__I uint32_t MBMON; /* !< (@ 0x00001234) I2C Controller Bus Monitor */
__IO uint32_t MFIFOCTL; /* !< (@ 0x00001238) I2C Controller FIFO Control */
__I uint32_t MFIFOSR; /* !< (@ 0x0000123C) I2C Controller FIFO Status Register */
__IO uint32_t CONTROLLER_I2CPECCTL; /* !< (@ 0x00001240) I2C Controller PEC control register */
__I uint32_t CONTROLLER_PECSR; /* !< (@ 0x00001244) I2C Controller PEC status register */
} I2C_MASTER_Regs;
/*@}*/ /* end of group I2C_MASTER */
/** @addtogroup I2C_DMA_TRIG0
@{
*/
typedef struct {
__I uint32_t IIDX; /* !< (@ 0x00001080) Interrupt index */
uint32_t RESERVED0;
__IO uint32_t IMASK; /* !< (@ 0x00001088) Interrupt mask */
uint32_t RESERVED1;
__I uint32_t RIS; /* !< (@ 0x00001090) Raw interrupt status */
uint32_t RESERVED2;
__I uint32_t MIS; /* !< (@ 0x00001098) Masked interrupt status */
uint32_t RESERVED3;
__O uint32_t ISET; /* !< (@ 0x000010A0) Interrupt set */
uint32_t RESERVED4;
__O uint32_t ICLR; /* !< (@ 0x000010A8) Interrupt clear */
} I2C_DMA_TRIG0_Regs;
/*@}*/ /* end of group I2C_DMA_TRIG0 */
/** @addtogroup I2C_DMA_TRIG1
@{
*/
typedef struct {
__I uint32_t IIDX; /* !< (@ 0x00001050) Interrupt index */
uint32_t RESERVED0;
__IO uint32_t IMASK; /* !< (@ 0x00001058) Interrupt mask */
uint32_t RESERVED1;
__I uint32_t RIS; /* !< (@ 0x00001060) Raw interrupt status */
uint32_t RESERVED2;
__I uint32_t MIS; /* !< (@ 0x00001068) Masked interrupt status */
uint32_t RESERVED3;
__O uint32_t ISET; /* !< (@ 0x00001070) Interrupt set */
uint32_t RESERVED4;
__O uint32_t ICLR; /* !< (@ 0x00001078) Interrupt clear */
} I2C_DMA_TRIG1_Regs;
/*@}*/ /* end of group I2C_DMA_TRIG1 */
/** @addtogroup I2C_CPU_INT
@{
*/
typedef struct {
__I uint32_t IIDX; /* !< (@ 0x00001020) Interrupt index */
uint32_t RESERVED0;
__IO uint32_t IMASK; /* !< (@ 0x00001028) Interrupt mask */
uint32_t RESERVED1;
__I uint32_t RIS; /* !< (@ 0x00001030) Raw interrupt status */
uint32_t RESERVED2;
__I uint32_t MIS; /* !< (@ 0x00001038) Masked interrupt status */
uint32_t RESERVED3;
__O uint32_t ISET; /* !< (@ 0x00001040) Interrupt set */
uint32_t RESERVED4;
__O uint32_t ICLR; /* !< (@ 0x00001048) Interrupt clear */
} I2C_CPU_INT_Regs;
/*@}*/ /* end of group I2C_CPU_INT */
/** @addtogroup I2C_GPRCM
@{
*/
typedef struct {
__IO uint32_t PWREN; /* !< (@ 0x00000800) Power enable */
__O uint32_t RSTCTL; /* !< (@ 0x00000804) Reset Control */
__IO uint32_t CLKCFG; /* !< (@ 0x00000808) Peripheral Clock Configuration Register */
uint32_t RESERVED0[2];
__I uint32_t STAT; /* !< (@ 0x00000814) Status Register */
} I2C_GPRCM_Regs;
/*@}*/ /* end of group I2C_GPRCM */
/** @addtogroup I2C
@{
*/
typedef struct {
uint32_t RESERVED0[512];
I2C_GPRCM_Regs GPRCM; /* !< (@ 0x00000800) */
uint32_t RESERVED1[506];
__IO uint32_t CLKDIV; /* !< (@ 0x00001000) Clock Divider */
__IO uint32_t CLKSEL; /* !< (@ 0x00001004) Clock Select for Ultra Low Power peripherals */
uint32_t RESERVED2[4];
__IO uint32_t PDBGCTL; /* !< (@ 0x00001018) Peripheral Debug Control */
uint32_t RESERVED3;
I2C_CPU_INT_Regs CPU_INT; /* !< (@ 0x00001020) */
uint32_t RESERVED4;
I2C_DMA_TRIG1_Regs DMA_TRIG1; /* !< (@ 0x00001050) */
uint32_t RESERVED5;
I2C_DMA_TRIG0_Regs DMA_TRIG0; /* !< (@ 0x00001080) */
uint32_t RESERVED6[13];
__IO uint32_t EVT_MODE; /* !< (@ 0x000010E0) Event Mode */
__IO uint32_t INTCTL; /* !< (@ 0x000010E4) Interrupt control register */
uint32_t RESERVED7[5];
__I uint32_t DESC; /* !< (@ 0x000010FC) Module Description */
uint32_t RESERVED8[64];
__IO uint32_t GFCTL; /* !< (@ 0x00001200) I2C Glitch Filter Control */
__IO uint32_t TIMEOUT_CTL; /* !< (@ 0x00001204) I2C Timeout Count Control Register */
__I uint32_t TIMEOUT_CNT; /* !< (@ 0x00001208) I2C Timeout Count Register */
uint32_t RESERVED9;
I2C_MASTER_Regs MASTER; /* !< (@ 0x00001210) */
uint32_t RESERVED10[2];
I2C_SLAVE_Regs SLAVE; /* !< (@ 0x00001250) */
} I2C_Regs;
/*@}*/ /* end of group I2C */
#if defined ( __CC_ARM )
#pragma no_anon_unions
#endif
/******************************************************************************
* I2C Register Control Bits
******************************************************************************/
/* I2C_SOAR Bits */
/* I2C_SOAR[OAR] Bits */
#define I2C_SOAR_OAR_OFS (0) /* !< OAR Offset */
#define I2C_SOAR_OAR_MASK ((uint32_t)0x000003FFU) /* !< I2C Target Own Address: This field
specifies bits A9 through A0 of the
Target address. In 7-bit addressing
mode as selected by I2CSOAR.MODE bit,
the top 3 bits are don't care */
#define I2C_SOAR_OAR_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_SOAR_OAR_MAXIMUM ((uint32_t)0x000003FFU) /* !< Highest possible value */
/* I2C_SOAR[OAREN] Bits */
#define I2C_SOAR_OAREN_OFS (14) /* !< OAREN Offset */
#define I2C_SOAR_OAREN_MASK ((uint32_t)0x00004000U) /* !< I2C Target Own Address Enable */
#define I2C_SOAR_OAREN_DISABLE ((uint32_t)0x00000000U) /* !< Disable OAR address */
#define I2C_SOAR_OAREN_ENABLE ((uint32_t)0x00004000U) /* !< Enable OAR address */
/* I2C_SOAR[SMODE] Bits */
#define I2C_SOAR_SMODE_OFS (15) /* !< SMODE Offset */
#define I2C_SOAR_SMODE_MASK ((uint32_t)0x00008000U) /* !< This bit selects the adressing mode
to be used in Target mode. When 0,
7-bit addressing is used. When 1,
10-bit addressing is used. */
#define I2C_SOAR_SMODE_MODE7 ((uint32_t)0x00000000U) /* !< Enable 7-bit addressing */
#define I2C_SOAR_SMODE_MODE10 ((uint32_t)0x00008000U) /* !< Enable 10-bit addressing */
/* I2C_SOAR2 Bits */
/* I2C_SOAR2[OAR2] Bits */
#define I2C_SOAR2_OAR2_OFS (0) /* !< OAR2 Offset */
#define I2C_SOAR2_OAR2_MASK ((uint32_t)0x0000007FU) /* !< I2C Target Own Address 2This field
specifies the alternate OAR2 address. */
#define I2C_SOAR2_OAR2_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_SOAR2_OAR2_MAXIMUM ((uint32_t)0x0000007FU) /* !< Highest possible value */
/* I2C_SOAR2[OAR2EN] Bits */
#define I2C_SOAR2_OAR2EN_OFS (7) /* !< OAR2EN Offset */
#define I2C_SOAR2_OAR2EN_MASK ((uint32_t)0x00000080U) /* !< I2C Target Own Address 2 Enable */
#define I2C_SOAR2_OAR2EN_DISABLE ((uint32_t)0x00000000U) /* !< The alternate address is disabled. */
#define I2C_SOAR2_OAR2EN_ENABLE ((uint32_t)0x00000080U) /* !< Enables the use of the alternate
address in the OAR2 field. */
/* I2C_SOAR2[OAR2_MASK] Bits */
#define I2C_SOAR2_OAR2_MASK_OFS (16) /* !< OAR2_MASK Offset */
#define I2C_SOAR2_OAR2_MASK_MASK ((uint32_t)0x007F0000U) /* !< I2C Target Own Address 2 Mask: This
field specifies bits A6 through A0 of
the Target address. The bits with
value 1 in SOAR2.OAR2_MASK field will
make the corresponding incoming
address bits to match by default
regardless of the value inside
SOAR2.OAR2 i.e. corresponding
SOAR2.OAR2 bit is a dont care. */
#define I2C_SOAR2_OAR2_MASK_MINIMUM ((uint32_t)0x00000000U) /* !< Minimum Value */
#define I2C_SOAR2_OAR2_MASK_MAXIMUM ((uint32_t)0x007F0000U) /* !< Maximum Value */
/* I2C_SCTR Bits */
/* I2C_SCTR[ACTIVE] Bits */
#define I2C_SCTR_ACTIVE_OFS (0) /* !< ACTIVE Offset */
#define I2C_SCTR_ACTIVE_MASK ((uint32_t)0x00000001U) /* !< Device Active. Setting this bit
enables the Target functionality. */
#define I2C_SCTR_ACTIVE_DISABLE ((uint32_t)0x00000000U) /* !< Disables the I2C Target operation. */
#define I2C_SCTR_ACTIVE_ENABLE ((uint32_t)0x00000001U) /* !< Enables the I2C Target operation. */
/* I2C_SCTR[GENCALL] Bits */
#define I2C_SCTR_GENCALL_OFS (1) /* !< GENCALL Offset */
#define I2C_SCTR_GENCALL_MASK ((uint32_t)0x00000002U) /* !< General call response enable Modify
only when UCSWRST = 1. 0b = Do not
respond to a general call 1b =
Respond to a general call */
#define I2C_SCTR_GENCALL_DISABLE ((uint32_t)0x00000000U) /* !< Do not respond to a general call */
#define I2C_SCTR_GENCALL_ENABLE ((uint32_t)0x00000002U) /* !< Respond to a general call */
/* I2C_SCTR[SCLKSTRETCH] Bits */
#define I2C_SCTR_SCLKSTRETCH_OFS (2) /* !< SCLKSTRETCH Offset */
#define I2C_SCTR_SCLKSTRETCH_MASK ((uint32_t)0x00000004U) /* !< Target Clock Stretch Enable */
#define I2C_SCTR_SCLKSTRETCH_DISABLE ((uint32_t)0x00000000U) /* !< Target clock stretching is disabled */
#define I2C_SCTR_SCLKSTRETCH_ENABLE ((uint32_t)0x00000004U) /* !< Target clock stretching is enabled */
/* I2C_SCTR[TXEMPTY_ON_TREQ] Bits */
#define I2C_SCTR_TXEMPTY_ON_TREQ_OFS (3) /* !< TXEMPTY_ON_TREQ Offset */
#define I2C_SCTR_TXEMPTY_ON_TREQ_MASK ((uint32_t)0x00000008U) /* !< Tx Empty Interrupt on TREQ */
#define I2C_SCTR_TXEMPTY_ON_TREQ_DISABLE ((uint32_t)0x00000000U) /* !< When 0, RIS:STXEMPTY will be set
when only the Target TX FIFO is
empty. This allows the STXEMPTY
interrupt to be used to indicate that
the I2C bus is being clock stretched
and that Target TX data is required. */
#define I2C_SCTR_TXEMPTY_ON_TREQ_ENABLE ((uint32_t)0x00000008U) /* !< When 1, RIS:STXEMPTY will be set
when the Target State Machine is in
the TX_WAIT state which occurs when
the TX FIFO is empty AND the I2C
transaction is clock stretched
waiting for the FIFO to receive data. */
/* I2C_SCTR[TXTRIG_TXMODE] Bits */
#define I2C_SCTR_TXTRIG_TXMODE_OFS (4) /* !< TXTRIG_TXMODE Offset */
#define I2C_SCTR_TXTRIG_TXMODE_MASK ((uint32_t)0x00000010U) /* !< Tx Trigger when Target FSM is in Tx
Mode */
#define I2C_SCTR_TXTRIG_TXMODE_DISABLE ((uint32_t)0x00000000U) /* !< No special behavior */
#define I2C_SCTR_TXTRIG_TXMODE_ENABLE ((uint32_t)0x00000010U) /* !< When 1, RIS:TXFIFOTRG will be set
when the Target TX FIFO has reached
the trigger level AND the Target
State Machine is in the TXMODE as
defined in the SSR register. When
cleared RIS:TXFIFOTRG will be set
when the Target TX FIFO is at or
above the trigger level. This setting
can be used to hold off the TX DMA
until a transaction starts. This
allows the DMA to be configured when
the I2C is idle but have it wait till
the transaction starts to load the
Target TX FIFO, so it can load from a
memory buffer that might be changing
over time. */
/* I2C_SCTR[TXWAIT_STALE_TXFIFO] Bits */
#define I2C_SCTR_TXWAIT_STALE_TXFIFO_OFS (5) /* !< TXWAIT_STALE_TXFIFO Offset */
#define I2C_SCTR_TXWAIT_STALE_TXFIFO_MASK ((uint32_t)0x00000020U) /* !< Tx transfer waits when stale data
in Tx FIFO. This prevents stale bytes
left in the TX FIFO from
automatically being sent on the next
I2C packet. Note: this should be used
with TXEMPTY_ON_TREQ set to prevent
the Target State Machine from waiting
for TX FIFO data without an interrupt
notification when the FIFO data is
stale. */
#define I2C_SCTR_TXWAIT_STALE_TXFIFO_DISABLE ((uint32_t)0x00000000U) /* !< When 0, the TX FIFO empty signal to
the Target State Machine indicates
that the TX FIFO is empty. */
#define I2C_SCTR_TXWAIT_STALE_TXFIFO_ENABLE ((uint32_t)0x00000020U) /* !< When 1, the TX FIFO empty signal to
the Target State Machine will
indicate that the TX FIFO is empty or
that the TX FIFO data is stale. The
TX FIFO data is determined to be
stale when there is data in the TX
FIFO when the Target State Machine
leaves the TXMODE as defined in the
SSR register. This can occur is a
Stop or timeout occur when there are
bytes left in the TX FIFO. */
/* I2C_SCTR[RXFULL_ON_RREQ] Bits */
#define I2C_SCTR_RXFULL_ON_RREQ_OFS (6) /* !< RXFULL_ON_RREQ Offset */
#define I2C_SCTR_RXFULL_ON_RREQ_MASK ((uint32_t)0x00000040U) /* !< Rx full interrupt generated on RREQ
condition as indicated in SSR */
#define I2C_SCTR_RXFULL_ON_RREQ_DISABLE ((uint32_t)0x00000000U) /* !< When 0, RIS:SRXFULL will be set
when only the Target RX FIFO is full.
This allows the SRXFULL interrupt to
be used to indicate that the I2C bus
is being clock stretched and that the
FW must either read the RX FIFO or
ACK/NACK the current Rx byte. */
#define I2C_SCTR_RXFULL_ON_RREQ_ENABLE ((uint32_t)0x00000040U) /* !< When 1, RIS:SRXFULL will be set
when the Target State Machine is in
the RX_WAIT or RX_ACK_WAIT states
which occurs when the I2C transaction
is clock stretched because the RX
FIFO is full or the ACKOEN has been
set and the state machine is waiting
for FW to ACK/NACK the current byte. */
/* I2C_SCTR[EN_DEFHOSTADR] Bits */
#define I2C_SCTR_EN_DEFHOSTADR_OFS (7) /* !< EN_DEFHOSTADR Offset */
#define I2C_SCTR_EN_DEFHOSTADR_MASK ((uint32_t)0x00000080U) /* !< Enable Default Host Address */
#define I2C_SCTR_EN_DEFHOSTADR_DISABLE ((uint32_t)0x00000000U) /* !< When this bit is 0, the default
host address is not matched NOTE: it
may still be matched if programmed
inside SOAR/SOAR2 */
#define I2C_SCTR_EN_DEFHOSTADR_ENABLE ((uint32_t)0x00000080U) /* !< When this bit is 1, default host
address of 7h000_1000 is always
matched by the Target address match
logic. */
/* I2C_SCTR[EN_ALRESPADR] Bits */
#define I2C_SCTR_EN_ALRESPADR_OFS (8) /* !< EN_ALRESPADR Offset */
#define I2C_SCTR_EN_ALRESPADR_MASK ((uint32_t)0x00000100U) /* !< Enable Alert Response Address */
#define I2C_SCTR_EN_ALRESPADR_DISABLE ((uint32_t)0x00000000U) /* !< When this bit is 0, the alert
response address is not matched.
NOTE: it may still be matched if
programmed inside SOAR/SOAR2 */
#define I2C_SCTR_EN_ALRESPADR_ENABLE ((uint32_t)0x00000100U) /* !< When this bit is 1, alert response
address of 7h000_1100 is always
matched by the Target address match
logic. */
/* I2C_SCTR[EN_DEFDEVADR] Bits */
#define I2C_SCTR_EN_DEFDEVADR_OFS (9) /* !< EN_DEFDEVADR Offset */
#define I2C_SCTR_EN_DEFDEVADR_MASK ((uint32_t)0x00000200U) /* !< Enable Deault device address */
#define I2C_SCTR_EN_DEFDEVADR_DISABLE ((uint32_t)0x00000000U) /* !< When this bit is 0, the default
device address is not matched. NOTE:
it may still be matched if programmed
inside SOAR/SOAR2. */
#define I2C_SCTR_EN_DEFDEVADR_ENABLE ((uint32_t)0x00000200U) /* !< When this bit is 1, default device
address of 7h110_0001 is always
matched by the Target address match
logic. */
/* I2C_SCTR[SWUEN] Bits */
#define I2C_SCTR_SWUEN_OFS (10) /* !< SWUEN Offset */
#define I2C_SCTR_SWUEN_MASK ((uint32_t)0x00000400U) /* !< Target Wakeup Enable */
#define I2C_SCTR_SWUEN_DISABLE ((uint32_t)0x00000000U) /* !< When 0, the Target is not allowed
to clock stretch on START detection */
#define I2C_SCTR_SWUEN_ENABLE ((uint32_t)0x00000400U) /* !< When 1, the Target is allowed to
clock stretch on START detection and
wait for faster clock to be
abvailable. This allows clean wake up
support for I2C in low power mode use
cases */
/* I2C_SSR Bits */
/* I2C_SSR[RREQ] Bits */
#define I2C_SSR_RREQ_OFS (0) /* !< RREQ Offset */
#define I2C_SSR_RREQ_MASK ((uint32_t)0x00000001U) /* !< Receive Request */
#define I2C_SSR_RREQ_CLEARED ((uint32_t)0x00000000U) /* !< No outstanding receive data. */
#define I2C_SSR_RREQ_SET ((uint32_t)0x00000001U) /* !< The I2C controller has outstanding
receive data from the I2C Controller
and is using clock stretching to
delay the Controller until the data
has been read from the SRXDATA FIFO
(Target RX FIFO is full). */
/* I2C_SSR[TREQ] Bits */
#define I2C_SSR_TREQ_OFS (1) /* !< TREQ Offset */
#define I2C_SSR_TREQ_MASK ((uint32_t)0x00000002U) /* !< Transmit Request */
#define I2C_SSR_TREQ_CLEARED ((uint32_t)0x00000000U) /* !< No outstanding transmit request. */
#define I2C_SSR_TREQ_SET ((uint32_t)0x00000002U) /* !< The I2C controller has been
addressed as a Target transmitter and
is using clock stretching to delay
the Controller until data has been
written to the STXDATA FIFO (Target
TX FIFO is empty). */
/* I2C_SSR[OAR2SEL] Bits */
#define I2C_SSR_OAR2SEL_OFS (3) /* !< OAR2SEL Offset */
#define I2C_SSR_OAR2SEL_MASK ((uint32_t)0x00000008U) /* !< OAR2 Address Matched This bit gets
reevaluated after every address
comparison. */
#define I2C_SSR_OAR2SEL_CLEARED ((uint32_t)0x00000000U) /* !< Either the OAR2 address is not
matched or the match is in legacy
mode. */
#define I2C_SSR_OAR2SEL_SET ((uint32_t)0x00000008U) /* !< OAR2 address matched and ACKed by
the Target. */
/* I2C_SSR[QCMDST] Bits */
#define I2C_SSR_QCMDST_OFS (4) /* !< QCMDST Offset */
#define I2C_SSR_QCMDST_MASK ((uint32_t)0x00000010U) /* !< Quick Command Status Value
Description: 0: The last transaction
was a normal transaction or a
transaction has not occurred. 1: The
last transaction was a Quick Command
transaction */
#define I2C_SSR_QCMDST_CLEARED ((uint32_t)0x00000000U) /* !< The last transaction was a normal
transaction or a transaction has not
occurred. */
#define I2C_SSR_QCMDST_SET ((uint32_t)0x00000010U) /* !< The last transaction was a Quick
Command transaction. */
/* I2C_SSR[QCMDRW] Bits */
#define I2C_SSR_QCMDRW_OFS (5) /* !< QCMDRW Offset */
#define I2C_SSR_QCMDRW_MASK ((uint32_t)0x00000020U) /* !< Quick Command Read / Write This
bit only has meaning when the QCMDST
bit is set. Value Description: 0:
Quick command was a write 1: Quick
command was a read */
#define I2C_SSR_QCMDRW_CLEARED ((uint32_t)0x00000000U) /* !< Quick command was a write */
#define I2C_SSR_QCMDRW_SET ((uint32_t)0x00000020U) /* !< Quick command was a read */
/* I2C_SSR[RXMODE] Bits */
#define I2C_SSR_RXMODE_OFS (2) /* !< RXMODE Offset */
#define I2C_SSR_RXMODE_MASK ((uint32_t)0x00000004U) /* !< Target FSM is in Rx MODE */
#define I2C_SSR_RXMODE_CLEARED ((uint32_t)0x00000000U) /* !< The Target State Machine is not in
the RX_DATA, RX_ACK, RX_WAIT,
RX_ACK_WAIT or ADDR_ACK state with
the bus direction set to write. */
#define I2C_SSR_RXMODE_SET ((uint32_t)0x00000004U) /* !< The Target State Machine is in the
RX_DATA, RX_ACK, RX_WAIT, RX_ACK_WAIT
or ADDR_ACK state with the bus
direction set to write. */
/* I2C_SSR[BUSBSY] Bits */
#define I2C_SSR_BUSBSY_OFS (6) /* !< BUSBSY Offset */
#define I2C_SSR_BUSBSY_MASK ((uint32_t)0x00000040U) /* !< I2C bus is busy */
#define I2C_SSR_BUSBSY_CLEARED ((uint32_t)0x00000000U) /* !< The I2C Bus is not busy */
#define I2C_SSR_BUSBSY_SET ((uint32_t)0x00000040U) /* !< The I2C Bus is busy. This is
cleared on a timeout. */
/* I2C_SSR[TXMODE] Bits */
#define I2C_SSR_TXMODE_OFS (7) /* !< TXMODE Offset */
#define I2C_SSR_TXMODE_MASK ((uint32_t)0x00000080U) /* !< Target FSM is in TX MODE */
#define I2C_SSR_TXMODE_CLEARED ((uint32_t)0x00000000U) /* !< The Target State Machine is not in
TX_DATA, TX_WAIT, TX_ACK or ADDR_ACK
state with the bus direction set to
read. */
#define I2C_SSR_TXMODE_SET ((uint32_t)0x00000080U) /* !< The Target State Machine is in
TX_DATA, TX_WAIT, TX_ACK or ADDR_ACK
state with the bus direction set to
read. */
/* I2C_SSR[STALE_TXFIFO] Bits */
#define I2C_SSR_STALE_TXFIFO_OFS (8) /* !< STALE_TXFIFO Offset */
#define I2C_SSR_STALE_TXFIFO_MASK ((uint32_t)0x00000100U) /* !< Stale Tx FIFO */
#define I2C_SSR_STALE_TXFIFO_CLEARED ((uint32_t)0x00000000U) /* !< Tx FIFO is not stale */
#define I2C_SSR_STALE_TXFIFO_SET ((uint32_t)0x00000100U) /* !< The TX FIFO is stale. This occurs
when the TX FIFO was not emptied
during the previous I2C transaction. */
/* I2C_SSR[ADDRMATCH] Bits */
#define I2C_SSR_ADDRMATCH_OFS (9) /* !< ADDRMATCH Offset */
#define I2C_SSR_ADDRMATCH_MASK ((uint32_t)0x0007FE00U) /* !< Indicates the address for which
Target address match happened */
#define I2C_SSR_ADDRMATCH_MINIMUM ((uint32_t)0x00000000U) /* !< Minimum Value */
#define I2C_SSR_ADDRMATCH_MAXIMUM ((uint32_t)0x0007FE00U) /* !< Maximum Value */
/* I2C_SRXDATA Bits */
/* I2C_SRXDATA[VALUE] Bits */
#define I2C_SRXDATA_VALUE_OFS (0) /* !< VALUE Offset */
#define I2C_SRXDATA_VALUE_MASK ((uint32_t)0x000000FFU) /* !< Received Data. This field contains
the last received data. */
#define I2C_SRXDATA_VALUE_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_SRXDATA_VALUE_MAXIMUM ((uint32_t)0x000000FFU) /* !< Highest possible value */
/* I2C_STXDATA Bits */
/* I2C_STXDATA[VALUE] Bits */
#define I2C_STXDATA_VALUE_OFS (0) /* !< VALUE Offset */
#define I2C_STXDATA_VALUE_MASK ((uint32_t)0x000000FFU) /* !< Transmit Data This byte contains
the data to be transferred during the
next transaction. */
#define I2C_STXDATA_VALUE_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_STXDATA_VALUE_MAXIMUM ((uint32_t)0x000000FFU) /* !< Highest possible value */
/* I2C_SACKCTL Bits */
/* I2C_SACKCTL[ACKOEN] Bits */
#define I2C_SACKCTL_ACKOEN_OFS (0) /* !< ACKOEN Offset */
#define I2C_SACKCTL_ACKOEN_MASK ((uint32_t)0x00000001U) /* !< I2C Target ACK Override Enable */
#define I2C_SACKCTL_ACKOEN_DISABLE ((uint32_t)0x00000000U) /* !< A response in not provided. */
#define I2C_SACKCTL_ACKOEN_ENABLE ((uint32_t)0x00000001U) /* !< An ACK or NACK is sent according to
the value written to the ACKOVAL bit. */
/* I2C_SACKCTL[ACKOVAL] Bits */
#define I2C_SACKCTL_ACKOVAL_OFS (1) /* !< ACKOVAL Offset */
#define I2C_SACKCTL_ACKOVAL_MASK ((uint32_t)0x00000002U) /* !< I2C Target ACK Override Value Note:
for General Call this bit will be
ignored if set to NACK and Target
continues to receive data. */
#define I2C_SACKCTL_ACKOVAL_DISABLE ((uint32_t)0x00000000U) /* !< An ACK is sent indicating valid
data or command. */
#define I2C_SACKCTL_ACKOVAL_ENABLE ((uint32_t)0x00000002U) /* !< A NACK is sent indicating invalid
data or command. */
/* I2C_SACKCTL[ACKOEN_ON_START] Bits */
#define I2C_SACKCTL_ACKOEN_ON_START_OFS (2) /* !< ACKOEN_ON_START Offset */
#define I2C_SACKCTL_ACKOEN_ON_START_MASK ((uint32_t)0x00000004U) /* !< When set this bit will
automatically turn on the Target
ACKOEN field following a Start
Condition. */
#define I2C_SACKCTL_ACKOEN_ON_START_DISABLE ((uint32_t)0x00000000U) /* !< No special behavior */
#define I2C_SACKCTL_ACKOEN_ON_START_ENABLE ((uint32_t)0x00000004U) /* !< When set this bit will
automatically turn on the Target
ACKOEN field following a Start
Condition. */
/* I2C_SACKCTL[ACKOEN_ON_PECNEXT] Bits */
#define I2C_SACKCTL_ACKOEN_ON_PECNEXT_OFS (3) /* !< ACKOEN_ON_PECNEXT Offset */
#define I2C_SACKCTL_ACKOEN_ON_PECNEXT_MASK ((uint32_t)0x00000008U) /* !< When set this bit will
automatically turn on the Target
ACKOEN field following the ACK/NACK
of the byte received just prior to
the PEC byte. Note that when ACKOEN
is set the PEC byte will not
automatically be ACKed/NACKed by the
State Machine and FW must perform
this function by writing
Target_SACKCTL. */
#define I2C_SACKCTL_ACKOEN_ON_PECNEXT_DISABLE ((uint32_t)0x00000000U) /* !< No special behavior */
#define I2C_SACKCTL_ACKOEN_ON_PECNEXT_ENABLE ((uint32_t)0x00000008U) /* !< When set this bit will
automatically turn on the Target
ACKOEN field following the ACK/NACK
of the byte received just prior to
the PEC byte. Note that when ACKOEN
is set the PEC byte will not
automatically be ACKed/NACKed by the
State Machine and FW must perform
this function by writing
Target_SACKCTL. */
/* I2C_SACKCTL[ACKOEN_ON_PECDONE] Bits */
#define I2C_SACKCTL_ACKOEN_ON_PECDONE_OFS (4) /* !< ACKOEN_ON_PECDONE Offset */
#define I2C_SACKCTL_ACKOEN_ON_PECDONE_MASK ((uint32_t)0x00000010U) /* !< When set this bit will
automatically turn on the Target
ACKOEN field following the ACK/NACK
of the received PEC byte. */
#define I2C_SACKCTL_ACKOEN_ON_PECDONE_DISABLE ((uint32_t)0x00000000U) /* !< No special behavior */
#define I2C_SACKCTL_ACKOEN_ON_PECDONE_ENABLE ((uint32_t)0x00000010U) /* !< When set this bit will
automatically turn on the Target
ACKOEN field following the ACK/NACK
of the received PEC byte. */
/* I2C_SFIFOCTL Bits */
/* I2C_SFIFOCTL[TXTRIG] Bits */
#define I2C_SFIFOCTL_TXTRIG_OFS (0) /* !< TXTRIG Offset */
#define I2C_SFIFOCTL_TXTRIG_MASK ((uint32_t)0x00000007U) /* !< TX FIFO Trigger Indicates at what
fill level in the TX FIFO a trigger
will be generated. */
#define I2C_SFIFOCTL_TXTRIG_LEVEL_4 ((uint32_t)0x00000004U) /* !< Trigger when TX FIFO contains 4
byte */
#define I2C_SFIFOCTL_TXTRIG_LEVEL_5 ((uint32_t)0x00000005U) /* !< Trigger when TX FIFO contains 5
byte */
#define I2C_SFIFOCTL_TXTRIG_LEVEL_6 ((uint32_t)0x00000006U) /* !< Trigger when TX FIFO contains 6
byte */
#define I2C_SFIFOCTL_TXTRIG_LEVEL_7 ((uint32_t)0x00000007U) /* !< Trigger when TX FIFO contains 7
byte */
/* I2C_SFIFOCTL[TXFLUSH] Bits */
#define I2C_SFIFOCTL_TXFLUSH_OFS (7) /* !< TXFLUSH Offset */
#define I2C_SFIFOCTL_TXFLUSH_MASK ((uint32_t)0x00000080U) /* !< TX FIFO Flush Setting this bit will
Flush the TX FIFO. Before clearing
this bit to stop Flush the TXFIFOCNT
should be checked to be 8 and
indicating that the Flush has
completed. */
#define I2C_SFIFOCTL_TXFLUSH_NOFLUSH ((uint32_t)0x00000000U) /* !< Do not Flush FIFO */
#define I2C_SFIFOCTL_TXFLUSH_FLUSH ((uint32_t)0x00000080U) /* !< Flush FIFO */
/* I2C_SFIFOCTL[RXFLUSH] Bits */
#define I2C_SFIFOCTL_RXFLUSH_OFS (15) /* !< RXFLUSH Offset */
#define I2C_SFIFOCTL_RXFLUSH_MASK ((uint32_t)0x00008000U) /* !< RX FIFO Flush Setting this bit will
Flush the RX FIFO. Before clearing
this bit to stop Flush the RXFIFOCNT
should be checked to be 0 and
indicating that the Flush has
completed. */
#define I2C_SFIFOCTL_RXFLUSH_NOFLUSH ((uint32_t)0x00000000U) /* !< Do not Flush FIFO */
#define I2C_SFIFOCTL_RXFLUSH_FLUSH ((uint32_t)0x00008000U) /* !< Flush FIFO */
/* I2C_SFIFOCTL[RXTRIG] Bits */
#define I2C_SFIFOCTL_RXTRIG_OFS (8) /* !< RXTRIG Offset */
#define I2C_SFIFOCTL_RXTRIG_MASK ((uint32_t)0x00000700U) /* !< RX FIFO Trigger Indicates at what
fill level in the RX FIFO a trigger
will be generated. Note: Programming
RXTRIG to 0x0 has no effect since no
data is present to transfer out of RX
FIFO. */
#define I2C_SFIFOCTL_RXTRIG_LEVEL_5 ((uint32_t)0x00000400U) /* !< Trigger when RX FIFO contains >= 5
byte */
#define I2C_SFIFOCTL_RXTRIG_LEVEL_6 ((uint32_t)0x00000500U) /* !< Trigger when RX FIFO contains >= 6
byte */
#define I2C_SFIFOCTL_RXTRIG_LEVEL_7 ((uint32_t)0x00000600U) /* !< Trigger when RX FIFO contains >= 7
byte */
#define I2C_SFIFOCTL_RXTRIG_LEVEL_8 ((uint32_t)0x00000700U) /* !< Trigger when RX FIFO contains >= 8
byte */
/* I2C_SFIFOSR Bits */
/* I2C_SFIFOSR[RXFIFOCNT] Bits */
#define I2C_SFIFOSR_RXFIFOCNT_OFS (0) /* !< RXFIFOCNT Offset */
#define I2C_SFIFOSR_RXFIFOCNT_MASK ((uint32_t)0x0000000FU) /* !< Number of Bytes which could be read
from the RX FIFO */
#define I2C_SFIFOSR_RXFIFOCNT_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_SFIFOSR_RXFIFOCNT_MAXIMUM ((uint32_t)0x00000008U) /* !< Highest possible value */
/* I2C_SFIFOSR[TXFIFOCNT] Bits */
#define I2C_SFIFOSR_TXFIFOCNT_OFS (8) /* !< TXFIFOCNT Offset */
#define I2C_SFIFOSR_TXFIFOCNT_MASK ((uint32_t)0x00000F00U) /* !< Number of Bytes which could be put
into the TX FIFO */
#define I2C_SFIFOSR_TXFIFOCNT_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_SFIFOSR_TXFIFOCNT_MAXIMUM ((uint32_t)0x00000800U) /* !< Highest possible value */
/* I2C_SFIFOSR[TXFLUSH] Bits */
#define I2C_SFIFOSR_TXFLUSH_OFS (15) /* !< TXFLUSH Offset */
#define I2C_SFIFOSR_TXFLUSH_MASK ((uint32_t)0x00008000U) /* !< TX FIFO Flush When this bit is set
a Flush operation for the TX FIFO is
active. Clear the TXFLUSH bit in the
control register to stop. */
#define I2C_SFIFOSR_TXFLUSH_INACTIVE ((uint32_t)0x00000000U) /* !< FIFO Flush not active */
#define I2C_SFIFOSR_TXFLUSH_ACTIVE ((uint32_t)0x00008000U) /* !< FIFO Flush active */
/* I2C_SFIFOSR[RXFLUSH] Bits */
#define I2C_SFIFOSR_RXFLUSH_OFS (7) /* !< RXFLUSH Offset */
#define I2C_SFIFOSR_RXFLUSH_MASK ((uint32_t)0x00000080U) /* !< RX FIFO Flush When this bit is set
a Flush operation for the RX FIFO is
active. Clear the RXFLUSH bit in the
control register to stop. */
#define I2C_SFIFOSR_RXFLUSH_INACTIVE ((uint32_t)0x00000000U) /* !< FIFOFlush not active */
#define I2C_SFIFOSR_RXFLUSH_ACTIVE ((uint32_t)0x00000080U) /* !< FIFO Flush active */
/* I2C_TARGET_PECCTL Bits */
/* I2C_TARGET_PECCTL[PECCNT] Bits */
#define I2C_TARGET_PECCTL_PECCNT_OFS (0) /* !< PECCNT Offset */
#define I2C_TARGET_PECCTL_PECCNT_MASK ((uint32_t)0x000001FFU) /* !< When this field is non zero, the
number of I2C data bytes are counted.
When the byte count = PECCNT and the
state machine is transmitting, the
contents of the LSFR is loaded into
the shift register instead of the
byte received from the Tx FIFO. When
the state machine is receiving, after
the last bit of this byte is received
the LSFR is checked and if it is
non-zero, a PEC RX Error interrupt is
generated. The I2C packet must be
padded to include the PEC byte for
both transmit and receive. In
transmit mode the FIFO must be loaded
with a dummy PEC byte. In receive
mode the PEC byte will be passed to
the Rx FIFO. In the normal Target
use case, FW would set PECEN=1 and
PECCNT=0 and use the ACKOEN until the
remaining SMB packet length is known.
FW would then set the PECCNT to the
remaining packet length (Including
PEC bye). FW would then configure DMA
to allow the packet to complete
unassisted and exit NoAck mode. Note
that when the byte count = PEC CNT,
the byte count is reset to 0 and
multiple PEC calculation can
automatically occur within a single
I2C transaction */
#define I2C_TARGET_PECCTL_PECCNT_MINIMUM ((uint32_t)0x00000000U) /* !< Minimum Value */
#define I2C_TARGET_PECCTL_PECCNT_MAXIMUM ((uint32_t)0x000001FFU) /* !< Maximum Value */
/* I2C_TARGET_PECCTL[PECEN] Bits */
#define I2C_TARGET_PECCTL_PECEN_OFS (12) /* !< PECEN Offset */
#define I2C_TARGET_PECCTL_PECEN_MASK ((uint32_t)0x00001000U) /* !< PEC Enable This bit enables the SMB
Packet Error Checking (PEC). When
enabled the PEC is calculated on all
bits except the Start, Stop, Ack and
Nack. The PEC LSFR and the Byte
Counter is set to 0 when the State
Machine is in the IDLE state, which
occur following a Stop or when a
timeout occurs. The Counter is also
set to 0 after the PEC byte is sent
or received. Note that the NACK is
automatically send following a PEC
byte that results in a PEC error. The
PEC Polynomial is x^8 + x^2 + x^1 +
1. */
#define I2C_TARGET_PECCTL_PECEN_DISABLE ((uint32_t)0x00000000U) /* !< PEC transmission and check is
disabled */
#define I2C_TARGET_PECCTL_PECEN_ENABLE ((uint32_t)0x00001000U) /* !< PEC transmission and check is
enabled */
/* I2C_TARGET_PECSR Bits */
/* I2C_TARGET_PECSR[PECBYTECNT] Bits */
#define I2C_TARGET_PECSR_PECBYTECNT_OFS (0) /* !< PECBYTECNT Offset */
#define I2C_TARGET_PECSR_PECBYTECNT_MASK ((uint32_t)0x000001FFU) /* !< This is the current PEC Byte Count
of the Target State Machine. */
#define I2C_TARGET_PECSR_PECBYTECNT_MINIMUM ((uint32_t)0x00000000U) /* !< Minimum Value */
#define I2C_TARGET_PECSR_PECBYTECNT_MAXIMUM ((uint32_t)0x000001FFU) /* !< Maximum Value */
/* I2C_TARGET_PECSR[PECSTS_CHECK] Bits */
#define I2C_TARGET_PECSR_PECSTS_CHECK_OFS (16) /* !< PECSTS_CHECK Offset */
#define I2C_TARGET_PECSR_PECSTS_CHECK_MASK ((uint32_t)0x00010000U) /* !< This status bit indicates if the
PEC was checked in the transaction
that occurred before the last Stop.
Latched on Stop. */
#define I2C_TARGET_PECSR_PECSTS_CHECK_CLEARED ((uint32_t)0x00000000U) /* !< Indicates PEC was not checked in
the transaction that occurred before
the last Stop */
#define I2C_TARGET_PECSR_PECSTS_CHECK_SET ((uint32_t)0x00010000U) /* !< Indicates PEC was checked in the
transaction that occurred before the
last Stop */
/* I2C_TARGET_PECSR[PECSTS_ERROR] Bits */
#define I2C_TARGET_PECSR_PECSTS_ERROR_OFS (17) /* !< PECSTS_ERROR Offset */
#define I2C_TARGET_PECSR_PECSTS_ERROR_MASK ((uint32_t)0x00020000U) /* !< This status bit indicates if a PEC
check error occurred in the
transaction that occurred before the
last Stop. Latched on Stop. */
#define I2C_TARGET_PECSR_PECSTS_ERROR_CLEARED ((uint32_t)0x00000000U) /* !< Indicates PEC check error did not
occurr in the transaction that
occurred before the last Stop */
#define I2C_TARGET_PECSR_PECSTS_ERROR_SET ((uint32_t)0x00020000U) /* !< Indicates PEC check error occurred
in the transaction that occurred
before the last Stop */
/* I2C_MSA Bits */
/* I2C_MSA[DIR] Bits */
#define I2C_MSA_DIR_OFS (0) /* !< DIR Offset */
#define I2C_MSA_DIR_MASK ((uint32_t)0x00000001U) /* !< Receive/Send The DIR bit specifies
if the next Controller operation is a
Receive (High) or Transmit (Low). 0h
= Transmit 1h = Receive */
#define I2C_MSA_DIR_TRANSMIT ((uint32_t)0x00000000U) /* !< The Controller is in transmit mode. */
#define I2C_MSA_DIR_RECEIVE ((uint32_t)0x00000001U) /* !< The Controller is in receive mode. */
/* I2C_MSA[SADDR] Bits */
#define I2C_MSA_SADDR_OFS (1) /* !< SADDR Offset */
#define I2C_MSA_SADDR_MASK ((uint32_t)0x000007FEU) /* !< I2C Target Address This field
specifies bits A9 through A0 of the
Target address. In 7-bit addressing
mode as selected by MSA.MODE bit, the
top 3 bits are don't care */
#define I2C_MSA_SADDR_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MSA_SADDR_MAXIMUM ((uint32_t)0x000007FEU) /* !< Highest possible value */
/* I2C_MSA[MMODE] Bits */
#define I2C_MSA_MMODE_OFS (15) /* !< MMODE Offset */
#define I2C_MSA_MMODE_MASK ((uint32_t)0x00008000U) /* !< This bit selects the adressing mode
to be used in Controller mode When 0,
7-bit addressing is used. When 1,
10-bit addressing is used. */
#define I2C_MSA_MMODE_MODE7 ((uint32_t)0x00000000U) /* !< 7-bit addressing mode */
#define I2C_MSA_MMODE_MODE10 ((uint32_t)0x00008000U) /* !< 10-bit addressing mode */
/* I2C_MCTR Bits */
/* I2C_MCTR[BURSTRUN] Bits */
#define I2C_MCTR_BURSTRUN_OFS (0) /* !< BURSTRUN Offset */
#define I2C_MCTR_BURSTRUN_MASK ((uint32_t)0x00000001U) /* !< I2C Controller Enable and start
transaction */
#define I2C_MCTR_BURSTRUN_DISABLE ((uint32_t)0x00000000U) /* !< In standard mode, this encoding
means the Controller is unable to
transmit or receive data. */
#define I2C_MCTR_BURSTRUN_ENABLE ((uint32_t)0x00000001U) /* !< The Controller is able to transmit
or receive data. See field decoding
in Table: MCTR Field decoding. */
/* I2C_MCTR[START] Bits */
#define I2C_MCTR_START_OFS (1) /* !< START Offset */
#define I2C_MCTR_START_MASK ((uint32_t)0x00000002U) /* !< Generate START */
#define I2C_MCTR_START_DISABLE ((uint32_t)0x00000000U) /* !< The controller does not generate
the START condition. */
#define I2C_MCTR_START_ENABLE ((uint32_t)0x00000002U) /* !< The controller generates the START
or repeated START condition. See
field decoding in Table: MCTR Field
decoding. */
/* I2C_MCTR[STOP] Bits */
#define I2C_MCTR_STOP_OFS (2) /* !< STOP Offset */
#define I2C_MCTR_STOP_MASK ((uint32_t)0x00000004U) /* !< Generate STOP */
#define I2C_MCTR_STOP_DISABLE ((uint32_t)0x00000000U) /* !< The controller does not generate
the STOP condition. */
#define I2C_MCTR_STOP_ENABLE ((uint32_t)0x00000004U) /* !< The controller generates the STOP
condition. See field decoding in
Table: MCTR Field decoding. */
/* I2C_MCTR[ACK] Bits */
#define I2C_MCTR_ACK_OFS (3) /* !< ACK Offset */
#define I2C_MCTR_ACK_MASK ((uint32_t)0x00000008U) /* !< Data Acknowledge Enable. Software
needs to configure this bit to send
the ACK or NACK. See field decoding
in Table: MCTR Field decoding. */
#define I2C_MCTR_ACK_DISABLE ((uint32_t)0x00000000U) /* !< The last received data byte of a
transaction is not acknowledged
automatically by the Controller. */
#define I2C_MCTR_ACK_ENABLE ((uint32_t)0x00000008U) /* !< The last received data byte of a
transaction is acknowledged
automatically by the Controller. */
/* I2C_MCTR[MBLEN] Bits */
#define I2C_MCTR_MBLEN_OFS (16) /* !< MBLEN Offset */
#define I2C_MCTR_MBLEN_MASK ((uint32_t)0x0FFF0000U) /* !< I2C transaction length This field
contains the programmed length of
bytes of the Transaction. */
#define I2C_MCTR_MBLEN_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MCTR_MBLEN_MAXIMUM ((uint32_t)0x0FFF0000U) /* !< Highest possible value */
/* I2C_MCTR[MACKOEN] Bits */
#define I2C_MCTR_MACKOEN_OFS (4) /* !< MACKOEN Offset */
#define I2C_MCTR_MACKOEN_MASK ((uint32_t)0x00000010U) /* !< Controller ACK overrride Enable */
#define I2C_MCTR_MACKOEN_DISABLE ((uint32_t)0x00000000U) /* !< No special behavior */
#define I2C_MCTR_MACKOEN_ENABLE ((uint32_t)0x00000010U) /* !< When 1 and the Controller is
receiving data and the number of
bytes indicated in MBLEN have been
received, the state machine will
generate an rxdone interrupt and wait
at the start of the ACK for FW to
indicate if an ACK or NACK should be
sent. The ACK or NACK is selected by
writing the MCTR register and setting
ACK accordingly. The other fields in
this register can also be written at
this time to continue on with the
transaction. If a NACK is sent the
state machine will automatically send
a Stop. */
/* I2C_MCTR[RD_ON_TXEMPTY] Bits */
#define I2C_MCTR_RD_ON_TXEMPTY_OFS (5) /* !< RD_ON_TXEMPTY Offset */
#define I2C_MCTR_RD_ON_TXEMPTY_MASK ((uint32_t)0x00000020U) /* !< Read on TX Empty */
#define I2C_MCTR_RD_ON_TXEMPTY_DISABLE ((uint32_t)0x00000000U) /* !< No special behavior */
#define I2C_MCTR_RD_ON_TXEMPTY_ENABLE ((uint32_t)0x00000020U) /* !< When 1 the Controller will transmit
all bytes from the TX FIFO before
continuing with the programmed Burst
Run Read. If the DIR is not set to
Read in the MSA then this bit is
ignored. The Start must be set in the
MCTR for proper I2C protocol. The
Controller will first send the Start
Condition, I2C Address with R/W bit
set to write, before sending the
bytes in the TX FIFO. When the TX
FIFO is empty, the I2C transaction
will continue as programmed in MTCR
and MSA without sending a Stop
Condition. This is intended to be
used to perform simple I2C command
based reads transition that will
complete after initiating them
without having to get an interrupt to
turn the bus around. */
/* I2C_MSR Bits */
/* I2C_MSR[BUSY] Bits */
#define I2C_MSR_BUSY_OFS (0) /* !< BUSY Offset */
#define I2C_MSR_BUSY_MASK ((uint32_t)0x00000001U) /* !< I2C Controller FSM Busy The BUSY
bit is set during an ongoing
transaction, so is set during the
transmit/receive of the amount of
data set in MBLEN including START,
RESTART, Address and STOP signal
generation when required for the
current transaction. */
#define I2C_MSR_BUSY_CLEARED ((uint32_t)0x00000000U) /* !< The controller is idle. */
#define I2C_MSR_BUSY_SET ((uint32_t)0x00000001U) /* !< The controller is busy. */
/* I2C_MSR[ERR] Bits */
#define I2C_MSR_ERR_OFS (1) /* !< ERR Offset */
#define I2C_MSR_ERR_MASK ((uint32_t)0x00000002U) /* !< Error The error can be from the
Target address not being acknowledged
or the transmit data not being
acknowledged. */
#define I2C_MSR_ERR_CLEARED ((uint32_t)0x00000000U) /* !< No error was detected on the last
operation. */
#define I2C_MSR_ERR_SET ((uint32_t)0x00000002U) /* !< An error occurred on the last
operation. */
/* I2C_MSR[ADRACK] Bits */
#define I2C_MSR_ADRACK_OFS (2) /* !< ADRACK Offset */
#define I2C_MSR_ADRACK_MASK ((uint32_t)0x00000004U) /* !< Acknowledge Address */
#define I2C_MSR_ADRACK_CLEARED ((uint32_t)0x00000000U) /* !< The transmitted address was
acknowledged */
#define I2C_MSR_ADRACK_SET ((uint32_t)0x00000004U) /* !< The transmitted address was not
acknowledged. */
/* I2C_MSR[DATACK] Bits */
#define I2C_MSR_DATACK_OFS (3) /* !< DATACK Offset */
#define I2C_MSR_DATACK_MASK ((uint32_t)0x00000008U) /* !< Acknowledge Data */
#define I2C_MSR_DATACK_CLEARED ((uint32_t)0x00000000U) /* !< The transmitted data was
acknowledged */
#define I2C_MSR_DATACK_SET ((uint32_t)0x00000008U) /* !< The transmitted data was not
acknowledged. */
/* I2C_MSR[ARBLST] Bits */
#define I2C_MSR_ARBLST_OFS (4) /* !< ARBLST Offset */
#define I2C_MSR_ARBLST_MASK ((uint32_t)0x00000010U) /* !< Arbitration Lost */
#define I2C_MSR_ARBLST_CLEARED ((uint32_t)0x00000000U) /* !< The I2C controller won arbitration. */
#define I2C_MSR_ARBLST_SET ((uint32_t)0x00000010U) /* !< The I2C controller lost
arbitration. */
/* I2C_MSR[IDLE] Bits */
#define I2C_MSR_IDLE_OFS (5) /* !< IDLE Offset */
#define I2C_MSR_IDLE_MASK ((uint32_t)0x00000020U) /* !< I2C Idle */
#define I2C_MSR_IDLE_CLEARED ((uint32_t)0x00000000U) /* !< The I2C controller is not idle. */
#define I2C_MSR_IDLE_SET ((uint32_t)0x00000020U) /* !< The I2C controller is idle. */
/* I2C_MSR[BUSBSY] Bits */
#define I2C_MSR_BUSBSY_OFS (6) /* !< BUSBSY Offset */
#define I2C_MSR_BUSBSY_MASK ((uint32_t)0x00000040U) /* !< I2C Bus is Busy Controller State
Machine will wait until this bit is
cleared before starting a
transaction. When first enabling the
Controller in multi Controller
environments, FW should wait for one
I2C clock period after setting ACTIVE
high before writing to the MTCR
register to start the transaction so
that if SCL goes low it will trigger
the BUSBSY. */
#define I2C_MSR_BUSBSY_CLEARED ((uint32_t)0x00000000U) /* !< The I2C bus is idle. */
#define I2C_MSR_BUSBSY_SET ((uint32_t)0x00000040U) /* !< 'This Status bit is set on a START
or when SCL goes low. It is cleared
on a STOP, or when a SCL high bus
busy timeout occurs and SCL and SDA
are both high. This status is cleared
when the ACTIVE bit is low. Note
that the Controller State Machine
will wait until this bit is cleared
before starting an I2C transaction.
When first enabling the Controller in
multi Controller environments, FW
should wait for one I2C clock period
after setting ACTIVE high before
writing to the MTCR register to start
the transaction so that if SCL goes
low it will trigger the BUSBSY. */
/* I2C_MSR[MBCNT] Bits */
#define I2C_MSR_MBCNT_OFS (16) /* !< MBCNT Offset */
#define I2C_MSR_MBCNT_MASK ((uint32_t)0x0FFF0000U) /* !< I2C Controller Transaction Count
This field contains the current
count-down value of the transaction. */
#define I2C_MSR_MBCNT_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MSR_MBCNT_MAXIMUM ((uint32_t)0x0FFF0000U) /* !< Highest possible value */
/* I2C_MRXDATA Bits */
/* I2C_MRXDATA[VALUE] Bits */
#define I2C_MRXDATA_VALUE_OFS (0) /* !< VALUE Offset */
#define I2C_MRXDATA_VALUE_MASK ((uint32_t)0x000000FFU) /* !< Received Data. This field contains
the last received data. */
#define I2C_MRXDATA_VALUE_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MRXDATA_VALUE_MAXIMUM ((uint32_t)0x000000FFU) /* !< Highest possible value */
/* I2C_MTXDATA Bits */
/* I2C_MTXDATA[VALUE] Bits */
#define I2C_MTXDATA_VALUE_OFS (0) /* !< VALUE Offset */
#define I2C_MTXDATA_VALUE_MASK ((uint32_t)0x000000FFU) /* !< Transmit Data This byte contains
the data to be transferred during the
next transaction. */
#define I2C_MTXDATA_VALUE_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MTXDATA_VALUE_MAXIMUM ((uint32_t)0x000000FFU) /* !< Highest possible value */
/* I2C_MTPR Bits */
/* I2C_MTPR[TPR] Bits */
#define I2C_MTPR_TPR_OFS (0) /* !< TPR Offset */
#define I2C_MTPR_TPR_MASK ((uint32_t)0x0000007FU) /* !< Timer Period This field is used in
the equation to configure SCL_PERIOD
: SCL_PERIOD = (1 + TPR ) * (SCL_LP +
SCL_HP ) * INT_CLK_PRD where:
SCL_PRD is the SCL line period (I2C
clock). TPR is the Timer Period
register value (range of 1 to 127).
SCL_LP is the SCL Low period (fixed
at 6). SCL_HP is the SCL High
period (fixed at 4). CLK_PRD is the
functional clock period in ns. */
#define I2C_MTPR_TPR_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MTPR_TPR_MAXIMUM ((uint32_t)0x0000007FU) /* !< Highest possible value */
/* I2C_MCR Bits */
/* I2C_MCR[LPBK] Bits */
#define I2C_MCR_LPBK_OFS (8) /* !< LPBK Offset */
#define I2C_MCR_LPBK_MASK ((uint32_t)0x00000100U) /* !< I2C Loopback */
#define I2C_MCR_LPBK_DISABLE ((uint32_t)0x00000000U) /* !< Normal operation. */
#define I2C_MCR_LPBK_ENABLE ((uint32_t)0x00000100U) /* !< The controller in a test mode
loopback configuration. */
/* I2C_MCR[MMST] Bits */
#define I2C_MCR_MMST_OFS (1) /* !< MMST Offset */
#define I2C_MCR_MMST_MASK ((uint32_t)0x00000002U) /* !< MultiController mode. In
MultiController mode the SCL high
time counts once the SCL line has
been detected high. If this is not
enabled the high time counts as soon
as the SCL line has been set high by
the I2C controller. */
#define I2C_MCR_MMST_DISABLE ((uint32_t)0x00000000U) /* !< Disable MultiController mode. */
#define I2C_MCR_MMST_ENABLE ((uint32_t)0x00000002U) /* !< Enable MultiController mode. */
/* I2C_MCR[ACTIVE] Bits */
#define I2C_MCR_ACTIVE_OFS (0) /* !< ACTIVE Offset */
#define I2C_MCR_ACTIVE_MASK ((uint32_t)0x00000001U) /* !< Device Active After this bit has
been set, it should not be set again
unless it has been cleared by writing
a 0 or by a reset, otherwise transfer
failures may occur. */
#define I2C_MCR_ACTIVE_DISABLE ((uint32_t)0x00000000U) /* !< Disables the I2C Controller
operation. */
#define I2C_MCR_ACTIVE_ENABLE ((uint32_t)0x00000001U) /* !< Enables the I2C Controller
operation. */
/* I2C_MCR[CLKSTRETCH] Bits */
#define I2C_MCR_CLKSTRETCH_OFS (2) /* !< CLKSTRETCH Offset */
#define I2C_MCR_CLKSTRETCH_MASK ((uint32_t)0x00000004U) /* !< Clock Stretching. This bit controls
the support for clock stretching of
the I2C bus. */
#define I2C_MCR_CLKSTRETCH_DISABLE ((uint32_t)0x00000000U) /* !< Disables the clock stretching
detection. This can be disabled if no
Target on the bus does support clock
stretching, so that the maximum speed
on the bus can be reached. */
#define I2C_MCR_CLKSTRETCH_ENABLE ((uint32_t)0x00000004U) /* !< Enables the clock stretching
detection. Enabling the clock
stretching ensures compliance to the
I2C standard but could limit the
speed due the clock stretching. */
/* I2C_MBMON Bits */
/* I2C_MBMON[SCL] Bits */
#define I2C_MBMON_SCL_OFS (0) /* !< SCL Offset */
#define I2C_MBMON_SCL_MASK ((uint32_t)0x00000001U) /* !< I2C SCL Status */
#define I2C_MBMON_SCL_CLEARED ((uint32_t)0x00000000U) /* !< The I2CSCL signal is low. */
#define I2C_MBMON_SCL_SET ((uint32_t)0x00000001U) /* !< The I2CSCL signal is high. Note:
During and right after reset, the SCL
pin is in GPIO input mode without the
internal pull enabled. For proper I2C
operation, the user should have the
external pull-up resistor in place
before starting any I2C operations. */
/* I2C_MBMON[SDA] Bits */
#define I2C_MBMON_SDA_OFS (1) /* !< SDA Offset */
#define I2C_MBMON_SDA_MASK ((uint32_t)0x00000002U) /* !< I2C SDA Status */
#define I2C_MBMON_SDA_CLEARED ((uint32_t)0x00000000U) /* !< The I2CSDA signal is low. */
#define I2C_MBMON_SDA_SET ((uint32_t)0x00000002U) /* !< The I2CSDA signal is high. Note:
During and right after reset, the SDA
pin is in GPIO input mode without the
internal pull enabled. For proper I2C
operation, the user should have the
external pull-up resistor in place
before starting any I2C operations. */
/* I2C_MFIFOCTL Bits */
/* I2C_MFIFOCTL[TXTRIG] Bits */
#define I2C_MFIFOCTL_TXTRIG_OFS (0) /* !< TXTRIG Offset */
#define I2C_MFIFOCTL_TXTRIG_MASK ((uint32_t)0x00000007U) /* !< TX FIFO Trigger Indicates at what
fill level in the TX FIFO a trigger
will be generated. */
#define I2C_MFIFOCTL_TXTRIG_EMPTY ((uint32_t)0x00000000U) /* !< Trigger when the TX FIFO is empty. */
#define I2C_MFIFOCTL_TXTRIG_LEVEL_1 ((uint32_t)0x00000001U) /* !< Trigger when TX FIFO contains 1
byte */
#define I2C_MFIFOCTL_TXTRIG_LEVEL_2 ((uint32_t)0x00000002U) /* !< Trigger when TX FIFO contains 2
byte */
#define I2C_MFIFOCTL_TXTRIG_LEVEL_3 ((uint32_t)0x00000003U) /* !< Trigger when TX FIFO contains 3
byte */
#define I2C_MFIFOCTL_TXTRIG_LEVEL_4 ((uint32_t)0x00000004U) /* !< Trigger when TX FIFO contains 4
byte */
#define I2C_MFIFOCTL_TXTRIG_LEVEL_5 ((uint32_t)0x00000005U) /* !< Trigger when TX FIFO contains 5
byte */
#define I2C_MFIFOCTL_TXTRIG_LEVEL_6 ((uint32_t)0x00000006U) /* !< Trigger when TX FIFO contains 6
byte */
#define I2C_MFIFOCTL_TXTRIG_LEVEL_7 ((uint32_t)0x00000007U) /* !< Trigger when TX FIFO contains 7
byte */
/* I2C_MFIFOCTL[TXFLUSH] Bits */
#define I2C_MFIFOCTL_TXFLUSH_OFS (7) /* !< TXFLUSH Offset */
#define I2C_MFIFOCTL_TXFLUSH_MASK ((uint32_t)0x00000080U) /* !< TX FIFO Flush Setting this bit will
Flush the TX FIFO. Before clearing
this bit to stop Flush the TXFIFOCNT
should be checked to be 8 and
indicating that the Flush has
completed. */
#define I2C_MFIFOCTL_TXFLUSH_NOFLUSH ((uint32_t)0x00000000U) /* !< Do not Flush FIFO */
#define I2C_MFIFOCTL_TXFLUSH_FLUSH ((uint32_t)0x00000080U) /* !< Flush FIFO */
/* I2C_MFIFOCTL[RXTRIG] Bits */
#define I2C_MFIFOCTL_RXTRIG_OFS (8) /* !< RXTRIG Offset */
#define I2C_MFIFOCTL_RXTRIG_MASK ((uint32_t)0x00000700U) /* !< RX FIFO Trigger Indicates at what
fill level in the RX FIFO a trigger
will be generated. Note: Programming
RXTRIG to 0x0 has no effect since no
data is present to transfer out of RX
FIFO. */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_1 ((uint32_t)0x00000000U) /* !< Trigger when RX FIFO contains >= 1
byte */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_2 ((uint32_t)0x00000100U) /* !< Trigger when RX FIFO contains >= 2
byte */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_3 ((uint32_t)0x00000200U) /* !< Trigger when RX FIFO contains >= 3
byte */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_4 ((uint32_t)0x00000300U) /* !< Trigger when RX FIFO contains >= 4
byte */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_5 ((uint32_t)0x00000400U) /* !< Trigger when RX FIFO contains >= 5
byte */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_6 ((uint32_t)0x00000500U) /* !< Trigger when RX FIFO contains >= 6
byte */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_7 ((uint32_t)0x00000600U) /* !< Trigger when RX FIFO contains >= 7
byte */
#define I2C_MFIFOCTL_RXTRIG_LEVEL_8 ((uint32_t)0x00000700U) /* !< Trigger when RX FIFO contains >= 8
byte */
/* I2C_MFIFOCTL[RXFLUSH] Bits */
#define I2C_MFIFOCTL_RXFLUSH_OFS (15) /* !< RXFLUSH Offset */
#define I2C_MFIFOCTL_RXFLUSH_MASK ((uint32_t)0x00008000U) /* !< RX FIFO Flush Setting this bit will
Flush the RX FIFO. Before clearing
this bit to stop Flush the RXFIFOCNT
should be checked to be 0 and
indicating that the Flush has
completed. */
#define I2C_MFIFOCTL_RXFLUSH_NOFLUSH ((uint32_t)0x00000000U) /* !< Do not Flush FIFO */
#define I2C_MFIFOCTL_RXFLUSH_FLUSH ((uint32_t)0x00008000U) /* !< Flush FIFO */
/* I2C_MFIFOSR Bits */
/* I2C_MFIFOSR[RXFIFOCNT] Bits */
#define I2C_MFIFOSR_RXFIFOCNT_OFS (0) /* !< RXFIFOCNT Offset */
#define I2C_MFIFOSR_RXFIFOCNT_MASK ((uint32_t)0x0000000FU) /* !< Number of Bytes which could be read
from the RX FIFO */
#define I2C_MFIFOSR_RXFIFOCNT_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MFIFOSR_RXFIFOCNT_MAXIMUM ((uint32_t)0x00000008U) /* !< Highest possible value */
/* I2C_MFIFOSR[TXFIFOCNT] Bits */
#define I2C_MFIFOSR_TXFIFOCNT_OFS (8) /* !< TXFIFOCNT Offset */
#define I2C_MFIFOSR_TXFIFOCNT_MASK ((uint32_t)0x00000F00U) /* !< Number of Bytes which could be put
into the TX FIFO */
#define I2C_MFIFOSR_TXFIFOCNT_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_MFIFOSR_TXFIFOCNT_MAXIMUM ((uint32_t)0x00000800U) /* !< Highest possible value */
/* I2C_MFIFOSR[RXFLUSH] Bits */
#define I2C_MFIFOSR_RXFLUSH_OFS (7) /* !< RXFLUSH Offset */
#define I2C_MFIFOSR_RXFLUSH_MASK ((uint32_t)0x00000080U) /* !< RX FIFO Flush When this bit is set
a Flush operation for the RX FIFO is
active. Clear the RXFLUSH bit in the
control register to stop. */
#define I2C_MFIFOSR_RXFLUSH_INACTIVE ((uint32_t)0x00000000U) /* !< FIFO Flush not active */
#define I2C_MFIFOSR_RXFLUSH_ACTIVE ((uint32_t)0x00000080U) /* !< FIFO Flush active */
/* I2C_MFIFOSR[TXFLUSH] Bits */
#define I2C_MFIFOSR_TXFLUSH_OFS (15) /* !< TXFLUSH Offset */
#define I2C_MFIFOSR_TXFLUSH_MASK ((uint32_t)0x00008000U) /* !< TX FIFO Flush When this bit is set
a Flush operation for the TX FIFO is
active. Clear the TXFLUSH bit in the
control register to stop. */
#define I2C_MFIFOSR_TXFLUSH_INACTIVE ((uint32_t)0x00000000U) /* !< FIFO Flush not active */
#define I2C_MFIFOSR_TXFLUSH_ACTIVE ((uint32_t)0x00008000U) /* !< FIFO Flush active */
/* I2C_CONTROLLER_I2CPECCTL Bits */
/* I2C_CONTROLLER_I2CPECCTL[PECCNT] Bits */
#define I2C_CONTROLLER_I2CPECCTL_PECCNT_OFS (0) /* !< PECCNT Offset */
#define I2C_CONTROLLER_I2CPECCTL_PECCNT_MASK ((uint32_t)0x000001FFU) /* !< PEC Count When this field is non
zero, the number of I2C bytes are
counted (Note that although the PEC
is calculated on the I2C address it
is not counted at a byte). When the
byte count = PECCNT and the state
machine is transmitting, the contents
of the LSFR is loaded into the shift
register instead of the byte received
from the Tx FIFO. When the state
machine is receiving, after the last
bit of this byte is received the LSFR
is checked and if it is non-zero, a
PEC RX Error interrupt is generated.
The I2C packet must be padded to
include the PEC byte for both
transmit and receive. In transmit
mode the FIFO must be loaded with a
dummy PEC byte. In receive mode the
PEC byte will be passed to the Rx
FIFO. In the normal Controller use
case, FW would set PECEN=1 and
PECCNT=SMB packet length (Not
including Target Address byte, but
including the PEC byte). FW would
then configure DMA to allow the
packet to complete unassisted and
write MCTR to initiate the
transaction. Note that when the byte
count = PEC CNT, the byte count is
reset to 0 and multiple PEC
calculation can automatically occur
within a single I2C transaction.
Note that any write to the
Controller_I2CPECCTL Register will
clear the current PEC Byte Count in
the Controller State Machine. */
#define I2C_CONTROLLER_I2CPECCTL_PECCNT_MINIMUM ((uint32_t)0x00000000U) /* !< Minimum Value */
#define I2C_CONTROLLER_I2CPECCTL_PECCNT_MAXIMUM ((uint32_t)0x000001FFU) /* !< Maximum Value */
/* I2C_CONTROLLER_I2CPECCTL[PECEN] Bits */
#define I2C_CONTROLLER_I2CPECCTL_PECEN_OFS (12) /* !< PECEN Offset */
#define I2C_CONTROLLER_I2CPECCTL_PECEN_MASK ((uint32_t)0x00001000U) /* !< PEC Enable This bit enables the SMB
Packet Error Checking (PEC). When
enabled the PEC is calculated on all
bits except the Start, Stop, Ack and
Nack. The PEC LSFR and the Byte
Counter is set to 0 when the State
Machine is in the IDLE state, which
occur following a Stop or when a
timeout occurs. The Counter is also
set to 0 after the PEC byte is sent
or received. Note that the NACK is
automatically send following a PEC
byte that results in a PEC error. The
PEC Polynomial is x^8 + x^2 + x^1 +
1. */
#define I2C_CONTROLLER_I2CPECCTL_PECEN_DISABLE ((uint32_t)0x00000000U) /* !< PEC is disabled in Controller mode */
#define I2C_CONTROLLER_I2CPECCTL_PECEN_ENABLE ((uint32_t)0x00001000U) /* !< PEC is enabled in Controller mode */
/* I2C_CONTROLLER_PECSR Bits */
/* I2C_CONTROLLER_PECSR[PECBYTECNT] Bits */
#define I2C_CONTROLLER_PECSR_PECBYTECNT_OFS (0) /* !< PECBYTECNT Offset */
#define I2C_CONTROLLER_PECSR_PECBYTECNT_MASK ((uint32_t)0x000001FFU) /* !< PEC Byte Count This is the current
PEC Byte Count of the Controller
State Machine. */
#define I2C_CONTROLLER_PECSR_PECBYTECNT_MINIMUM ((uint32_t)0x00000000U) /* !< Minimum Value */
#define I2C_CONTROLLER_PECSR_PECBYTECNT_MAXIMUM ((uint32_t)0x000001FFU) /* !< Maximum Value */
/* I2C_CONTROLLER_PECSR[PECSTS_CHECK] Bits */
#define I2C_CONTROLLER_PECSR_PECSTS_CHECK_OFS (16) /* !< PECSTS_CHECK Offset */
#define I2C_CONTROLLER_PECSR_PECSTS_CHECK_MASK ((uint32_t)0x00010000U) /* !< This status bit indicates if the
PEC was checked in the transaction
that occurred before the last Stop.
Latched on Stop. */
#define I2C_CONTROLLER_PECSR_PECSTS_CHECK_CLEARED ((uint32_t)0x00000000U) /* !< Indicates PEC was not checked in
the transaction that occurred before
the last Stop */
#define I2C_CONTROLLER_PECSR_PECSTS_CHECK_SET ((uint32_t)0x00010000U) /* !< Indicates if the PEC was checked in
the transaction that occurred before
the last Stop */
/* I2C_CONTROLLER_PECSR[PECSTS_ERROR] Bits */
#define I2C_CONTROLLER_PECSR_PECSTS_ERROR_OFS (17) /* !< PECSTS_ERROR Offset */
#define I2C_CONTROLLER_PECSR_PECSTS_ERROR_MASK ((uint32_t)0x00020000U) /* !< This status bit indicates if a PEC
check error occurred in the
transaction that occurred before the
last Stop. Latched on Stop. */
#define I2C_CONTROLLER_PECSR_PECSTS_ERROR_CLEARED ((uint32_t)0x00000000U) /* !< Indicates PEC check error did not
occurr in the transaction that
occurred before the last Stop */
#define I2C_CONTROLLER_PECSR_PECSTS_ERROR_SET ((uint32_t)0x00020000U) /* !< Indicates if a PEC check error
occurred in the transaction that
occurred before the last Stop */
/* I2C_DMA_TRIG0_IIDX Bits */
/* I2C_DMA_TRIG0_IIDX[STAT] Bits */
#define I2C_DMA_TRIG0_IIDX_STAT_OFS (0) /* !< STAT Offset */
#define I2C_DMA_TRIG0_IIDX_STAT_MASK ((uint32_t)0x000000FFU) /* !< I2C Module Interrupt Vector Value.
This register provides the highes
priority interrupt index. A read
clears the corresponding interrupt
flag in RIS and MISC. 15h-1Fh =
Reserved */
#define I2C_DMA_TRIG0_IIDX_STAT_NO_INTR ((uint32_t)0x00000000U) /* !< No interrupt pending */
#define I2C_DMA_TRIG0_IIDX_STAT_MRXFIFOTRG ((uint32_t)0x00000001U) /* !< Controller receive FIFO Trigger
Level */
#define I2C_DMA_TRIG0_IIDX_STAT_MTXFIFOTRG ((uint32_t)0x00000002U) /* !< Controller transmit FIFO Trigger
level */
#define I2C_DMA_TRIG0_IIDX_STAT_SRXFIFOTRG ((uint32_t)0x00000003U) /* !< Target receive FIFO Trigger Level */
#define I2C_DMA_TRIG0_IIDX_STAT_STXFIFOTRG ((uint32_t)0x00000004U) /* !< Target transmit FIFO Trigger level */
/* I2C_DMA_TRIG0_IMASK Bits */
/* I2C_DMA_TRIG0_IMASK[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_IMASK_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_IMASK_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG0_IMASK_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_IMASK_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_IMASK[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_IMASK_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG0_IMASK_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG0_IMASK_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_IMASK_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_IMASK[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_IMASK_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_IMASK_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG0_IMASK_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_IMASK_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_IMASK[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_IMASK_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG0_IMASK_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG0_IMASK_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_IMASK_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_RIS Bits */
/* I2C_DMA_TRIG0_RIS[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_RIS_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_RIS_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG0_RIS_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_RIS_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_RIS[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_RIS_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG0_RIS_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG0_RIS_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_RIS_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_RIS[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_RIS_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_RIS_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG0_RIS_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_RIS_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_RIS[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_RIS_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG0_RIS_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG0_RIS_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_RIS_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_MIS Bits */
/* I2C_DMA_TRIG0_MIS[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_MIS_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_MIS_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG0_MIS_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_MIS_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_MIS[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_MIS_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG0_MIS_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG0_MIS_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_MIS_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_MIS[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_MIS_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_MIS_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG0_MIS_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_MIS_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_MIS[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_MIS_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG0_MIS_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG0_MIS_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_MIS_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ISET Bits */
/* I2C_DMA_TRIG0_ISET[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ISET_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ISET_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG0_ISET_MRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ISET_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ISET[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ISET_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ISET_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG0_ISET_MTXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ISET_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ISET[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ISET_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ISET_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG0_ISET_SRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ISET_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ISET[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ISET_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ISET_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG0_ISET_STXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ISET_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ICLR Bits */
/* I2C_DMA_TRIG0_ICLR[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ICLR_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ICLR_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG0_ICLR_MRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ICLR_MRXFIFOTRG_CLR ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ICLR[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ICLR_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ICLR_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG0_ICLR_MTXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ICLR_MTXFIFOTRG_CLR ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ICLR[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ICLR_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ICLR_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG0_ICLR_SRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ICLR_SRXFIFOTRG_CLR ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG0_ICLR[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG0_ICLR_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG0_ICLR_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG0_ICLR_STXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG0_ICLR_STXFIFOTRG_CLR ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_IIDX Bits */
/* I2C_DMA_TRIG1_IIDX[STAT] Bits */
#define I2C_DMA_TRIG1_IIDX_STAT_OFS (0) /* !< STAT Offset */
#define I2C_DMA_TRIG1_IIDX_STAT_MASK ((uint32_t)0x000000FFU) /* !< I2C Module Interrupt Vector Value.
This register provides the highes
priority interrupt index. A read
clears the corresponding interrupt
flag in RIS and MISC. 15h-1Fh =
Reserved */
#define I2C_DMA_TRIG1_IIDX_STAT_NO_INTR ((uint32_t)0x00000000U) /* !< No interrupt pending */
#define I2C_DMA_TRIG1_IIDX_STAT_MRXFIFOTRG ((uint32_t)0x00000001U) /* !< Controller receive FIFO Trigger
Level */
#define I2C_DMA_TRIG1_IIDX_STAT_MTXFIFOTRG ((uint32_t)0x00000002U) /* !< Controller transmit FIFO Trigger
level */
#define I2C_DMA_TRIG1_IIDX_STAT_SRXFIFOTRG ((uint32_t)0x00000003U) /* !< Target receive FIFO Trigger Level */
#define I2C_DMA_TRIG1_IIDX_STAT_STXFIFOTRG ((uint32_t)0x00000004U) /* !< Target transmit FIFO Trigger level */
/* I2C_DMA_TRIG1_IMASK Bits */
/* I2C_DMA_TRIG1_IMASK[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_IMASK_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_IMASK_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG1_IMASK_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_IMASK_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_IMASK[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_IMASK_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG1_IMASK_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG1_IMASK_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_IMASK_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_IMASK[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_IMASK_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_IMASK_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG1_IMASK_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_IMASK_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_IMASK[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_IMASK_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG1_IMASK_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG1_IMASK_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_IMASK_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_RIS Bits */
/* I2C_DMA_TRIG1_RIS[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_RIS_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_RIS_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG1_RIS_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_RIS_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_RIS[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_RIS_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG1_RIS_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG1_RIS_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_RIS_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_RIS[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_RIS_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_RIS_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG1_RIS_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_RIS_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_RIS[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_RIS_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG1_RIS_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG1_RIS_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_RIS_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_MIS Bits */
/* I2C_DMA_TRIG1_MIS[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_MIS_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_MIS_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG1_MIS_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_MIS_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_MIS[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_MIS_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG1_MIS_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG1_MIS_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_MIS_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_MIS[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_MIS_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_MIS_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG1_MIS_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_MIS_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_MIS[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_MIS_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG1_MIS_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG1_MIS_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_MIS_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ISET Bits */
/* I2C_DMA_TRIG1_ISET[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ISET_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ISET_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG1_ISET_MRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ISET_MRXFIFOTRG_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ISET[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ISET_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ISET_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG1_ISET_MTXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ISET_MTXFIFOTRG_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ISET[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ISET_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ISET_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG1_ISET_SRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ISET_SRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ISET[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ISET_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ISET_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG1_ISET_STXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ISET_STXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ICLR Bits */
/* I2C_DMA_TRIG1_ICLR[MRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ICLR_MRXFIFOTRG_OFS (0) /* !< MRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ICLR_MRXFIFOTRG_MASK ((uint32_t)0x00000001U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_DMA_TRIG1_ICLR_MRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ICLR_MRXFIFOTRG_CLR ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ICLR[MTXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ICLR_MTXFIFOTRG_OFS (1) /* !< MTXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ICLR_MTXFIFOTRG_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_DMA_TRIG1_ICLR_MTXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ICLR_MTXFIFOTRG_CLR ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ICLR[SRXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ICLR_SRXFIFOTRG_OFS (2) /* !< SRXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ICLR_SRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Target Receive FIFO Trigger */
#define I2C_DMA_TRIG1_ICLR_SRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ICLR_SRXFIFOTRG_CLR ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_DMA_TRIG1_ICLR[STXFIFOTRG] Bits */
#define I2C_DMA_TRIG1_ICLR_STXFIFOTRG_OFS (3) /* !< STXFIFOTRG Offset */
#define I2C_DMA_TRIG1_ICLR_STXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Target Transmit FIFO Trigger */
#define I2C_DMA_TRIG1_ICLR_STXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_DMA_TRIG1_ICLR_STXFIFOTRG_CLR ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IIDX Bits */
/* I2C_CPU_INT_IIDX[STAT] Bits */
#define I2C_CPU_INT_IIDX_STAT_OFS (0) /* !< STAT Offset */
#define I2C_CPU_INT_IIDX_STAT_MASK ((uint32_t)0x000000FFU) /* !< I2C Module Interrupt Vector Value.
This register provides the highes
priority interrupt index. A read
clears the corresponding interrupt
flag in RIS and MISC. 15h-1Fh =
Reserved */
#define I2C_CPU_INT_IIDX_STAT_NO_INTR ((uint32_t)0x00000000U) /* !< No interrupt pending */
#define I2C_CPU_INT_IIDX_STAT_MRXDONEFG ((uint32_t)0x00000001U) /* !< Controller data received */
#define I2C_CPU_INT_IIDX_STAT_MTXDONEFG ((uint32_t)0x00000002U) /* !< Controller data transmitted */
#define I2C_CPU_INT_IIDX_STAT_MRXFIFOTRG ((uint32_t)0x00000003U) /* !< Controller receive FIFO Trigger
Level */
#define I2C_CPU_INT_IIDX_STAT_MTXFIFOTRG ((uint32_t)0x00000004U) /* !< Controller transmit FIFO Trigger
level */
#define I2C_CPU_INT_IIDX_STAT_MRXFIFOFULL ((uint32_t)0x00000005U) /* !< RX FIFO FULL Event/interrupt
pending */
#define I2C_CPU_INT_IIDX_STAT_MTX_EMPTY ((uint32_t)0x00000006U) /* !< Transmit FIFO/Buffer Empty
Event/interrupt pending */
#define I2C_CPU_INT_IIDX_STAT_MNACKFG ((uint32_t)0x00000008U) /* !< Address/Data NACK */
#define I2C_CPU_INT_IIDX_STAT_MSTARTFG ((uint32_t)0x00000009U) /* !< Start Event */
#define I2C_CPU_INT_IIDX_STAT_MSTOPFG ((uint32_t)0x0000000AU) /* !< Stop Event */
#define I2C_CPU_INT_IIDX_STAT_MARBLOSTFG ((uint32_t)0x0000000BU) /* !< Arbitration Lost */
#define I2C_CPU_INT_IIDX_STAT_MDMA_DONE_TX ((uint32_t)0x0000000CU) /* !< DMA DONE on Channel TX */
#define I2C_CPU_INT_IIDX_STAT_MDMA_DONE_RX ((uint32_t)0x0000000DU) /* !< DMA DONE on Channel RX */
#define I2C_CPU_INT_IIDX_STAT_MPEC_RX_ERR ((uint32_t)0x0000000EU) /* !< Controller PEC Receive Error Event */
#define I2C_CPU_INT_IIDX_STAT_TIMEOUTA ((uint32_t)0x0000000FU) /* !< Timeout A Event */
#define I2C_CPU_INT_IIDX_STAT_TIMEOUTB ((uint32_t)0x00000010U) /* !< Timeout B Event */
#define I2C_CPU_INT_IIDX_STAT_SRXDONEFG ((uint32_t)0x00000011U) /* !< Target Data Event */
#define I2C_CPU_INT_IIDX_STAT_STXDONEFG ((uint32_t)0x00000012U) /* !< Target Data Event */
#define I2C_CPU_INT_IIDX_STAT_SRXFIFOTRG ((uint32_t)0x00000013U) /* !< Target receive FIFO Trigger Level */
#define I2C_CPU_INT_IIDX_STAT_STXFIFOTRG ((uint32_t)0x00000014U) /* !< Target transmit FIFO Trigger level */
#define I2C_CPU_INT_IIDX_STAT_SRXFIFOFULL ((uint32_t)0x00000015U) /* !< RX FIFO FULL Event/interrupt
pending */
#define I2C_CPU_INT_IIDX_STAT_STXEMPTY ((uint32_t)0x00000016U) /* !< Transmit FIFO/Buffer Empty
Event/interrupt pending */
#define I2C_CPU_INT_IIDX_STAT_SSTARTFG ((uint32_t)0x00000017U) /* !< Start Event */
#define I2C_CPU_INT_IIDX_STAT_SSTOPFG ((uint32_t)0x00000018U) /* !< Stop Event */
#define I2C_CPU_INT_IIDX_STAT_SGENCALL ((uint32_t)0x00000019U) /* !< General Call Event */
#define I2C_CPU_INT_IIDX_STAT_SDMA_DONE_TX ((uint32_t)0x0000001AU) /* !< DMA DONE on Channel TX */
#define I2C_CPU_INT_IIDX_STAT_SDMA_DONE_RX ((uint32_t)0x0000001BU) /* !< DMA DONE on Channel RX */
#define I2C_CPU_INT_IIDX_STAT_SPEC_RX_ERR ((uint32_t)0x0000001CU) /* !< Target PEC receive error event */
#define I2C_CPU_INT_IIDX_STAT_STX_UNFL ((uint32_t)0x0000001DU) /* !< Target TX FIFO underflow */
#define I2C_CPU_INT_IIDX_STAT_SRX_OVFL ((uint32_t)0x0000001EU) /* !< Target RX FIFO overflow event */
#define I2C_CPU_INT_IIDX_STAT_SARBLOST ((uint32_t)0x0000001FU) /* !< Target arbitration lost event */
#define I2C_CPU_INT_IIDX_STAT_INTR_OVFL ((uint32_t)0x00000020U) /* !< Interrupt overflow event */
/* I2C_CPU_INT_IMASK Bits */
/* I2C_CPU_INT_IMASK[MRXDONE] Bits */
#define I2C_CPU_INT_IMASK_MRXDONE_OFS (0) /* !< MRXDONE Offset */
#define I2C_CPU_INT_IMASK_MRXDONE_MASK ((uint32_t)0x00000001U) /* !< Controller Receive Transaction
completed Interrupt */
#define I2C_CPU_INT_IMASK_MRXDONE_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MRXDONE_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[TIMEOUTA] Bits */
#define I2C_CPU_INT_IMASK_TIMEOUTA_OFS (14) /* !< TIMEOUTA Offset */
#define I2C_CPU_INT_IMASK_TIMEOUTA_MASK ((uint32_t)0x00004000U) /* !< Timeout A Interrupt */
#define I2C_CPU_INT_IMASK_TIMEOUTA_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_TIMEOUTA_SET ((uint32_t)0x00004000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MNACK] Bits */
#define I2C_CPU_INT_IMASK_MNACK_OFS (7) /* !< MNACK Offset */
#define I2C_CPU_INT_IMASK_MNACK_MASK ((uint32_t)0x00000080U) /* !< Address/Data NACK Interrupt */
#define I2C_CPU_INT_IMASK_MNACK_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MNACK_SET ((uint32_t)0x00000080U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MSTART] Bits */
#define I2C_CPU_INT_IMASK_MSTART_OFS (8) /* !< MSTART Offset */
#define I2C_CPU_INT_IMASK_MSTART_MASK ((uint32_t)0x00000100U) /* !< START Detection Interrupt */
#define I2C_CPU_INT_IMASK_MSTART_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MSTART_SET ((uint32_t)0x00000100U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MSTOP] Bits */
#define I2C_CPU_INT_IMASK_MSTOP_OFS (9) /* !< MSTOP Offset */
#define I2C_CPU_INT_IMASK_MSTOP_MASK ((uint32_t)0x00000200U) /* !< STOP Detection Interrupt */
#define I2C_CPU_INT_IMASK_MSTOP_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MSTOP_SET ((uint32_t)0x00000200U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MARBLOST] Bits */
#define I2C_CPU_INT_IMASK_MARBLOST_OFS (10) /* !< MARBLOST Offset */
#define I2C_CPU_INT_IMASK_MARBLOST_MASK ((uint32_t)0x00000400U) /* !< Arbitration Lost Interrupt */
#define I2C_CPU_INT_IMASK_MARBLOST_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MARBLOST_SET ((uint32_t)0x00000400U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MTXDONE] Bits */
#define I2C_CPU_INT_IMASK_MTXDONE_OFS (1) /* !< MTXDONE Offset */
#define I2C_CPU_INT_IMASK_MTXDONE_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_IMASK_MTXDONE_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MTXDONE_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MRXFIFOFULL] Bits */
#define I2C_CPU_INT_IMASK_MRXFIFOFULL_OFS (4) /* !< MRXFIFOFULL Offset */
#define I2C_CPU_INT_IMASK_MRXFIFOFULL_MASK ((uint32_t)0x00000010U) /* !< RXFIFO full event. This interrupt
is set if an RX FIFO is full. */
#define I2C_CPU_INT_IMASK_MRXFIFOFULL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MRXFIFOFULL_SET ((uint32_t)0x00000010U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MTXEMPTY] Bits */
#define I2C_CPU_INT_IMASK_MTXEMPTY_OFS (5) /* !< MTXEMPTY Offset */
#define I2C_CPU_INT_IMASK_MTXEMPTY_MASK ((uint32_t)0x00000020U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_IMASK_MTXEMPTY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MTXEMPTY_SET ((uint32_t)0x00000020U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MRXFIFOTRG] Bits */
#define I2C_CPU_INT_IMASK_MRXFIFOTRG_OFS (2) /* !< MRXFIFOTRG Offset */
#define I2C_CPU_INT_IMASK_MRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_CPU_INT_IMASK_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MTXFIFOTRG] Bits */
#define I2C_CPU_INT_IMASK_MTXFIFOTRG_OFS (3) /* !< MTXFIFOTRG Offset */
#define I2C_CPU_INT_IMASK_MTXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_CPU_INT_IMASK_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MTXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MDMA_DONE_TX] Bits */
#define I2C_CPU_INT_IMASK_MDMA_DONE_TX_OFS (11) /* !< MDMA_DONE_TX Offset */
#define I2C_CPU_INT_IMASK_MDMA_DONE_TX_MASK ((uint32_t)0x00000800U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_IMASK_MDMA_DONE_TX_CLR ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_IMASK_MDMA_DONE_TX_SET ((uint32_t)0x00000800U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MDMA_DONE_RX] Bits */
#define I2C_CPU_INT_IMASK_MDMA_DONE_RX_OFS (12) /* !< MDMA_DONE_RX Offset */
#define I2C_CPU_INT_IMASK_MDMA_DONE_RX_MASK ((uint32_t)0x00001000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_IMASK_MDMA_DONE_RX_CLR ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_IMASK_MDMA_DONE_RX_SET ((uint32_t)0x00001000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SRXDONE] Bits */
#define I2C_CPU_INT_IMASK_SRXDONE_OFS (16) /* !< SRXDONE Offset */
#define I2C_CPU_INT_IMASK_SRXDONE_MASK ((uint32_t)0x00010000U) /* !< Target Receive Data Interrupt
Signals that a byte has been received */
#define I2C_CPU_INT_IMASK_SRXDONE_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SRXDONE_SET ((uint32_t)0x00010000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[STXDONE] Bits */
#define I2C_CPU_INT_IMASK_STXDONE_OFS (17) /* !< STXDONE Offset */
#define I2C_CPU_INT_IMASK_STXDONE_MASK ((uint32_t)0x00020000U) /* !< Target Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_IMASK_STXDONE_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_STXDONE_SET ((uint32_t)0x00020000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SGENCALL] Bits */
#define I2C_CPU_INT_IMASK_SGENCALL_OFS (24) /* !< SGENCALL Offset */
#define I2C_CPU_INT_IMASK_SGENCALL_MASK ((uint32_t)0x01000000U) /* !< General Call Interrupt */
#define I2C_CPU_INT_IMASK_SGENCALL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SGENCALL_SET ((uint32_t)0x01000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[STXEMPTY] Bits */
#define I2C_CPU_INT_IMASK_STXEMPTY_OFS (21) /* !< STXEMPTY Offset */
#define I2C_CPU_INT_IMASK_STXEMPTY_MASK ((uint32_t)0x00200000U) /* !< Target Transmit FIFO Empty
interrupt mask. This interrupt is set
if all data in the Transmit FIFO have
been shifted out and the transmit
goes into idle mode. */
#define I2C_CPU_INT_IMASK_STXEMPTY_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_STXEMPTY_SET ((uint32_t)0x00200000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SRXFIFOFULL] Bits */
#define I2C_CPU_INT_IMASK_SRXFIFOFULL_OFS (20) /* !< SRXFIFOFULL Offset */
#define I2C_CPU_INT_IMASK_SRXFIFOFULL_MASK ((uint32_t)0x00100000U) /* !< RXFIFO full event. This interrupt
is set if an Target RX FIFO is full. */
#define I2C_CPU_INT_IMASK_SRXFIFOFULL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SRXFIFOFULL_SET ((uint32_t)0x00100000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SRXFIFOTRG] Bits */
#define I2C_CPU_INT_IMASK_SRXFIFOTRG_OFS (18) /* !< SRXFIFOTRG Offset */
#define I2C_CPU_INT_IMASK_SRXFIFOTRG_MASK ((uint32_t)0x00040000U) /* !< Target Receive FIFO Trigger */
#define I2C_CPU_INT_IMASK_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SRXFIFOTRG_SET ((uint32_t)0x00040000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[STXFIFOTRG] Bits */
#define I2C_CPU_INT_IMASK_STXFIFOTRG_OFS (19) /* !< STXFIFOTRG Offset */
#define I2C_CPU_INT_IMASK_STXFIFOTRG_MASK ((uint32_t)0x00080000U) /* !< Target Transmit FIFO Trigger */
#define I2C_CPU_INT_IMASK_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_STXFIFOTRG_SET ((uint32_t)0x00080000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SSTART] Bits */
#define I2C_CPU_INT_IMASK_SSTART_OFS (22) /* !< SSTART Offset */
#define I2C_CPU_INT_IMASK_SSTART_MASK ((uint32_t)0x00400000U) /* !< Start Condition Interrupt */
#define I2C_CPU_INT_IMASK_SSTART_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SSTART_SET ((uint32_t)0x00400000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SSTOP] Bits */
#define I2C_CPU_INT_IMASK_SSTOP_OFS (23) /* !< SSTOP Offset */
#define I2C_CPU_INT_IMASK_SSTOP_MASK ((uint32_t)0x00800000U) /* !< Stop Condition Interrupt */
#define I2C_CPU_INT_IMASK_SSTOP_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SSTOP_SET ((uint32_t)0x00800000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SDMA_DONE_TX] Bits */
#define I2C_CPU_INT_IMASK_SDMA_DONE_TX_OFS (25) /* !< SDMA_DONE_TX Offset */
#define I2C_CPU_INT_IMASK_SDMA_DONE_TX_MASK ((uint32_t)0x02000000U) /* !< Target DMA Done on Event Channel TX */
#define I2C_CPU_INT_IMASK_SDMA_DONE_TX_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SDMA_DONE_TX_SET ((uint32_t)0x02000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SDMA_DONE_RX] Bits */
#define I2C_CPU_INT_IMASK_SDMA_DONE_RX_OFS (26) /* !< SDMA_DONE_RX Offset */
#define I2C_CPU_INT_IMASK_SDMA_DONE_RX_MASK ((uint32_t)0x04000000U) /* !< Target DMA Done on Event Channel RX */
#define I2C_CPU_INT_IMASK_SDMA_DONE_RX_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SDMA_DONE_RX_SET ((uint32_t)0x04000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[MPEC_RX_ERR] Bits */
#define I2C_CPU_INT_IMASK_MPEC_RX_ERR_OFS (13) /* !< MPEC_RX_ERR Offset */
#define I2C_CPU_INT_IMASK_MPEC_RX_ERR_MASK ((uint32_t)0x00002000U) /* !< Controller RX Pec Error Interrupt */
#define I2C_CPU_INT_IMASK_MPEC_RX_ERR_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_MPEC_RX_ERR_SET ((uint32_t)0x00002000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[TIMEOUTB] Bits */
#define I2C_CPU_INT_IMASK_TIMEOUTB_OFS (15) /* !< TIMEOUTB Offset */
#define I2C_CPU_INT_IMASK_TIMEOUTB_MASK ((uint32_t)0x00008000U) /* !< Timeout B Interrupt */
#define I2C_CPU_INT_IMASK_TIMEOUTB_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_TIMEOUTB_SET ((uint32_t)0x00008000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SPEC_RX_ERR] Bits */
#define I2C_CPU_INT_IMASK_SPEC_RX_ERR_OFS (27) /* !< SPEC_RX_ERR Offset */
#define I2C_CPU_INT_IMASK_SPEC_RX_ERR_MASK ((uint32_t)0x08000000U) /* !< Target RX Pec Error Interrupt */
#define I2C_CPU_INT_IMASK_SPEC_RX_ERR_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SPEC_RX_ERR_SET ((uint32_t)0x08000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[STX_UNFL] Bits */
#define I2C_CPU_INT_IMASK_STX_UNFL_OFS (28) /* !< STX_UNFL Offset */
#define I2C_CPU_INT_IMASK_STX_UNFL_MASK ((uint32_t)0x10000000U) /* !< Target TX FIFO underflow */
#define I2C_CPU_INT_IMASK_STX_UNFL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_STX_UNFL_SET ((uint32_t)0x10000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SRX_OVFL] Bits */
#define I2C_CPU_INT_IMASK_SRX_OVFL_OFS (29) /* !< SRX_OVFL Offset */
#define I2C_CPU_INT_IMASK_SRX_OVFL_MASK ((uint32_t)0x20000000U) /* !< Target RX FIFO overflow */
#define I2C_CPU_INT_IMASK_SRX_OVFL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_SRX_OVFL_SET ((uint32_t)0x20000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[SARBLOST] Bits */
#define I2C_CPU_INT_IMASK_SARBLOST_OFS (30) /* !< SARBLOST Offset */
#define I2C_CPU_INT_IMASK_SARBLOST_MASK ((uint32_t)0x40000000U) /* !< Target Arbitration Lost */
#define I2C_CPU_INT_IMASK_SARBLOST_CLR ((uint32_t)0x00000000U) /* !< Clear Set Interrupt Mask */
#define I2C_CPU_INT_IMASK_SARBLOST_SET ((uint32_t)0x40000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_IMASK[INTR_OVFL] Bits */
#define I2C_CPU_INT_IMASK_INTR_OVFL_OFS (31) /* !< INTR_OVFL Offset */
#define I2C_CPU_INT_IMASK_INTR_OVFL_MASK ((uint32_t)0x80000000U) /* !< Interrupt Overflow Interrupt Mask */
#define I2C_CPU_INT_IMASK_INTR_OVFL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_IMASK_INTR_OVFL_SET ((uint32_t)0x80000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS Bits */
/* I2C_CPU_INT_RIS[MRXDONE] Bits */
#define I2C_CPU_INT_RIS_MRXDONE_OFS (0) /* !< MRXDONE Offset */
#define I2C_CPU_INT_RIS_MRXDONE_MASK ((uint32_t)0x00000001U) /* !< Controller Receive Transaction
completed Interrupt */
#define I2C_CPU_INT_RIS_MRXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MRXDONE_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[TIMEOUTA] Bits */
#define I2C_CPU_INT_RIS_TIMEOUTA_OFS (14) /* !< TIMEOUTA Offset */
#define I2C_CPU_INT_RIS_TIMEOUTA_MASK ((uint32_t)0x00004000U) /* !< Timeout A Interrupt */
#define I2C_CPU_INT_RIS_TIMEOUTA_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_TIMEOUTA_SET ((uint32_t)0x00004000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MNACK] Bits */
#define I2C_CPU_INT_RIS_MNACK_OFS (7) /* !< MNACK Offset */
#define I2C_CPU_INT_RIS_MNACK_MASK ((uint32_t)0x00000080U) /* !< Address/Data NACK Interrupt */
#define I2C_CPU_INT_RIS_MNACK_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MNACK_SET ((uint32_t)0x00000080U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MSTART] Bits */
#define I2C_CPU_INT_RIS_MSTART_OFS (8) /* !< MSTART Offset */
#define I2C_CPU_INT_RIS_MSTART_MASK ((uint32_t)0x00000100U) /* !< START Detection Interrupt */
#define I2C_CPU_INT_RIS_MSTART_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MSTART_SET ((uint32_t)0x00000100U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MSTOP] Bits */
#define I2C_CPU_INT_RIS_MSTOP_OFS (9) /* !< MSTOP Offset */
#define I2C_CPU_INT_RIS_MSTOP_MASK ((uint32_t)0x00000200U) /* !< STOP Detection Interrupt */
#define I2C_CPU_INT_RIS_MSTOP_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MSTOP_SET ((uint32_t)0x00000200U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MARBLOST] Bits */
#define I2C_CPU_INT_RIS_MARBLOST_OFS (10) /* !< MARBLOST Offset */
#define I2C_CPU_INT_RIS_MARBLOST_MASK ((uint32_t)0x00000400U) /* !< Arbitration Lost Interrupt */
#define I2C_CPU_INT_RIS_MARBLOST_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MARBLOST_SET ((uint32_t)0x00000400U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MTXDONE] Bits */
#define I2C_CPU_INT_RIS_MTXDONE_OFS (1) /* !< MTXDONE Offset */
#define I2C_CPU_INT_RIS_MTXDONE_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_RIS_MTXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MTXDONE_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MRXFIFOFULL] Bits */
#define I2C_CPU_INT_RIS_MRXFIFOFULL_OFS (4) /* !< MRXFIFOFULL Offset */
#define I2C_CPU_INT_RIS_MRXFIFOFULL_MASK ((uint32_t)0x00000010U) /* !< RXFIFO full event. This interrupt
is set if an RX FIFO is full. */
#define I2C_CPU_INT_RIS_MRXFIFOFULL_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MRXFIFOFULL_SET ((uint32_t)0x00000010U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MTXEMPTY] Bits */
#define I2C_CPU_INT_RIS_MTXEMPTY_OFS (5) /* !< MTXEMPTY Offset */
#define I2C_CPU_INT_RIS_MTXEMPTY_MASK ((uint32_t)0x00000020U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_RIS_MTXEMPTY_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MTXEMPTY_SET ((uint32_t)0x00000020U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MRXFIFOTRG] Bits */
#define I2C_CPU_INT_RIS_MRXFIFOTRG_OFS (2) /* !< MRXFIFOTRG Offset */
#define I2C_CPU_INT_RIS_MRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_CPU_INT_RIS_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_RIS_MRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MTXFIFOTRG] Bits */
#define I2C_CPU_INT_RIS_MTXFIFOTRG_OFS (3) /* !< MTXFIFOTRG Offset */
#define I2C_CPU_INT_RIS_MTXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_CPU_INT_RIS_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_RIS_MTXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MDMA_DONE_TX] Bits */
#define I2C_CPU_INT_RIS_MDMA_DONE_TX_OFS (11) /* !< MDMA_DONE_TX Offset */
#define I2C_CPU_INT_RIS_MDMA_DONE_TX_MASK ((uint32_t)0x00000800U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_RIS_MDMA_DONE_TX_CLR ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_RIS_MDMA_DONE_TX_SET ((uint32_t)0x00000800U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[MDMA_DONE_RX] Bits */
#define I2C_CPU_INT_RIS_MDMA_DONE_RX_OFS (12) /* !< MDMA_DONE_RX Offset */
#define I2C_CPU_INT_RIS_MDMA_DONE_RX_MASK ((uint32_t)0x00001000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_RIS_MDMA_DONE_RX_CLR ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_RIS_MDMA_DONE_RX_SET ((uint32_t)0x00001000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[SRXDONE] Bits */
#define I2C_CPU_INT_RIS_SRXDONE_OFS (16) /* !< SRXDONE Offset */
#define I2C_CPU_INT_RIS_SRXDONE_MASK ((uint32_t)0x00010000U) /* !< Target Receive Data Interrupt
Signals that a byte has been received */
#define I2C_CPU_INT_RIS_SRXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_SRXDONE_SET ((uint32_t)0x00010000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[STXDONE] Bits */
#define I2C_CPU_INT_RIS_STXDONE_OFS (17) /* !< STXDONE Offset */
#define I2C_CPU_INT_RIS_STXDONE_MASK ((uint32_t)0x00020000U) /* !< Target Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_RIS_STXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_STXDONE_SET ((uint32_t)0x00020000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[SGENCALL] Bits */
#define I2C_CPU_INT_RIS_SGENCALL_OFS (24) /* !< SGENCALL Offset */
#define I2C_CPU_INT_RIS_SGENCALL_MASK ((uint32_t)0x01000000U) /* !< General Call Interrupt */
#define I2C_CPU_INT_RIS_SGENCALL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_RIS_SGENCALL_SET ((uint32_t)0x01000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[STXEMPTY] Bits */
#define I2C_CPU_INT_RIS_STXEMPTY_OFS (21) /* !< STXEMPTY Offset */
#define I2C_CPU_INT_RIS_STXEMPTY_MASK ((uint32_t)0x00200000U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_RIS_STXEMPTY_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_STXEMPTY_SET ((uint32_t)0x00200000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[SRXFIFOFULL] Bits */
#define I2C_CPU_INT_RIS_SRXFIFOFULL_OFS (20) /* !< SRXFIFOFULL Offset */
#define I2C_CPU_INT_RIS_SRXFIFOFULL_MASK ((uint32_t)0x00100000U) /* !< RXFIFO full event. This interrupt
is set if an RX FIFO is full. */
#define I2C_CPU_INT_RIS_SRXFIFOFULL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_RIS_SRXFIFOFULL_SET ((uint32_t)0x00100000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[SRXFIFOTRG] Bits */
#define I2C_CPU_INT_RIS_SRXFIFOTRG_OFS (18) /* !< SRXFIFOTRG Offset */
#define I2C_CPU_INT_RIS_SRXFIFOTRG_MASK ((uint32_t)0x00040000U) /* !< Target Receive FIFO Trigger */
#define I2C_CPU_INT_RIS_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_RIS_SRXFIFOTRG_SET ((uint32_t)0x00040000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[STXFIFOTRG] Bits */
#define I2C_CPU_INT_RIS_STXFIFOTRG_OFS (19) /* !< STXFIFOTRG Offset */
#define I2C_CPU_INT_RIS_STXFIFOTRG_MASK ((uint32_t)0x00080000U) /* !< Target Transmit FIFO Trigger */
#define I2C_CPU_INT_RIS_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_RIS_STXFIFOTRG_SET ((uint32_t)0x00080000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_RIS[SSTART] Bits */
#define I2C_CPU_INT_RIS_SSTART_OFS (22) /* !< SSTART Offset */
#define I2C_CPU_INT_RIS_SSTART_MASK ((uint32_t)0x00400000U) /* !< Start Condition Interrupt */
#define I2C_CPU_INT_RIS_SSTART_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt */
#define I2C_CPU_INT_RIS_SSTART_SET ((uint32_t)0x00400000U) /* !< Set Interrupt */
/* I2C_CPU_INT_RIS[SSTOP] Bits */
#define I2C_CPU_INT_RIS_SSTOP_OFS (23) /* !< SSTOP Offset */
#define I2C_CPU_INT_RIS_SSTOP_MASK ((uint32_t)0x00800000U) /* !< Stop Condition Interrupt */
#define I2C_CPU_INT_RIS_SSTOP_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt */
#define I2C_CPU_INT_RIS_SSTOP_SET ((uint32_t)0x00800000U) /* !< Set interrupt */
/* I2C_CPU_INT_RIS[SDMA_DONE_TX] Bits */
#define I2C_CPU_INT_RIS_SDMA_DONE_TX_OFS (25) /* !< SDMA_DONE_TX Offset */
#define I2C_CPU_INT_RIS_SDMA_DONE_TX_MASK ((uint32_t)0x02000000U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_RIS_SDMA_DONE_TX_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt */
#define I2C_CPU_INT_RIS_SDMA_DONE_TX_SET ((uint32_t)0x02000000U) /* !< Set interrupt */
/* I2C_CPU_INT_RIS[SDMA_DONE_RX] Bits */
#define I2C_CPU_INT_RIS_SDMA_DONE_RX_OFS (26) /* !< SDMA_DONE_RX Offset */
#define I2C_CPU_INT_RIS_SDMA_DONE_RX_MASK ((uint32_t)0x04000000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_RIS_SDMA_DONE_RX_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt */
#define I2C_CPU_INT_RIS_SDMA_DONE_RX_SET ((uint32_t)0x04000000U) /* !< Set interrupt */
/* I2C_CPU_INT_RIS[MPEC_RX_ERR] Bits */
#define I2C_CPU_INT_RIS_MPEC_RX_ERR_OFS (13) /* !< MPEC_RX_ERR Offset */
#define I2C_CPU_INT_RIS_MPEC_RX_ERR_MASK ((uint32_t)0x00002000U) /* !< Controller RX Pec Error Interrupt */
#define I2C_CPU_INT_RIS_MPEC_RX_ERR_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_MPEC_RX_ERR_SET ((uint32_t)0x00002000U) /* !< Interrupt Occured */
/* I2C_CPU_INT_RIS[TIMEOUTB] Bits */
#define I2C_CPU_INT_RIS_TIMEOUTB_OFS (15) /* !< TIMEOUTB Offset */
#define I2C_CPU_INT_RIS_TIMEOUTB_MASK ((uint32_t)0x00008000U) /* !< Timeout B Interrupt */
#define I2C_CPU_INT_RIS_TIMEOUTB_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_TIMEOUTB_SET ((uint32_t)0x00008000U) /* !< Interrupt occured */
/* I2C_CPU_INT_RIS[SPEC_RX_ERR] Bits */
#define I2C_CPU_INT_RIS_SPEC_RX_ERR_OFS (27) /* !< SPEC_RX_ERR Offset */
#define I2C_CPU_INT_RIS_SPEC_RX_ERR_MASK ((uint32_t)0x08000000U) /* !< Target RX Pec Error Interrupt */
#define I2C_CPU_INT_RIS_SPEC_RX_ERR_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_SPEC_RX_ERR_SET ((uint32_t)0x08000000U) /* !< Interrupt ocuured */
/* I2C_CPU_INT_RIS[STX_UNFL] Bits */
#define I2C_CPU_INT_RIS_STX_UNFL_OFS (28) /* !< STX_UNFL Offset */
#define I2C_CPU_INT_RIS_STX_UNFL_MASK ((uint32_t)0x10000000U) /* !< Target TX FIFO underflow */
#define I2C_CPU_INT_RIS_STX_UNFL_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_STX_UNFL_SET ((uint32_t)0x10000000U) /* !< Interrupt occured */
/* I2C_CPU_INT_RIS[SRX_OVFL] Bits */
#define I2C_CPU_INT_RIS_SRX_OVFL_OFS (29) /* !< SRX_OVFL Offset */
#define I2C_CPU_INT_RIS_SRX_OVFL_MASK ((uint32_t)0x20000000U) /* !< Target RX FIFO overflow */
#define I2C_CPU_INT_RIS_SRX_OVFL_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_SRX_OVFL_SET ((uint32_t)0x20000000U) /* !< Interrupt Occured */
/* I2C_CPU_INT_RIS[SARBLOST] Bits */
#define I2C_CPU_INT_RIS_SARBLOST_OFS (30) /* !< SARBLOST Offset */
#define I2C_CPU_INT_RIS_SARBLOST_MASK ((uint32_t)0x40000000U) /* !< Target Arbitration Lost */
#define I2C_CPU_INT_RIS_SARBLOST_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_SARBLOST_SET ((uint32_t)0x40000000U) /* !< Interrupt occured */
/* I2C_CPU_INT_RIS[INTR_OVFL] Bits */
#define I2C_CPU_INT_RIS_INTR_OVFL_OFS (31) /* !< INTR_OVFL Offset */
#define I2C_CPU_INT_RIS_INTR_OVFL_MASK ((uint32_t)0x80000000U) /* !< Interrupt overflow interrupt It is
set when SSTART or SSTOP interrupts
overflow i.e. occur twice without
being serviced */
#define I2C_CPU_INT_RIS_INTR_OVFL_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_RIS_INTR_OVFL_SET ((uint32_t)0x80000000U) /* !< Interrupt occured */
/* I2C_CPU_INT_MIS Bits */
/* I2C_CPU_INT_MIS[MRXDONE] Bits */
#define I2C_CPU_INT_MIS_MRXDONE_OFS (0) /* !< MRXDONE Offset */
#define I2C_CPU_INT_MIS_MRXDONE_MASK ((uint32_t)0x00000001U) /* !< Controller Receive Data Interrupt */
#define I2C_CPU_INT_MIS_MRXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MRXDONE_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[TIMEOUTA] Bits */
#define I2C_CPU_INT_MIS_TIMEOUTA_OFS (14) /* !< TIMEOUTA Offset */
#define I2C_CPU_INT_MIS_TIMEOUTA_MASK ((uint32_t)0x00004000U) /* !< Timeout A Interrupt */
#define I2C_CPU_INT_MIS_TIMEOUTA_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_TIMEOUTA_SET ((uint32_t)0x00004000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MNACK] Bits */
#define I2C_CPU_INT_MIS_MNACK_OFS (7) /* !< MNACK Offset */
#define I2C_CPU_INT_MIS_MNACK_MASK ((uint32_t)0x00000080U) /* !< Address/Data NACK Interrupt */
#define I2C_CPU_INT_MIS_MNACK_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MNACK_SET ((uint32_t)0x00000080U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MSTART] Bits */
#define I2C_CPU_INT_MIS_MSTART_OFS (8) /* !< MSTART Offset */
#define I2C_CPU_INT_MIS_MSTART_MASK ((uint32_t)0x00000100U) /* !< START Detection Interrupt */
#define I2C_CPU_INT_MIS_MSTART_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MSTART_SET ((uint32_t)0x00000100U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MSTOP] Bits */
#define I2C_CPU_INT_MIS_MSTOP_OFS (9) /* !< MSTOP Offset */
#define I2C_CPU_INT_MIS_MSTOP_MASK ((uint32_t)0x00000200U) /* !< STOP Detection Interrupt */
#define I2C_CPU_INT_MIS_MSTOP_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MSTOP_SET ((uint32_t)0x00000200U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MARBLOST] Bits */
#define I2C_CPU_INT_MIS_MARBLOST_OFS (10) /* !< MARBLOST Offset */
#define I2C_CPU_INT_MIS_MARBLOST_MASK ((uint32_t)0x00000400U) /* !< Arbitration Lost Interrupt */
#define I2C_CPU_INT_MIS_MARBLOST_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MARBLOST_SET ((uint32_t)0x00000400U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MTXDONE] Bits */
#define I2C_CPU_INT_MIS_MTXDONE_OFS (1) /* !< MTXDONE Offset */
#define I2C_CPU_INT_MIS_MTXDONE_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_MIS_MTXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MTXDONE_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MRXFIFOFULL] Bits */
#define I2C_CPU_INT_MIS_MRXFIFOFULL_OFS (4) /* !< MRXFIFOFULL Offset */
#define I2C_CPU_INT_MIS_MRXFIFOFULL_MASK ((uint32_t)0x00000010U) /* !< RXFIFO full event. This interrupt
is set if the RX FIFO is full. */
#define I2C_CPU_INT_MIS_MRXFIFOFULL_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MRXFIFOFULL_SET ((uint32_t)0x00000010U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MTXEMPTY] Bits */
#define I2C_CPU_INT_MIS_MTXEMPTY_OFS (5) /* !< MTXEMPTY Offset */
#define I2C_CPU_INT_MIS_MTXEMPTY_MASK ((uint32_t)0x00000020U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_MIS_MTXEMPTY_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_MTXEMPTY_SET ((uint32_t)0x00000020U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MRXFIFOTRG] Bits */
#define I2C_CPU_INT_MIS_MRXFIFOTRG_OFS (2) /* !< MRXFIFOTRG Offset */
#define I2C_CPU_INT_MIS_MRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_CPU_INT_MIS_MRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_MIS_MRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MTXFIFOTRG] Bits */
#define I2C_CPU_INT_MIS_MTXFIFOTRG_OFS (3) /* !< MTXFIFOTRG Offset */
#define I2C_CPU_INT_MIS_MTXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_CPU_INT_MIS_MTXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_MIS_MTXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MDMA_DONE_TX] Bits */
#define I2C_CPU_INT_MIS_MDMA_DONE_TX_OFS (11) /* !< MDMA_DONE_TX Offset */
#define I2C_CPU_INT_MIS_MDMA_DONE_TX_MASK ((uint32_t)0x00000800U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_MIS_MDMA_DONE_TX_CLR ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_MIS_MDMA_DONE_TX_SET ((uint32_t)0x00000800U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[MDMA_DONE_RX] Bits */
#define I2C_CPU_INT_MIS_MDMA_DONE_RX_OFS (12) /* !< MDMA_DONE_RX Offset */
#define I2C_CPU_INT_MIS_MDMA_DONE_RX_MASK ((uint32_t)0x00001000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_MIS_MDMA_DONE_RX_CLR ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_MIS_MDMA_DONE_RX_SET ((uint32_t)0x00001000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[SRXDONE] Bits */
#define I2C_CPU_INT_MIS_SRXDONE_OFS (16) /* !< SRXDONE Offset */
#define I2C_CPU_INT_MIS_SRXDONE_MASK ((uint32_t)0x00010000U) /* !< Target Receive Data Interrupt
Signals that a byte has been received */
#define I2C_CPU_INT_MIS_SRXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_SRXDONE_SET ((uint32_t)0x00010000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[STXDONE] Bits */
#define I2C_CPU_INT_MIS_STXDONE_OFS (17) /* !< STXDONE Offset */
#define I2C_CPU_INT_MIS_STXDONE_MASK ((uint32_t)0x00020000U) /* !< Target Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_MIS_STXDONE_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_STXDONE_SET ((uint32_t)0x00020000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[SGENCALL] Bits */
#define I2C_CPU_INT_MIS_SGENCALL_OFS (24) /* !< SGENCALL Offset */
#define I2C_CPU_INT_MIS_SGENCALL_MASK ((uint32_t)0x01000000U) /* !< General Call Interrupt */
#define I2C_CPU_INT_MIS_SGENCALL_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_SGENCALL_SET ((uint32_t)0x01000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[STXEMPTY] Bits */
#define I2C_CPU_INT_MIS_STXEMPTY_OFS (21) /* !< STXEMPTY Offset */
#define I2C_CPU_INT_MIS_STXEMPTY_MASK ((uint32_t)0x00200000U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_MIS_STXEMPTY_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_STXEMPTY_SET ((uint32_t)0x00200000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[SRXFIFOFULL] Bits */
#define I2C_CPU_INT_MIS_SRXFIFOFULL_OFS (20) /* !< SRXFIFOFULL Offset */
#define I2C_CPU_INT_MIS_SRXFIFOFULL_MASK ((uint32_t)0x00100000U) /* !< RXFIFO full event. This interrupt
is set if an RX FIFO is full. */
#define I2C_CPU_INT_MIS_SRXFIFOFULL_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_MIS_SRXFIFOFULL_SET ((uint32_t)0x00100000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[SRXFIFOTRG] Bits */
#define I2C_CPU_INT_MIS_SRXFIFOTRG_OFS (18) /* !< SRXFIFOTRG Offset */
#define I2C_CPU_INT_MIS_SRXFIFOTRG_MASK ((uint32_t)0x00040000U) /* !< Target Receive FIFO Trigger */
#define I2C_CPU_INT_MIS_SRXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_MIS_SRXFIFOTRG_SET ((uint32_t)0x00040000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[STXFIFOTRG] Bits */
#define I2C_CPU_INT_MIS_STXFIFOTRG_OFS (19) /* !< STXFIFOTRG Offset */
#define I2C_CPU_INT_MIS_STXFIFOTRG_MASK ((uint32_t)0x00080000U) /* !< Target Transmit FIFO Trigger */
#define I2C_CPU_INT_MIS_STXFIFOTRG_CLR ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_MIS_STXFIFOTRG_SET ((uint32_t)0x00080000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_MIS[SSTART] Bits */
#define I2C_CPU_INT_MIS_SSTART_OFS (22) /* !< SSTART Offset */
#define I2C_CPU_INT_MIS_SSTART_MASK ((uint32_t)0x00400000U) /* !< Target START Detection Interrupt */
#define I2C_CPU_INT_MIS_SSTART_CLR ((uint32_t)0x00000000U) /* !< Clear MIS */
#define I2C_CPU_INT_MIS_SSTART_SET ((uint32_t)0x00400000U) /* !< Set MIS */
/* I2C_CPU_INT_MIS[SSTOP] Bits */
#define I2C_CPU_INT_MIS_SSTOP_OFS (23) /* !< SSTOP Offset */
#define I2C_CPU_INT_MIS_SSTOP_MASK ((uint32_t)0x00800000U) /* !< Target STOP Detection Interrupt */
#define I2C_CPU_INT_MIS_SSTOP_CLR ((uint32_t)0x00000000U) /* !< Clear MIS */
#define I2C_CPU_INT_MIS_SSTOP_SET ((uint32_t)0x00800000U) /* !< Set MIS */
/* I2C_CPU_INT_MIS[SDMA_DONE_TX] Bits */
#define I2C_CPU_INT_MIS_SDMA_DONE_TX_OFS (25) /* !< SDMA_DONE_TX Offset */
#define I2C_CPU_INT_MIS_SDMA_DONE_TX_MASK ((uint32_t)0x02000000U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_MIS_SDMA_DONE_TX_CLR ((uint32_t)0x00000000U) /* !< Clear MIS */
#define I2C_CPU_INT_MIS_SDMA_DONE_TX_SET ((uint32_t)0x02000000U) /* !< Set MIS */
/* I2C_CPU_INT_MIS[SDMA_DONE_RX] Bits */
#define I2C_CPU_INT_MIS_SDMA_DONE_RX_OFS (26) /* !< SDMA_DONE_RX Offset */
#define I2C_CPU_INT_MIS_SDMA_DONE_RX_MASK ((uint32_t)0x04000000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_MIS_SDMA_DONE_RX_CLR ((uint32_t)0x00000000U) /* !< Clear MIS */
#define I2C_CPU_INT_MIS_SDMA_DONE_RX_SET ((uint32_t)0x04000000U) /* !< Set MIS */
/* I2C_CPU_INT_MIS[MPEC_RX_ERR] Bits */
#define I2C_CPU_INT_MIS_MPEC_RX_ERR_OFS (13) /* !< MPEC_RX_ERR Offset */
#define I2C_CPU_INT_MIS_MPEC_RX_ERR_MASK ((uint32_t)0x00002000U) /* !< Controller RX Pec Error Interrupt */
#define I2C_CPU_INT_MIS_MPEC_RX_ERR_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt mask */
#define I2C_CPU_INT_MIS_MPEC_RX_ERR_SET ((uint32_t)0x00002000U) /* !< Set interrupt mask */
/* I2C_CPU_INT_MIS[TIMEOUTB] Bits */
#define I2C_CPU_INT_MIS_TIMEOUTB_OFS (15) /* !< TIMEOUTB Offset */
#define I2C_CPU_INT_MIS_TIMEOUTB_MASK ((uint32_t)0x00008000U) /* !< Timeout B Interrupt */
#define I2C_CPU_INT_MIS_TIMEOUTB_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt mask */
#define I2C_CPU_INT_MIS_TIMEOUTB_SET ((uint32_t)0x00008000U) /* !< Set interrupt mask */
/* I2C_CPU_INT_MIS[SPEC_RX_ERR] Bits */
#define I2C_CPU_INT_MIS_SPEC_RX_ERR_OFS (27) /* !< SPEC_RX_ERR Offset */
#define I2C_CPU_INT_MIS_SPEC_RX_ERR_MASK ((uint32_t)0x08000000U) /* !< Target RX Pec Error Interrupt */
#define I2C_CPU_INT_MIS_SPEC_RX_ERR_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt mask */
#define I2C_CPU_INT_MIS_SPEC_RX_ERR_SET ((uint32_t)0x08000000U) /* !< Set interrupt mask */
/* I2C_CPU_INT_MIS[STX_UNFL] Bits */
#define I2C_CPU_INT_MIS_STX_UNFL_OFS (28) /* !< STX_UNFL Offset */
#define I2C_CPU_INT_MIS_STX_UNFL_MASK ((uint32_t)0x10000000U) /* !< Target TX FIFO underflow */
#define I2C_CPU_INT_MIS_STX_UNFL_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt mask */
#define I2C_CPU_INT_MIS_STX_UNFL_SET ((uint32_t)0x10000000U) /* !< Set interrupt mask */
/* I2C_CPU_INT_MIS[SRX_OVFL] Bits */
#define I2C_CPU_INT_MIS_SRX_OVFL_OFS (29) /* !< SRX_OVFL Offset */
#define I2C_CPU_INT_MIS_SRX_OVFL_MASK ((uint32_t)0x20000000U) /* !< Target RX FIFO overflow */
#define I2C_CPU_INT_MIS_SRX_OVFL_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt mask */
#define I2C_CPU_INT_MIS_SRX_OVFL_SET ((uint32_t)0x20000000U) /* !< Set interrupt mask */
/* I2C_CPU_INT_MIS[SARBLOST] Bits */
#define I2C_CPU_INT_MIS_SARBLOST_OFS (30) /* !< SARBLOST Offset */
#define I2C_CPU_INT_MIS_SARBLOST_MASK ((uint32_t)0x40000000U) /* !< Target Arbitration Lost */
#define I2C_CPU_INT_MIS_SARBLOST_CLR ((uint32_t)0x00000000U) /* !< Clear interrupt mask */
#define I2C_CPU_INT_MIS_SARBLOST_SET ((uint32_t)0x40000000U) /* !< Set interrupt mask */
/* I2C_CPU_INT_MIS[INTR_OVFL] Bits */
#define I2C_CPU_INT_MIS_INTR_OVFL_OFS (31) /* !< INTR_OVFL Offset */
#define I2C_CPU_INT_MIS_INTR_OVFL_MASK ((uint32_t)0x80000000U) /* !< Interrupt overflow */
#define I2C_CPU_INT_MIS_INTR_OVFL_CLR ((uint32_t)0x00000000U) /* !< Interrupt did not occur */
#define I2C_CPU_INT_MIS_INTR_OVFL_SET ((uint32_t)0x80000000U) /* !< Interrupt occured */
/* I2C_CPU_INT_ISET Bits */
/* I2C_CPU_INT_ISET[MRXDONE] Bits */
#define I2C_CPU_INT_ISET_MRXDONE_OFS (0) /* !< MRXDONE Offset */
#define I2C_CPU_INT_ISET_MRXDONE_MASK ((uint32_t)0x00000001U) /* !< Controller Receive Data Interrupt
Signals that a byte has been received */
#define I2C_CPU_INT_ISET_MRXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MRXDONE_SET ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[TIMEOUTA] Bits */
#define I2C_CPU_INT_ISET_TIMEOUTA_OFS (14) /* !< TIMEOUTA Offset */
#define I2C_CPU_INT_ISET_TIMEOUTA_MASK ((uint32_t)0x00004000U) /* !< Timeout A interrupt */
#define I2C_CPU_INT_ISET_TIMEOUTA_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_TIMEOUTA_SET ((uint32_t)0x00004000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MNACK] Bits */
#define I2C_CPU_INT_ISET_MNACK_OFS (7) /* !< MNACK Offset */
#define I2C_CPU_INT_ISET_MNACK_MASK ((uint32_t)0x00000080U) /* !< Address/Data NACK Interrupt */
#define I2C_CPU_INT_ISET_MNACK_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MNACK_SET ((uint32_t)0x00000080U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MSTART] Bits */
#define I2C_CPU_INT_ISET_MSTART_OFS (8) /* !< MSTART Offset */
#define I2C_CPU_INT_ISET_MSTART_MASK ((uint32_t)0x00000100U) /* !< START Detection Interrupt */
#define I2C_CPU_INT_ISET_MSTART_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MSTART_SET ((uint32_t)0x00000100U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MSTOP] Bits */
#define I2C_CPU_INT_ISET_MSTOP_OFS (9) /* !< MSTOP Offset */
#define I2C_CPU_INT_ISET_MSTOP_MASK ((uint32_t)0x00000200U) /* !< STOP Detection Interrupt */
#define I2C_CPU_INT_ISET_MSTOP_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MSTOP_SET ((uint32_t)0x00000200U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MARBLOST] Bits */
#define I2C_CPU_INT_ISET_MARBLOST_OFS (10) /* !< MARBLOST Offset */
#define I2C_CPU_INT_ISET_MARBLOST_MASK ((uint32_t)0x00000400U) /* !< Arbitration Lost Interrupt */
#define I2C_CPU_INT_ISET_MARBLOST_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MARBLOST_SET ((uint32_t)0x00000400U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MTXDONE] Bits */
#define I2C_CPU_INT_ISET_MTXDONE_OFS (1) /* !< MTXDONE Offset */
#define I2C_CPU_INT_ISET_MTXDONE_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_ISET_MTXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MTXDONE_SET ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MRXFIFOFULL] Bits */
#define I2C_CPU_INT_ISET_MRXFIFOFULL_OFS (4) /* !< MRXFIFOFULL Offset */
#define I2C_CPU_INT_ISET_MRXFIFOFULL_MASK ((uint32_t)0x00000010U) /* !< RXFIFO full event. */
#define I2C_CPU_INT_ISET_MRXFIFOFULL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MRXFIFOFULL_SET ((uint32_t)0x00000010U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MTXEMPTY] Bits */
#define I2C_CPU_INT_ISET_MTXEMPTY_OFS (5) /* !< MTXEMPTY Offset */
#define I2C_CPU_INT_ISET_MTXEMPTY_MASK ((uint32_t)0x00000020U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_ISET_MTXEMPTY_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MTXEMPTY_SET ((uint32_t)0x00000020U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MRXFIFOTRG] Bits */
#define I2C_CPU_INT_ISET_MRXFIFOTRG_OFS (2) /* !< MRXFIFOTRG Offset */
#define I2C_CPU_INT_ISET_MRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_CPU_INT_ISET_MRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ISET_MRXFIFOTRG_SET ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MTXFIFOTRG] Bits */
#define I2C_CPU_INT_ISET_MTXFIFOTRG_OFS (3) /* !< MTXFIFOTRG Offset */
#define I2C_CPU_INT_ISET_MTXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_CPU_INT_ISET_MTXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ISET_MTXFIFOTRG_SET ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MDMA_DONE_TX] Bits */
#define I2C_CPU_INT_ISET_MDMA_DONE_TX_OFS (11) /* !< MDMA_DONE_TX Offset */
#define I2C_CPU_INT_ISET_MDMA_DONE_TX_MASK ((uint32_t)0x00000800U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_ISET_MDMA_DONE_TX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_ISET_MDMA_DONE_TX_SET ((uint32_t)0x00000800U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[MDMA_DONE_RX] Bits */
#define I2C_CPU_INT_ISET_MDMA_DONE_RX_OFS (12) /* !< MDMA_DONE_RX Offset */
#define I2C_CPU_INT_ISET_MDMA_DONE_RX_MASK ((uint32_t)0x00001000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_ISET_MDMA_DONE_RX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_ISET_MDMA_DONE_RX_SET ((uint32_t)0x00001000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[SRXDONE] Bits */
#define I2C_CPU_INT_ISET_SRXDONE_OFS (16) /* !< SRXDONE Offset */
#define I2C_CPU_INT_ISET_SRXDONE_MASK ((uint32_t)0x00010000U) /* !< Target Receive Data Interrupt
Signals that a byte has been received */
#define I2C_CPU_INT_ISET_SRXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SRXDONE_SET ((uint32_t)0x00010000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[STXDONE] Bits */
#define I2C_CPU_INT_ISET_STXDONE_OFS (17) /* !< STXDONE Offset */
#define I2C_CPU_INT_ISET_STXDONE_MASK ((uint32_t)0x00020000U) /* !< Target Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_ISET_STXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_STXDONE_SET ((uint32_t)0x00020000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[SGENCALL] Bits */
#define I2C_CPU_INT_ISET_SGENCALL_OFS (24) /* !< SGENCALL Offset */
#define I2C_CPU_INT_ISET_SGENCALL_MASK ((uint32_t)0x01000000U) /* !< General Call Interrupt */
#define I2C_CPU_INT_ISET_SGENCALL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SGENCALL_SET ((uint32_t)0x01000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[STXEMPTY] Bits */
#define I2C_CPU_INT_ISET_STXEMPTY_OFS (21) /* !< STXEMPTY Offset */
#define I2C_CPU_INT_ISET_STXEMPTY_MASK ((uint32_t)0x00200000U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_ISET_STXEMPTY_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_STXEMPTY_SET ((uint32_t)0x00200000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[SRXFIFOFULL] Bits */
#define I2C_CPU_INT_ISET_SRXFIFOFULL_OFS (20) /* !< SRXFIFOFULL Offset */
#define I2C_CPU_INT_ISET_SRXFIFOFULL_MASK ((uint32_t)0x00100000U) /* !< RXFIFO full event. This interrupt
is set if an RX FIFO is full. */
#define I2C_CPU_INT_ISET_SRXFIFOFULL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ISET_SRXFIFOFULL_SET ((uint32_t)0x00100000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[SRXFIFOTRG] Bits */
#define I2C_CPU_INT_ISET_SRXFIFOTRG_OFS (18) /* !< SRXFIFOTRG Offset */
#define I2C_CPU_INT_ISET_SRXFIFOTRG_MASK ((uint32_t)0x00040000U) /* !< Target Receive FIFO Trigger */
#define I2C_CPU_INT_ISET_SRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ISET_SRXFIFOTRG_SET ((uint32_t)0x00040000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[STXFIFOTRG] Bits */
#define I2C_CPU_INT_ISET_STXFIFOTRG_OFS (19) /* !< STXFIFOTRG Offset */
#define I2C_CPU_INT_ISET_STXFIFOTRG_MASK ((uint32_t)0x00080000U) /* !< Target Transmit FIFO Trigger */
#define I2C_CPU_INT_ISET_STXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ISET_STXFIFOTRG_SET ((uint32_t)0x00080000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ISET[SSTART] Bits */
#define I2C_CPU_INT_ISET_SSTART_OFS (22) /* !< SSTART Offset */
#define I2C_CPU_INT_ISET_SSTART_MASK ((uint32_t)0x00400000U) /* !< Start Condition Interrupt */
#define I2C_CPU_INT_ISET_SSTART_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SSTART_SET ((uint32_t)0x00400000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[SSTOP] Bits */
#define I2C_CPU_INT_ISET_SSTOP_OFS (23) /* !< SSTOP Offset */
#define I2C_CPU_INT_ISET_SSTOP_MASK ((uint32_t)0x00800000U) /* !< Stop Condition Interrupt */
#define I2C_CPU_INT_ISET_SSTOP_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SSTOP_SET ((uint32_t)0x00800000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[SDMA_DONE_TX] Bits */
#define I2C_CPU_INT_ISET_SDMA_DONE_TX_OFS (25) /* !< SDMA_DONE_TX Offset */
#define I2C_CPU_INT_ISET_SDMA_DONE_TX_MASK ((uint32_t)0x02000000U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_ISET_SDMA_DONE_TX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SDMA_DONE_TX_SET ((uint32_t)0x02000000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[SDMA_DONE_RX] Bits */
#define I2C_CPU_INT_ISET_SDMA_DONE_RX_OFS (26) /* !< SDMA_DONE_RX Offset */
#define I2C_CPU_INT_ISET_SDMA_DONE_RX_MASK ((uint32_t)0x04000000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_ISET_SDMA_DONE_RX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SDMA_DONE_RX_SET ((uint32_t)0x04000000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[MPEC_RX_ERR] Bits */
#define I2C_CPU_INT_ISET_MPEC_RX_ERR_OFS (13) /* !< MPEC_RX_ERR Offset */
#define I2C_CPU_INT_ISET_MPEC_RX_ERR_MASK ((uint32_t)0x00002000U) /* !< Controller RX Pec Error Interrupt */
#define I2C_CPU_INT_ISET_MPEC_RX_ERR_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_MPEC_RX_ERR_SET ((uint32_t)0x00002000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[TIMEOUTB] Bits */
#define I2C_CPU_INT_ISET_TIMEOUTB_OFS (15) /* !< TIMEOUTB Offset */
#define I2C_CPU_INT_ISET_TIMEOUTB_MASK ((uint32_t)0x00008000U) /* !< Timeout B Interrupt */
#define I2C_CPU_INT_ISET_TIMEOUTB_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_TIMEOUTB_SET ((uint32_t)0x00008000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[SPEC_RX_ERR] Bits */
#define I2C_CPU_INT_ISET_SPEC_RX_ERR_OFS (27) /* !< SPEC_RX_ERR Offset */
#define I2C_CPU_INT_ISET_SPEC_RX_ERR_MASK ((uint32_t)0x08000000U) /* !< Target RX Pec Error Interrupt */
#define I2C_CPU_INT_ISET_SPEC_RX_ERR_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SPEC_RX_ERR_SET ((uint32_t)0x08000000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[STX_UNFL] Bits */
#define I2C_CPU_INT_ISET_STX_UNFL_OFS (28) /* !< STX_UNFL Offset */
#define I2C_CPU_INT_ISET_STX_UNFL_MASK ((uint32_t)0x10000000U) /* !< Target TX FIFO underflow */
#define I2C_CPU_INT_ISET_STX_UNFL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_STX_UNFL_SET ((uint32_t)0x10000000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[SRX_OVFL] Bits */
#define I2C_CPU_INT_ISET_SRX_OVFL_OFS (29) /* !< SRX_OVFL Offset */
#define I2C_CPU_INT_ISET_SRX_OVFL_MASK ((uint32_t)0x20000000U) /* !< Target RX FIFO overflow */
#define I2C_CPU_INT_ISET_SRX_OVFL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SRX_OVFL_SET ((uint32_t)0x20000000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[SARBLOST] Bits */
#define I2C_CPU_INT_ISET_SARBLOST_OFS (30) /* !< SARBLOST Offset */
#define I2C_CPU_INT_ISET_SARBLOST_MASK ((uint32_t)0x40000000U) /* !< Target Arbitration Lost */
#define I2C_CPU_INT_ISET_SARBLOST_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ISET_SARBLOST_SET ((uint32_t)0x40000000U) /* !< Set interrupt */
/* I2C_CPU_INT_ISET[INTR_OVFL] Bits */
#define I2C_CPU_INT_ISET_INTR_OVFL_OFS (31) /* !< INTR_OVFL Offset */
#define I2C_CPU_INT_ISET_INTR_OVFL_MASK ((uint32_t)0x80000000U) /* !< Interrupt overflow */
#define I2C_CPU_INT_ISET_INTR_OVFL_NO_EFFECT ((uint32_t)0x00000000U) /* !< No effect */
#define I2C_CPU_INT_ISET_INTR_OVFL_SET ((uint32_t)0x80000000U) /* !< Set interrupt */
/* I2C_CPU_INT_ICLR Bits */
/* I2C_CPU_INT_ICLR[MRXDONE] Bits */
#define I2C_CPU_INT_ICLR_MRXDONE_OFS (0) /* !< MRXDONE Offset */
#define I2C_CPU_INT_ICLR_MRXDONE_MASK ((uint32_t)0x00000001U) /* !< Controller Receive Data Interrupt
Signals that a byte has been received */
#define I2C_CPU_INT_ICLR_MRXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MRXDONE_CLR ((uint32_t)0x00000001U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[TIMEOUTA] Bits */
#define I2C_CPU_INT_ICLR_TIMEOUTA_OFS (14) /* !< TIMEOUTA Offset */
#define I2C_CPU_INT_ICLR_TIMEOUTA_MASK ((uint32_t)0x00004000U) /* !< Timeout A interrupt */
#define I2C_CPU_INT_ICLR_TIMEOUTA_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_TIMEOUTA_CLR ((uint32_t)0x00004000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MNACK] Bits */
#define I2C_CPU_INT_ICLR_MNACK_OFS (7) /* !< MNACK Offset */
#define I2C_CPU_INT_ICLR_MNACK_MASK ((uint32_t)0x00000080U) /* !< Address/Data NACK Interrupt */
#define I2C_CPU_INT_ICLR_MNACK_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MNACK_CLR ((uint32_t)0x00000080U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MSTART] Bits */
#define I2C_CPU_INT_ICLR_MSTART_OFS (8) /* !< MSTART Offset */
#define I2C_CPU_INT_ICLR_MSTART_MASK ((uint32_t)0x00000100U) /* !< START Detection Interrupt */
#define I2C_CPU_INT_ICLR_MSTART_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MSTART_CLR ((uint32_t)0x00000100U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MSTOP] Bits */
#define I2C_CPU_INT_ICLR_MSTOP_OFS (9) /* !< MSTOP Offset */
#define I2C_CPU_INT_ICLR_MSTOP_MASK ((uint32_t)0x00000200U) /* !< STOP Detection Interrupt */
#define I2C_CPU_INT_ICLR_MSTOP_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MSTOP_CLR ((uint32_t)0x00000200U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MARBLOST] Bits */
#define I2C_CPU_INT_ICLR_MARBLOST_OFS (10) /* !< MARBLOST Offset */
#define I2C_CPU_INT_ICLR_MARBLOST_MASK ((uint32_t)0x00000400U) /* !< Arbitration Lost Interrupt */
#define I2C_CPU_INT_ICLR_MARBLOST_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MARBLOST_CLR ((uint32_t)0x00000400U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MTXDONE] Bits */
#define I2C_CPU_INT_ICLR_MTXDONE_OFS (1) /* !< MTXDONE Offset */
#define I2C_CPU_INT_ICLR_MTXDONE_MASK ((uint32_t)0x00000002U) /* !< Controller Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_ICLR_MTXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MTXDONE_CLR ((uint32_t)0x00000002U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MRXFIFOFULL] Bits */
#define I2C_CPU_INT_ICLR_MRXFIFOFULL_OFS (4) /* !< MRXFIFOFULL Offset */
#define I2C_CPU_INT_ICLR_MRXFIFOFULL_MASK ((uint32_t)0x00000010U) /* !< RXFIFO full event. */
#define I2C_CPU_INT_ICLR_MRXFIFOFULL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MRXFIFOFULL_CLR ((uint32_t)0x00000010U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MTXEMPTY] Bits */
#define I2C_CPU_INT_ICLR_MTXEMPTY_OFS (5) /* !< MTXEMPTY Offset */
#define I2C_CPU_INT_ICLR_MTXEMPTY_MASK ((uint32_t)0x00000020U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_ICLR_MTXEMPTY_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MTXEMPTY_CLR ((uint32_t)0x00000020U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MRXFIFOTRG] Bits */
#define I2C_CPU_INT_ICLR_MRXFIFOTRG_OFS (2) /* !< MRXFIFOTRG Offset */
#define I2C_CPU_INT_ICLR_MRXFIFOTRG_MASK ((uint32_t)0x00000004U) /* !< Controller Receive FIFO Trigger
Trigger when RX FIFO contains >=
defined bytes */
#define I2C_CPU_INT_ICLR_MRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ICLR_MRXFIFOTRG_CLR ((uint32_t)0x00000004U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MTXFIFOTRG] Bits */
#define I2C_CPU_INT_ICLR_MTXFIFOTRG_OFS (3) /* !< MTXFIFOTRG Offset */
#define I2C_CPU_INT_ICLR_MTXFIFOTRG_MASK ((uint32_t)0x00000008U) /* !< Controller Transmit FIFO Trigger
Trigger when Transmit FIFO contains
<= defined bytes */
#define I2C_CPU_INT_ICLR_MTXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ICLR_MTXFIFOTRG_CLR ((uint32_t)0x00000008U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MDMA_DONE_TX] Bits */
#define I2C_CPU_INT_ICLR_MDMA_DONE_TX_OFS (11) /* !< MDMA_DONE_TX Offset */
#define I2C_CPU_INT_ICLR_MDMA_DONE_TX_MASK ((uint32_t)0x00000800U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_ICLR_MDMA_DONE_TX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_ICLR_MDMA_DONE_TX_CLR ((uint32_t)0x00000800U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[MDMA_DONE_RX] Bits */
#define I2C_CPU_INT_ICLR_MDMA_DONE_RX_OFS (12) /* !< MDMA_DONE_RX Offset */
#define I2C_CPU_INT_ICLR_MDMA_DONE_RX_MASK ((uint32_t)0x00001000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_ICLR_MDMA_DONE_RX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Interrupt disabled */
#define I2C_CPU_INT_ICLR_MDMA_DONE_RX_CLR ((uint32_t)0x00001000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[SRXDONE] Bits */
#define I2C_CPU_INT_ICLR_SRXDONE_OFS (16) /* !< SRXDONE Offset */
#define I2C_CPU_INT_ICLR_SRXDONE_MASK ((uint32_t)0x00010000U) /* !< Target Receive Data Interrupt
Signals that a byte has been received */
#define I2C_CPU_INT_ICLR_SRXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SRXDONE_CLR ((uint32_t)0x00010000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[STXDONE] Bits */
#define I2C_CPU_INT_ICLR_STXDONE_OFS (17) /* !< STXDONE Offset */
#define I2C_CPU_INT_ICLR_STXDONE_MASK ((uint32_t)0x00020000U) /* !< Target Transmit Transaction
completed Interrupt */
#define I2C_CPU_INT_ICLR_STXDONE_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_STXDONE_CLR ((uint32_t)0x00020000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[SGENCALL] Bits */
#define I2C_CPU_INT_ICLR_SGENCALL_OFS (24) /* !< SGENCALL Offset */
#define I2C_CPU_INT_ICLR_SGENCALL_MASK ((uint32_t)0x01000000U) /* !< General Call Interrupt */
#define I2C_CPU_INT_ICLR_SGENCALL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SGENCALL_CLR ((uint32_t)0x01000000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[STXEMPTY] Bits */
#define I2C_CPU_INT_ICLR_STXEMPTY_OFS (21) /* !< STXEMPTY Offset */
#define I2C_CPU_INT_ICLR_STXEMPTY_MASK ((uint32_t)0x00200000U) /* !< Transmit FIFO Empty interrupt mask.
This interrupt is set if all data in
the Transmit FIFO have been shifted
out and the transmit goes into idle
mode. */
#define I2C_CPU_INT_ICLR_STXEMPTY_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_STXEMPTY_CLR ((uint32_t)0x00200000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[SRXFIFOFULL] Bits */
#define I2C_CPU_INT_ICLR_SRXFIFOFULL_OFS (20) /* !< SRXFIFOFULL Offset */
#define I2C_CPU_INT_ICLR_SRXFIFOFULL_MASK ((uint32_t)0x00100000U) /* !< RXFIFO full event. This interrupt
is set if an RX FIFO is full. */
#define I2C_CPU_INT_ICLR_SRXFIFOFULL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ICLR_SRXFIFOFULL_CLR ((uint32_t)0x00100000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[SRXFIFOTRG] Bits */
#define I2C_CPU_INT_ICLR_SRXFIFOTRG_OFS (18) /* !< SRXFIFOTRG Offset */
#define I2C_CPU_INT_ICLR_SRXFIFOTRG_MASK ((uint32_t)0x00040000U) /* !< Target Receive FIFO Trigger */
#define I2C_CPU_INT_ICLR_SRXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ICLR_SRXFIFOTRG_CLR ((uint32_t)0x00040000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[STXFIFOTRG] Bits */
#define I2C_CPU_INT_ICLR_STXFIFOTRG_OFS (19) /* !< STXFIFOTRG Offset */
#define I2C_CPU_INT_ICLR_STXFIFOTRG_MASK ((uint32_t)0x00080000U) /* !< Target Transmit FIFO Trigger */
#define I2C_CPU_INT_ICLR_STXFIFOTRG_NO_EFFECT ((uint32_t)0x00000000U) /* !< Clear Interrupt Mask */
#define I2C_CPU_INT_ICLR_STXFIFOTRG_CLR ((uint32_t)0x00080000U) /* !< Set Interrupt Mask */
/* I2C_CPU_INT_ICLR[SSTART] Bits */
#define I2C_CPU_INT_ICLR_SSTART_OFS (22) /* !< SSTART Offset */
#define I2C_CPU_INT_ICLR_SSTART_MASK ((uint32_t)0x00400000U) /* !< Target START Detection Interrupt */
#define I2C_CPU_INT_ICLR_SSTART_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SSTART_CLR ((uint32_t)0x00400000U) /* !< Clear interrupt */
/* I2C_CPU_INT_ICLR[SSTOP] Bits */
#define I2C_CPU_INT_ICLR_SSTOP_OFS (23) /* !< SSTOP Offset */
#define I2C_CPU_INT_ICLR_SSTOP_MASK ((uint32_t)0x00800000U) /* !< Target STOP Detection Interrupt */
#define I2C_CPU_INT_ICLR_SSTOP_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SSTOP_CLR ((uint32_t)0x00800000U) /* !< Clear interrupt */
/* I2C_CPU_INT_ICLR[SDMA_DONE_TX] Bits */
#define I2C_CPU_INT_ICLR_SDMA_DONE_TX_OFS (25) /* !< SDMA_DONE_TX Offset */
#define I2C_CPU_INT_ICLR_SDMA_DONE_TX_MASK ((uint32_t)0x02000000U) /* !< DMA Done on Event Channel TX */
#define I2C_CPU_INT_ICLR_SDMA_DONE_TX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SDMA_DONE_TX_CLR ((uint32_t)0x02000000U) /* !< Clear interrupt */
/* I2C_CPU_INT_ICLR[SDMA_DONE_RX] Bits */
#define I2C_CPU_INT_ICLR_SDMA_DONE_RX_OFS (26) /* !< SDMA_DONE_RX Offset */
#define I2C_CPU_INT_ICLR_SDMA_DONE_RX_MASK ((uint32_t)0x04000000U) /* !< DMA Done on Event Channel RX */
#define I2C_CPU_INT_ICLR_SDMA_DONE_RX_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SDMA_DONE_RX_CLR ((uint32_t)0x04000000U) /* !< Clear interrupt */
/* I2C_CPU_INT_ICLR[MPEC_RX_ERR] Bits */
#define I2C_CPU_INT_ICLR_MPEC_RX_ERR_OFS (13) /* !< MPEC_RX_ERR Offset */
#define I2C_CPU_INT_ICLR_MPEC_RX_ERR_MASK ((uint32_t)0x00002000U) /* !< Controller RX Pec Error Interrupt */
#define I2C_CPU_INT_ICLR_MPEC_RX_ERR_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_MPEC_RX_ERR_CLR ((uint32_t)0x00002000U) /* !< Clear Interrupt */
/* I2C_CPU_INT_ICLR[TIMEOUTB] Bits */
#define I2C_CPU_INT_ICLR_TIMEOUTB_OFS (15) /* !< TIMEOUTB Offset */
#define I2C_CPU_INT_ICLR_TIMEOUTB_MASK ((uint32_t)0x00008000U) /* !< Timeout B Interrupt */
#define I2C_CPU_INT_ICLR_TIMEOUTB_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_TIMEOUTB_CLR ((uint32_t)0x00008000U) /* !< Clear Interrupt */
/* I2C_CPU_INT_ICLR[SPEC_RX_ERR] Bits */
#define I2C_CPU_INT_ICLR_SPEC_RX_ERR_OFS (27) /* !< SPEC_RX_ERR Offset */
#define I2C_CPU_INT_ICLR_SPEC_RX_ERR_MASK ((uint32_t)0x08000000U) /* !< Target RX Pec Error Interrupt */
#define I2C_CPU_INT_ICLR_SPEC_RX_ERR_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SPEC_RX_ERR_CLR ((uint32_t)0x08000000U) /* !< Clear Interrupt */
/* I2C_CPU_INT_ICLR[STX_UNFL] Bits */
#define I2C_CPU_INT_ICLR_STX_UNFL_OFS (28) /* !< STX_UNFL Offset */
#define I2C_CPU_INT_ICLR_STX_UNFL_MASK ((uint32_t)0x10000000U) /* !< Target TX FIFO underflow */
#define I2C_CPU_INT_ICLR_STX_UNFL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_STX_UNFL_CLR ((uint32_t)0x10000000U) /* !< Clear Interrupt */
/* I2C_CPU_INT_ICLR[SRX_OVFL] Bits */
#define I2C_CPU_INT_ICLR_SRX_OVFL_OFS (29) /* !< SRX_OVFL Offset */
#define I2C_CPU_INT_ICLR_SRX_OVFL_MASK ((uint32_t)0x20000000U) /* !< Target RX FIFO overflow */
#define I2C_CPU_INT_ICLR_SRX_OVFL_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SRX_OVFL_CLR ((uint32_t)0x20000000U) /* !< Clear Interrupt */
/* I2C_CPU_INT_ICLR[SARBLOST] Bits */
#define I2C_CPU_INT_ICLR_SARBLOST_OFS (30) /* !< SARBLOST Offset */
#define I2C_CPU_INT_ICLR_SARBLOST_MASK ((uint32_t)0x40000000U) /* !< Target Arbitration Lost */
#define I2C_CPU_INT_ICLR_SARBLOST_NO_EFFECT ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_CPU_INT_ICLR_SARBLOST_CLR ((uint32_t)0x40000000U) /* !< Clear Interrupt */
/* I2C_CPU_INT_ICLR[INTR_OVFL] Bits */
#define I2C_CPU_INT_ICLR_INTR_OVFL_OFS (31) /* !< INTR_OVFL Offset */
#define I2C_CPU_INT_ICLR_INTR_OVFL_MASK ((uint32_t)0x80000000U) /* !< Interrupt overflow */
#define I2C_CPU_INT_ICLR_INTR_OVFL_NO_EFFECT ((uint32_t)0x00000000U) /* !< No effect */
#define I2C_CPU_INT_ICLR_INTR_OVFL_CLR ((uint32_t)0x80000000U) /* !< Clear interrupt */
/* I2C_PWREN Bits */
/* I2C_PWREN[ENABLE] Bits */
#define I2C_PWREN_ENABLE_OFS (0) /* !< ENABLE Offset */
#define I2C_PWREN_ENABLE_MASK ((uint32_t)0x00000001U) /* !< Enable the power */
#define I2C_PWREN_ENABLE_DISABLE ((uint32_t)0x00000000U) /* !< Disable Power */
#define I2C_PWREN_ENABLE_ENABLE ((uint32_t)0x00000001U) /* !< Enable Power */
/* I2C_PWREN[KEY] Bits */
#define I2C_PWREN_KEY_OFS (24) /* !< KEY Offset */
#define I2C_PWREN_KEY_MASK ((uint32_t)0xFF000000U) /* !< KEY to allow Power State Change */
#define I2C_PWREN_KEY_UNLOCK_W ((uint32_t)0x26000000U) /* !< KEY to allow write access to this
register */
/* I2C_RSTCTL Bits */
/* I2C_RSTCTL[RESETSTKYCLR] Bits */
#define I2C_RSTCTL_RESETSTKYCLR_OFS (1) /* !< RESETSTKYCLR Offset */
#define I2C_RSTCTL_RESETSTKYCLR_MASK ((uint32_t)0x00000002U) /* !< Clear the RESETSTKY bit in the STAT
register */
#define I2C_RSTCTL_RESETSTKYCLR_NOP ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_RSTCTL_RESETSTKYCLR_CLR ((uint32_t)0x00000002U) /* !< Clear reset sticky bit */
/* I2C_RSTCTL[RESETASSERT] Bits */
#define I2C_RSTCTL_RESETASSERT_OFS (0) /* !< RESETASSERT Offset */
#define I2C_RSTCTL_RESETASSERT_MASK ((uint32_t)0x00000001U) /* !< Assert reset to the peripheral */
#define I2C_RSTCTL_RESETASSERT_NOP ((uint32_t)0x00000000U) /* !< Writing 0 has no effect */
#define I2C_RSTCTL_RESETASSERT_ASSERT ((uint32_t)0x00000001U) /* !< Assert reset */
/* I2C_RSTCTL[KEY] Bits */
#define I2C_RSTCTL_KEY_OFS (24) /* !< KEY Offset */
#define I2C_RSTCTL_KEY_MASK ((uint32_t)0xFF000000U) /* !< Unlock key */
#define I2C_RSTCTL_KEY_UNLOCK_W ((uint32_t)0xB1000000U) /* !< KEY to allow write access to this
register */
/* I2C_CLKCFG Bits */
/* I2C_CLKCFG[KEY] Bits */
#define I2C_CLKCFG_KEY_OFS (24) /* !< KEY Offset */
#define I2C_CLKCFG_KEY_MASK ((uint32_t)0xFF000000U) /* !< KEY to Allow State Change -- 0xA9 */
#define I2C_CLKCFG_KEY_UNLOCK ((uint32_t)0xA9000000U) /* !< key value to allow change field of
GPRCM */
/* I2C_CLKCFG[BLOCKASYNC] Bits */
#define I2C_CLKCFG_BLOCKASYNC_OFS (8) /* !< BLOCKASYNC Offset */
#define I2C_CLKCFG_BLOCKASYNC_MASK ((uint32_t)0x00000100U) /* !< Async Clock Request is blocked from
starting SYSOSC or forcing bus clock
to 32MHz */
#define I2C_CLKCFG_BLOCKASYNC_DISABLE ((uint32_t)0x00000000U) /* !< Not block async clock request */
#define I2C_CLKCFG_BLOCKASYNC_ENABLE ((uint32_t)0x00000100U) /* !< Block async clock request */
/* I2C_STAT Bits */
/* I2C_STAT[RESETSTKY] Bits */
#define I2C_STAT_RESETSTKY_OFS (16) /* !< RESETSTKY Offset */
#define I2C_STAT_RESETSTKY_MASK ((uint32_t)0x00010000U) /* !< This bit indicates, if the
peripheral was reset, since this bit
was cleared by RESETSTKYCLR in the
RSTCTL register */
#define I2C_STAT_RESETSTKY_NORES ((uint32_t)0x00000000U) /* !< The peripheral has not been reset
since this bit was last cleared by
RESETSTKYCLR in the RSTCTL register */
#define I2C_STAT_RESETSTKY_RESET ((uint32_t)0x00010000U) /* !< The peripheral was reset since the
last bit clear */
/* I2C_CLKDIV Bits */
/* I2C_CLKDIV[RATIO] Bits */
#define I2C_CLKDIV_RATIO_OFS (0) /* !< RATIO Offset */
#define I2C_CLKDIV_RATIO_MASK ((uint32_t)0x00000007U) /* !< Selects divide ratio of module
clock */
#define I2C_CLKDIV_RATIO_DIV_BY_1 ((uint32_t)0x00000000U) /* !< Do not divide clock source */
#define I2C_CLKDIV_RATIO_DIV_BY_2 ((uint32_t)0x00000001U) /* !< Divide clock source by 2 */
#define I2C_CLKDIV_RATIO_DIV_BY_3 ((uint32_t)0x00000002U) /* !< Divide clock source by 3 */
#define I2C_CLKDIV_RATIO_DIV_BY_4 ((uint32_t)0x00000003U) /* !< Divide clock source by 4 */
#define I2C_CLKDIV_RATIO_DIV_BY_5 ((uint32_t)0x00000004U) /* !< Divide clock source by 5 */
#define I2C_CLKDIV_RATIO_DIV_BY_6 ((uint32_t)0x00000005U) /* !< Divide clock source by 6 */
#define I2C_CLKDIV_RATIO_DIV_BY_7 ((uint32_t)0x00000006U) /* !< Divide clock source by 7 */
#define I2C_CLKDIV_RATIO_DIV_BY_8 ((uint32_t)0x00000007U) /* !< Divide clock source by 8 */
/* I2C_CLKSEL Bits */
/* I2C_CLKSEL[MFCLK_SEL] Bits */
#define I2C_CLKSEL_MFCLK_SEL_OFS (2) /* !< MFCLK_SEL Offset */
#define I2C_CLKSEL_MFCLK_SEL_MASK ((uint32_t)0x00000004U) /* !< Selects MFCLK as clock source if
enabled */
#define I2C_CLKSEL_MFCLK_SEL_DISABLE ((uint32_t)0x00000000U) /* !< Does not select this clock as a
source */
#define I2C_CLKSEL_MFCLK_SEL_ENABLE ((uint32_t)0x00000004U) /* !< Select this clock as a source */
/* I2C_CLKSEL[BUSCLK_SEL] Bits */
#define I2C_CLKSEL_BUSCLK_SEL_OFS (3) /* !< BUSCLK_SEL Offset */
#define I2C_CLKSEL_BUSCLK_SEL_MASK ((uint32_t)0x00000008U) /* !< Selects BUSCLK as clock source if
enabled */
#define I2C_CLKSEL_BUSCLK_SEL_DISABLE ((uint32_t)0x00000000U) /* !< Does not select this clock as a
source */
#define I2C_CLKSEL_BUSCLK_SEL_ENABLE ((uint32_t)0x00000008U) /* !< Select this clock as a source */
/* I2C_PDBGCTL Bits */
/* I2C_PDBGCTL[FREE] Bits */
#define I2C_PDBGCTL_FREE_OFS (0) /* !< FREE Offset */
#define I2C_PDBGCTL_FREE_MASK ((uint32_t)0x00000001U) /* !< Free run control */
#define I2C_PDBGCTL_FREE_STOP ((uint32_t)0x00000000U) /* !< The peripheral freezes
functionality while the Core Halted
input is asserted and resumes when it
is deasserted. */
#define I2C_PDBGCTL_FREE_RUN ((uint32_t)0x00000001U) /* !< The peripheral ignores the state of
the Core Halted input */
/* I2C_PDBGCTL[SOFT] Bits */
#define I2C_PDBGCTL_SOFT_OFS (1) /* !< SOFT Offset */
#define I2C_PDBGCTL_SOFT_MASK ((uint32_t)0x00000002U) /* !< Soft halt boundary control. This
function is only available, if [FREE]
is set to 'STOP' */
#define I2C_PDBGCTL_SOFT_IMMEDIATE ((uint32_t)0x00000000U) /* !< The peripheral will halt
immediately, even if the resultant
state will result in corruption if
the system is restarted */
#define I2C_PDBGCTL_SOFT_DELAYED ((uint32_t)0x00000002U) /* !< The peripheral blocks the debug
freeze until it has reached a
boundary where it can resume without
corruption */
/* I2C_EVT_MODE Bits */
/* I2C_EVT_MODE[INT0_CFG] Bits */
#define I2C_EVT_MODE_INT0_CFG_OFS (0) /* !< INT0_CFG Offset */
#define I2C_EVT_MODE_INT0_CFG_MASK ((uint32_t)0x00000003U) /* !< Event line mode select for event
corresponding to
[IPSTANDARD.INT_EVENT0] */
#define I2C_EVT_MODE_INT0_CFG_DISABLE ((uint32_t)0x00000000U) /* !< The interrupt or event line is
disabled. */
#define I2C_EVT_MODE_INT0_CFG_SOFTWARE ((uint32_t)0x00000001U) /* !< The interrupt or event line is in
software mode. Software must clear
the RIS. */
#define I2C_EVT_MODE_INT0_CFG_HARDWARE ((uint32_t)0x00000002U) /* !< The interrupt or event line is in
hardware mode. The hardware (another
module) clears automatically the
associated RIS flag. */
/* I2C_EVT_MODE[INT1_CFG] Bits */
#define I2C_EVT_MODE_INT1_CFG_OFS (2) /* !< INT1_CFG Offset */
#define I2C_EVT_MODE_INT1_CFG_MASK ((uint32_t)0x0000000CU) /* !< Event line mode select for event
corresponding to
[IPSTANDARD.INT_EVENT1] */
#define I2C_EVT_MODE_INT1_CFG_DISABLE ((uint32_t)0x00000000U) /* !< The interrupt or event line is
disabled. */
#define I2C_EVT_MODE_INT1_CFG_SOFTWARE ((uint32_t)0x00000004U) /* !< The interrupt or event line is in
software mode. Software must clear
the RIS. */
#define I2C_EVT_MODE_INT1_CFG_HARDWARE ((uint32_t)0x00000008U) /* !< The interrupt or event line is in
hardware mode. The hardware (another
module) clears automatically the
associated RIS flag. */
/* I2C_EVT_MODE[EVT2_CFG] Bits */
#define I2C_EVT_MODE_EVT2_CFG_OFS (4) /* !< EVT2_CFG Offset */
#define I2C_EVT_MODE_EVT2_CFG_MASK ((uint32_t)0x00000030U) /* !< Event line mode select for event
corresponding to
[IPSTANDARD.INT_EVENT2] */
#define I2C_EVT_MODE_EVT2_CFG_DISABLE ((uint32_t)0x00000000U) /* !< The interrupt or event line is
disabled. */
#define I2C_EVT_MODE_EVT2_CFG_SOFTWARE ((uint32_t)0x00000010U) /* !< The interrupt or event line is in
software mode. Software must clear
the RIS. */
#define I2C_EVT_MODE_EVT2_CFG_HARDWARE ((uint32_t)0x00000020U) /* !< The interrupt or event line is in
hardware mode. The hardware (another
module) clears automatically the
associated RIS flag. */
/* I2C_INTCTL Bits */
/* I2C_INTCTL[INTEVAL] Bits */
#define I2C_INTCTL_INTEVAL_OFS (0) /* !< INTEVAL Offset */
#define I2C_INTCTL_INTEVAL_MASK ((uint32_t)0x00000001U) /* !< Writing a 1 to this field
re-evaluates the interrupt sources. */
#define I2C_INTCTL_INTEVAL_DISABLE ((uint32_t)0x00000000U) /* !< The interrupt or event line is
disabled. */
#define I2C_INTCTL_INTEVAL_EVAL ((uint32_t)0x00000001U) /* !< The interrupt or event line is in
software mode. Software must clear
the RIS. */
/* I2C_DESC Bits */
/* I2C_DESC[MINREV] Bits */
#define I2C_DESC_MINREV_OFS (0) /* !< MINREV Offset */
#define I2C_DESC_MINREV_MASK ((uint32_t)0x0000000FU) /* !< Minor rev of the IP */
#define I2C_DESC_MINREV_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_DESC_MINREV_MAXIMUM ((uint32_t)0x0000000FU) /* !< Highest possible value */
/* I2C_DESC[MAJREV] Bits */
#define I2C_DESC_MAJREV_OFS (4) /* !< MAJREV Offset */
#define I2C_DESC_MAJREV_MASK ((uint32_t)0x000000F0U) /* !< Major rev of the IP */
#define I2C_DESC_MAJREV_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_DESC_MAJREV_MAXIMUM ((uint32_t)0x000000F0U) /* !< Highest possible value */
/* I2C_DESC[INSTNUM] Bits */
#define I2C_DESC_INSTNUM_OFS (8) /* !< INSTNUM Offset */
#define I2C_DESC_INSTNUM_MASK ((uint32_t)0x00000F00U) /* !< Instance Number within the device.
This will be a parameter to the RTL
for modules that can have multiple
instances */
#define I2C_DESC_INSTNUM_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_DESC_INSTNUM_MAXIMUM ((uint32_t)0x00000F00U) /* !< Highest possible value */
/* I2C_DESC[FEATUREVER] Bits */
#define I2C_DESC_FEATUREVER_OFS (12) /* !< FEATUREVER Offset */
#define I2C_DESC_FEATUREVER_MASK ((uint32_t)0x0000F000U) /* !< Feature Set for the module
*instance* */
#define I2C_DESC_FEATUREVER_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_DESC_FEATUREVER_MAXIMUM ((uint32_t)0x0000F000U) /* !< Highest possible value */
/* I2C_DESC[MODULEID] Bits */
#define I2C_DESC_MODULEID_OFS (16) /* !< MODULEID Offset */
#define I2C_DESC_MODULEID_MASK ((uint32_t)0xFFFF0000U) /* !< Module identification contains a
unique peripheral identification
number. The assignments are
maintained in a central database for
all of the platform modules to ensure
uniqueness. */
#define I2C_DESC_MODULEID_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest value */
#define I2C_DESC_MODULEID_MAXIMUM ((uint32_t)0xFFFF0000U) /* !< Highest possible value */
/* I2C_GFCTL Bits */
/* I2C_GFCTL[AGFSEL] Bits */
#define I2C_GFCTL_AGFSEL_OFS (9) /* !< AGFSEL Offset */
#define I2C_GFCTL_AGFSEL_MASK ((uint32_t)0x00000600U) /* !< Analog Glitch Suppression Pulse
Width This field controls the pulse
width select for the analog glitch
suppression on SCL and SDA lines.
See device datasheet for exact
values. (ULP I2C only) */
#define I2C_GFCTL_AGFSEL_AGLIT_5 ((uint32_t)0x00000000U) /* !< Pulses shorter then 5ns length are
filtered. */
#define I2C_GFCTL_AGFSEL_AGLIT_10 ((uint32_t)0x00000200U) /* !< Pulses shorter then 10ns length are
filtered. */
#define I2C_GFCTL_AGFSEL_AGLIT_25 ((uint32_t)0x00000400U) /* !< Pulses shorter then 25ns length are
filtered. */
#define I2C_GFCTL_AGFSEL_AGLIT_50 ((uint32_t)0x00000600U) /* !< Pulses shorter then 50ns length are
filtered. */
/* I2C_GFCTL[DGFSEL] Bits */
#define I2C_GFCTL_DGFSEL_OFS (0) /* !< DGFSEL Offset */
#define I2C_GFCTL_DGFSEL_MASK ((uint32_t)0x00000007U) /* !< Glitch Suppression Pulse Width
This field controls the pulse width
select for glitch suppression on the
SCL and SDA lines. The following
values are the glitch suppression
values in terms of functional clocks.
(Core Domain only) */
#define I2C_GFCTL_DGFSEL_DISABLED ((uint32_t)0x00000000U) /* !< Bypass */
#define I2C_GFCTL_DGFSEL_CLK_1 ((uint32_t)0x00000001U) /* !< 1 clock */
#define I2C_GFCTL_DGFSEL_CLK_2 ((uint32_t)0x00000002U) /* !< 2 clocks */
#define I2C_GFCTL_DGFSEL_CLK_3 ((uint32_t)0x00000003U) /* !< 3 clocks */
#define I2C_GFCTL_DGFSEL_CLK_4 ((uint32_t)0x00000004U) /* !< 4 clocks */
#define I2C_GFCTL_DGFSEL_CLK_8 ((uint32_t)0x00000005U) /* !< 8 clocks */
#define I2C_GFCTL_DGFSEL_CLK_16 ((uint32_t)0x00000006U) /* !< 16 clocks */
#define I2C_GFCTL_DGFSEL_CLK_31 ((uint32_t)0x00000007U) /* !< 31 clocks */
/* I2C_GFCTL[AGFEN] Bits */
#define I2C_GFCTL_AGFEN_OFS (8) /* !< AGFEN Offset */
#define I2C_GFCTL_AGFEN_MASK ((uint32_t)0x00000100U) /* !< Analog Glitch Suppression Enable */
#define I2C_GFCTL_AGFEN_DISABLE ((uint32_t)0x00000000U) /* !< Analog Glitch Filter disable */
#define I2C_GFCTL_AGFEN_ENABLE ((uint32_t)0x00000100U) /* !< Analog Glitch Filter enable */
/* I2C_GFCTL[CHAIN] Bits */
#define I2C_GFCTL_CHAIN_OFS (11) /* !< CHAIN Offset */
#define I2C_GFCTL_CHAIN_MASK ((uint32_t)0x00000800U) /* !< Analog and digital noise filters
chaining enable. */
#define I2C_GFCTL_CHAIN_DISABLE ((uint32_t)0x00000000U) /* !< When 0, chaining is disabled and
only digital filter output is
available to IP logic for
oversampling */
#define I2C_GFCTL_CHAIN_ENABLE ((uint32_t)0x00000800U) /* !< When 1, analog and digital glitch
filters are chained and the output of
the combination is made available to
IP logic for oversampling */
/* I2C_TIMEOUT_CTL Bits */
/* I2C_TIMEOUT_CTL[TCNTLA] Bits */
#define I2C_TIMEOUT_CTL_TCNTLA_OFS (0) /* !< TCNTLA Offset */
#define I2C_TIMEOUT_CTL_TCNTLA_MASK ((uint32_t)0x000000FFU) /* !< Timeout counter A load value
Counter A is used for SCL low
detection. This field contains the
upper 8 bits of a 12-bit pre-load
value for the Timeout A count. NOTE:
The value of CNTLA must be greater
than 1h. Each count is equal to 520
times the timeout period of
functional clock. For example, with
8MHz functional clock and a 100KHz
operating I2C clock, one timeout
period will be equal to (1 / 8MHz) *
520 or 65 us. */
#define I2C_TIMEOUT_CTL_TCNTLA_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest Value */
#define I2C_TIMEOUT_CTL_TCNTLA_MAXIMUM ((uint32_t)0x000000FFU) /* !< Highest possible value */
/* I2C_TIMEOUT_CTL[TCNTAEN] Bits */
#define I2C_TIMEOUT_CTL_TCNTAEN_OFS (15) /* !< TCNTAEN Offset */
#define I2C_TIMEOUT_CTL_TCNTAEN_MASK ((uint32_t)0x00008000U) /* !< Timeout Counter A Enable */
#define I2C_TIMEOUT_CTL_TCNTAEN_DISABLE ((uint32_t)0x00000000U) /* !< Disable Timeout Counter B */
#define I2C_TIMEOUT_CTL_TCNTAEN_ENABLE ((uint32_t)0x00008000U) /* !< Enable Timeout Counter B */
/* I2C_TIMEOUT_CTL[TCNTLB] Bits */
#define I2C_TIMEOUT_CTL_TCNTLB_OFS (16) /* !< TCNTLB Offset */
#define I2C_TIMEOUT_CTL_TCNTLB_MASK ((uint32_t)0x00FF0000U) /* !< Timeout Count B Load: Counter B is
used for SCL High Detection. This
field contains the upper 8 bits of a
12-bit pre-load value for the Timeout
B count. NOTE: The value of CNTLB
must be greater than 1h. Each count
is equal to 1* clock period. For
example, with 10MHz functional clock
one timeout period will be equal
to1*100ns. */
#define I2C_TIMEOUT_CTL_TCNTLB_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest possible value */
#define I2C_TIMEOUT_CTL_TCNTLB_MAXIMUM ((uint32_t)0x00FF0000U) /* !< Highest possible value */
/* I2C_TIMEOUT_CTL[TCNTBEN] Bits */
#define I2C_TIMEOUT_CTL_TCNTBEN_OFS (31) /* !< TCNTBEN Offset */
#define I2C_TIMEOUT_CTL_TCNTBEN_MASK ((uint32_t)0x80000000U) /* !< Timeout Counter B Enable */
#define I2C_TIMEOUT_CTL_TCNTBEN_DISABLE ((uint32_t)0x00000000U) /* !< Disable Timeout Counter B */
#define I2C_TIMEOUT_CTL_TCNTBEN_ENABLE ((uint32_t)0x80000000U) /* !< Enable Timeout Counter B */
/* I2C_TIMEOUT_CNT Bits */
/* I2C_TIMEOUT_CNT[TCNTA] Bits */
#define I2C_TIMEOUT_CNT_TCNTA_OFS (0) /* !< TCNTA Offset */
#define I2C_TIMEOUT_CNT_TCNTA_MASK ((uint32_t)0x000000FFU) /* !< Timeout Count A Current Count: This
field contains the upper 8 bits of a
12-bit current counter for timeout
counter A */
#define I2C_TIMEOUT_CNT_TCNTA_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest Value */
#define I2C_TIMEOUT_CNT_TCNTA_MAXIMUM ((uint32_t)0x000000FFU) /* !< Highest possible value */
/* I2C_TIMEOUT_CNT[TCNTB] Bits */
#define I2C_TIMEOUT_CNT_TCNTB_OFS (16) /* !< TCNTB Offset */
#define I2C_TIMEOUT_CNT_TCNTB_MASK ((uint32_t)0x00FF0000U) /* !< Timeout Count B Current Count: This
field contains the upper 8 bits of a
12-bit current counter for timeout
counter B */
#define I2C_TIMEOUT_CNT_TCNTB_MINIMUM ((uint32_t)0x00000000U) /* !< Smallest Value */
#define I2C_TIMEOUT_CNT_TCNTB_MAXIMUM ((uint32_t)0x00FF0000U) /* !< Highest possible value */
#ifdef __cplusplus
}
#endif
#endif /* ti_devices_msp_peripherals_hw_i2c__include */