summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-11-30 16:52:07 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-11-30 16:52:07 +0000
commitcf595d2b70ae33aa9d758da3846114b7ed658a9f (patch)
tree53682719347886e4905ecfa84c005010c786d081
parent3b5628c0580aa974b749806f52e3bc704a4ac744 (diff)
downloadpx4-nuttx-cf595d2b70ae33aa9d758da3846114b7ed658a9f.tar.gz
px4-nuttx-cf595d2b70ae33aa9d758da3846114b7ed658a9f.tar.bz2
px4-nuttx-cf595d2b70ae33aa9d758da3846114b7ed658a9f.zip
Misc USB fixes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3149 42af7a65-404d-4744-a932-0658087f49c3
-rwxr-xr-xnuttx/arch/arm/src/lpc17xx/lpc17_internal.h4
-rwxr-xr-xnuttx/arch/arm/src/lpc17xx/lpc17_usbdev.c13
-rwxr-xr-xnuttx/configs/nucleus2g/usbstorage/defconfig2
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/src/up_usbstrg.c19
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/usbserial/defconfig2
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/usbstorage/defconfig4
-rw-r--r--nuttx/examples/usbstorage/usbstrg_main.c2
7 files changed, 32 insertions, 14 deletions
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_internal.h b/nuttx/arch/arm/src/lpc17xx/lpc17_internal.h
index 41fe549b4..ce0af9ee2 100755
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_internal.h
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_internal.h
@@ -296,8 +296,8 @@
#define GPIO_MCPWM_MCOB2 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN29)
#define GPIO_PCAP1p1 (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN29)
#define GPIO_MAT0p1_1 (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN29)
-#define GPIO_USB_VBUS (GPIO_ALT2 | GPIO_FLOAT | GPIO_PORT1 | GPIO_PIN30)
-#define GPIO_AD0p4 (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN30)
+#define GPIO_USB_VBUS (GPIO_ALT1 | GPIO_FLOAT | GPIO_PORT1 | GPIO_PIN30)
+#define GPIO_AD0p4 (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN30)
#define GPIO_SSP1_SCK_2 (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN31)
#define GPIO_AD0p5 (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN31)
#define GPIO_PWM1p1_2 (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN0)
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_usbdev.c b/nuttx/arch/arm/src/lpc17xx/lpc17_usbdev.c
index 8e242948c..60137809a 100755
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_usbdev.c
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_usbdev.c
@@ -104,6 +104,10 @@
# define USB_ERROR_INT 0
#endif
+/* CLKCTRL enable bits */
+
+#define LPC17_CLKCTRL_ENABLES (USBDEV_CLK_DEVCLK|USBDEV_CLK_PORTSELCLK|USBDEV_CLK_AHBCLK)
+
/* Dump GPIO registers */
#if defined(CONFIG_LPC17_USBDEV_REGDEBUG) && defined(CONFIG_DEBUG_GPIO)
@@ -3147,8 +3151,9 @@ void up_usbinitialize(void)
regval |= SYSCON_PCONP_PCUSB;
lpc17_putreg(regval, LPC17_SYSCON_PCONP);
- /* Step 2: Enable clocking on USB (USB clocking was initialized in very
- * low-level clock setup logic (see lpc17_clockconfig.c)
+ /* Step 2: Enable clocking on USB (USB PLL clocking was initialized in
+ * in very low-level clock setup logic (see lpc17_clockconfig.c)). We
+ * do still need to set up USBCLKCTRL -- see below.
*/
/* Step 3: Configure I/O pins */
@@ -3233,7 +3238,7 @@ void up_usbinitialize(void)
/* Enable device and AHB clocking */
- lpc17_putreg(USBDEV_CLK_DEVCLK|USBDEV_CLK_AHBCLK, LPC17_USBDEV_CLKCTRL);
+ lpc17_putreg(LPC17_CLKCTRL_ENABLES, LPC17_USBDEV_CLKCTRL);
/* And wait for the clocks to be reported as "ON" */
@@ -3241,7 +3246,7 @@ void up_usbinitialize(void)
{
regval = lpc17_getreg(LPC17_USBDEV_CLKST);
}
- while ((regval & (USBDEV_CLK_DEVCLK|USBDEV_CLK_AHBCLK)) != (USBDEV_CLK_DEVCLK|USBDEV_CLK_AHBCLK));
+ while ((regval & LPC17_CLKCTRL_ENABLES) != LPC17_CLKCTRL_ENABLES);
/* Make sure all USB interrupts are disabled and cleared */
diff --git a/nuttx/configs/nucleus2g/usbstorage/defconfig b/nuttx/configs/nucleus2g/usbstorage/defconfig
index fc0aa5f96..b2927cb18 100755
--- a/nuttx/configs/nucleus2g/usbstorage/defconfig
+++ b/nuttx/configs/nucleus2g/usbstorage/defconfig
@@ -323,7 +323,7 @@ CONFIG_APP_DIR=examples/usbstorage
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
-CONFIG_DDEBUG_USB=n
+CONFIG_DEBUG_USB=n
CONFIG_MM_REGIONS=2
CONFIG_ARCH_LOWPUTC=y
CONFIG_RR_INTERVAL=200
diff --git a/nuttx/configs/olimex-lpc1766stk/src/up_usbstrg.c b/nuttx/configs/olimex-lpc1766stk/src/up_usbstrg.c
index c4cacddd3..4d4b1e88e 100755
--- a/nuttx/configs/olimex-lpc1766stk/src/up_usbstrg.c
+++ b/nuttx/configs/olimex-lpc1766stk/src/up_usbstrg.c
@@ -48,6 +48,9 @@
#include <nuttx/spi.h>
#include <nuttx/mmcsd.h>
+#include "lpc17_internal.h"
+#include "lpc1766stk_internal.h"
+
/****************************************************************************
* Pre-Processor Definitions
****************************************************************************/
@@ -108,6 +111,10 @@ int usbstrg_archinitialize(void)
FAR struct spi_dev_s *spi;
int ret;
+ /* Enable power to the SD/MMC via a GPIO. LOW enables SD/MMC. */
+
+ lpc17_gpiowrite(LPC1766STK_MMC_PWR, false);
+
/* Get the SPI port */
message("usbstrg_archinitialize: Initializing SPI port %d\n",
@@ -118,7 +125,8 @@ int usbstrg_archinitialize(void)
{
message("usbstrg_archinitialize: Failed to initialize SPI port %d\n",
LPC17XX_MMCSDSPIPORTNO);
- return -ENODEV;
+ ret = -ENODEV;
+ goto errout;
}
message("usbstrg_archinitialize: Successfully initialized SPI port %d\n",
@@ -134,10 +142,15 @@ int usbstrg_archinitialize(void)
{
message("usbstrg_archinitialize: Failed to bind SPI port %d to MMC/SD slot %d: %d\n",
LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO, ret);
- return ret;
+ goto errout;
}
message("usbstrg_archinitialize: Successfuly bound SPI port %d to MMC/SD slot %d\n",
LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO);
return OK;
-}
+
+ /* Disable power to the SD/MMC via a GPIO. HIGH disables SD/MMC. */
+
+errout:
+ lpc17_gpiowrite(LPC1766STK_MMC_PWR, true);
+ return ret;}
diff --git a/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig b/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig
index 175da804e..7262247c2 100755
--- a/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig
@@ -106,7 +106,7 @@ CONFIG_LPC17_BUILDROOT=y
CONFIG_LPC17_ETHERNET=n
CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n
-CONFIG_LPC17_USBDEV=n
+CONFIG_LPC17_USBDEV=y
CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n
diff --git a/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig b/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig
index d070a247a..0b0e93dda 100755
--- a/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig
@@ -106,7 +106,7 @@ CONFIG_LPC17_BUILDROOT=y
CONFIG_LPC17_ETHERNET=n
CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n
-CONFIG_LPC17_USBDEV=n
+CONFIG_LPC17_USBDEV=y
CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n
@@ -324,7 +324,7 @@ CONFIG_APP_DIR=examples/usbstorage
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
-CONFIG_DDEBUG_USB=n
+CONFIG_DEBUG_USB=n
CONFIG_MM_REGIONS=2
CONFIG_ARCH_LOWPUTC=y
CONFIG_RR_INTERVAL=200
diff --git a/nuttx/examples/usbstorage/usbstrg_main.c b/nuttx/examples/usbstorage/usbstrg_main.c
index 590abd2a0..a45f3eacc 100644
--- a/nuttx/examples/usbstorage/usbstrg_main.c
+++ b/nuttx/examples/usbstorage/usbstrg_main.c
@@ -1,7 +1,7 @@
/****************************************************************************
* examples/usbstorage/usbstrg_main.c
*
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without