diff options
| author | hathach <[email protected]> | 2013-03-04 18:46:02 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-03-04 18:46:02 +0700 |
| commit | 2c8596edebaedd0ceae46a56385c71c83dda531c (patch) | |
| tree | de683bd9a77da9906879aa8e21d3cc546407b3c4 /tinyusb | |
| parent | a259be6edf5bb0f8c4e77f3b321a826d8e86bd25 (diff) | |
abstract call chains from hal usb isr
Diffstat (limited to 'tinyusb')
| -rw-r--r-- | tinyusb/hal/hal.h | 4 | ||||
| -rw-r--r-- | tinyusb/hal/hal_lpc43xx.c | 14 | ||||
| -rw-r--r-- | tinyusb/hal/hal_lpc43xx.h | 3 | ||||
| -rw-r--r-- | tinyusb/host/ehci/ehci.c | 5 | ||||
| -rw-r--r-- | tinyusb/host/ehci/ehci.h | 5 | ||||
| -rw-r--r-- | tinyusb/host/hcd.h | 1 | ||||
| -rw-r--r-- | tinyusb/tusb.c | 12 |
7 files changed, 36 insertions, 8 deletions
diff --git a/tinyusb/hal/hal.h b/tinyusb/hal/hal.h index 9afad4726..ad77055eb 100644 --- a/tinyusb/hal/hal.h +++ b/tinyusb/hal/hal.h @@ -68,6 +68,10 @@ extern "C" { #endif +// callback from tusb.h +extern void tusb_isr(uint8_t controller_id); + + /** \brief USB hardware init * * \param[in] para1 diff --git a/tinyusb/hal/hal_lpc43xx.c b/tinyusb/hal/hal_lpc43xx.c index f7280041e..770ffd4ce 100644 --- a/tinyusb/hal/hal_lpc43xx.c +++ b/tinyusb/hal/hal_lpc43xx.c @@ -54,4 +54,18 @@ tusb_error_t hal_init() return TUSB_ERROR_NONE; } +void USB0_IRQHandler(void) +{ +#if TUSB_CFG_CONTROLLER0_MODE + tusb_isr(0); +#endif +} + +void USB1_IRQHandler(void) +{ +#if TUSB_CFG_CONTROLLER1_MODE + tusb_isr(1); +#endif +} + #endif diff --git a/tinyusb/hal/hal_lpc43xx.h b/tinyusb/hal/hal_lpc43xx.h index 0d9e4c8be..63da8a37c 100644 --- a/tinyusb/hal/hal_lpc43xx.h +++ b/tinyusb/hal/hal_lpc43xx.h @@ -61,9 +61,6 @@ #define DEVICE_ROM_REG_BASE LPC_USB0_BASE // TODO USB1 #define DEVICE_ROM_DRIVER_ADDR 0x1040011C -#define tusb_1st_isr USB0_IRQHandler -#define tusb_2nd_isr - static inline void hal_interrupt_enable() { NVIC_EnableIRQ(USB0_IRQn); // TODO USB1 diff --git a/tinyusb/host/ehci/ehci.c b/tinyusb/host/ehci/ehci.c index 27562974f..b2d6268f3 100644 --- a/tinyusb/host/ehci/ehci.c +++ b/tinyusb/host/ehci/ehci.c @@ -128,6 +128,11 @@ tusb_error_t hcd_init(void) return TUSB_ERROR_NONE; } +void hcd_isr(uint8_t hostid) +{ + +} + //--------------------------------------------------------------------+ // Controller API //--------------------------------------------------------------------+ diff --git a/tinyusb/host/ehci/ehci.h b/tinyusb/host/ehci/ehci.h index 880a0e477..4b8ec1f17 100644 --- a/tinyusb/host/ehci/ehci.h +++ b/tinyusb/host/ehci/ehci.h @@ -92,11 +92,6 @@ #endif //--------------------------------------------------------------------+ -// USBH-HCD API -//--------------------------------------------------------------------+ -void hcd_isr(uint8_t hostid); - -//--------------------------------------------------------------------+ // EHCI Data Structure //--------------------------------------------------------------------+ enum ehci_queue_element_type_{ diff --git a/tinyusb/host/hcd.h b/tinyusb/host/hcd.h index 0051b028e..b046a0e64 100644 --- a/tinyusb/host/hcd.h +++ b/tinyusb/host/hcd.h @@ -67,6 +67,7 @@ typedef uint32_t pipe_handle_t; // USBH-HCD API //--------------------------------------------------------------------+ tusb_error_t hcd_init() ATTR_WARN_UNUSED_RESULT; +void hcd_isr(uint8_t hostid); //--------------------------------------------------------------------+ // PIPE API diff --git a/tinyusb/tusb.c b/tinyusb/tusb.c index 49f8ef253..fb5cf013c 100644 --- a/tinyusb/tusb.c +++ b/tinyusb/tusb.c @@ -54,3 +54,15 @@ tusb_error_t tusb_init(void) return TUSB_ERROR_NONE; } +// called from hal layer +void tusb_isr(uint8_t controller_id) +{ +#if MODE_HOST_SUPPORTED + hcd_isr(controller_id); +#endif + +#ifdef TUSB_CFG_DEVICE + dcd_isr(controller_id); +#endif + +} |
