From 3225fb54ec1beaf6dc8553ab4f5b86bea6bdf1f3 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 15 May 2014 09:27:34 -0600 Subject: [PATCH] altos/cc1111: Add support for CPU-driven USB pullup Signed-off-by: Keith Packard --- src/cc1111/ao_usb.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cc1111/ao_usb.c b/src/cc1111/ao_usb.c index 2141eda8..d9d255f8 100644 --- a/src/cc1111/ao_usb.c +++ b/src/cc1111/ao_usb.c @@ -274,7 +274,7 @@ ao_usb_ep0_setup(void) ao_usb_ep0_in_len = ao_usb_setup.length; ao_usb_ep0_flush(); } else if (ao_usb_ep0_out_len) { - + /* Receiving data from the host */ ao_usb_ep0_state = AO_USB_EP0_DATA_OUT; @@ -448,6 +448,9 @@ ao_usb_enable(void) USBCIF = 0; USBOIF = 0; USBIIF = 0; +#if HAS_USB_PULLUP + ao_gpio_set(AO_USB_PULLUP_PORT, AO_USB_PULLUP_PIN, AO_USB_PULLUP, 0); +#endif } void @@ -459,6 +462,10 @@ ao_usb_disable(void) USBCIE = 0; IEN2 &= ~IEN2_USBIE; +#if HAS_USB_PULLUP + ao_gpio_set(AO_USB_PULLUP_PORT, AO_USB_PULLUP_PIN, AO_USB_PULLUP, 0); +#endif + /* Clear any pending interrupts */ USBCIF = 0; USBOIF = 0; @@ -471,6 +478,9 @@ ao_usb_disable(void) void ao_usb_init(void) { +#if HAS_USB_PULLUP + ao_enable_output(AO_USB_PULLUP_PORT, AO_USB_PULLUP_PIN, AO_USB_PULLUP, 0); +#endif ao_usb_enable(); ao_add_task(&ao_usb_task, ao_usb_ep0, "usb"); -- 2.30.2