RP2040_SVD.I2C

Entities

Simple Types

Record Types

Subtypes

Variables

Description

------------- Registers -- -------------

I2C0_Periph

I2C0_Periph : aliased I2C_Peripheral
  with Import, Address => I2C0_Base;

I2C1_Periph

I2C1_Periph : aliased I2C_Peripheral
  with Import, Address => I2C1_Base;

I2C_Peripheral

type I2C_Peripheral is record
   IC_CON                : aliased IC_CON_Register;
   IC_TAR                : aliased IC_TAR_Register;
   IC_SAR                : aliased IC_SAR_Register;
   IC_DATA_CMD           : aliased IC_DATA_CMD_Register;
   IC_SS_SCL_HCNT        : aliased IC_SS_SCL_HCNT_Register;
   IC_SS_SCL_LCNT        : aliased IC_SS_SCL_LCNT_Register;
   IC_FS_SCL_HCNT        : aliased IC_FS_SCL_HCNT_Register;
   IC_FS_SCL_LCNT        : aliased IC_FS_SCL_LCNT_Register;
   IC_INTR_STAT          : aliased IC_INTR_STAT_Register;
   IC_INTR_MASK          : aliased IC_INTR_MASK_Register;
   IC_RAW_INTR_STAT      : aliased IC_RAW_INTR_STAT_Register;
   IC_RX_TL              : aliased IC_RX_TL_Register;
   IC_TX_TL              : aliased IC_TX_TL_Register;
   IC_CLR_INTR           : aliased IC_CLR_INTR_Register;
   IC_CLR_RX_UNDER       : aliased IC_CLR_RX_UNDER_Register;
   IC_CLR_RX_OVER        : aliased IC_CLR_RX_OVER_Register;
   IC_CLR_TX_OVER        : aliased IC_CLR_TX_OVER_Register;
   IC_CLR_RD_REQ         : aliased IC_CLR_RD_REQ_Register;
   IC_CLR_TX_ABRT        : aliased IC_CLR_TX_ABRT_Register;
   IC_CLR_RX_DONE        : aliased IC_CLR_RX_DONE_Register;
   IC_CLR_ACTIVITY       : aliased IC_CLR_ACTIVITY_Register;
   IC_CLR_STOP_DET       : aliased IC_CLR_STOP_DET_Register;
   IC_CLR_START_DET      : aliased IC_CLR_START_DET_Register;
   IC_CLR_GEN_CALL       : aliased IC_CLR_GEN_CALL_Register;
   IC_ENABLE             : aliased IC_ENABLE_Register;
   IC_STATUS             : aliased IC_STATUS_Register;
   IC_TXFLR              : aliased IC_TXFLR_Register;
   IC_RXFLR              : aliased IC_RXFLR_Register;
   IC_SDA_HOLD           : aliased IC_SDA_HOLD_Register;
   IC_TX_ABRT_SOURCE     : aliased IC_TX_ABRT_SOURCE_Register;
   IC_SLV_DATA_NACK_ONLY : aliased IC_SLV_DATA_NACK_ONLY_Register;
   IC_DMA_CR             : aliased IC_DMA_CR_Register;
   IC_DMA_TDLR           : aliased IC_DMA_TDLR_Register;
   IC_DMA_RDLR           : aliased IC_DMA_RDLR_Register;
   IC_SDA_SETUP          : aliased IC_SDA_SETUP_Register;
   IC_ACK_GENERAL_CALL   : aliased IC_ACK_GENERAL_CALL_Register;
   IC_ENABLE_STATUS      : aliased IC_ENABLE_STATUS_Register;
   IC_FS_SPKLEN          : aliased IC_FS_SPKLEN_Register;
   IC_CLR_RESTART_DET    : aliased IC_CLR_RESTART_DET_Register;
   IC_COMP_PARAM_1       : aliased IC_COMP_PARAM_1_Register;
   IC_COMP_VERSION       : aliased HAL.UInt32;
   IC_COMP_TYPE          : aliased HAL.UInt32;
end record
  with Volatile;
Record fields
IC_CON
IC_TAR
IC_SAR
IC_DATA_CMD
IC_SS_SCL_HCNT
IC_SS_SCL_LCNT
IC_FS_SCL_HCNT
IC_FS_SCL_LCNT
IC_INTR_STAT
IC_INTR_MASK
IC_RAW_INTR_STAT
IC_RX_TL
IC_TX_TL
IC_CLR_INTR
IC_CLR_RX_UNDER
IC_CLR_RX_OVER
IC_CLR_TX_OVER
IC_CLR_RD_REQ
IC_CLR_TX_ABRT
IC_CLR_RX_DONE
IC_CLR_ACTIVITY
IC_CLR_STOP_DET
IC_CLR_START_DET
IC_CLR_GEN_CALL
IC_ENABLE
IC_STATUS
IC_TXFLR
IC_RXFLR
IC_SDA_HOLD
IC_TX_ABRT_SOURCE
IC_SLV_DATA_NACK_ONLY
IC_DMA_CR
IC_DMA_TDLR
IC_DMA_RDLR
IC_SDA_SETUP
IC_ACK_GENERAL_CALL
IC_ENABLE_STATUS
IC_FS_SPKLEN
IC_CLR_RESTART_DET
IC_COMP_PARAM_1
IC_COMP_VERSION
IC_COMP_TYPE

IC_ACK_GENERAL_CALL_ACK_GEN_CALL_Field

type IC_ACK_GENERAL_CALL_ACK_GEN_CALL_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Generate ACK for a General Call

ENABLED

IC_ACK_GENERAL_CALL_Register

type IC_ACK_GENERAL_CALL_Register is record
   ACK_GEN_CALL  : IC_ACK_GENERAL_CALL_ACK_GEN_CALL_Field :=
                    RP2040_SVD.I2C.ENABLED;
   Reserved_1_31 : HAL.UInt31 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
ACK_GEN_CALL
Reserved_1_31

IC_CLR_ACTIVITY_Register

type IC_CLR_ACTIVITY_Register is record
   CLR_ACTIVITY  : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_ACTIVITY
Reserved_1_31

IC_CLR_GEN_CALL_Register

type IC_CLR_GEN_CALL_Register is record
   CLR_GEN_CALL  : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_GEN_CALL
Reserved_1_31

IC_CLR_INTR_Register

type IC_CLR_INTR_Register is record
   CLR_INTR      : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_INTR
Reserved_1_31

IC_CLR_RD_REQ_Register

type IC_CLR_RD_REQ_Register is record
   CLR_RD_REQ    : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_RD_REQ
Reserved_1_31

IC_CLR_RESTART_DET_Register

type IC_CLR_RESTART_DET_Register is record
   CLR_RESTART_DET : Boolean;
   Reserved_1_31   : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_RESTART_DET
Reserved_1_31

IC_CLR_RX_DONE_Register

type IC_CLR_RX_DONE_Register is record
   CLR_RX_DONE   : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_RX_DONE
Reserved_1_31

IC_CLR_RX_OVER_Register

type IC_CLR_RX_OVER_Register is record
   CLR_RX_OVER   : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_RX_OVER
Reserved_1_31

IC_CLR_RX_UNDER_Register

type IC_CLR_RX_UNDER_Register is record
   CLR_RX_UNDER  : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_RX_UNDER
Reserved_1_31

IC_CLR_START_DET_Register

type IC_CLR_START_DET_Register is record
   CLR_START_DET : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_START_DET
Reserved_1_31

IC_CLR_STOP_DET_Register

type IC_CLR_STOP_DET_Register is record
   CLR_STOP_DET  : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_STOP_DET
Reserved_1_31

IC_CLR_TX_ABRT_Register

type IC_CLR_TX_ABRT_Register is record
   CLR_TX_ABRT   : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_TX_ABRT
Reserved_1_31

IC_CLR_TX_OVER_Register

type IC_CLR_TX_OVER_Register is record
   CLR_TX_OVER   : Boolean;
   Reserved_1_31 : HAL.UInt31;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
CLR_TX_OVER
Reserved_1_31

IC_COMP_PARAM_1_APB_DATA_WIDTH_Field

subtype IC_COMP_PARAM_1_APB_DATA_WIDTH_Field is HAL.UInt2;

IC_COMP_PARAM_1_MAX_SPEED_MODE_Field

subtype IC_COMP_PARAM_1_MAX_SPEED_MODE_Field is HAL.UInt2;

IC_COMP_PARAM_1_Register

type IC_COMP_PARAM_1_Register is record
   APB_DATA_WIDTH     : IC_COMP_PARAM_1_APB_DATA_WIDTH_Field;
   MAX_SPEED_MODE     : IC_COMP_PARAM_1_MAX_SPEED_MODE_Field;
   HC_COUNT_VALUES    : Boolean;
   INTR_IO            : Boolean;
   HAS_DMA            : Boolean;
   ADD_ENCODED_PARAMS : Boolean;
   RX_BUFFER_DEPTH    : IC_COMP_PARAM_1_RX_BUFFER_DEPTH_Field;
   TX_BUFFER_DEPTH    : IC_COMP_PARAM_1_TX_BUFFER_DEPTH_Field;
   Reserved_24_31     : HAL.UInt8;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
APB_DATA_WIDTH
MAX_SPEED_MODE
HC_COUNT_VALUES
INTR_IO
HAS_DMA
ADD_ENCODED_PARAMS
RX_BUFFER_DEPTH
TX_BUFFER_DEPTH
Reserved_24_31

IC_COMP_PARAM_1_RX_BUFFER_DEPTH_Field

subtype IC_COMP_PARAM_1_RX_BUFFER_DEPTH_Field is HAL.UInt8;

IC_COMP_PARAM_1_TX_BUFFER_DEPTH_Field

subtype IC_COMP_PARAM_1_TX_BUFFER_DEPTH_Field is HAL.UInt8;

IC_CON_IC_10BITADDR_MASTER_Field

type IC_CON_IC_10BITADDR_MASTER_Field is
   ADDR_7BITS,
   ADDR_10BITS)
  with Size => 1;
Enumeration Literal
ADDR_7BITS

Master 10Bit addressing mode

ADDR_10BITS

IC_CON_IC_10BITADDR_SLAVE_Field

type IC_CON_IC_10BITADDR_SLAVE_Field is
   ADDR_7BITS,
   ADDR_10BITS)
  with Size => 1;
Enumeration Literal
ADDR_7BITS

Slave 10Bit addressing

ADDR_10BITS

IC_CON_IC_RESTART_EN_Field

type IC_CON_IC_RESTART_EN_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Master restart enabled

ENABLED

IC_CON_IC_SLAVE_DISABLE_Field

type IC_CON_IC_SLAVE_DISABLE_Field is
   SLAVE_ENABLED,
   SLAVE_DISABLED)
  with Size => 1;
Enumeration Literal
SLAVE_ENABLED

Slave mode is disabled

SLAVE_DISABLED

IC_CON_MASTER_MODE_Field

type IC_CON_MASTER_MODE_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Master mode is enabled

ENABLED

IC_CON_Register

type IC_CON_Register is record
   MASTER_MODE               : IC_CON_MASTER_MODE_Field :=
                                RP2040_SVD.I2C.ENABLED;
   SPEED                     : IC_CON_SPEED_Field := RP2040_SVD.I2C.FAST;
   IC_10BITADDR_SLAVE        : IC_CON_IC_10BITADDR_SLAVE_Field :=
                                RP2040_SVD.I2C.ADDR_7BITS;
   IC_10BITADDR_MASTER       : IC_CON_IC_10BITADDR_MASTER_Field :=
                                RP2040_SVD.I2C.ADDR_7BITS;
   IC_RESTART_EN             : IC_CON_IC_RESTART_EN_Field :=
                                RP2040_SVD.I2C.ENABLED;
   IC_SLAVE_DISABLE          : IC_CON_IC_SLAVE_DISABLE_Field :=
                                RP2040_SVD.I2C.SLAVE_DISABLED;
   STOP_DET_IFADDRESSED      : IC_CON_STOP_DET_IFADDRESSED_Field :=
                                RP2040_SVD.I2C.DISABLED;
   TX_EMPTY_CTRL             : IC_CON_TX_EMPTY_CTRL_Field :=
                                RP2040_SVD.I2C.DISABLED;
   RX_FIFO_FULL_HLD_CTRL     : IC_CON_RX_FIFO_FULL_HLD_CTRL_Field :=
                                RP2040_SVD.I2C.DISABLED;
   STOP_DET_IF_MASTER_ACTIVE : Boolean := False;
   Reserved_11_31            : HAL.UInt21 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
MASTER_MODE
SPEED
IC_10BITADDR_SLAVE
IC_10BITADDR_MASTER
IC_RESTART_EN
IC_SLAVE_DISABLE
STOP_DET_IFADDRESSED
TX_EMPTY_CTRL
RX_FIFO_FULL_HLD_CTRL
STOP_DET_IF_MASTER_ACTIVE
Reserved_11_31

IC_CON_RX_FIFO_FULL_HLD_CTRL_Field

type IC_CON_RX_FIFO_FULL_HLD_CTRL_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Hold bus when RX_FIFO is full

ENABLED

IC_CON_SPEED_Field

type IC_CON_SPEED_Field is
   STANDARD,
   FAST,
   HIGH)
  with Size => 2;
Enumeration Literal
STANDARD

Fast or Fast Plus mode of operation

FAST

High Speed mode of operation

HIGH

IC_CON_STOP_DET_IFADDRESSED_Field

type IC_CON_STOP_DET_IFADDRESSED_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

slave issues STOP_DET intr only if addressed

ENABLED

IC_CON_TX_EMPTY_CTRL_Field

type IC_CON_TX_EMPTY_CTRL_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Controlled generation of TX_EMPTY interrupt

ENABLED

IC_DATA_CMD_CMD_Field

type IC_DATA_CMD_CMD_Field is
   WRITE,
   READ)
  with Size => 1;
Enumeration Literal
WRITE

Master Read Command

READ

IC_DATA_CMD_DAT_Field

subtype IC_DATA_CMD_DAT_Field is HAL.UInt8;

IC_DATA_CMD_FIRST_DATA_BYTE_Field

type IC_DATA_CMD_FIRST_DATA_BYTE_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

Non sequential data byte received

ACTIVE

IC_DATA_CMD_Register

type IC_DATA_CMD_Register is record
   DAT             : IC_DATA_CMD_DAT_Field := 16#0#;
   CMD             : IC_DATA_CMD_CMD_Field := RP2040_SVD.I2C.WRITE;
   STOP            : IC_DATA_CMD_STOP_Field := RP2040_SVD.I2C.DISABLE;
   RESTART         : IC_DATA_CMD_RESTART_Field := RP2040_SVD.I2C.DISABLE;
   FIRST_DATA_BYTE : IC_DATA_CMD_FIRST_DATA_BYTE_Field :=
                      RP2040_SVD.I2C.INACTIVE;
   Reserved_12_31  : HAL.UInt20 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
DAT
CMD
STOP
RESTART
FIRST_DATA_BYTE
Reserved_12_31

IC_DATA_CMD_RESTART_Field

type IC_DATA_CMD_RESTART_Field is
   DISABLE,
   ENABLE)
  with Size => 1;
Enumeration Literal
DISABLE

Issue RESTART before this command

ENABLE

IC_DATA_CMD_STOP_Field

type IC_DATA_CMD_STOP_Field is
   DISABLE,
   ENABLE)
  with Size => 1;
Enumeration Literal
DISABLE

Issue STOP after this command

ENABLE

IC_DMA_CR_RDMAE_Field

type IC_DMA_CR_RDMAE_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Receive FIFO DMA channel enabled

ENABLED

IC_DMA_CR_Register

type IC_DMA_CR_Register is record
   RDMAE         : IC_DMA_CR_RDMAE_Field := RP2040_SVD.I2C.DISABLED;
   TDMAE         : IC_DMA_CR_TDMAE_Field := RP2040_SVD.I2C.DISABLED;
   Reserved_2_31 : HAL.UInt30 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
RDMAE
TDMAE
Reserved_2_31

IC_DMA_CR_TDMAE_Field

type IC_DMA_CR_TDMAE_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Transmit FIFO DMA channel enabled

ENABLED

IC_DMA_RDLR_DMARDL_Field

subtype IC_DMA_RDLR_DMARDL_Field is HAL.UInt4;

IC_DMA_RDLR_Register

type IC_DMA_RDLR_Register is record
   DMARDL        : IC_DMA_RDLR_DMARDL_Field := 16#0#;
   Reserved_4_31 : HAL.UInt28 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
DMARDL
Reserved_4_31

IC_DMA_TDLR_DMATDL_Field

subtype IC_DMA_TDLR_DMATDL_Field is HAL.UInt4;

IC_DMA_TDLR_Register

type IC_DMA_TDLR_Register is record
   DMATDL        : IC_DMA_TDLR_DMATDL_Field := 16#0#;
   Reserved_4_31 : HAL.UInt28 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
DMATDL
Reserved_4_31

IC_ENABLE_ABORT_Field

type IC_ENABLE_ABORT_Field is
   DISABLE,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLE

ABORT operation in progress

ENABLED

IC_ENABLE_ENABLE_Field

type IC_ENABLE_ENABLE_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

I2C is enabled

ENABLED

IC_ENABLE_Register

type IC_ENABLE_Register is record
   ENABLE        : IC_ENABLE_ENABLE_Field := RP2040_SVD.I2C.DISABLED;
   ABORT_k       : IC_ENABLE_ABORT_Field := RP2040_SVD.I2C.DISABLE;
   TX_CMD_BLOCK  : IC_ENABLE_TX_CMD_BLOCK_Field :=
                    RP2040_SVD.I2C.NOT_BLOCKED;
   Reserved_3_31 : HAL.UInt29 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
ENABLE
ABORT_k
TX_CMD_BLOCK
Reserved_3_31

IC_ENABLE_STATUS_IC_EN_Field

type IC_ENABLE_STATUS_IC_EN_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

I2C enabled

ENABLED

IC_ENABLE_STATUS_Register

type IC_ENABLE_STATUS_Register is record
   IC_EN                   : IC_ENABLE_STATUS_IC_EN_Field;
   SLV_DISABLED_WHILE_BUSY : IC_ENABLE_STATUS_SLV_DISABLED_WHILE_BUSY_Field;
   SLV_RX_DATA_LOST        : IC_ENABLE_STATUS_SLV_RX_DATA_LOST_Field;
   Reserved_3_31           : HAL.UInt29;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_EN
SLV_DISABLED_WHILE_BUSY
SLV_RX_DATA_LOST
Reserved_3_31

IC_ENABLE_STATUS_SLV_DISABLED_WHILE_BUSY_Field

type IC_ENABLE_STATUS_SLV_DISABLED_WHILE_BUSY_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

Slave is disabled when it is active

ACTIVE

IC_ENABLE_STATUS_SLV_RX_DATA_LOST_Field

type IC_ENABLE_STATUS_SLV_RX_DATA_LOST_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

Slave RX Data is lost

ACTIVE

IC_ENABLE_TX_CMD_BLOCK_Field

type IC_ENABLE_TX_CMD_BLOCK_Field is
   NOT_BLOCKED,
   BLOCKED)
  with Size => 1;
Enumeration Literal
NOT_BLOCKED

Tx Command execution blocked

BLOCKED

IC_FS_SCL_HCNT_IC_FS_SCL_HCNT_Field

subtype IC_FS_SCL_HCNT_IC_FS_SCL_HCNT_Field is HAL.UInt16;

IC_FS_SCL_HCNT_Register

type IC_FS_SCL_HCNT_Register is record
   IC_FS_SCL_HCNT : IC_FS_SCL_HCNT_IC_FS_SCL_HCNT_Field := 16#6#;
   Reserved_16_31 : HAL.UInt16 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_FS_SCL_HCNT
Reserved_16_31

IC_FS_SCL_LCNT_IC_FS_SCL_LCNT_Field

subtype IC_FS_SCL_LCNT_IC_FS_SCL_LCNT_Field is HAL.UInt16;

IC_FS_SCL_LCNT_Register

type IC_FS_SCL_LCNT_Register is record
   IC_FS_SCL_LCNT : IC_FS_SCL_LCNT_IC_FS_SCL_LCNT_Field := 16#D#;
   Reserved_16_31 : HAL.UInt16 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_FS_SCL_LCNT
Reserved_16_31

IC_FS_SPKLEN_IC_FS_SPKLEN_Field

subtype IC_FS_SPKLEN_IC_FS_SPKLEN_Field is HAL.UInt8;

IC_FS_SPKLEN_Register

type IC_FS_SPKLEN_Register is record
   IC_FS_SPKLEN  : IC_FS_SPKLEN_IC_FS_SPKLEN_Field := 16#7#;
   Reserved_8_31 : HAL.UInt24 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_FS_SPKLEN
Reserved_8_31

IC_INTR_MASK_M_ACTIVITY_Field

type IC_INTR_MASK_M_ACTIVITY_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

ACTIVITY interrupt is unmasked

DISABLED

IC_INTR_MASK_M_GEN_CALL_Field

type IC_INTR_MASK_M_GEN_CALL_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

GEN_CALL interrupt is unmasked

DISABLED

IC_INTR_MASK_M_RD_REQ_Field

type IC_INTR_MASK_M_RD_REQ_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

RD_REQ interrupt is unmasked

DISABLED

IC_INTR_MASK_M_RESTART_DET_Field

type IC_INTR_MASK_M_RESTART_DET_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

RESTART_DET interrupt is unmasked

DISABLED

IC_INTR_MASK_M_RX_DONE_Field

type IC_INTR_MASK_M_RX_DONE_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

RX_DONE interrupt is unmasked

DISABLED

IC_INTR_MASK_M_RX_FULL_Field

type IC_INTR_MASK_M_RX_FULL_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

RX_FULL interrupt is unmasked

DISABLED

IC_INTR_MASK_M_RX_OVER_Field

type IC_INTR_MASK_M_RX_OVER_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

RX_OVER interrupt is unmasked

DISABLED

IC_INTR_MASK_M_RX_UNDER_Field

type IC_INTR_MASK_M_RX_UNDER_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

RX_UNDER interrupt is unmasked

DISABLED

IC_INTR_MASK_M_START_DET_Field

type IC_INTR_MASK_M_START_DET_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

START_DET interrupt is unmasked

DISABLED

IC_INTR_MASK_M_STOP_DET_Field

type IC_INTR_MASK_M_STOP_DET_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

STOP_DET interrupt is unmasked

DISABLED

IC_INTR_MASK_M_TX_ABRT_Field

type IC_INTR_MASK_M_TX_ABRT_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

TX_ABORT interrupt is unmasked

DISABLED

IC_INTR_MASK_M_TX_EMPTY_Field

type IC_INTR_MASK_M_TX_EMPTY_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

TX_EMPTY interrupt is unmasked

DISABLED

IC_INTR_MASK_M_TX_OVER_Field

type IC_INTR_MASK_M_TX_OVER_Field is
   ENABLED,
   DISABLED)
  with Size => 1;
Enumeration Literal
ENABLED

TX_OVER interrupt is unmasked

DISABLED

IC_INTR_MASK_Register

type IC_INTR_MASK_Register is record
   M_RX_UNDER     : IC_INTR_MASK_M_RX_UNDER_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_RX_OVER      : IC_INTR_MASK_M_RX_OVER_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_RX_FULL      : IC_INTR_MASK_M_RX_FULL_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_TX_OVER      : IC_INTR_MASK_M_TX_OVER_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_TX_EMPTY     : IC_INTR_MASK_M_TX_EMPTY_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_RD_REQ       : IC_INTR_MASK_M_RD_REQ_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_TX_ABRT      : IC_INTR_MASK_M_TX_ABRT_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_RX_DONE      : IC_INTR_MASK_M_RX_DONE_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_ACTIVITY     : IC_INTR_MASK_M_ACTIVITY_Field :=
                     RP2040_SVD.I2C.ENABLED;
   M_STOP_DET     : IC_INTR_MASK_M_STOP_DET_Field :=
                     RP2040_SVD.I2C.ENABLED;
   M_START_DET    : IC_INTR_MASK_M_START_DET_Field :=
                     RP2040_SVD.I2C.ENABLED;
   M_GEN_CALL     : IC_INTR_MASK_M_GEN_CALL_Field :=
                     RP2040_SVD.I2C.DISABLED;
   M_RESTART_DET  : IC_INTR_MASK_M_RESTART_DET_Field :=
                     RP2040_SVD.I2C.ENABLED;
   Reserved_13_31 : HAL.UInt19 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
M_RX_UNDER
M_RX_OVER
M_RX_FULL
M_TX_OVER
M_TX_EMPTY
M_RD_REQ
M_TX_ABRT
M_RX_DONE
M_ACTIVITY
M_STOP_DET
M_START_DET
M_GEN_CALL
M_RESTART_DET
Reserved_13_31

IC_INTR_STAT_R_ACTIVITY_Field

type IC_INTR_STAT_R_ACTIVITY_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_ACTIVITY interrupt is active

ACTIVE

IC_INTR_STAT_R_GEN_CALL_Field

type IC_INTR_STAT_R_GEN_CALL_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_GEN_CALL interrupt is active

ACTIVE

IC_INTR_STAT_R_RD_REQ_Field

type IC_INTR_STAT_R_RD_REQ_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_RD_REQ interrupt is active

ACTIVE

IC_INTR_STAT_R_RESTART_DET_Field

type IC_INTR_STAT_R_RESTART_DET_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_RESTART_DET interrupt is active

ACTIVE

IC_INTR_STAT_R_RX_DONE_Field

type IC_INTR_STAT_R_RX_DONE_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_RX_DONE interrupt is active

ACTIVE

IC_INTR_STAT_R_RX_FULL_Field

type IC_INTR_STAT_R_RX_FULL_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_RX_FULL interrupt is active

ACTIVE

IC_INTR_STAT_R_RX_OVER_Field

type IC_INTR_STAT_R_RX_OVER_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_RX_OVER interrupt is active

ACTIVE

IC_INTR_STAT_R_RX_UNDER_Field

type IC_INTR_STAT_R_RX_UNDER_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RX_UNDER interrupt is active

ACTIVE

IC_INTR_STAT_R_START_DET_Field

type IC_INTR_STAT_R_START_DET_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_START_DET interrupt is active

ACTIVE

IC_INTR_STAT_R_STOP_DET_Field

type IC_INTR_STAT_R_STOP_DET_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_STOP_DET interrupt is active

ACTIVE

IC_INTR_STAT_R_TX_ABRT_Field

type IC_INTR_STAT_R_TX_ABRT_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_TX_ABRT interrupt is active

ACTIVE

IC_INTR_STAT_R_TX_EMPTY_Field

type IC_INTR_STAT_R_TX_EMPTY_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_TX_EMPTY interrupt is active

ACTIVE

IC_INTR_STAT_R_TX_OVER_Field

type IC_INTR_STAT_R_TX_OVER_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

R_TX_OVER interrupt is active

ACTIVE

IC_INTR_STAT_Register

type IC_INTR_STAT_Register is record
   R_RX_UNDER     : IC_INTR_STAT_R_RX_UNDER_Field;
   R_RX_OVER      : IC_INTR_STAT_R_RX_OVER_Field;
   R_RX_FULL      : IC_INTR_STAT_R_RX_FULL_Field;
   R_TX_OVER      : IC_INTR_STAT_R_TX_OVER_Field;
   R_TX_EMPTY     : IC_INTR_STAT_R_TX_EMPTY_Field;
   R_RD_REQ       : IC_INTR_STAT_R_RD_REQ_Field;
   R_TX_ABRT      : IC_INTR_STAT_R_TX_ABRT_Field;
   R_RX_DONE      : IC_INTR_STAT_R_RX_DONE_Field;
   R_ACTIVITY     : IC_INTR_STAT_R_ACTIVITY_Field;
   R_STOP_DET     : IC_INTR_STAT_R_STOP_DET_Field;
   R_START_DET    : IC_INTR_STAT_R_START_DET_Field;
   R_GEN_CALL     : IC_INTR_STAT_R_GEN_CALL_Field;
   R_RESTART_DET  : IC_INTR_STAT_R_RESTART_DET_Field;
   Reserved_13_31 : HAL.UInt19;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
R_RX_UNDER
R_RX_OVER
R_RX_FULL
R_TX_OVER
R_TX_EMPTY
R_RD_REQ
R_TX_ABRT
R_RX_DONE
R_ACTIVITY
R_STOP_DET
R_START_DET
R_GEN_CALL
R_RESTART_DET
Reserved_13_31

IC_RAW_INTR_STAT_ACTIVITY_Field

type IC_RAW_INTR_STAT_ACTIVITY_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RAW_INTR_ACTIVITY interrupt is active

ACTIVE

IC_RAW_INTR_STAT_GEN_CALL_Field

type IC_RAW_INTR_STAT_GEN_CALL_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

GEN_CALL interrupt is active

ACTIVE

IC_RAW_INTR_STAT_RD_REQ_Field

type IC_RAW_INTR_STAT_RD_REQ_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RD_REQ interrupt is active

ACTIVE

IC_RAW_INTR_STAT_Register

type IC_RAW_INTR_STAT_Register is record
   RX_UNDER       : IC_RAW_INTR_STAT_RX_UNDER_Field;
   RX_OVER        : IC_RAW_INTR_STAT_RX_OVER_Field;
   RX_FULL        : IC_RAW_INTR_STAT_RX_FULL_Field;
   TX_OVER        : IC_RAW_INTR_STAT_TX_OVER_Field;
   TX_EMPTY       : IC_RAW_INTR_STAT_TX_EMPTY_Field;
   RD_REQ         : IC_RAW_INTR_STAT_RD_REQ_Field;
   TX_ABRT        : IC_RAW_INTR_STAT_TX_ABRT_Field;
   RX_DONE        : IC_RAW_INTR_STAT_RX_DONE_Field;
   ACTIVITY       : IC_RAW_INTR_STAT_ACTIVITY_Field;
   STOP_DET       : IC_RAW_INTR_STAT_STOP_DET_Field;
   START_DET      : IC_RAW_INTR_STAT_START_DET_Field;
   GEN_CALL       : IC_RAW_INTR_STAT_GEN_CALL_Field;
   RESTART_DET    : IC_RAW_INTR_STAT_RESTART_DET_Field;
   Reserved_13_31 : HAL.UInt19;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
RX_UNDER
RX_OVER
RX_FULL
TX_OVER
TX_EMPTY
RD_REQ
TX_ABRT
RX_DONE
ACTIVITY
STOP_DET
START_DET
GEN_CALL
RESTART_DET
Reserved_13_31

IC_RAW_INTR_STAT_RESTART_DET_Field

type IC_RAW_INTR_STAT_RESTART_DET_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RESTART_DET interrupt is active

ACTIVE

IC_RAW_INTR_STAT_RX_DONE_Field

type IC_RAW_INTR_STAT_RX_DONE_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RX_DONE interrupt is active

ACTIVE

IC_RAW_INTR_STAT_RX_FULL_Field

type IC_RAW_INTR_STAT_RX_FULL_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RX_FULL interrupt is active

ACTIVE

IC_RAW_INTR_STAT_RX_OVER_Field

type IC_RAW_INTR_STAT_RX_OVER_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RX_OVER interrupt is active

ACTIVE

IC_RAW_INTR_STAT_RX_UNDER_Field

type IC_RAW_INTR_STAT_RX_UNDER_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

RX_UNDER interrupt is active

ACTIVE

IC_RAW_INTR_STAT_START_DET_Field

type IC_RAW_INTR_STAT_START_DET_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

START_DET interrupt is active

ACTIVE

IC_RAW_INTR_STAT_STOP_DET_Field

type IC_RAW_INTR_STAT_STOP_DET_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

STOP_DET interrupt is active

ACTIVE

IC_RAW_INTR_STAT_TX_ABRT_Field

type IC_RAW_INTR_STAT_TX_ABRT_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

TX_ABRT interrupt is active

ACTIVE

IC_RAW_INTR_STAT_TX_EMPTY_Field

type IC_RAW_INTR_STAT_TX_EMPTY_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

TX_EMPTY interrupt is active

ACTIVE

IC_RAW_INTR_STAT_TX_OVER_Field

type IC_RAW_INTR_STAT_TX_OVER_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

TX_OVER interrupt is active

ACTIVE

IC_RX_TL_Register

type IC_RX_TL_Register is record
   RX_TL         : IC_RX_TL_RX_TL_Field := 16#0#;
   Reserved_8_31 : HAL.UInt24 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
RX_TL
Reserved_8_31

IC_RX_TL_RX_TL_Field

subtype IC_RX_TL_RX_TL_Field is HAL.UInt8;

IC_RXFLR_Register

type IC_RXFLR_Register is record
   RXFLR         : IC_RXFLR_RXFLR_Field;
   Reserved_5_31 : HAL.UInt27;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
RXFLR
Reserved_5_31

IC_RXFLR_RXFLR_Field

subtype IC_RXFLR_RXFLR_Field is HAL.UInt5;

IC_SAR_IC_SAR_Field

subtype IC_SAR_IC_SAR_Field is HAL.UInt10;

IC_SAR_Register

type IC_SAR_Register is record
   IC_SAR         : IC_SAR_IC_SAR_Field := 16#55#;
   Reserved_10_31 : HAL.UInt22 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_SAR
Reserved_10_31

IC_SDA_HOLD_IC_SDA_RX_HOLD_Field

subtype IC_SDA_HOLD_IC_SDA_RX_HOLD_Field is HAL.UInt8;

IC_SDA_HOLD_IC_SDA_TX_HOLD_Field

subtype IC_SDA_HOLD_IC_SDA_TX_HOLD_Field is HAL.UInt16;

IC_SDA_HOLD_Register

type IC_SDA_HOLD_Register is record
   IC_SDA_TX_HOLD : IC_SDA_HOLD_IC_SDA_TX_HOLD_Field := 16#1#;
   IC_SDA_RX_HOLD : IC_SDA_HOLD_IC_SDA_RX_HOLD_Field := 16#0#;
   Reserved_24_31 : HAL.UInt8 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_SDA_TX_HOLD
IC_SDA_RX_HOLD
Reserved_24_31

IC_SDA_SETUP_Register

type IC_SDA_SETUP_Register is record
   SDA_SETUP     : IC_SDA_SETUP_SDA_SETUP_Field := 16#64#;
   Reserved_8_31 : HAL.UInt24 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
SDA_SETUP
Reserved_8_31

IC_SDA_SETUP_SDA_SETUP_Field

subtype IC_SDA_SETUP_SDA_SETUP_Field is HAL.UInt8;

IC_SLV_DATA_NACK_ONLY_NACK_Field

type IC_SLV_DATA_NACK_ONLY_NACK_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Slave receiver generates NACK upon data reception only

ENABLED

IC_SLV_DATA_NACK_ONLY_Register

type IC_SLV_DATA_NACK_ONLY_Register is record
   NACK          : IC_SLV_DATA_NACK_ONLY_NACK_Field :=
                    RP2040_SVD.I2C.DISABLED;
   Reserved_1_31 : HAL.UInt31 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
NACK
Reserved_1_31

IC_SS_SCL_HCNT_IC_SS_SCL_HCNT_Field

subtype IC_SS_SCL_HCNT_IC_SS_SCL_HCNT_Field is HAL.UInt16;

IC_SS_SCL_HCNT_Register

type IC_SS_SCL_HCNT_Register is record
   IC_SS_SCL_HCNT : IC_SS_SCL_HCNT_IC_SS_SCL_HCNT_Field := 16#28#;
   Reserved_16_31 : HAL.UInt16 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_SS_SCL_HCNT
Reserved_16_31

IC_SS_SCL_LCNT_IC_SS_SCL_LCNT_Field

subtype IC_SS_SCL_LCNT_IC_SS_SCL_LCNT_Field is HAL.UInt16;

IC_SS_SCL_LCNT_Register

type IC_SS_SCL_LCNT_Register is record
   IC_SS_SCL_LCNT : IC_SS_SCL_LCNT_IC_SS_SCL_LCNT_Field := 16#2F#;
   Reserved_16_31 : HAL.UInt16 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_SS_SCL_LCNT
Reserved_16_31

IC_STATUS_ACTIVITY_Field

type IC_STATUS_ACTIVITY_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

I2C is active

ACTIVE

IC_STATUS_MST_ACTIVITY_Field

type IC_STATUS_MST_ACTIVITY_Field is
   IDLE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
IDLE

Master not idle

ACTIVE

IC_STATUS_Register

type IC_STATUS_Register is record
   ACTIVITY      : IC_STATUS_ACTIVITY_Field;
   TFNF          : IC_STATUS_TFNF_Field;
   TFE           : IC_STATUS_TFE_Field;
   RFNE          : IC_STATUS_RFNE_Field;
   RFF           : IC_STATUS_RFF_Field;
   MST_ACTIVITY  : IC_STATUS_MST_ACTIVITY_Field;
   SLV_ACTIVITY  : IC_STATUS_SLV_ACTIVITY_Field;
   Reserved_7_31 : HAL.UInt25;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
ACTIVITY
TFNF
TFE
RFNE
RFF
MST_ACTIVITY
SLV_ACTIVITY
Reserved_7_31

IC_STATUS_RFF_Field

type IC_STATUS_RFF_Field is
   NOT_FULL,
   FULL)
  with Size => 1;
Enumeration Literal
NOT_FULL

Rx FIFO is full

FULL

IC_STATUS_RFNE_Field

type IC_STATUS_RFNE_Field is
   EMPTY,
   NOT_EMPTY)
  with Size => 1;
Enumeration Literal
EMPTY

Rx FIFO not empty

NOT_EMPTY

IC_STATUS_SLV_ACTIVITY_Field

type IC_STATUS_SLV_ACTIVITY_Field is
   IDLE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
IDLE

Slave not idle

ACTIVE

IC_STATUS_TFE_Field

type IC_STATUS_TFE_Field is
   NON_EMPTY,
   EMPTY)
  with Size => 1;
Enumeration Literal
NON_EMPTY

Tx FIFO is empty

EMPTY

IC_STATUS_TFNF_Field

type IC_STATUS_TFNF_Field is
   FULL,
   NOT_FULL)
  with Size => 1;
Enumeration Literal
FULL

Tx FIFO not full

NOT_FULL

IC_TAR_GC_OR_START_Field

type IC_TAR_GC_OR_START_Field is
   GENERAL_CALL,
   START_BYTE)
  with Size => 1;
Enumeration Literal
GENERAL_CALL

START byte transmission

START_BYTE

IC_TAR_IC_TAR_Field

subtype IC_TAR_IC_TAR_Field is HAL.UInt10;

IC_TAR_Register

type IC_TAR_Register is record
   IC_TAR         : IC_TAR_IC_TAR_Field := 16#55#;
   GC_OR_START    : IC_TAR_GC_OR_START_Field :=
                     RP2040_SVD.I2C.GENERAL_CALL;
   SPECIAL        : IC_TAR_SPECIAL_Field := RP2040_SVD.I2C.DISABLED;
   Reserved_12_31 : HAL.UInt20 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
IC_TAR
GC_OR_START
SPECIAL
Reserved_12_31

IC_TAR_SPECIAL_Field

type IC_TAR_SPECIAL_Field is
   DISABLED,
   ENABLED)
  with Size => 1;
Enumeration Literal
DISABLED

Enables programming of GENERAL_CALL or START_BYTE transmission

ENABLED

IC_TX_ABRT_SOURCE_ABRT_10ADDR1_NOACK_Field

type IC_TX_ABRT_SOURCE_ABRT_10ADDR1_NOACK_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

Byte 1 of 10Bit Address not ACKed by any slave

ACTIVE

IC_TX_ABRT_SOURCE_ABRT_10ADDR2_NOACK_Field

type IC_TX_ABRT_SOURCE_ABRT_10ADDR2_NOACK_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

Byte 2 of 10Bit Address not ACKed by any slave

ACTIVE

IC_TX_ABRT_SOURCE_ABRT_10B_RD_NORSTRT_Field

type IC_TX_ABRT_SOURCE_ABRT_10B_RD_NORSTRT_Field is
   ABRT_10B_RD_VOID,
   ABRT_10B_RD_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_10B_RD_VOID

Master trying to read in 10Bit addressing mode when RESTART disabled

ABRT_10B_RD_GENERATED

IC_TX_ABRT_SOURCE_ABRT_7B_ADDR_NOACK_Field

type IC_TX_ABRT_SOURCE_ABRT_7B_ADDR_NOACK_Field is
   INACTIVE,
   ACTIVE)
  with Size => 1;
Enumeration Literal
INACTIVE

This abort is generated because of NOACK for 7-bit address

ACTIVE

IC_TX_ABRT_SOURCE_ABRT_GCALL_NOACK_Field

type IC_TX_ABRT_SOURCE_ABRT_GCALL_NOACK_Field is
   ABRT_GCALL_NOACK_VOID,
   ABRT_GCALL_NOACK_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_GCALL_NOACK_VOID

GCALL not ACKed by any slave

ABRT_GCALL_NOACK_GENERATED

IC_TX_ABRT_SOURCE_ABRT_GCALL_READ_Field

type IC_TX_ABRT_SOURCE_ABRT_GCALL_READ_Field is
   ABRT_GCALL_READ_VOID,
   ABRT_GCALL_READ_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_GCALL_READ_VOID

GCALL is followed by read from bus

ABRT_GCALL_READ_GENERATED

IC_TX_ABRT_SOURCE_ABRT_HS_ACKDET_Field

type IC_TX_ABRT_SOURCE_ABRT_HS_ACKDET_Field is
   ABRT_HS_ACK_VOID,
   ABRT_HS_ACK_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_HS_ACK_VOID

HS Master code ACKed in HS Mode

ABRT_HS_ACK_GENERATED

IC_TX_ABRT_SOURCE_ABRT_HS_NORSTRT_Field

type IC_TX_ABRT_SOURCE_ABRT_HS_NORSTRT_Field is
   ABRT_HS_NORSTRT_VOID,
   ABRT_HS_NORSTRT_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_HS_NORSTRT_VOID

User trying to switch Master to HS mode when RESTART disabled

ABRT_HS_NORSTRT_GENERATED

IC_TX_ABRT_SOURCE_ABRT_MASTER_DIS_Field

type IC_TX_ABRT_SOURCE_ABRT_MASTER_DIS_Field is
   ABRT_MASTER_DIS_VOID,
   ABRT_MASTER_DIS_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_MASTER_DIS_VOID

User initiating master operation when MASTER disabled

ABRT_MASTER_DIS_GENERATED

IC_TX_ABRT_SOURCE_ABRT_SBYTE_ACKDET_Field

type IC_TX_ABRT_SOURCE_ABRT_SBYTE_ACKDET_Field is
   ABRT_SBYTE_ACKDET_VOID,
   ABRT_SBYTE_ACKDET_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_SBYTE_ACKDET_VOID

ACK detected for START byte

ABRT_SBYTE_ACKDET_GENERATED

IC_TX_ABRT_SOURCE_ABRT_SBYTE_NORSTRT_Field

type IC_TX_ABRT_SOURCE_ABRT_SBYTE_NORSTRT_Field is
   ABRT_SBYTE_NORSTRT_VOID,
   ABRT_SBYTE_NORSTRT_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_SBYTE_NORSTRT_VOID

User trying to send START byte when RESTART disabled

ABRT_SBYTE_NORSTRT_GENERATED

IC_TX_ABRT_SOURCE_ABRT_SLV_ARBLOST_Field

type IC_TX_ABRT_SOURCE_ABRT_SLV_ARBLOST_Field is
   ABRT_SLV_ARBLOST_VOID,
   ABRT_SLV_ARBLOST_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_SLV_ARBLOST_VOID

Slave lost arbitration to remote master

ABRT_SLV_ARBLOST_GENERATED

IC_TX_ABRT_SOURCE_ABRT_SLVFLUSH_TXFIFO_Field

type IC_TX_ABRT_SOURCE_ABRT_SLVFLUSH_TXFIFO_Field is
   ABRT_SLVFLUSH_TXFIFO_VOID,
   ABRT_SLVFLUSH_TXFIFO_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_SLVFLUSH_TXFIFO_VOID

Slave flushes existing data in TX-FIFO upon getting read command

ABRT_SLVFLUSH_TXFIFO_GENERATED

IC_TX_ABRT_SOURCE_ABRT_SLVRD_INTX_Field

type IC_TX_ABRT_SOURCE_ABRT_SLVRD_INTX_Field is
   ABRT_SLVRD_INTX_VOID,
   ABRT_SLVRD_INTX_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_SLVRD_INTX_VOID

Slave trying to transmit to remote master in read mode

ABRT_SLVRD_INTX_GENERATED

IC_TX_ABRT_SOURCE_ABRT_TXDATA_NOACK_Field

type IC_TX_ABRT_SOURCE_ABRT_TXDATA_NOACK_Field is
   ABRT_TXDATA_NOACK_VOID,
   ABRT_TXDATA_NOACK_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_TXDATA_NOACK_VOID

Transmitted data not ACKed by addressed slave

ABRT_TXDATA_NOACK_GENERATED

IC_TX_ABRT_SOURCE_ABRT_USER_ABRT_Field

type IC_TX_ABRT_SOURCE_ABRT_USER_ABRT_Field is
   ABRT_USER_ABRT_VOID,
   ABRT_USER_ABRT_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_USER_ABRT_VOID

Transfer abort detected by master

ABRT_USER_ABRT_GENERATED

IC_TX_ABRT_SOURCE_ARB_LOST_Field

type IC_TX_ABRT_SOURCE_ARB_LOST_Field is
   ABRT_LOST_VOID,
   ABRT_LOST_GENERATED)
  with Size => 1;
Enumeration Literal
ABRT_LOST_VOID

Master or Slave-Transmitter lost arbitration

ABRT_LOST_GENERATED

IC_TX_ABRT_SOURCE_Register

type IC_TX_ABRT_SOURCE_Register is record
   ABRT_7B_ADDR_NOACK   : IC_TX_ABRT_SOURCE_ABRT_7B_ADDR_NOACK_Field;
   ABRT_10ADDR1_NOACK   : IC_TX_ABRT_SOURCE_ABRT_10ADDR1_NOACK_Field;
   ABRT_10ADDR2_NOACK   : IC_TX_ABRT_SOURCE_ABRT_10ADDR2_NOACK_Field;
   ABRT_TXDATA_NOACK    : IC_TX_ABRT_SOURCE_ABRT_TXDATA_NOACK_Field;
   ABRT_GCALL_NOACK     : IC_TX_ABRT_SOURCE_ABRT_GCALL_NOACK_Field;
   ABRT_GCALL_READ      : IC_TX_ABRT_SOURCE_ABRT_GCALL_READ_Field;
   ABRT_HS_ACKDET       : IC_TX_ABRT_SOURCE_ABRT_HS_ACKDET_Field;
   ABRT_SBYTE_ACKDET    : IC_TX_ABRT_SOURCE_ABRT_SBYTE_ACKDET_Field;
   ABRT_HS_NORSTRT      : IC_TX_ABRT_SOURCE_ABRT_HS_NORSTRT_Field;
   ABRT_SBYTE_NORSTRT   : IC_TX_ABRT_SOURCE_ABRT_SBYTE_NORSTRT_Field;
   ABRT_10B_RD_NORSTRT  : IC_TX_ABRT_SOURCE_ABRT_10B_RD_NORSTRT_Field;
   ABRT_MASTER_DIS      : IC_TX_ABRT_SOURCE_ABRT_MASTER_DIS_Field;
   ARB_LOST             : IC_TX_ABRT_SOURCE_ARB_LOST_Field;
   ABRT_SLVFLUSH_TXFIFO : IC_TX_ABRT_SOURCE_ABRT_SLVFLUSH_TXFIFO_Field;
   ABRT_SLV_ARBLOST     : IC_TX_ABRT_SOURCE_ABRT_SLV_ARBLOST_Field;
   ABRT_SLVRD_INTX      : IC_TX_ABRT_SOURCE_ABRT_SLVRD_INTX_Field;
   ABRT_USER_ABRT       : IC_TX_ABRT_SOURCE_ABRT_USER_ABRT_Field;
   Reserved_17_22       : HAL.UInt6;
   TX_FLUSH_CNT         : IC_TX_ABRT_SOURCE_TX_FLUSH_CNT_Field;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
ABRT_7B_ADDR_NOACK
ABRT_10ADDR1_NOACK
ABRT_10ADDR2_NOACK
ABRT_TXDATA_NOACK
ABRT_GCALL_NOACK
ABRT_GCALL_READ
ABRT_HS_ACKDET
ABRT_SBYTE_ACKDET
ABRT_HS_NORSTRT
ABRT_SBYTE_NORSTRT
ABRT_10B_RD_NORSTRT
ABRT_MASTER_DIS
ARB_LOST
ABRT_SLVFLUSH_TXFIFO
ABRT_SLV_ARBLOST
ABRT_SLVRD_INTX
ABRT_USER_ABRT
Reserved_17_22
TX_FLUSH_CNT

IC_TX_ABRT_SOURCE_TX_FLUSH_CNT_Field

subtype IC_TX_ABRT_SOURCE_TX_FLUSH_CNT_Field is HAL.UInt9;

IC_TX_TL_Register

type IC_TX_TL_Register is record
   TX_TL         : IC_TX_TL_TX_TL_Field := 16#0#;
   Reserved_8_31 : HAL.UInt24 := 16#0#;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
TX_TL
Reserved_8_31

IC_TX_TL_TX_TL_Field

subtype IC_TX_TL_TX_TL_Field is HAL.UInt8;

IC_TXFLR_Register

type IC_TXFLR_Register is record
   TXFLR         : IC_TXFLR_TXFLR_Field;
   Reserved_5_31 : HAL.UInt27;
end record
  with Volatile_Full_Access, Object_Size => 32,
       Bit_Order => System.Low_Order_First;
Record fields
TXFLR
Reserved_5_31

IC_TXFLR_TXFLR_Field

subtype IC_TXFLR_TXFLR_Field is HAL.UInt5;