USB device findings

Ceiliedgh
Some investigation revealed that the USB device controller used in the
S3C2440 is similar to ones used in Renesas MCU-s. There are some stuff
documented in their TRMs that is marked "Reserved" in the samsung one, but
these bits are actually usable in the S3C controller, so they left them out
from the documentation for some reason ...

This is not 100% confirmed, but they seem to work.

0x52000144 PWR_REG
 [7] ISO_UPDATE: If set, the USB controller will wait for a SOF token from
the time IN_PKT_RDY was set before sending the packet. (R/W)
 [6] Unknown power control flag (R/W)

0x52000184 IN_CSR1_REG
 [0] IN_PKT_RDY: This is documented, it means that the FIFO can hold
another packet
 [1] IN_USB_RDY: Indicates that a packet is ready to be transmitted upon
receiving an IN token (that is, the FIFO holds at least one packet)
If IN_PKT_RDY = 0 and IN_USB_RDY = 0, the FIFO is empty
If IN_PKT_RDY = 0 and IN_USB_RDY = 1, the FIFO contains 1 packet
If IN_PKT_RDY = 1 and IN_USB_RDY = 1, the FIFO contains two packets
 [2] UNDERRUN: Set in isochronous mode when an IN token is received and
IN_PKT_RDY is not set

0x52000190 OUT_CSR1_REG
 [0] OUT_PKT_RDY: This is documented, it means that the MCU can unload at
least 1 packet from the FIFO
 [1] OUT_USB_RDY: Indicates that the FIFO is full (2 packets in FIFO, dual
packet mode only)
If OUT_PKT_RDY = 0 and OUT_USB_RDY = 0, the FIFO is empty
If OUT_PKT_RDY = 1 and OUT_USB_RDY = 0, the FIFO contains 1 packet
If OUT_PKT_RDY = 1 and OUT_USB_RDY = 1, the FIFO contains two packets
 [2] OVERRUN: Indicates that the USB is unable to load an OUT ISO token
into the FIFO
 [3] DATA_ERROR: The data packet due to be unloaded has a bit-stuffing or
CRC error

0x52000194 OUT_CSR2_REG
 [6] ISO: 1 = Isochronous mode. (Not tested if ISO mode actually works)