|
|
@ -60,19 +60,24 @@ |
|
|
|
enum USB_Interrupts_t |
|
|
|
enum USB_Interrupts_t |
|
|
|
{ |
|
|
|
{ |
|
|
|
USB_INT_VBUSTI = 0, |
|
|
|
USB_INT_VBUSTI = 0, |
|
|
|
|
|
|
|
#if (defined(USB_CAN_BE_BOTH) || defined(__DOXYGEN__)) |
|
|
|
USB_INT_IDTI = 1, |
|
|
|
USB_INT_IDTI = 1, |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if (defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__)) |
|
|
|
USB_INT_WAKEUPI = 2, |
|
|
|
USB_INT_WAKEUPI = 2, |
|
|
|
USB_INT_SUSPI = 3, |
|
|
|
USB_INT_SUSPI = 3, |
|
|
|
USB_INT_EORSTI = 4, |
|
|
|
USB_INT_EORSTI = 4, |
|
|
|
USB_INT_SOFI = 5, |
|
|
|
USB_INT_SOFI = 5, |
|
|
|
USB_INT_HSOFI = 6, |
|
|
|
USB_INT_RXSTPI = 6, |
|
|
|
USB_INT_DCONNI = 7, |
|
|
|
#endif |
|
|
|
USB_INT_DDISCI = 8, |
|
|
|
#if (defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__)) |
|
|
|
USB_INT_RSTI = 9, |
|
|
|
USB_INT_HSOFI = 7, |
|
|
|
USB_INT_BCERRI = 10, |
|
|
|
USB_INT_DCONNI = 8, |
|
|
|
USB_INT_VBERRI = 11, |
|
|
|
USB_INT_DDISCI = 9, |
|
|
|
USB_INT_SRPI = 12, |
|
|
|
USB_INT_RSTI = 10, |
|
|
|
USB_INT_RXSTPI = 13, |
|
|
|
USB_INT_BCERRI = 11, |
|
|
|
|
|
|
|
USB_INT_VBERRI = 12, |
|
|
|
|
|
|
|
#endif |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/* Inline Functions: */ |
|
|
|
/* Inline Functions: */ |
|
|
@ -84,9 +89,12 @@ |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
AVR32_USBB.USBCON.vbuste = true; |
|
|
|
AVR32_USBB.USBCON.vbuste = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_BOTH) |
|
|
|
case USB_INT_IDTI: |
|
|
|
case USB_INT_IDTI: |
|
|
|
AVR32_USBB.USBCON.idte = true; |
|
|
|
AVR32_USBB.USBCON.idte = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_DEVICE) |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
AVR32_USBB.UDINTESET.wakeupes = true; |
|
|
|
AVR32_USBB.UDINTESET.wakeupes = true; |
|
|
|
break; |
|
|
|
break; |
|
|
@ -99,6 +107,11 @@ |
|
|
|
case USB_INT_SOFI: |
|
|
|
case USB_INT_SOFI: |
|
|
|
AVR32_USBB.UDINTESET.sofes = true; |
|
|
|
AVR32_USBB.UDINTESET.sofes = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_HOST) |
|
|
|
case USB_INT_HSOFI: |
|
|
|
case USB_INT_HSOFI: |
|
|
|
AVR32_USBB.UHINTESET.hsofies = true; |
|
|
|
AVR32_USBB.UHINTESET.hsofies = true; |
|
|
|
break; |
|
|
|
break; |
|
|
@ -117,10 +130,7 @@ |
|
|
|
case USB_INT_VBERRI: |
|
|
|
case USB_INT_VBERRI: |
|
|
|
AVR32_USBB.USBCON.vberre = true; |
|
|
|
AVR32_USBB.USBCON.vberre = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case USB_INT_SRPI: |
|
|
|
#endif |
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -132,9 +142,12 @@ |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
AVR32_USBB.USBCON.vbuste = false; |
|
|
|
AVR32_USBB.USBCON.vbuste = false; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_BOTH) |
|
|
|
case USB_INT_IDTI: |
|
|
|
case USB_INT_IDTI: |
|
|
|
AVR32_USBB.USBCON.idte = false; |
|
|
|
AVR32_USBB.USBCON.idte = false; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_DEVICE) |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
AVR32_USBB.UDINTECLR.wakeupec = true; |
|
|
|
AVR32_USBB.UDINTECLR.wakeupec = true; |
|
|
|
break; |
|
|
|
break; |
|
|
@ -147,6 +160,11 @@ |
|
|
|
case USB_INT_SOFI: |
|
|
|
case USB_INT_SOFI: |
|
|
|
AVR32_USBB.UDINTECLR.sofec = true; |
|
|
|
AVR32_USBB.UDINTECLR.sofec = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_HOST) |
|
|
|
case USB_INT_HSOFI: |
|
|
|
case USB_INT_HSOFI: |
|
|
|
AVR32_USBB.UHINTECLR.hsofiec = true; |
|
|
|
AVR32_USBB.UHINTECLR.hsofiec = true; |
|
|
|
break; |
|
|
|
break; |
|
|
@ -165,10 +183,7 @@ |
|
|
|
case USB_INT_VBERRI: |
|
|
|
case USB_INT_VBERRI: |
|
|
|
AVR32_USBB.USBCON.vberre = false; |
|
|
|
AVR32_USBB.USBCON.vberre = false; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case USB_INT_SRPI: |
|
|
|
#endif |
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -180,9 +195,12 @@ |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
AVR32_USBB.USBSTACLR.vbustic = true; |
|
|
|
AVR32_USBB.USBSTACLR.vbustic = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_BOTH) |
|
|
|
case USB_INT_IDTI: |
|
|
|
case USB_INT_IDTI: |
|
|
|
AVR32_USBB.USBSTACLR.idtic = true; |
|
|
|
AVR32_USBB.USBSTACLR.idtic = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_DEVICE) |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
AVR32_USBB.UDINTCLR.wakeupc = true; |
|
|
|
AVR32_USBB.UDINTCLR.wakeupc = true; |
|
|
|
break; |
|
|
|
break; |
|
|
@ -195,6 +213,11 @@ |
|
|
|
case USB_INT_SOFI: |
|
|
|
case USB_INT_SOFI: |
|
|
|
AVR32_USBB.UDINTCLR.sofc = true; |
|
|
|
AVR32_USBB.UDINTCLR.sofc = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_HOST) |
|
|
|
case USB_INT_HSOFI: |
|
|
|
case USB_INT_HSOFI: |
|
|
|
AVR32_USBB.UHINTCLR.hsofic = true; |
|
|
|
AVR32_USBB.UHINTCLR.hsofic = true; |
|
|
|
break; |
|
|
|
break; |
|
|
@ -213,10 +236,7 @@ |
|
|
|
case USB_INT_VBERRI: |
|
|
|
case USB_INT_VBERRI: |
|
|
|
AVR32_USBB.USBSTACLR.vberric = true; |
|
|
|
AVR32_USBB.USBSTACLR.vberric = true; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case USB_INT_SRPI: |
|
|
|
#endif |
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -227,8 +247,11 @@ |
|
|
|
{ |
|
|
|
{ |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
return AVR32_USBB.USBCON.vbuste; |
|
|
|
return AVR32_USBB.USBCON.vbuste; |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_BOTH) |
|
|
|
case USB_INT_IDTI: |
|
|
|
case USB_INT_IDTI: |
|
|
|
return AVR32_USBB.USBCON.idte; |
|
|
|
return AVR32_USBB.USBCON.idte; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_DEVICE) |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
return AVR32_USBB.UDINTE.wakeupe; |
|
|
|
return AVR32_USBB.UDINTE.wakeupe; |
|
|
|
case USB_INT_SUSPI: |
|
|
|
case USB_INT_SUSPI: |
|
|
@ -237,6 +260,11 @@ |
|
|
|
return AVR32_USBB.UDINTE.eorste; |
|
|
|
return AVR32_USBB.UDINTE.eorste; |
|
|
|
case USB_INT_SOFI: |
|
|
|
case USB_INT_SOFI: |
|
|
|
return AVR32_USBB.UDINTE.sofe; |
|
|
|
return AVR32_USBB.UDINTE.sofe; |
|
|
|
|
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_HOST) |
|
|
|
case USB_INT_HSOFI: |
|
|
|
case USB_INT_HSOFI: |
|
|
|
return AVR32_USBB.UHINTE.hsofie; |
|
|
|
return AVR32_USBB.UHINTE.hsofie; |
|
|
|
case USB_INT_DCONNI: |
|
|
|
case USB_INT_DCONNI: |
|
|
@ -249,10 +277,7 @@ |
|
|
|
return AVR32_USBB.USBCON.bcerre; |
|
|
|
return AVR32_USBB.USBCON.bcerre; |
|
|
|
case USB_INT_VBERRI: |
|
|
|
case USB_INT_VBERRI: |
|
|
|
return AVR32_USBB.USBCON.vberre; |
|
|
|
return AVR32_USBB.USBCON.vberre; |
|
|
|
case USB_INT_SRPI: |
|
|
|
#endif |
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
return false; |
|
|
@ -265,8 +290,11 @@ |
|
|
|
{ |
|
|
|
{ |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
case USB_INT_VBUSTI: |
|
|
|
return AVR32_USBB.USBSTA.vbusti; |
|
|
|
return AVR32_USBB.USBSTA.vbusti; |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_BOTH) |
|
|
|
case USB_INT_IDTI: |
|
|
|
case USB_INT_IDTI: |
|
|
|
return AVR32_USBB.USBSTA.idti; |
|
|
|
return AVR32_USBB.USBSTA.idti; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_DEVICE) |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
case USB_INT_WAKEUPI: |
|
|
|
return AVR32_USBB.UDINT.wakeup; |
|
|
|
return AVR32_USBB.UDINT.wakeup; |
|
|
|
case USB_INT_SUSPI: |
|
|
|
case USB_INT_SUSPI: |
|
|
@ -275,6 +303,11 @@ |
|
|
|
return AVR32_USBB.UDINT.eorst; |
|
|
|
return AVR32_USBB.UDINT.eorst; |
|
|
|
case USB_INT_SOFI: |
|
|
|
case USB_INT_SOFI: |
|
|
|
return AVR32_USBB.UDINT.sof; |
|
|
|
return AVR32_USBB.UDINT.sof; |
|
|
|
|
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if defined(USB_CAN_BE_HOST) |
|
|
|
case USB_INT_HSOFI: |
|
|
|
case USB_INT_HSOFI: |
|
|
|
return AVR32_USBB.UHINT.hsofi; |
|
|
|
return AVR32_USBB.UHINT.hsofi; |
|
|
|
case USB_INT_DCONNI: |
|
|
|
case USB_INT_DCONNI: |
|
|
@ -287,10 +320,7 @@ |
|
|
|
return AVR32_USBB.USBSTA.bcerri; |
|
|
|
return AVR32_USBB.USBSTA.bcerri; |
|
|
|
case USB_INT_VBERRI: |
|
|
|
case USB_INT_VBERRI: |
|
|
|
return AVR32_USBB.USBSTA.vberri; |
|
|
|
return AVR32_USBB.USBSTA.vberri; |
|
|
|
case USB_INT_SRPI: |
|
|
|
#endif |
|
|
|
case USB_INT_RXSTPI: |
|
|
|
|
|
|
|
// TODO
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
return false; |
|
|
|