diff --git a/ChangeLog b/ChangeLog index 9595f0c251..73d58ff8e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1162,3 +1162,5 @@ for SPI-based MMC/SD cards and integrate into the NSH example. * arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D interrupts. + * arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being + provided to GPIO module. This is a critical bugfix! diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 5d1600b9d2..fdbbc9f228 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: June 30, 2010

+

Last Updated: July 2, 2010

@@ -1827,6 +1827,8 @@ nuttx-5.8 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> for SPI-based MMC/SD cards and integrate into the NSH example. * arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D interrupts. + * arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being + provided to GPIO module. This is a critical bugfix! pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/arch/arm/src/lpc17xx/lpc17_clockconfig.c b/arch/arm/src/lpc17xx/lpc17_clockconfig.c index 27c1d42584..7f41371bf8 100755 --- a/arch/arm/src/lpc17xx/lpc17_clockconfig.c +++ b/arch/arm/src/lpc17xx/lpc17_clockconfig.c @@ -189,11 +189,11 @@ void lpc17_clockconfig(void) putreg32(0, LPC17_SYSCON_PCLKSEL0); putreg32(0, LPC17_SYSCON_PCLKSEL1); - /* Disable power to all peripherals. They must be re-powered one at a time by each - * device driver when the driver is initialized. + /* Disable power to all peripherals (execpt GPIO). Peripherals must be re-powered + * one at a time by each device driver when the driver is initialized. */ - putreg32(0, LPC17_SYSCON_PCONP); + putreg32(SYSCON_PCONP_PCGPIO, LPC17_SYSCON_PCONP); /* Disable CLKOUT */ diff --git a/arch/arm/src/lpc17xx/lpc17_syscon.h b/arch/arm/src/lpc17xx/lpc17_syscon.h index 2de4824cf4..8b963373ee 100755 --- a/arch/arm/src/lpc17xx/lpc17_syscon.h +++ b/arch/arm/src/lpc17xx/lpc17_syscon.h @@ -382,7 +382,7 @@ #define SYSCON_PCONP_PCADC (1 << 12) /* Bit 12: A/D converter (ADC) power/clock control */ #define SYSCON_PCONP_PCCAN1 (1 << 13) /* Bit 13: CAN Controller 1 power/clock control */ #define SYSCON_PCONP_PCCAN2 (1 << 14) /* Bit 14: CAN Controller 2 power/clock control */ - /* Bit 15: Reserved */ +#define SYSCON_PCONP_PCGPIO (1 << 15) /* Bit 15: GPIOs power/clock enable */ #define SYSCON_PCONP_PCRIT (1 << 16) /* Bit 16: Repetitive Interrupt Timer power/clock control */ #define SYSCON_PCONP_PCMCPWM (1 << 17) /* Bit 17: Motor Control PWM */ #define SYSCON_PCONP_PCQEI (1 << 18) /* Bit 18: Quadrature Encoder power/clock control */ diff --git a/configs/nucleus2g/src/up_leds.c b/configs/nucleus2g/src/up_leds.c index cac3f89f62..fbc5a30afa 100755 --- a/configs/nucleus2g/src/up_leds.c +++ b/configs/nucleus2g/src/up_leds.c @@ -340,7 +340,11 @@ void up_ledon(int led) #ifdef LED_VERBOSE if (led != LED_INIRQ) { - led_dumpgpio("up_ledon() Exit"); + ledvdbg("led: %d LED1: %d LED2: %d HB: %d\n", + led, g_led1on[led], g_led2on[led], g_ledhbon[led]); + ledvdbg("LED1: {(%d,%d), (%d,%d)} LED2: {(%d,%d), (%d,%d)}\n", + g_prevled1a, g_currled1a, g_prevled1b, g_currled1b, + g_prevled2a, g_currled2a, g_prevled2b, g_currled2b); } #endif } @@ -358,7 +362,11 @@ void up_ledoff(int led) #ifdef LED_VERBOSE if (led != LED_INIRQ) { - led_dumpgpio("up_ledoff() Exit"); + ledvdbg("led: %d LED1: %d LED2: %d HB: %d\n", + led, g_led1off[led], g_led2off[led], g_ledhboff[led]); + ledvdbg("LED1: {(%d,%d), (%d,%d)} LED2: {(%d,%d), (%d,%d)}\n", + g_prevled1a, g_currled1a, g_prevled1b, g_currled1b, + g_prevled2a, g_currled2a, g_prevled2b, g_currled2b); } #endif }