------------- Registers -- -------------
type BAUDR_Register is record
SCKDV : BAUDR_SCKDV_Field := 16#0#;
Reserved_16_31 : HAL.UInt16 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype BAUDR_SCKDV_Field is HAL.UInt16;
subtype CTRLR0_CFS_Field is HAL.UInt4;
subtype CTRLR0_DFS_32_Field is HAL.UInt5;
subtype CTRLR0_DFS_Field is HAL.UInt4;
subtype CTRLR0_FRF_Field is HAL.UInt2;
type CTRLR0_Register is record
DFS : CTRLR0_DFS_Field := 16#0#;
FRF : CTRLR0_FRF_Field := 16#0#;
SCPH : Boolean := False;
SCPOL : Boolean := False;
TMOD : CTRLR0_TMOD_Field := RP2040_SVD.XIP_SSI.TX_AND_RX;
SLV_OE : Boolean := False;
SRL : Boolean := False;
CFS : CTRLR0_CFS_Field := 16#0#;
DFS_32 : CTRLR0_DFS_32_Field := 16#0#;
SPI_FRF : CTRLR0_SPI_FRF_Field := RP2040_SVD.XIP_SSI.STD;
Reserved_23_23 : HAL.Bit := 16#0#;
SSTE : Boolean := False;
Reserved_25_31 : HAL.UInt7 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type CTRLR0_SPI_FRF_Field is
STD,
DUAL,
QUAD)
with Size => 2;
Dual-SPI frame format; two bits per SCK, half-duplex
Quad-SPI frame format; four bits per SCK, half-duplex
type CTRLR0_TMOD_Field is
TX_AND_RX,
TX_ONLY,
RX_ONLY,
EEPROM_READ)
with Size => 2;
Transmit only (not for FRF == 0, standard SPI mode)
Receive only (not for FRF == 0, standard SPI mode)
EEPROM read mode (TX then RX; RX starts after control data TX'd)
subtype CTRLR1_NDF_Field is HAL.UInt16;
type CTRLR1_Register is record
NDF : CTRLR1_NDF_Field := 16#0#;
Reserved_16_31 : HAL.UInt16 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type DMACR_Register is record
RDMAE : Boolean := False;
TDMAE : Boolean := False;
Reserved_2_31 : HAL.UInt30 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype DMARDLR_DMARDL_Field is HAL.UInt8;
type DMARDLR_Register is record
DMARDL : DMARDLR_DMARDL_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 DMATDLR_DMATDL_Field is HAL.UInt8;
type DMATDLR_Register is record
DMATDL : DMATDLR_DMATDL_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;
type ICR_Register is record
ICR : Boolean;
Reserved_1_31 : HAL.UInt31;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type IMR_Register is record
TXEIM : Boolean := False;
TXOIM : Boolean := False;
RXUIM : Boolean := False;
RXOIM : Boolean := False;
RXFIM : Boolean := False;
MSTIM : Boolean := False;
Reserved_6_31 : HAL.UInt26 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type ISR_Register is record
TXEIS : Boolean;
TXOIS : Boolean;
RXUIS : Boolean;
RXOIS : Boolean;
RXFIS : Boolean;
MSTIS : Boolean;
Reserved_6_31 : HAL.UInt26;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type MSTICR_Register is record
MSTICR : Boolean;
Reserved_1_31 : HAL.UInt31;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type MWCR_Register is record
MWMOD : Boolean := False;
MDD : Boolean := False;
MHS : Boolean := False;
Reserved_3_31 : HAL.UInt29 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type RISR_Register is record
TXEIR : Boolean;
TXOIR : Boolean;
RXUIR : Boolean;
RXOIR : Boolean;
RXFIR : Boolean;
MSTIR : Boolean;
Reserved_6_31 : HAL.UInt26;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type RX_SAMPLE_DLY_Register is record
RSD : RX_SAMPLE_DLY_RSD_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 RX_SAMPLE_DLY_RSD_Field is HAL.UInt8;
type RXFLR_Register is record
RXTFL : RXFLR_RXTFL_Field;
Reserved_8_31 : HAL.UInt24;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype RXFLR_RXTFL_Field is HAL.UInt8;
type RXFTLR_Register is record
RFT : RXFTLR_RFT_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 RXFTLR_RFT_Field is HAL.UInt8;
type RXOICR_Register is record
RXOICR : Boolean;
Reserved_1_31 : HAL.UInt31;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type RXUICR_Register is record
RXUICR : Boolean;
Reserved_1_31 : HAL.UInt31;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type SER_Register is record
SER : Boolean := False;
Reserved_1_31 : HAL.UInt31 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype SPI_CTRLR0_ADDR_L_Field is HAL.UInt4;
type SPI_CTRLR0_INST_L_Field is
NONE,
Val_4B,
Val_8B,
Val_16B)
with Size => 2;
4-bit instruction
8-bit instruction
16-bit instruction
type SPI_CTRLR0_Register is record
TRANS_TYPE : SPI_CTRLR0_TRANS_TYPE_Field :=
RP2040_SVD.XIP_SSI.Val_1C1A;
ADDR_L : SPI_CTRLR0_ADDR_L_Field := 16#0#;
Reserved_6_7 : HAL.UInt2 := 16#0#;
INST_L : SPI_CTRLR0_INST_L_Field := RP2040_SVD.XIP_SSI.NONE;
Reserved_10_10 : HAL.Bit := 16#0#;
WAIT_CYCLES : SPI_CTRLR0_WAIT_CYCLES_Field := 16#0#;
SPI_DDR_EN : Boolean := False;
INST_DDR_EN : Boolean := False;
SPI_RXDS_EN : Boolean := False;
Reserved_19_23 : HAL.UInt5 := 16#0#;
XIP_CMD : SPI_CTRLR0_XIP_CMD_Field := 16#3#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type SPI_CTRLR0_TRANS_TYPE_Field is
Val_1C1A,
Val_1C2A,
Val_2C2A)
with Size => 2;
Command in standard SPI format, address in format specified by FRF
Command and address both in format specified by FRF (e.g. Dual-SPI)
subtype SPI_CTRLR0_WAIT_CYCLES_Field is HAL.UInt5;
subtype SPI_CTRLR0_XIP_CMD_Field is HAL.UInt8;
type SR_Register is record
BUSY : Boolean;
TFNF : Boolean;
TFE : Boolean;
RFNE : Boolean;
RFF : Boolean;
TXE : Boolean;
DCOL : Boolean;
Reserved_7_31 : HAL.UInt25;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type SSIENR_Register is record
SSI_EN : Boolean := False;
Reserved_1_31 : HAL.UInt31 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type TXD_DRIVE_EDGE_Register is record
TDE : TXD_DRIVE_EDGE_TDE_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 TXD_DRIVE_EDGE_TDE_Field is HAL.UInt8;
type TXFLR_Register is record
TFTFL : TXFLR_TFTFL_Field;
Reserved_8_31 : HAL.UInt24;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype TXFLR_TFTFL_Field is HAL.UInt8;
type TXFTLR_Register is record
TFT : TXFTLR_TFT_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 TXFTLR_TFT_Field is HAL.UInt8;
type TXOICR_Register is record
TXOICR : Boolean;
Reserved_1_31 : HAL.UInt31;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
XIP_SSI_Periph : aliased XIP_SSI_Peripheral
with Import, Address => XIP_SSI_Base;
type XIP_SSI_Peripheral is record
CTRLR0 : aliased CTRLR0_Register;
CTRLR1 : aliased CTRLR1_Register;
SSIENR : aliased SSIENR_Register;
MWCR : aliased MWCR_Register;
SER : aliased SER_Register;
BAUDR : aliased BAUDR_Register;
TXFTLR : aliased TXFTLR_Register;
RXFTLR : aliased RXFTLR_Register;
TXFLR : aliased TXFLR_Register;
RXFLR : aliased RXFLR_Register;
SR : aliased SR_Register;
IMR : aliased IMR_Register;
ISR : aliased ISR_Register;
RISR : aliased RISR_Register;
TXOICR : aliased TXOICR_Register;
RXOICR : aliased RXOICR_Register;
RXUICR : aliased RXUICR_Register;
MSTICR : aliased MSTICR_Register;
ICR : aliased ICR_Register;
DMACR : aliased DMACR_Register;
DMATDLR : aliased DMATDLR_Register;
DMARDLR : aliased DMARDLR_Register;
IDR : aliased HAL.UInt32;
SSI_VERSION_ID : aliased HAL.UInt32;
DR0 : aliased HAL.UInt32;
RX_SAMPLE_DLY : aliased RX_SAMPLE_DLY_Register;
SPI_CTRLR0 : aliased SPI_CTRLR0_Register;
TXD_DRIVE_EDGE : aliased TXD_DRIVE_EDGE_Register;
end record
with Volatile;