summaryrefslogtreecommitdiff
path: root/tinyusb/hal
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-06-04 13:36:18 +0700
committerhathach <[email protected]>2013-06-04 13:36:18 +0700
commit3394b4beaa4f52461a68b837b33383af49dbff37 (patch)
treec2dd9503a087088cb25d0344ccba3b2804eafdf9 /tinyusb/hal
parent4239e1390e9f85b8c117277e4ed79dabe22b2e1f (diff)
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)
Diffstat (limited to 'tinyusb/hal')
-rw-r--r--tinyusb/hal/hal.h2
-rw-r--r--tinyusb/hal/hal_lpc11uxx.c2
-rw-r--r--tinyusb/hal/hal_lpc13uxx.c2
-rw-r--r--tinyusb/hal/hal_lpc175x_6x.c81
-rw-r--r--tinyusb/hal/hal_lpc175x_6x.h73
5 files changed, 158 insertions, 2 deletions
diff --git a/tinyusb/hal/hal.h b/tinyusb/hal/hal.h
index 98c1c7e46..6817baf3a 100644
--- a/tinyusb/hal/hal.h
+++ b/tinyusb/hal/hal.h
@@ -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
diff --git a/tinyusb/hal/hal_lpc11uxx.c b/tinyusb/hal/hal_lpc11uxx.c
index a6e3312c4..4395a705c 100644
--- a/tinyusb/hal/hal_lpc11uxx.c
+++ b/tinyusb/hal/hal_lpc11uxx.c
@@ -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. */
diff --git a/tinyusb/hal/hal_lpc13uxx.c b/tinyusb/hal/hal_lpc13uxx.c
index 6f8d72fff..29128eec4 100644
--- a/tinyusb/hal/hal_lpc13uxx.c
+++ b/tinyusb/hal/hal_lpc13uxx.c
@@ -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. */
diff --git a/tinyusb/hal/hal_lpc175x_6x.c b/tinyusb/hal/hal_lpc175x_6x.c
new file mode 100644
index 000000000..82ba772d1
--- /dev/null
+++ b/tinyusb/hal/hal_lpc175x_6x.c
@@ -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
diff --git a/tinyusb/hal/hal_lpc175x_6x.h b/tinyusb/hal/hal_lpc175x_6x.h
new file mode 100644
index 000000000..e57048e14
--- /dev/null
+++ b/tinyusb/hal/hal_lpc175x_6x.h
@@ -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_ */
+
+/** @} */