63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
#include <usb/usb.h>
|
|
|
|
|
|
void usb_ll_enable_irq (uint16_t irq)
|
|
{
|
|
if (irq & USB_IRQ_ID_DEVICE)
|
|
UDIEN |= (irq & 0xFF);
|
|
else if (irq & USB_IRQ_ID_INTERFACE)
|
|
USBCON |= (irq & 0xFF);
|
|
else if (irq & USB_IRQ_ID_ENDPOINT)
|
|
UEIENX |= (irq & 0xFF);
|
|
};
|
|
|
|
void usb_ll_disable_irq (uint16_t irq)
|
|
{
|
|
if (irq & USB_IRQ_ID_DEVICE)
|
|
UDIEN &= ~(irq & 0xFF);
|
|
else if (irq & USB_IRQ_ID_INTERFACE)
|
|
USBCON &= ~(irq & 0xFF);
|
|
else if (irq & USB_IRQ_ID_ENDPOINT)
|
|
UEIENX &= ~(irq & 0xFF);
|
|
};
|
|
|
|
void usb_ll_clear_irq (uint16_t irq)
|
|
{
|
|
if (irq & USB_IRQ_ID_DEVICE)
|
|
UDINT &= ~(irq & 0xFF);
|
|
else if (irq & USB_IRQ_ID_INTERFACE)
|
|
USBINT &= ~(irq & 0xFF);
|
|
else if (irq & USB_IRQ_ID_ENDPOINT)
|
|
UEINTX &= ~(irq & 0xFF);
|
|
};
|
|
|
|
|
|
void usb_ll_disable_all_irq (void)
|
|
{
|
|
usb_ll_disable_irq( USB_IRQ_STARTOFFRAME );
|
|
usb_ll_disable_irq( USB_IRQ_ENDOFRESET );
|
|
usb_ll_disable_irq( USB_IRQ_ENDOFRESUME );
|
|
usb_ll_disable_irq( USB_IRQ_UPSTREAMRESUME );
|
|
usb_ll_disable_irq( USB_IRQ_WAKEUP );
|
|
usb_ll_disable_irq( USB_IRQ_SUSPEND );
|
|
usb_ll_disable_irq( USB_IRQ_VBUST );
|
|
usb_ll_disable_irq( USB_IRQ_SETUP );
|
|
usb_ll_disable_irq( USB_IRQ_FLOWERR );
|
|
usb_ll_disable_irq( USB_IRQ_NAKIN );
|
|
usb_ll_disable_irq( USB_IRQ_NAKOUT );
|
|
usb_ll_disable_irq( USB_IRQ_RXOUT );
|
|
usb_ll_disable_irq( USB_IRQ_STALLED );
|
|
usb_ll_disable_irq( USB_IRQ_TXIN );
|
|
};
|
|
|
|
void usb_ll_disable_all_endpoint_irq (void)
|
|
{
|
|
usb_ll_disable_irq( USB_IRQ_SETUP );
|
|
usb_ll_disable_irq( USB_IRQ_FLOWERR );
|
|
usb_ll_disable_irq( USB_IRQ_NAKIN );
|
|
usb_ll_disable_irq( USB_IRQ_NAKOUT );
|
|
usb_ll_disable_irq( USB_IRQ_RXOUT );
|
|
usb_ll_disable_irq( USB_IRQ_STALLED );
|
|
usb_ll_disable_irq( USB_IRQ_TXIN );
|
|
};
|