Merge branch 'master' into micropeak-logging
[fw/altos] / src / cc1111 / ao_usb.c
index 08cb73900c6462fe52d7d8bfafe1b6a28ff47d90..f66e807cf7bf13e2d9c774a56645cde6fca4923a 100644 (file)
@@ -62,6 +62,9 @@ ao_usb_isr(void) __interrupt 6
        ao_btm_isr();
 #endif
 #endif
+#if HAS_P2_ISR
+       ao_p2_isr();
+#endif
 }
 
 struct ao_usb_setup {
@@ -258,15 +261,15 @@ ao_usb_ep0_setup(void)
                break;
        case AO_USB_TYPE_CLASS:
                switch (ao_usb_setup.request) {
-               case SET_LINE_CODING:
+               case AO_USB_SET_LINE_CODING:
                        ao_usb_ep0_out_len = 7;
                        ao_usb_ep0_out_data = (__xdata uint8_t *) &ao_usb_line_coding;
                        break;
-               case GET_LINE_CODING:
+               case AO_USB_GET_LINE_CODING:
                        ao_usb_ep0_in_len = 7;
                        ao_usb_ep0_in_data = (uint8_t *) &ao_usb_line_coding;
                        break;
-               case SET_CONTROL_LINE_STATE:
+               case AO_USB_SET_CONTROL_LINE_STATE:
                        break;
                }
                break;
@@ -379,19 +382,19 @@ ao_usb_putchar(char c) __critical __reentrant
                ao_usb_in_send();
 }
 
-char
+int
 ao_usb_pollchar(void) __critical
 {
-       char c;
+       uint8_t c;
        if (ao_usb_out_bytes == 0) {
                USBINDEX = AO_USB_OUT_EP;
                if ((USBCSOL & USBCSOL_OUTPKT_RDY) == 0)
-                       return AO_READ_AGAIN;
+                       return -1;
                ao_usb_out_bytes = (USBCNTH << 8) | USBCNTL;
                if (ao_usb_out_bytes == 0) {
                        USBINDEX = AO_USB_OUT_EP;
                        USBCSOL &= ~USBCSOL_OUTPKT_RDY;
-                       return AO_READ_AGAIN;
+                       return -1;
                }
        }
        --ao_usb_out_bytes;
@@ -406,7 +409,7 @@ ao_usb_pollchar(void) __critical
 char
 ao_usb_getchar(void) __critical
 {
-       char    c;
+       int     c;
 
        while ((c = ao_usb_pollchar()) == AO_READ_AGAIN)
                ao_sleep(&ao_stdin_ready);