------------- Registers -- -------------
I2C0_Periph : aliased I2C_Peripheral
with Import, Address => I2C0_Base;
I2C1_Periph : aliased I2C_Peripheral
with Import, Address => I2C1_Base;
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;
type IC_ACK_GENERAL_CALL_ACK_GEN_CALL_Field is
DISABLED,
ENABLED)
with Size => 1;
Generate ACK for a General Call
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
subtype IC_COMP_PARAM_1_APB_DATA_WIDTH_Field is HAL.UInt2;
subtype IC_COMP_PARAM_1_MAX_SPEED_MODE_Field is HAL.UInt2;
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;
subtype IC_COMP_PARAM_1_RX_BUFFER_DEPTH_Field is HAL.UInt8;
subtype IC_COMP_PARAM_1_TX_BUFFER_DEPTH_Field is HAL.UInt8;
type IC_CON_IC_10BITADDR_MASTER_Field is
ADDR_7BITS,
ADDR_10BITS)
with Size => 1;
Master 10Bit addressing mode
type IC_CON_IC_10BITADDR_SLAVE_Field is
ADDR_7BITS,
ADDR_10BITS)
with Size => 1;
Slave 10Bit addressing
type IC_CON_IC_RESTART_EN_Field is
DISABLED,
ENABLED)
with Size => 1;
Master restart enabled
type IC_CON_IC_SLAVE_DISABLE_Field is
SLAVE_ENABLED,
SLAVE_DISABLED)
with Size => 1;
Slave mode is disabled
type IC_CON_MASTER_MODE_Field is
DISABLED,
ENABLED)
with Size => 1;
Master mode is enabled
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;
type IC_CON_RX_FIFO_FULL_HLD_CTRL_Field is
DISABLED,
ENABLED)
with Size => 1;
Hold bus when RX_FIFO is full
type IC_CON_SPEED_Field is
STANDARD,
FAST,
HIGH)
with Size => 2;
Fast or Fast Plus mode of operation
High Speed mode of operation
type IC_CON_STOP_DET_IFADDRESSED_Field is
DISABLED,
ENABLED)
with Size => 1;
slave issues STOP_DET intr only if addressed
type IC_CON_TX_EMPTY_CTRL_Field is
DISABLED,
ENABLED)
with Size => 1;
Controlled generation of TX_EMPTY interrupt
type IC_DATA_CMD_CMD_Field is
WRITE,
READ)
with Size => 1;
Master Read Command
subtype IC_DATA_CMD_DAT_Field is HAL.UInt8;
type IC_DATA_CMD_FIRST_DATA_BYTE_Field is
INACTIVE,
ACTIVE)
with Size => 1;
Non sequential data byte received
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;
type IC_DATA_CMD_RESTART_Field is
DISABLE,
ENABLE)
with Size => 1;
Issue RESTART before this command
type IC_DATA_CMD_STOP_Field is
DISABLE,
ENABLE)
with Size => 1;
Issue STOP after this command
type IC_DMA_CR_RDMAE_Field is
DISABLED,
ENABLED)
with Size => 1;
Receive FIFO DMA channel enabled
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;
type IC_DMA_CR_TDMAE_Field is
DISABLED,
ENABLED)
with Size => 1;
Transmit FIFO DMA channel enabled
subtype IC_DMA_RDLR_DMARDL_Field is HAL.UInt4;
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;
subtype IC_DMA_TDLR_DMATDL_Field is HAL.UInt4;
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;
type IC_ENABLE_ABORT_Field is
DISABLE,
ENABLED)
with Size => 1;
ABORT operation in progress
type IC_ENABLE_ENABLE_Field is
DISABLED,
ENABLED)
with Size => 1;
I2C is enabled
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;
type IC_ENABLE_STATUS_IC_EN_Field is
DISABLED,
ENABLED)
with Size => 1;
I2C enabled
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;
type IC_ENABLE_STATUS_SLV_DISABLED_WHILE_BUSY_Field is
INACTIVE,
ACTIVE)
with Size => 1;
Slave is disabled when it is active
type IC_ENABLE_STATUS_SLV_RX_DATA_LOST_Field is
INACTIVE,
ACTIVE)
with Size => 1;
Slave RX Data is lost
type IC_ENABLE_TX_CMD_BLOCK_Field is
NOT_BLOCKED,
BLOCKED)
with Size => 1;
Tx Command execution blocked
subtype IC_FS_SCL_HCNT_IC_FS_SCL_HCNT_Field is HAL.UInt16;
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;
subtype IC_FS_SCL_LCNT_IC_FS_SCL_LCNT_Field is HAL.UInt16;
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;
subtype IC_FS_SPKLEN_IC_FS_SPKLEN_Field is HAL.UInt8;
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;
type IC_INTR_MASK_M_ACTIVITY_Field is
ENABLED,
DISABLED)
with Size => 1;
ACTIVITY interrupt is unmasked
type IC_INTR_MASK_M_GEN_CALL_Field is
ENABLED,
DISABLED)
with Size => 1;
GEN_CALL interrupt is unmasked
type IC_INTR_MASK_M_RD_REQ_Field is
ENABLED,
DISABLED)
with Size => 1;
RD_REQ interrupt is unmasked
type IC_INTR_MASK_M_RESTART_DET_Field is
ENABLED,
DISABLED)
with Size => 1;
RESTART_DET interrupt is unmasked
type IC_INTR_MASK_M_RX_DONE_Field is
ENABLED,
DISABLED)
with Size => 1;
RX_DONE interrupt is unmasked
type IC_INTR_MASK_M_RX_FULL_Field is
ENABLED,
DISABLED)
with Size => 1;
RX_FULL interrupt is unmasked
type IC_INTR_MASK_M_RX_OVER_Field is
ENABLED,
DISABLED)
with Size => 1;
RX_OVER interrupt is unmasked
type IC_INTR_MASK_M_RX_UNDER_Field is
ENABLED,
DISABLED)
with Size => 1;
RX_UNDER interrupt is unmasked
type IC_INTR_MASK_M_START_DET_Field is
ENABLED,
DISABLED)
with Size => 1;
START_DET interrupt is unmasked
type IC_INTR_MASK_M_STOP_DET_Field is
ENABLED,
DISABLED)
with Size => 1;
STOP_DET interrupt is unmasked
type IC_INTR_MASK_M_TX_ABRT_Field is
ENABLED,
DISABLED)
with Size => 1;
TX_ABORT interrupt is unmasked
type IC_INTR_MASK_M_TX_EMPTY_Field is
ENABLED,
DISABLED)
with Size => 1;
TX_EMPTY interrupt is unmasked
type IC_INTR_MASK_M_TX_OVER_Field is
ENABLED,
DISABLED)
with Size => 1;
TX_OVER interrupt is unmasked
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;
type IC_INTR_STAT_R_ACTIVITY_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_ACTIVITY interrupt is active
type IC_INTR_STAT_R_GEN_CALL_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_GEN_CALL interrupt is active
type IC_INTR_STAT_R_RD_REQ_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_RD_REQ interrupt is active
type IC_INTR_STAT_R_RESTART_DET_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_RESTART_DET interrupt is active
type IC_INTR_STAT_R_RX_DONE_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_RX_DONE interrupt is active
type IC_INTR_STAT_R_RX_FULL_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_RX_FULL interrupt is active
type IC_INTR_STAT_R_RX_OVER_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_RX_OVER interrupt is active
type IC_INTR_STAT_R_RX_UNDER_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RX_UNDER interrupt is active
type IC_INTR_STAT_R_START_DET_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_START_DET interrupt is active
type IC_INTR_STAT_R_STOP_DET_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_STOP_DET interrupt is active
type IC_INTR_STAT_R_TX_ABRT_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_TX_ABRT interrupt is active
type IC_INTR_STAT_R_TX_EMPTY_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_TX_EMPTY interrupt is active
type IC_INTR_STAT_R_TX_OVER_Field is
INACTIVE,
ACTIVE)
with Size => 1;
R_TX_OVER interrupt is active
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;
type IC_RAW_INTR_STAT_ACTIVITY_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RAW_INTR_ACTIVITY interrupt is active
type IC_RAW_INTR_STAT_GEN_CALL_Field is
INACTIVE,
ACTIVE)
with Size => 1;
GEN_CALL interrupt is active
type IC_RAW_INTR_STAT_RD_REQ_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RD_REQ interrupt is active
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;
type IC_RAW_INTR_STAT_RESTART_DET_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RESTART_DET interrupt is active
type IC_RAW_INTR_STAT_RX_DONE_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RX_DONE interrupt is active
type IC_RAW_INTR_STAT_RX_FULL_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RX_FULL interrupt is active
type IC_RAW_INTR_STAT_RX_OVER_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RX_OVER interrupt is active
type IC_RAW_INTR_STAT_RX_UNDER_Field is
INACTIVE,
ACTIVE)
with Size => 1;
RX_UNDER interrupt is active
type IC_RAW_INTR_STAT_START_DET_Field is
INACTIVE,
ACTIVE)
with Size => 1;
START_DET interrupt is active
type IC_RAW_INTR_STAT_STOP_DET_Field is
INACTIVE,
ACTIVE)
with Size => 1;
STOP_DET interrupt is active
type IC_RAW_INTR_STAT_TX_ABRT_Field is
INACTIVE,
ACTIVE)
with Size => 1;
TX_ABRT interrupt is active
type IC_RAW_INTR_STAT_TX_EMPTY_Field is
INACTIVE,
ACTIVE)
with Size => 1;
TX_EMPTY interrupt is active
type IC_RAW_INTR_STAT_TX_OVER_Field is
INACTIVE,
ACTIVE)
with Size => 1;
TX_OVER interrupt is active
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;
subtype IC_RX_TL_RX_TL_Field is HAL.UInt8;
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;
subtype IC_RXFLR_RXFLR_Field is HAL.UInt5;
subtype IC_SAR_IC_SAR_Field is HAL.UInt10;
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;
subtype IC_SDA_HOLD_IC_SDA_RX_HOLD_Field is HAL.UInt8;
subtype IC_SDA_HOLD_IC_SDA_TX_HOLD_Field is HAL.UInt16;
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;
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;
subtype IC_SDA_SETUP_SDA_SETUP_Field is HAL.UInt8;
type IC_SLV_DATA_NACK_ONLY_NACK_Field is
DISABLED,
ENABLED)
with Size => 1;
Slave receiver generates NACK upon data reception only
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;
subtype IC_SS_SCL_HCNT_IC_SS_SCL_HCNT_Field is HAL.UInt16;
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;
subtype IC_SS_SCL_LCNT_IC_SS_SCL_LCNT_Field is HAL.UInt16;
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;
type IC_STATUS_ACTIVITY_Field is
INACTIVE,
ACTIVE)
with Size => 1;
I2C is active
type IC_STATUS_MST_ACTIVITY_Field is
IDLE,
ACTIVE)
with Size => 1;
Master not idle
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;
type IC_STATUS_RFF_Field is
NOT_FULL,
FULL)
with Size => 1;
Rx FIFO is full
type IC_STATUS_RFNE_Field is
EMPTY,
NOT_EMPTY)
with Size => 1;
Rx FIFO not empty
type IC_STATUS_SLV_ACTIVITY_Field is
IDLE,
ACTIVE)
with Size => 1;
Slave not idle
type IC_STATUS_TFE_Field is
NON_EMPTY,
EMPTY)
with Size => 1;
Tx FIFO is empty
type IC_STATUS_TFNF_Field is
FULL,
NOT_FULL)
with Size => 1;
Tx FIFO not full
type IC_TAR_GC_OR_START_Field is
GENERAL_CALL,
START_BYTE)
with Size => 1;
START byte transmission
subtype IC_TAR_IC_TAR_Field is HAL.UInt10;
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;
type IC_TAR_SPECIAL_Field is
DISABLED,
ENABLED)
with Size => 1;
Enables programming of GENERAL_CALL or START_BYTE transmission
type IC_TX_ABRT_SOURCE_ABRT_10ADDR1_NOACK_Field is
INACTIVE,
ACTIVE)
with Size => 1;
Byte 1 of 10Bit Address not ACKed by any slave
type IC_TX_ABRT_SOURCE_ABRT_10ADDR2_NOACK_Field is
INACTIVE,
ACTIVE)
with Size => 1;
Byte 2 of 10Bit Address not ACKed by any slave
type IC_TX_ABRT_SOURCE_ABRT_10B_RD_NORSTRT_Field is
ABRT_10B_RD_VOID,
ABRT_10B_RD_GENERATED)
with Size => 1;
Master trying to read in 10Bit addressing mode when RESTART disabled
type IC_TX_ABRT_SOURCE_ABRT_7B_ADDR_NOACK_Field is
INACTIVE,
ACTIVE)
with Size => 1;
This abort is generated because of NOACK for 7-bit address
type IC_TX_ABRT_SOURCE_ABRT_GCALL_NOACK_Field is
ABRT_GCALL_NOACK_VOID,
ABRT_GCALL_NOACK_GENERATED)
with Size => 1;
GCALL not ACKed by any slave
type IC_TX_ABRT_SOURCE_ABRT_GCALL_READ_Field is
ABRT_GCALL_READ_VOID,
ABRT_GCALL_READ_GENERATED)
with Size => 1;
GCALL is followed by read from bus
type IC_TX_ABRT_SOURCE_ABRT_HS_ACKDET_Field is
ABRT_HS_ACK_VOID,
ABRT_HS_ACK_GENERATED)
with Size => 1;
HS Master code ACKed in HS Mode
type IC_TX_ABRT_SOURCE_ABRT_HS_NORSTRT_Field is
ABRT_HS_NORSTRT_VOID,
ABRT_HS_NORSTRT_GENERATED)
with Size => 1;
User trying to switch Master to HS mode when RESTART disabled
type IC_TX_ABRT_SOURCE_ABRT_MASTER_DIS_Field is
ABRT_MASTER_DIS_VOID,
ABRT_MASTER_DIS_GENERATED)
with Size => 1;
User initiating master operation when MASTER disabled
type IC_TX_ABRT_SOURCE_ABRT_SBYTE_ACKDET_Field is
ABRT_SBYTE_ACKDET_VOID,
ABRT_SBYTE_ACKDET_GENERATED)
with Size => 1;
ACK detected for START byte
type IC_TX_ABRT_SOURCE_ABRT_SBYTE_NORSTRT_Field is
ABRT_SBYTE_NORSTRT_VOID,
ABRT_SBYTE_NORSTRT_GENERATED)
with Size => 1;
User trying to send START byte when RESTART disabled
type IC_TX_ABRT_SOURCE_ABRT_SLV_ARBLOST_Field is
ABRT_SLV_ARBLOST_VOID,
ABRT_SLV_ARBLOST_GENERATED)
with Size => 1;
Slave lost arbitration to remote master
type IC_TX_ABRT_SOURCE_ABRT_SLVFLUSH_TXFIFO_Field is
ABRT_SLVFLUSH_TXFIFO_VOID,
ABRT_SLVFLUSH_TXFIFO_GENERATED)
with Size => 1;
Slave flushes existing data in TX-FIFO upon getting read command
type IC_TX_ABRT_SOURCE_ABRT_SLVRD_INTX_Field is
ABRT_SLVRD_INTX_VOID,
ABRT_SLVRD_INTX_GENERATED)
with Size => 1;
Slave trying to transmit to remote master in read mode
type IC_TX_ABRT_SOURCE_ABRT_TXDATA_NOACK_Field is
ABRT_TXDATA_NOACK_VOID,
ABRT_TXDATA_NOACK_GENERATED)
with Size => 1;
Transmitted data not ACKed by addressed slave
type IC_TX_ABRT_SOURCE_ABRT_USER_ABRT_Field is
ABRT_USER_ABRT_VOID,
ABRT_USER_ABRT_GENERATED)
with Size => 1;
Transfer abort detected by master
type IC_TX_ABRT_SOURCE_ARB_LOST_Field is
ABRT_LOST_VOID,
ABRT_LOST_GENERATED)
with Size => 1;
Master or Slave-Transmitter lost arbitration
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;
subtype IC_TX_ABRT_SOURCE_TX_FLUSH_CNT_Field is HAL.UInt9;
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;
subtype IC_TX_TL_TX_TL_Field is HAL.UInt8;
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;
subtype IC_TXFLR_TXFLR_Field is HAL.UInt5;