re-create ngx4330.h
remove some rom driver dependency on upper layer introduce CAP_DEVICE_ROMDRIVER to overwrite TUSB_CFG_DEVICE_USE_ROM_DRIVER within the lib add support for lpc175x_6x - able to build and blink led on lpcxpresso1769 with device (without any class enabled)
This commit is contained in:
		| @@ -48,6 +48,10 @@ | ||||
| #include "hid_device.h" | ||||
| #include "tusb_descriptors.h" | ||||
|  | ||||
| #if defined(CAP_DEVICE_ROMDRIVER) && TUSB_CFG_DEVICE_USE_ROM_DRIVER | ||||
| #include "device/dcd_nxp_romdriver.h" // TODO remove rom driver dependency | ||||
| #endif | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // MACRO CONSTANT TYPEDEF | ||||
| //--------------------------------------------------------------------+ | ||||
| @@ -125,14 +129,14 @@ tusb_error_t tusbd_hid_mouse_send_report(tusb_mouse_report_t *p_mouse_report) | ||||
| //--------------------------------------------------------------------+ | ||||
| // CLASS-USBH API (don't require to verify parameters) | ||||
| //--------------------------------------------------------------------+ | ||||
| tusb_error_t hidd_configured(USBD_HANDLE_T hUsb) | ||||
| tusb_error_t hidd_configured(void) | ||||
| { | ||||
|   #if  TUSB_CFG_DEVICE_HID_KEYBOARD | ||||
|     ROM_API->hw->WriteEP(hUsb , HID_KEYBOARD_EP_IN , (uint8_t* ) &hid_keyboard_report , sizeof(tusb_keyboard_report_t) ); // initial packet for IN endpoint , will not work if omitted | ||||
|     ROM_API->hw->WriteEP(romdriver_hdl , HID_KEYBOARD_EP_IN , (uint8_t* ) &hid_keyboard_report , sizeof(tusb_keyboard_report_t) ); // initial packet for IN endpoint , will not work if omitted | ||||
|   #endif | ||||
|  | ||||
|   #if  TUSB_CFG_DEVICE_HID_MOUSE | ||||
|     ROM_API->hw->WriteEP(hUsb , HID_MOUSE_EP_IN    , (uint8_t* ) &hid_mouse_report    , sizeof(tusb_mouse_report_t) ); // initial packet for IN endpoint, will not work if omitted | ||||
|     ROM_API->hw->WriteEP(romdriver_hdl , HID_MOUSE_EP_IN    , (uint8_t* ) &hid_mouse_report    , sizeof(tusb_mouse_report_t) ); // initial packet for IN endpoint, will not work if omitted | ||||
|   #endif | ||||
|  | ||||
|   return TUSB_ERROR_NONE; | ||||
|   | ||||
| @@ -64,10 +64,9 @@ tusb_error_t tusbd_hid_mouse_send_report(tusb_mouse_report_t *p_mouse_report); | ||||
| // USBD-CLASS DRIVER API | ||||
| //--------------------------------------------------------------------+ | ||||
| #ifdef _TINY_USB_SOURCE_FILE_ | ||||
| #include "device/romdriver/mw_usbd_rom_api.h" // TODO remove rom driver dependency | ||||
|  | ||||
| tusb_error_t hidd_init(tusb_descriptor_interface_t const * p_interface_desc, uint16_t *p_length); | ||||
| tusb_error_t hidd_configured(USBD_HANDLE_T hUsb); | ||||
| tusb_error_t hidd_configured(void); | ||||
|  | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -56,7 +56,6 @@ | ||||
| #endif | ||||
|  | ||||
| #include "common/common.h" | ||||
| #include "dcd_nxp_romdriver.h" | ||||
|  | ||||
| tusb_error_t dcd_init(void) ATTR_WARN_UNUSED_RESULT; | ||||
| tusb_error_t dcd_controller_reset(uint8_t coreid) ATTR_WARN_UNUSED_RESULT; | ||||
|   | ||||
| @@ -59,5 +59,18 @@ | ||||
| //--------------------------------------------------------------------+ | ||||
| // IMPLEMENTATION | ||||
| //--------------------------------------------------------------------+ | ||||
| void dcd_isr(uint8_t coreid) | ||||
| { | ||||
|  | ||||
| } | ||||
|  | ||||
| tusb_error_t dcd_init(void) | ||||
| { | ||||
|   return TUSB_ERROR_NONE; | ||||
| } | ||||
|  | ||||
| void dcd_controller_connect(uint8_t coreid) | ||||
| { | ||||
|  | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -38,7 +38,7 @@ | ||||
|  | ||||
| #include "tusb_option.h" | ||||
|  | ||||
| #if MODE_DEVICE_SUPPORTED && TUSB_CFG_DEVICE_USE_ROM_DRIVER | ||||
| #if MODE_DEVICE_SUPPORTED && (defined(CAP_DEVICE_ROMDRIVER) && TUSB_CFG_DEVICE_USE_ROM_DRIVER) | ||||
|  | ||||
| #define _TINY_USB_SOURCE_FILE_ | ||||
|  | ||||
| @@ -82,7 +82,7 @@ ErrorCode_t USB_Configure_Event (USBD_HANDLE_T hUsb) | ||||
|     usbd_info.state = TUSB_DEVICE_STATE_CONFIGURED; | ||||
|  | ||||
|     #if DEVICE_CLASS_HID | ||||
|     ASSERT( TUSB_ERROR_NONE == hidd_configured(hUsb), ERR_FAILED ); | ||||
|     ASSERT( TUSB_ERROR_NONE == hidd_configured(), ERR_FAILED ); | ||||
|     #endif | ||||
|  | ||||
|     #if TUSB_CFG_DEVICE_CDC | ||||
|   | ||||
| @@ -65,6 +65,8 @@ | ||||
|   #include "hal_lpc13uxx.h" | ||||
| #elif MCU == MCU_LPC43XX | ||||
|   #include "hal_lpc43xx.h" | ||||
| #elif MCU == MCU_LPC175X_6X | ||||
|   #include "hal_lpc175x_6x.h" | ||||
| #else | ||||
|   #error MCU is not defined or supported yet | ||||
| #endif | ||||
|   | ||||
| @@ -41,7 +41,7 @@ | ||||
|  | ||||
| #if MCU == MCU_LPC11UXX | ||||
|  | ||||
| tusb_error_t hal_init() | ||||
| tusb_error_t hal_init(void) | ||||
| { | ||||
| 	// TODO remove magic number | ||||
|   /* Enable AHB clock to the USB block and USB RAM. */ | ||||
|   | ||||
| @@ -41,7 +41,7 @@ | ||||
|  | ||||
| #if MCU == MCU_LPC13UXX | ||||
|  | ||||
| tusb_error_t hal_init() | ||||
| tusb_error_t hal_init(void) | ||||
| { | ||||
| 	// TODO remove magic number | ||||
|   /* Enable AHB clock to the USB block and USB RAM. */ | ||||
|   | ||||
							
								
								
									
										81
									
								
								tinyusb/hal/hal_lpc175x_6x.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								tinyusb/hal/hal_lpc175x_6x.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,81 @@ | ||||
| /**************************************************************************/ | ||||
| /*! | ||||
|     @file     hal_lpc175x_6x.c | ||||
|     @author   hathach (tinyusb.org) | ||||
|  | ||||
|     @section LICENSE | ||||
|  | ||||
|     Software License Agreement (BSD License) | ||||
|  | ||||
|     Copyright (c) 2013, hathach (tinyusb.org) | ||||
|     All rights reserved. | ||||
|  | ||||
|     Redistribution and use in source and binary forms, with or without | ||||
|     modification, are permitted provided that the following conditions are met: | ||||
|     1. Redistributions of source code must retain the above copyright | ||||
|     notice, this list of conditions and the following disclaimer. | ||||
|     2. Redistributions in binary form must reproduce the above copyright | ||||
|     notice, this list of conditions and the following disclaimer in the | ||||
|     documentation and/or other materials provided with the distribution. | ||||
|     3. Neither the name of the copyright holders nor the | ||||
|     names of its contributors may be used to endorse or promote products | ||||
|     derived from this software without specific prior written permission. | ||||
|  | ||||
|     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY | ||||
|     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY | ||||
|     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
|     This file is part of the tinyusb stack. | ||||
| */ | ||||
| /**************************************************************************/ | ||||
|  | ||||
| #include "tusb_option.h" | ||||
|  | ||||
| #if MCU == MCU_LPC175X_6X | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // INCLUDE | ||||
| //--------------------------------------------------------------------+ | ||||
| #include "common/common.h" | ||||
| #include "hal.h" | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // IMPLEMENTATION | ||||
| //--------------------------------------------------------------------+ | ||||
| tusb_error_t hal_init(void) | ||||
| { | ||||
| 	// TODO remove magic number | ||||
|   /* Enable AHB clock to the USB block and USB RAM. */ | ||||
| //  LPC_SYSCON->SYSAHBCLKCTRL |= ((0x1<<14) | (0x1<<27)); | ||||
|  | ||||
|   LPC_PINCON->PINSEL1 &= ~((3<<26)|(3<<28));  /* P0.29 D+, P0.30 D- */ | ||||
|   LPC_PINCON->PINSEL1 |=  ((1<<26)|(1<<28));  /* PINSEL1 26.27, 28.29  = 01 */ | ||||
|  | ||||
| //  LPC_PINCON->PINSEL3 &= ~(3<<6); TODO HOST | ||||
| //  LPC_PINCON->PINSEL3 |= (2<<6); | ||||
|  | ||||
|   LPC_SC->PCONP |= (1UL<<31);                	/* USB PCLK -> enable USB Per.*/ | ||||
|  | ||||
|   // DEVICE mode | ||||
|   LPC_USB->USBClkCtrl = 0x12;                 /* Dev, PortSel, AHB clock enable */ | ||||
|   while ((LPC_USB->USBClkSt & 0x12) != 0x12); | ||||
|  | ||||
|   /* Pull-down is needed, or internally, VBUS will be floating. This is to | ||||
|   address the wrong status in VBUSDebouncing bit in CmdStatus register.  */ | ||||
|  | ||||
| return TUSB_ERROR_NONE; | ||||
| } | ||||
|  | ||||
| void USB_IRQHandler(void) | ||||
| { | ||||
|   tusb_isr(0); | ||||
| } | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										73
									
								
								tinyusb/hal/hal_lpc175x_6x.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								tinyusb/hal/hal_lpc175x_6x.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | ||||
| /**************************************************************************/ | ||||
| /*! | ||||
|     @file     hal_lpc175x_6x.h | ||||
|     @author   hathach (tinyusb.org) | ||||
|  | ||||
|     @section LICENSE | ||||
|  | ||||
|     Software License Agreement (BSD License) | ||||
|  | ||||
|     Copyright (c) 2013, hathach (tinyusb.org) | ||||
|     All rights reserved. | ||||
|  | ||||
|     Redistribution and use in source and binary forms, with or without | ||||
|     modification, are permitted provided that the following conditions are met: | ||||
|     1. Redistributions of source code must retain the above copyright | ||||
|     notice, this list of conditions and the following disclaimer. | ||||
|     2. Redistributions in binary form must reproduce the above copyright | ||||
|     notice, this list of conditions and the following disclaimer in the | ||||
|     documentation and/or other materials provided with the distribution. | ||||
|     3. Neither the name of the copyright holders nor the | ||||
|     names of its contributors may be used to endorse or promote products | ||||
|     derived from this software without specific prior written permission. | ||||
|  | ||||
|     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY | ||||
|     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY | ||||
|     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
|     This file is part of the tinyusb stack. | ||||
| */ | ||||
| /**************************************************************************/ | ||||
|  | ||||
| /** \ingroup TBD | ||||
|  *  \defgroup TBD | ||||
|  *  \brief TBD | ||||
|  * | ||||
|  *  @{ | ||||
|  */ | ||||
|  | ||||
| #ifndef _TUSB_HAL_LPC175X_6X_H_ | ||||
| #define _TUSB_HAL_LPC175X_6X_H_ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|  extern "C" { | ||||
| #endif | ||||
|  | ||||
| #include "LPC17xx.h" | ||||
|  | ||||
| static inline void hal_interrupt_enable(uint8_t controller_id) | ||||
| { | ||||
|   (void) controller_id; // discard compiler's warning | ||||
|   NVIC_EnableIRQ(USB_IRQn); | ||||
| } | ||||
|  | ||||
| static inline void hal_interrupt_disable(uint8_t controller_id) | ||||
| { | ||||
|   (void) controller_id; // discard compiler's warning | ||||
|   NVIC_DisableIRQ(USB_IRQn); | ||||
| } | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|  } | ||||
| #endif | ||||
|  | ||||
| #endif /* _TUSB_HAL_LPC175X_6X_H_ */ | ||||
|  | ||||
| /** @} */ | ||||
| @@ -72,6 +72,10 @@ | ||||
|   #define CAP_MODE_HOST | ||||
| #endif | ||||
|  | ||||
| #if MCU == MCU_LPC43XX || MCU == MCU_LPC18XX || MCU == MCU_LPC11UXX || MCU == MCU_LPC13UXX | ||||
|   #define CAP_DEVICE_ROMDRIVER | ||||
| #endif | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // Validation | ||||
| //--------------------------------------------------------------------+ | ||||
|   | ||||
| @@ -155,11 +155,11 @@ | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // DEVICE OPTIONS | ||||
| //--------------------------------------------------------------------+ | ||||
| //------------------------- -------------------------------------------+ | ||||
| #if MODE_DEVICE_SUPPORTED | ||||
|  | ||||
| #if !TUSB_CFG_DEVICE_USE_ROM_DRIVER | ||||
|   #error only rom driver is supported now | ||||
| #if defined(CAP_DEVICE_ROMDRIVER) && !TUSB_CFG_DEVICE_USE_ROM_DRIVER | ||||
|   #error only rom driver for these mcu are supported now | ||||
| #endif | ||||
|  | ||||
| #define DEVICE_CLASS_HID ( TUSB_CFG_DEVICE_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_MOUSE + TUSB_CFG_DEVICE_HID_GENERIC ) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach