[info]
name = "USB"
desc = "USB Controller"
[[int]]
name = "USB_GEN"
desc = "USB General Interrupt Request"
vect = 10
[[int]]
name = "USB_COM"
desc = "USB Endpoint/Pipe Interrupt Communication Request"
vect = 11
#---------------------------------------------------------------------#
[[reg]]
name = "UHWCON"
desc = "USB Hardware Control"
addr = "0xD7"
fields = [
{name="UVREGE", desc="USB pad regulator enable", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "USBCON"
desc = "USB Control"
addr = "0xD8"
cstm="0x20"
fields = [
{name="USBE", desc="USB macro Enable", rnge="7:7"},
{name="FRZCLK", desc="Freeze USB Clock", rnge="5:5"},
{name="OTGPADE", desc="VBUS Pad Enable", rnge="4:4"},
{name="VBUSTE", desc="VBUS Transition Interrupt Enable", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "USBSTA"
desc = "USB Status"
addr = "0xD9"
cstm="""\
read-only
0x02
"""
fields = [
{name="ID", desc="ID Status (Always 1)", rnge="1:1"},
{name="VBUS", desc="VBus Flag", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "USBINT"
desc = "USB Interrupt"
addr = "0xDA"
fields = [
{name="VBUSTI", desc="IVBUS Transition Interrupt Flag", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UDCON"
desc = "USB Device Control"
addr = "0xE0"
cstm="0x01"
fields = [
{name="RSTCPU", desc="Reset CPU Bit", rnge="3:3", cstm="read-only"},
{name="LSM", desc="Low Speed Mode Selection", rnge="2:2"},
{name="RMWKUP", desc="Remote Wake-Up", rnge="1:1"},
{name="DETACH", desc="Detach Device", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UDINT"
desc = "USB Device Interrupt"
addr = "0xE1"
fields = [
{name="UPRSMI", desc="Upstream Resume Interrupt Flag", rnge="6:6"},
{name="EORSMI", desc="End Of Resume Interrupt Flag", rnge="5:5"},
{name="WAKEUPI", desc="Wake-up CPU Interrupt Flag", rnge="4:4"},
{name="EORSTI", desc="End Of Reset Interrupt Flag", rnge="3:3"},
{name="SOFI", desc="Start Of Frame Interrupt Flag", rnge="2:2"},
{name="SUSPI", desc="Suspend Interrupt Flag", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UDIEN"
desc = "USB Device Interrupt Enable"
addr = "0xE2"
fields = [
{name="UPRSME", desc="Upstream Resume Interrupt Enable", rnge="6:6"},
{name="EORSME", desc="End Of Resume Interrupt Enable", rnge="5:5"},
{name="WAKEUPE", desc="Wake-up CPU Interrupt Enable", rnge="4:4"},
{name="EORSTE", desc="End Of Reset Interrupt Enable", rnge="3:3"},
{name="SOFE", desc="Start Of Frame Interrupt Enable", rnge="2:2"},
{name="SUSPE", desc="Suspend Interrupt Enable", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UDADDR"
desc = "USB Device Address"
addr = "0xE3"
fields = [
{name="ADDEN", desc="Address Enable", rnge="7:7", cstm="write-only"},
{name="UADD", desc="USB Address", rnge="6:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UDFNUMH"
desc = "USB Frame Number High"
addr = "0xE5"
cstm = "read-only"
fields = [
{name="FNUM", desc="Frame Number (High Bits)", rnge="2:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UDFNUML"
desc = "USB Frame Number Low"
addr = "0xE4"
cstm = "read-only"
fields = [
{name="FNUM", desc="Frame Number (Low Bits)", rnge="7:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UDMFN"
desc = "USB Frame Number CRC Error Flag"
addr = "0xE6"
cstm = "read-only"
fields = [
{name="FNCERR", desc="Frame Number CRC Error Flag", rnge="4:4"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UENUM"
desc = "USB Endpoint Number"
addr = "0xE9"
fields = [
{name="EPNUM", desc="Endpoint Number", rnge="2:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UERST"
desc = "USB Endpoint Reset"
addr = "0xEA"
fields = [
{name="EPRST6", desc="Endpoint 6 FIFO Reset", rnge="6:6"},
{name="EPRST5", desc="Endpoint 5 FIFO Reset", rnge="5:5"},
{name="EPRST4", desc="Endpoint 4 FIFO Reset", rnge="4:4"},
{name="EPRST3", desc="Endpoint 3 FIFO Reset", rnge="3:3"},
{name="EPRST2", desc="Endpoint 2 FIFO Reset", rnge="2:2"},
{name="EPRST1", desc="Endpoint 1 FIFO Reset", rnge="1:1"},
{name="EPRST0", desc="Endpoint 0 FIFO Reset", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UECONX"
desc = "USB Endpoint Control"
addr = "0xEB"
fields = [
{name="STALLRQ", desc="Stall Request Handshake", rnge="5:5", cstm="write-only"},
{name="STALLRQC", desc="Stall Request Clear Handshake", rnge="4:4", cstm="write-only"},
{name="RSTDT", desc="Reset Data Toggle", rnge="3:3", cstm="write-only"},
{name="EPEN", desc="Endpoint Enable", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UECFG0X"
desc = "USB Endpoint Configuration 0"
addr = "0xEC"
fields = [
{name="EPTYPE", desc="Endpoint Type", rnge="7:6"},
{name="EPDIR", desc="Endpoint Direction", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UECFG1X"
desc = "USB Endpoint Configuration 1"
addr = "0xED"
fields = [
{name="EPSIZE", desc="Endpoint Size", rnge="6:4"},
{name="EPBK", desc="Endpoint Bank", rnge="3:2"},
{name="ALLOC", desc="Endpoint Allocation", rnge="1:1"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UESTA0X"
desc = "USB Endpoint Status 0"
addr = "0xEE"
cstm="read-only"
fields = [
{name="CFGOK", desc="Configuration Status Flag", rnge="7:7"},
{name="OVERFI", desc="Overflow Error Interrupt Flag", rnge="6:6", cstm="read-write"},
{name="UNDERFI", desc="Underflow Error Interrupt Flag", rnge="5:5", cstm="read-write"},
{name="DTSEQ", desc="Data Toggle Sequencing Flag", rnge="3:2"},
{name="NBUSYBK", desc="Busy Bank Flag", rnge="1:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UESTA1X"
desc = "USB Endpoint Status 1"
addr = "0xEF"
cstm="read-only"
fields = [
{name="CTRLDIR", desc="Control Direction Flag", rnge="2:2"},
{name="CURRBK", desc="Current Bank Flag", rnge="1:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UEINTX"
desc = "USB Endpoint Interrupt"
addr = "0xE8"
fields = [
{name="FIFOCON", desc="FIFO Control Bit", rnge="7:7"},
{name="NAKINI", desc="NAK IN Received Interrupt Flag", rnge="6:6"},
{name="RWAL", desc="Read/Write Allowed Flag", rnge="5:5"},
{name="NAKOUTI", desc="NAK OUT Received Interrupt Flag", rnge="4:4"},
{name="RXSTPI", desc="Received Setup Interrupt Flag", rnge="3:3"},
{name="RXOUTI", desc="Received Out Data Interrupt Flag", rnge="2:2"},
{name="STALLEDI", desc="STALLEDI Interrupt Flag", rnge="1:1"},
{name="TXINI", desc="Transmitter Ready Interrupt Flag", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UEIENX"
desc = "USB Endpoint Interrupt Enable"
addr = "0xF0"
fields = [
{name="FLERRE", desc="Flow Error Interrupt Enable Flag", rnge="7:7"},
{name="NAKINE", desc="NAK IN Interrupt Enable Flag", rnge="6:6"},
{name="NAKOUTE", desc="NAK OUT Interrupt Enable Flag", rnge="4:4"},
{name="RXSTPE", desc="Received Setup Interrupt Enable Flag", rnge="3:3"},
{name="RXOUTE", desc="Received Out Data Interrupt Enable Flag", rnge="2:2"},
{name="STALLEDE", desc="Stalled Interrupt Enable Flag", rnge="1:1"},
{name="TXINE", desc="Transmitter Ready Interrupt Enable Flag", rnge="0:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UEDATX"
desc = "USB Endpoint Data"
addr = "0xF1"
#---------------------------------------------------------------------#
[[reg]]
name = "UEBCHX"
desc = "USB Endpoint Byte Count High"
addr = "0xF3"
cstm="read-only"
fields = [
{name="BYCT_H", desc="Byte Count High Bits", rnge="2:0"},
]
#---------------------------------------------------------------------#
[[reg]]
name = "UEBCLX"
desc = "USB Endpoint Byte Count Low"
addr = "0xF2"
cstm="read-only"
#---------------------------------------------------------------------#
[[reg]]
name = "UEINT"
desc = "USB Endpoint Interrupts"
addr = "0xF4"
fields = [
{name="D6", desc="Endpoint 6 Interrupt Bit", rnge="6:6"},
{name="D5", desc="Endpoint 5 Interrupt Bit", rnge="5:5"},
{name="D4", desc="Endpoint 4 Interrupt Bit", rnge="4:4"},
{name="D3", desc="Endpoint 3 Interrupt Bit", rnge="3:3"},
{name="D2", desc="Endpoint 2 Interrupt Bit", rnge="2:2"},
{name="D1", desc="Endpoint 1 Interrupt Bit", rnge="1:1"},
{name="D0", desc="Endpoint 0 Interrupt Bit", rnge="0:0"},
]