------------- Registers -- -------------
subtype ADDR_ENDP_ADDRESS_Field is HAL.UInt7;
subtype ADDR_ENDP_ENDPOINT_Field is HAL.UInt4;
type ADDR_ENDP_Register is record
ADDRESS : ADDR_ENDP_ADDRESS_Field := 16#0#;
Reserved_7_15 : HAL.UInt9 := 16#0#;
ENDPOINT : ADDR_ENDP_ENDPOINT_Field := 16#0#;
Reserved_20_31 : HAL.UInt12 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type ADDR_ENDP_Register_1 is record
ADDRESS : ADDR_ENDP_ADDRESS_Field := 16#0#;
Reserved_7_15 : HAL.UInt9 := 16#0#;
ENDPOINT : ADDR_ENDP_ENDPOINT_Field := 16#0#;
Reserved_20_24 : HAL.UInt5 := 16#0#;
INTEP_DIR : Boolean := False;
INTEP_PREAMBLE : Boolean := False;
Reserved_27_31 : HAL.UInt5 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type BUFF_CPU_SHOULD_HANDLE_Register is record
EP0_IN : Boolean;
EP0_OUT : Boolean;
EP1_IN : Boolean;
EP1_OUT : Boolean;
EP2_IN : Boolean;
EP2_OUT : Boolean;
EP3_IN : Boolean;
EP3_OUT : Boolean;
EP4_IN : Boolean;
EP4_OUT : Boolean;
EP5_IN : Boolean;
EP5_OUT : Boolean;
EP6_IN : Boolean;
EP6_OUT : Boolean;
EP7_IN : Boolean;
EP7_OUT : Boolean;
EP8_IN : Boolean;
EP8_OUT : Boolean;
EP9_IN : Boolean;
EP9_OUT : Boolean;
EP10_IN : Boolean;
EP10_OUT : Boolean;
EP11_IN : Boolean;
EP11_OUT : Boolean;
EP12_IN : Boolean;
EP12_OUT : Boolean;
EP13_IN : Boolean;
EP13_OUT : Boolean;
EP14_IN : Boolean;
EP14_OUT : Boolean;
EP15_IN : Boolean;
EP15_OUT : Boolean;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type BUFF_STATUS_Register is record
EP0_IN : Boolean := False;
EP0_OUT : Boolean := False;
EP1_IN : Boolean := False;
EP1_OUT : Boolean := False;
EP2_IN : Boolean := False;
EP2_OUT : Boolean := False;
EP3_IN : Boolean := False;
EP3_OUT : Boolean := False;
EP4_IN : Boolean := False;
EP4_OUT : Boolean := False;
EP5_IN : Boolean := False;
EP5_OUT : Boolean := False;
EP6_IN : Boolean := False;
EP6_OUT : Boolean := False;
EP7_IN : Boolean := False;
EP7_OUT : Boolean := False;
EP8_IN : Boolean := False;
EP8_OUT : Boolean := False;
EP9_IN : Boolean := False;
EP9_OUT : Boolean := False;
EP10_IN : Boolean := False;
EP10_OUT : Boolean := False;
EP11_IN : Boolean := False;
EP11_OUT : Boolean := False;
EP12_IN : Boolean := False;
EP12_OUT : Boolean := False;
EP13_IN : Boolean := False;
EP13_OUT : Boolean := False;
EP14_IN : Boolean := False;
EP14_OUT : Boolean := False;
EP15_IN : Boolean := False;
EP15_OUT : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type EP_ABORT_DONE_Register is record
EP0_IN : Boolean := False;
EP0_OUT : Boolean := False;
EP1_IN : Boolean := False;
EP1_OUT : Boolean := False;
EP2_IN : Boolean := False;
EP2_OUT : Boolean := False;
EP3_IN : Boolean := False;
EP3_OUT : Boolean := False;
EP4_IN : Boolean := False;
EP4_OUT : Boolean := False;
EP5_IN : Boolean := False;
EP5_OUT : Boolean := False;
EP6_IN : Boolean := False;
EP6_OUT : Boolean := False;
EP7_IN : Boolean := False;
EP7_OUT : Boolean := False;
EP8_IN : Boolean := False;
EP8_OUT : Boolean := False;
EP9_IN : Boolean := False;
EP9_OUT : Boolean := False;
EP10_IN : Boolean := False;
EP10_OUT : Boolean := False;
EP11_IN : Boolean := False;
EP11_OUT : Boolean := False;
EP12_IN : Boolean := False;
EP12_OUT : Boolean := False;
EP13_IN : Boolean := False;
EP13_OUT : Boolean := False;
EP14_IN : Boolean := False;
EP14_OUT : Boolean := False;
EP15_IN : Boolean := False;
EP15_OUT : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type EP_ABORT_Register is record
EP0_IN : Boolean := False;
EP0_OUT : Boolean := False;
EP1_IN : Boolean := False;
EP1_OUT : Boolean := False;
EP2_IN : Boolean := False;
EP2_OUT : Boolean := False;
EP3_IN : Boolean := False;
EP3_OUT : Boolean := False;
EP4_IN : Boolean := False;
EP4_OUT : Boolean := False;
EP5_IN : Boolean := False;
EP5_OUT : Boolean := False;
EP6_IN : Boolean := False;
EP6_OUT : Boolean := False;
EP7_IN : Boolean := False;
EP7_OUT : Boolean := False;
EP8_IN : Boolean := False;
EP8_OUT : Boolean := False;
EP9_IN : Boolean := False;
EP9_OUT : Boolean := False;
EP10_IN : Boolean := False;
EP10_OUT : Boolean := False;
EP11_IN : Boolean := False;
EP11_OUT : Boolean := False;
EP12_IN : Boolean := False;
EP12_OUT : Boolean := False;
EP13_IN : Boolean := False;
EP13_OUT : Boolean := False;
EP14_IN : Boolean := False;
EP14_OUT : Boolean := False;
EP15_IN : Boolean := False;
EP15_OUT : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type EP_STALL_ARM_Register is record
EP0_IN : Boolean := False;
EP0_OUT : Boolean := False;
Reserved_2_31 : HAL.UInt30 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type EP_STATUS_STALL_NAK_Register is record
EP0_IN : Boolean := False;
EP0_OUT : Boolean := False;
EP1_IN : Boolean := False;
EP1_OUT : Boolean := False;
EP2_IN : Boolean := False;
EP2_OUT : Boolean := False;
EP3_IN : Boolean := False;
EP3_OUT : Boolean := False;
EP4_IN : Boolean := False;
EP4_OUT : Boolean := False;
EP5_IN : Boolean := False;
EP5_OUT : Boolean := False;
EP6_IN : Boolean := False;
EP6_OUT : Boolean := False;
EP7_IN : Boolean := False;
EP7_OUT : Boolean := False;
EP8_IN : Boolean := False;
EP8_OUT : Boolean := False;
EP9_IN : Boolean := False;
EP9_OUT : Boolean := False;
EP10_IN : Boolean := False;
EP10_OUT : Boolean := False;
EP11_IN : Boolean := False;
EP11_OUT : Boolean := False;
EP12_IN : Boolean := False;
EP12_OUT : Boolean := False;
EP13_IN : Boolean := False;
EP13_OUT : Boolean := False;
EP14_IN : Boolean := False;
EP14_OUT : Boolean := False;
EP15_IN : Boolean := False;
EP15_OUT : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype INT_EP_CTRL_INT_EP_ACTIVE_Field is HAL.UInt15;
type INT_EP_CTRL_Register is record
Reserved_0_0 : HAL.Bit := 16#0#;
INT_EP_ACTIVE : INT_EP_CTRL_INT_EP_ACTIVE_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 INTE_Register is record
HOST_CONN_DIS : Boolean := False;
HOST_RESUME : Boolean := False;
HOST_SOF : Boolean := False;
TRANS_COMPLETE : Boolean := False;
BUFF_STATUS : Boolean := False;
ERROR_DATA_SEQ : Boolean := False;
ERROR_RX_TIMEOUT : Boolean := False;
ERROR_RX_OVERFLOW : Boolean := False;
ERROR_BIT_STUFF : Boolean := False;
ERROR_CRC : Boolean := False;
STALL : Boolean := False;
VBUS_DETECT : Boolean := False;
BUS_RESET : Boolean := False;
DEV_CONN_DIS : Boolean := False;
DEV_SUSPEND : Boolean := False;
DEV_RESUME_FROM_HOST : Boolean := False;
SETUP_REQ : Boolean := False;
DEV_SOF : Boolean := False;
ABORT_DONE : Boolean := False;
EP_STALL_NAK : Boolean := False;
Reserved_20_31 : HAL.UInt12 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type INTF_Register is record
HOST_CONN_DIS : Boolean := False;
HOST_RESUME : Boolean := False;
HOST_SOF : Boolean := False;
TRANS_COMPLETE : Boolean := False;
BUFF_STATUS : Boolean := False;
ERROR_DATA_SEQ : Boolean := False;
ERROR_RX_TIMEOUT : Boolean := False;
ERROR_RX_OVERFLOW : Boolean := False;
ERROR_BIT_STUFF : Boolean := False;
ERROR_CRC : Boolean := False;
STALL : Boolean := False;
VBUS_DETECT : Boolean := False;
BUS_RESET : Boolean := False;
DEV_CONN_DIS : Boolean := False;
DEV_SUSPEND : Boolean := False;
DEV_RESUME_FROM_HOST : Boolean := False;
SETUP_REQ : Boolean := False;
DEV_SOF : Boolean := False;
ABORT_DONE : Boolean := False;
EP_STALL_NAK : Boolean := False;
Reserved_20_31 : HAL.UInt12 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type INTR_Register is record
HOST_CONN_DIS : Boolean;
HOST_RESUME : Boolean;
HOST_SOF : Boolean;
TRANS_COMPLETE : Boolean;
BUFF_STATUS : Boolean;
ERROR_DATA_SEQ : Boolean;
ERROR_RX_TIMEOUT : Boolean;
ERROR_RX_OVERFLOW : Boolean;
ERROR_BIT_STUFF : Boolean;
ERROR_CRC : Boolean;
STALL : Boolean;
VBUS_DETECT : Boolean;
BUS_RESET : Boolean;
DEV_CONN_DIS : Boolean;
DEV_SUSPEND : Boolean;
DEV_RESUME_FROM_HOST : Boolean;
SETUP_REQ : Boolean;
DEV_SOF : Boolean;
ABORT_DONE : Boolean;
EP_STALL_NAK : Boolean;
Reserved_20_31 : HAL.UInt12;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type INTS_Register is record
HOST_CONN_DIS : Boolean;
HOST_RESUME : Boolean;
HOST_SOF : Boolean;
TRANS_COMPLETE : Boolean;
BUFF_STATUS : Boolean;
ERROR_DATA_SEQ : Boolean;
ERROR_RX_TIMEOUT : Boolean;
ERROR_RX_OVERFLOW : Boolean;
ERROR_BIT_STUFF : Boolean;
ERROR_CRC : Boolean;
STALL : Boolean;
VBUS_DETECT : Boolean;
BUS_RESET : Boolean;
DEV_CONN_DIS : Boolean;
DEV_SUSPEND : Boolean;
DEV_RESUME_FROM_HOST : Boolean;
SETUP_REQ : Boolean;
DEV_SOF : Boolean;
ABORT_DONE : Boolean;
EP_STALL_NAK : Boolean;
Reserved_20_31 : HAL.UInt12;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type MAIN_CTRL_Register is record
CONTROLLER_EN : Boolean := False;
HOST_NDEVICE : Boolean := False;
Reserved_2_30 : HAL.UInt29 := 16#0#;
SIM_TIMING : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype NAK_POLL_DELAY_FS_Field is HAL.UInt10;
subtype NAK_POLL_DELAY_LS_Field is HAL.UInt10;
type NAK_POLL_Register is record
DELAY_LS : NAK_POLL_DELAY_LS_Field := 16#10#;
Reserved_10_15 : HAL.UInt6 := 16#0#;
DELAY_FS : NAK_POLL_DELAY_FS_Field := 16#10#;
Reserved_26_31 : HAL.UInt6 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type SIE_CTRL_Register is record
START_TRANS : Boolean := False;
SEND_SETUP : Boolean := False;
SEND_DATA : Boolean := False;
RECEIVE_DATA : Boolean := False;
STOP_TRANS : Boolean := False;
Reserved_5_5 : HAL.Bit := 16#0#;
PREAMBLE_EN : Boolean := False;
Reserved_7_7 : HAL.Bit := 16#0#;
SOF_SYNC : Boolean := False;
SOF_EN : Boolean := False;
KEEP_ALIVE_EN : Boolean := False;
VBUS_EN : Boolean := False;
RESUME : Boolean := False;
RESET_BUS : Boolean := False;
Reserved_14_14 : HAL.Bit := 16#0#;
PULLDOWN_EN : Boolean := False;
PULLUP_EN : Boolean := False;
RPU_OPT : Boolean := False;
TRANSCEIVER_PD : Boolean := False;
Reserved_19_23 : HAL.UInt5 := 16#0#;
DIRECT_DM : Boolean := False;
DIRECT_DP : Boolean := False;
DIRECT_EN : Boolean := False;
EP0_INT_NAK : Boolean := False;
EP0_INT_2BUF : Boolean := False;
EP0_INT_1BUF : Boolean := False;
EP0_DOUBLE_BUF : Boolean := False;
EP0_INT_STALL : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype SIE_STATUS_LINE_STATE_Field is HAL.UInt2;
type SIE_STATUS_Register is record
VBUS_DETECTED : Boolean := False;
Reserved_1_1 : HAL.Bit := 16#0#;
LINE_STATE : SIE_STATUS_LINE_STATE_Field := 16#0#;
SUSPENDED : Boolean := False;
Reserved_5_7 : HAL.UInt3 := 16#0#;
SPEED : SIE_STATUS_SPEED_Field := 16#0#;
VBUS_OVER_CURR : Boolean := False;
RESUME : Boolean := False;
Reserved_12_15 : HAL.UInt4 := 16#0#;
CONNECTED : Boolean := False;
SETUP_REC : Boolean := False;
TRANS_COMPLETE : Boolean := False;
BUS_RESET : Boolean := False;
Reserved_20_23 : HAL.UInt4 := 16#0#;
CRC_ERROR : Boolean := False;
BIT_STUFF_ERROR : Boolean := False;
RX_OVERFLOW : Boolean := False;
RX_TIMEOUT : Boolean := False;
NAK_REC : Boolean := False;
STALL_REC : Boolean := False;
ACK_REC : Boolean := False;
DATA_SEQ_ERROR : Boolean := False;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype SIE_STATUS_SPEED_Field is HAL.UInt2;
subtype SOF_RD_COUNT_Field is HAL.UInt11;
type SOF_RD_Register is record
COUNT : SOF_RD_COUNT_Field;
Reserved_11_31 : HAL.UInt21;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype SOF_WR_COUNT_Field is HAL.UInt11;
type SOF_WR_Register is record
COUNT : SOF_WR_COUNT_Field := 16#0#;
Reserved_11_31 : HAL.UInt21 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type USB_MUXING_Register is record
TO_PHY : Boolean := False;
TO_EXTPHY : Boolean := False;
TO_DIGITAL_PAD : Boolean := False;
SOFTCON : Boolean := False;
Reserved_4_31 : HAL.UInt28 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type USB_PWR_Register is record
VBUS_EN : Boolean := False;
VBUS_EN_OVERRIDE_EN : Boolean := False;
VBUS_DETECT : Boolean := False;
VBUS_DETECT_OVERRIDE_EN : Boolean := False;
OVERCURR_DETECT : Boolean := False;
OVERCURR_DETECT_EN : Boolean := False;
Reserved_6_31 : HAL.UInt26 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
USBCTRL_REGS_Periph : aliased USBCTRL_REGS_Peripheral
with Import, Address => USBCTRL_REGS_Base;
type USBCTRL_REGS_Peripheral is record
ADDR_ENDP : aliased ADDR_ENDP_Register;
ADDR_ENDP1 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP2 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP3 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP4 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP5 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP6 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP7 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP8 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP9 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP10 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP11 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP12 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP13 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP14 : aliased ADDR_ENDP_Register_1;
ADDR_ENDP15 : aliased ADDR_ENDP_Register_1;
MAIN_CTRL : aliased MAIN_CTRL_Register;
SOF_WR : aliased SOF_WR_Register;
SOF_RD : aliased SOF_RD_Register;
SIE_CTRL : aliased SIE_CTRL_Register;
SIE_STATUS : aliased SIE_STATUS_Register;
INT_EP_CTRL : aliased INT_EP_CTRL_Register;
BUFF_STATUS : aliased BUFF_STATUS_Register;
BUFF_CPU_SHOULD_HANDLE : aliased BUFF_CPU_SHOULD_HANDLE_Register;
EP_ABORT : aliased EP_ABORT_Register;
EP_ABORT_DONE : aliased EP_ABORT_DONE_Register;
EP_STALL_ARM : aliased EP_STALL_ARM_Register;
NAK_POLL : aliased NAK_POLL_Register;
EP_STATUS_STALL_NAK : aliased EP_STATUS_STALL_NAK_Register;
USB_MUXING : aliased USB_MUXING_Register;
USB_PWR : aliased USB_PWR_Register;
USBPHY_DIRECT : aliased USBPHY_DIRECT_Register;
USBPHY_DIRECT_OVERRIDE : aliased USBPHY_DIRECT_OVERRIDE_Register;
USBPHY_TRIM : aliased USBPHY_TRIM_Register;
INTR : aliased INTR_Register;
INTE : aliased INTE_Register;
INTF : aliased INTF_Register;
INTS : aliased INTS_Register;
end record
with Volatile;
type USBPHY_DIRECT_OVERRIDE_Register is record
DP_PULLUP_HISEL_OVERRIDE_EN : Boolean := False;
DM_PULLUP_HISEL_OVERRIDE_EN : Boolean := False;
DP_PULLUP_EN_OVERRIDE_EN : Boolean := False;
DP_PULLDN_EN_OVERRIDE_EN : Boolean := False;
DM_PULLDN_EN_OVERRIDE_EN : Boolean := False;
TX_DP_OE_OVERRIDE_EN : Boolean := False;
TX_DM_OE_OVERRIDE_EN : Boolean := False;
TX_DP_OVERRIDE_EN : Boolean := False;
TX_DM_OVERRIDE_EN : Boolean := False;
RX_PD_OVERRIDE_EN : Boolean := False;
TX_PD_OVERRIDE_EN : Boolean := False;
TX_FSSLEW_OVERRIDE_EN : Boolean := False;
DM_PULLUP_OVERRIDE_EN : Boolean := False;
Reserved_13_14 : HAL.UInt2 := 16#0#;
TX_DIFFMODE_OVERRIDE_EN : Boolean := False;
Reserved_16_31 : HAL.UInt16 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
type USBPHY_DIRECT_Register is record
DP_PULLUP_HISEL : Boolean := False;
DP_PULLUP_EN : Boolean := False;
DP_PULLDN_EN : Boolean := False;
Reserved_3_3 : HAL.Bit := 16#0#;
DM_PULLUP_HISEL : Boolean := False;
DM_PULLUP_EN : Boolean := False;
DM_PULLDN_EN : Boolean := False;
Reserved_7_7 : HAL.Bit := 16#0#;
TX_DP_OE : Boolean := False;
TX_DM_OE : Boolean := False;
TX_DP : Boolean := False;
TX_DM : Boolean := False;
RX_PD : Boolean := False;
TX_PD : Boolean := False;
TX_FSSLEW : Boolean := False;
TX_DIFFMODE : Boolean := False;
RX_DD : Boolean := False;
RX_DP : Boolean := False;
RX_DM : Boolean := False;
DP_OVCN : Boolean := False;
DM_OVCN : Boolean := False;
DP_OVV : Boolean := False;
DM_OVV : Boolean := False;
Reserved_23_31 : HAL.UInt9 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
subtype USBPHY_TRIM_DM_PULLDN_TRIM_Field is HAL.UInt5;
subtype USBPHY_TRIM_DP_PULLDN_TRIM_Field is HAL.UInt5;
type USBPHY_TRIM_Register is record
DP_PULLDN_TRIM : USBPHY_TRIM_DP_PULLDN_TRIM_Field := 16#1F#;
Reserved_5_7 : HAL.UInt3 := 16#0#;
DM_PULLDN_TRIM : USBPHY_TRIM_DM_PULLDN_TRIM_Field := 16#1F#;
Reserved_13_31 : HAL.UInt19 := 16#0#;
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;