diff --git a/ChangeLog b/ChangeLog
index 47d661e66434c6d68c51b116094a8906801125ee..85bd587258dde890260a3ab06051faf5372822cc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4530,3 +4530,5 @@
 	  lpc17_setintedge().  This logic must be atomic because it can be
 	  re-entered before it completes enabled interrupts, sometimes
 	  leaving the interrupts in a strange state (2013-4-7).
+	* arch/arm/src/lpc17_lcd.c:  Rommel Marcelo go the LPC1788
+	  framebuffer-based LCD working.  Very nice! (2013-4-08).
diff --git a/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h b/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h
index be749e8c45e7e933d2922382a7886ce66bbfa412..40a083e872857f2bb0a4adee4e0c8ff6f1b3d71a 100644
--- a/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h
+++ b/arch/arm/src/lpc17xx/chip/lpc178x_pinconfig.h
@@ -76,36 +76,36 @@
 #define GPIO_I2S_RXCLK_1   (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN4)
 #define GPIO_CAN2_RD_1     (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN4)
 #define GPIO_CAP2p0_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN4)
-#define GPIO_LCD_VD0_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT0 | GPIO_PIN4)
+#define GPIO_LCD_VD0_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT0 | GPIO_PIN4)
 
 #define GPIO_I2S_RXWS_1    (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN5)
 #define GPIO_CAN2_TD_1     (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN5)
 #define GPIO_CAP2p1_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN5)
-#define GPIO_LCD_VD1_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT0 | GPIO_PIN5)
+#define GPIO_LCD_VD1_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT0 | GPIO_PIN5)
 
 #define GPIO_I2S_RXSDA_1   (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN6)
 #define GPIO_SSP1_SSEL_1   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN6)
 #define GPIO_MAT2p0_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN6)
 #define GPIO_UART1_RTS_1   (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN6)
-#define GPIO_LCD_VD8_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT0 | GPIO_PIN6)
+#define GPIO_LCD_VD8_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT0 | GPIO_PIN6)
 
 #define GPIO_I2S_TXCLK_1   (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN7)
 #define GPIO_SSP1_SCK_1    (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN7)
 #define GPIO_MAT2p1_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN7)
 #define GPIO_RTC_EV0_1     (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN7)
-#define GPIO_LCD_VD9_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT0 | GPIO_PIN7)
+#define GPIO_LCD_VD9_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT0 | GPIO_PIN7)
 
 #define GPIO_I2S_TXWS_1    (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN8)
 #define GPIO_SSP1_MISO_1   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN8)
 #define GPIO_MAT2p2_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN8)
 #define GPIO_RTC_EV1_1     (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN8)
-#define GPIO_LCD_VD16      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT0 | GPIO_PIN8)
+#define GPIO_LCD_VD16      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT0 | GPIO_PIN8)
 
 #define GPIO_I2S_TXSDA_1   (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN9)
 #define GPIO_SSP1_MOSI_1   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN9)
 #define GPIO_MAT2p3_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN9)
 #define GPIO_RTC_EV2_1     (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN9)
-#define GPIO_LCD_VD17      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT0 | GPIO_PIN9)
+#define GPIO_LCD_VD17      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT0 | GPIO_PIN9)
 
 #define GPIO_UART2_TXD_1   (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN10)
 #define GPIO_I2C2_SDA_1    (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT0 | GPIO_PIN10)
@@ -274,78 +274,78 @@
 #define GPIO_QEI_PHA       (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN20)
 #define GPIO_MCPWM_MCFB0   (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN20)
 #define GPIO_SSP0_SCK_2    (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN20)
-#define GPIO_LCD_VD6_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN20)
-#define GPIO_LCD_VD10_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN20)
+#define GPIO_LCD_VD6_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN20)
+#define GPIO_LCD_VD10_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN20)
 
 #define GPIO_USB1_TXDM     (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN21)
 #define GPIO_PWM1p3_1      (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN21)
 #define GPIO_SSP0_SSEL_2   (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN21)
 #define GPIO_MCPWM_ABORT   (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN21)
-#define GPIO_LCD_VD7_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN21)
-#define GPIO_LCD_VD11_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN21)
+#define GPIO_LCD_VD7_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN21)
+#define GPIO_LCD_VD11_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN21)
 
 #define GPIO_USB1_RCV      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN22)
 #define GPIO_USB1_PWRD     (GPIO_ALT2 | GPIO_PULLDN | GPIO_PORT1 | GPIO_PIN22)
 #define GPIO_MAT1p0_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN22)
 #define GPIO_MCPWM_MCOB    (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN22)
 #define GPIO_SSP1_MOSI_3   (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN22)
-#define GPIO_LCD_VD8_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN22)
-#define GPIO_LCD_VD12_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN22)
+#define GPIO_LCD_VD8_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN22)
+#define GPIO_LCD_VD12_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN22)
 
 #define GPIO_USB1_RXDP     (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN23)
 #define GPIO_PWM1p4_1      (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN23)
 #define GPIO_QEI_PHB       (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN23)
 #define GPIO_MCPWM_MCFB1   (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN23)
 #define GPIO_SSP0_MOSI_2   (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN23)
-#define GPIO_LCD_VD9_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN23)
-#define GPIO_LCD_VD13_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN23)
+#define GPIO_LCD_VD9_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN23)
+#define GPIO_LCD_VD13_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN23)
 
 #define GPIO_USB1_RXDM     (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN24)
 #define GPIO_PWM1p5_1      (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN24)
 #define GPIO_QEI_IDX       (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN24)
 #define GPIO_MCPWM_MCFB2   (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN24)
 #define GPIO_SSP0_MOSI_3   (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN24)
-#define GPIO_LCD_VD10_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN24)
-#define GPIO_LCD_VD14_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN24)
+#define GPIO_LCD_VD10_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN24)
+#define GPIO_LCD_VD14_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN24)
 
 #define GPIO_USB1_LS       (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN25)
 #define GPIO_USB1_HSTEN    (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN25)
 #define GPIO_MAT1p1_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN25)
 #define GPIO_MCPWM_MC1A    (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN25)
 #define GPIO_CLKOUT_       (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN25)
-#define GPIO_LCD_VD11_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN25)
-#define GPIO_LCD_VD15_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN25)
+#define GPIO_LCD_VD11_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN25)
+#define GPIO_LCD_VD15_1    (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN25)
 
 #define GPIO_USB1_SSPND    (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN26)
 #define GPIO_PWM1p6_1      (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN26)
 #define GPIO_CAP0p0_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN26)
 #define GPIO_MCPWM_MC1B    (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN26)
 #define GPIO_SSP1_SSEL_3   (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN26)
-#define GPIO_LCD_VD12_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN26)
-#define GPIO_LCD_VD20      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN26)
+#define GPIO_LCD_VD12_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN26)
+#define GPIO_LCD_VD20      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN26)
 
 #define GPIO_USB1_INT      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN27)
 #define GPIO_USB1_OVRCR    (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN27)
 #define GPIO_CAP0p1_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN27)
 #define GPIO_CLKOUT_2      (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN27)
-#define GPIO_LCD_VD13_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN27)
-#define GPIO_LCD_VD21      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN27)
+#define GPIO_LCD_VD13_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN27)
+#define GPIO_LCD_VD21      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN27)
 
 #define GPIO_USB1_SCL      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN28)
 #define GPIO_PCAP1p0_1     (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN28)
 #define GPIO_MAT0p0_1      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN28)
 #define GPIO_MCPWM_MC2A    (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN28)
 #define GPIO_SSP0_SSEL_3   (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN28)
-#define GPIO_LCD_VD14_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN28)
-#define GPIO_LCD_VD22      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN28)
+#define GPIO_LCD_VD14_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN28)
+#define GPIO_LCD_VD22      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN28)
 
 #define GPIO_USB1_SDA      (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_MCPWM_MC2B    (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN29)
 #define GPIO_UART4_TXD_2   (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN29)
-#define GPIO_LCD_VD15_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN29)
-#define GPIO_LCD_VD23      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT1 | GPIO_PIN29)
+#define GPIO_LCD_VD15_2    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN29)
+#define GPIO_LCD_VD23      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT1 | GPIO_PIN29)
 
 #define GPIO_USB2_PWRD     (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN30)
 #define GPIO_USB_VBUS      (GPIO_ALT2 | GPIO_FLOAT  | GPIO_PORT1 | GPIO_PIN30)
@@ -360,7 +360,7 @@
 
 #define GPIO_PWM1p1_2      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN0)
 #define GPIO_UART1_TXD_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN0)
-#define GPIO_LCD_PWR       (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN0)
+#define GPIO_LCD_PWR       (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN0)
 
 #define GPIO_PWM1p2_2      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN1)
 #define GPIO_UART1_RXD_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN1)
@@ -370,53 +370,53 @@
 #define GPIO_UART1_CTS_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN2)
 #define GPIO_MAT2p3_2      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN2)
 #define GPIO_TRACEDATA3    (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN2)
-#define GPIO_LCD_DCLK      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN2 )
+#define GPIO_LCD_DCLK      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN2 )
 
 #define GPIO_PWM1p4_2      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN3)
 #define GPIO_UART1_DCD_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN3)
 #define GPIO_MAT2p2_2      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN3)
 #define GPIO_TRACEDATA2    (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN3)
-#define GPIO_LCD_FP        (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN3)
+#define GPIO_LCD_FP        (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN3)
 
 #define GPIO_PWM1p5_2      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN4)
 #define GPIO_UART1_DSR_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN4)
 #define GPIO_MAT2p1_2      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN4)
 #define GPIO_TRACEDATA1    (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN4)
-#define GPIO_LCD_ENABM     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN4)
+#define GPIO_LCD_ENABM     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN4)
 
 #define GPIO_PWM1p6_2      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN5)
 #define GPIO_UART1_DTR_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN5)
 #define GPIO_MAT2p0_2      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN5)
 #define GPIO_TRACEDATA0    (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN5)
-#define GPIO_LCD_LP        (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN5)
+#define GPIO_LCD_LP        (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN5)
 
 #define GPIO_PCAP1p0_2     (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN6)
 #define GPIO_UART1_RI_2    (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN6)
 #define GPIO_CAP2p0_3      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN6)
 #define GPIO_UART2_OE_2    (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN6)
 #define GPIO_TRACECLK      (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN6)
-#define GPIO_LCD_VD0_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN6)
-#define GPIO_LCD_VD4_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN6)
+#define GPIO_LCD_VD0_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN6)
+#define GPIO_LCD_VD4_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN6)
 
 #define GPIO_CAN2_RD_2     (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN7)
 #define GPIO_UART1_RTS_3   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN7)
 #define GPIO_SPIFI_CS      (GPIO_ALT5 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN7)
-#define GPIO_LCD_VD1_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN7)
-#define GPIO_LCD_VD5_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN7)
+#define GPIO_LCD_VD1_2     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN7)
+#define GPIO_LCD_VD5_1     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN7)
 
 #define GPIO_CAN2_TD_2     (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN8)
 #define GPIO_UART2_TXD_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN8)
 #define GPIO_UART1_CTS_3   (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN8)
 #define GPIO_ENET_MDC_2    (GPIO_ALT4 | GPIO_FLOAT  | GPIO_PORT2 | GPIO_PIN8)
-#define GPIO_LCD_VD2_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN8)
-#define GPIO_LCD_VD6_2     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN8)
+#define GPIO_LCD_VD2_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN8)
+#define GPIO_LCD_VD6_2     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN8)
 
 #define GPIO_USB1_CONNECT  (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN9)
 #define GPIO_UART2_RXD_2   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN9)
 #define GPIO_UART4_RXD_1   (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN9)
 #define GPIO_ENET_MDIO_2   (GPIO_ALT4 | GPIO_FLOAT  | GPIO_PORT2 | GPIO_PIN9)
-#define GPIO_LCD_VD3_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN9)
-#define GPIO_LCD_VD7_2     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN9)
+#define GPIO_LCD_VD3_1     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN9)
+#define GPIO_LCD_VD7_2     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN9)
 
 #define GPIO_EINT0_2       (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN10)
 #define GPIO_NMI           (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN10)
@@ -429,17 +429,17 @@
 #define GPIO_EINT2         (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN12)
 #define GPIO_SD_DAT2_2     (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN12)
 #define GPIO_I2S_TXWS_2    (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN12)
-#define GPIO_LCD_VD4_2     (GPIO_ALT4 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN12)
-#define GPIO_LCD_VD3_2     (GPIO_ALT5 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN12)
-#define GPIO_LCD_VD8_3     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN12)
-#define GPIO_LCD_VD18      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN12)
+#define GPIO_LCD_VD4_2     (GPIO_ALT4 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN12)
+#define GPIO_LCD_VD3_2     (GPIO_ALT5 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN12)
+#define GPIO_LCD_VD8_3     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN12)
+#define GPIO_LCD_VD18      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN12)
 
 #define GPIO_EINT3         (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN13)
 #define GPIO_SD_DAT3_2     (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN13)
 #define GPIO_I2S_TXSDA_2   (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN13)
-#define GPIO_LCD_VD5_2     (GPIO_ALT5 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN13)
-#define GPIO_LCD_VD9_3     (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN13)
-#define GPIO_LCD_VD19      (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT2 | GPIO_PIN13)
+#define GPIO_LCD_VD5_2     (GPIO_ALT5 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN13)
+#define GPIO_LCD_VD9_3     (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN13)
+#define GPIO_LCD_VD19      (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT2 | GPIO_PIN13)
 
 #define GPIO_EMC_CS2       (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN14)
 #define GPIO_I2C1_SDA_3    (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN14)
@@ -613,17 +613,17 @@
 #define GPIO_EMC_BLS2      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN28)
 #define GPIO_UART3_TXD_4   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN28)
 #define GPIO_MAT2p0_3      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN28)
-#define GPIO_LCD_VD6_3     (GPIO_ALT5 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT4 | GPIO_PIN28)
-#define GPIO_LCD_VD10_3    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT4 | GPIO_PIN28)
-#define GPIO_LCD_VD2_2     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT4 | GPIO_PIN28)
+#define GPIO_LCD_VD6_3     (GPIO_ALT5 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT4 | GPIO_PIN28)
+#define GPIO_LCD_VD10_3    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT4 | GPIO_PIN28)
+#define GPIO_LCD_VD2_2     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT4 | GPIO_PIN28)
 
 #define GPIO_EMC_BLS3      (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN29)
 #define GPIO_UART3_RXD_4   (GPIO_ALT2 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN29)
 #define GPIO_MAT2p1_3      (GPIO_ALT3 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN29)
 #define GPIO_I2C2_SCL_3    (GPIO_ALT4 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN29)
-#define GPIO_LCD_VD7_3     (GPIO_ALT5 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT4 | GPIO_PIN29)
-#define GPIO_LCD_VD11_3    (GPIO_ALT6 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT4 | GPIO_PIN29)
-#define GPIO_LCD_VD3_3     (GPIO_ALT7 | GPIO_FLOAT | GPIO_HYSTERESIS | GPIO_PORT4 | GPIO_PIN29)
+#define GPIO_LCD_VD7_3     (GPIO_ALT5 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT4 | GPIO_PIN29)
+#define GPIO_LCD_VD11_3    (GPIO_ALT6 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT4 | GPIO_PIN29)
+#define GPIO_LCD_VD3_3     (GPIO_ALT7 | GPIO_FLOAT | GPIO_SLEW | GPIO_PORT4 | GPIO_PIN29)
 
 #define GPIO_EMC_CS0       (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN30)
 #define GPIO_EMC_CS1       (GPIO_ALT1 | GPIO_PULLUP | GPIO_PORT4 | GPIO_PIN31)
diff --git a/arch/arm/src/lpc17xx/chip/lpc17_lcd.h b/arch/arm/src/lpc17xx/chip/lpc17_lcd.h
index 7ac1d3a6137a30ea4f7ce542e779c57138bec820..d7b919cb60cef2958bcdd21820033ffef7cbd62a 100644
--- a/arch/arm/src/lpc17xx/chip/lpc17_lcd.h
+++ b/arch/arm/src/lpc17xx/chip/lpc17_lcd.h
@@ -206,6 +206,8 @@
 #define LCD_INTMSK_VCOMPIM              (1 << 3)  /* Bit 3: Vertical compare interrupt enable */
 #define LCD_INTMSK_BERIM                (1 << 4)  /* Bit 4: AHB Master error interrupt enable */
                                                   /* Bits 5-31: Reserved */
+#define LCD_INTMSK_ALL                  (0x1e)
+
 /* LCD_INTRAW - Raw Interrupt Status Register */
                                                   /* Bits 0: Reserved */
 #define LCD_INTRAW_FUFRIS               (1 << 1)  /* Bit 1: FIFO Undeflow raw interrupt status */
@@ -213,6 +215,8 @@
 #define LCD_INTRAW_VCOMPRIS             (1 << 3)  /* Bit 3: Vertical compare interrupt status */
 #define LCD_INTRAW_BERRAW               (1 << 4)  /* Bit 4: AHB Master bus error interrupt status */
                                                   /* Bits 5-31: Reserved */
+#define LCD_INTRAW_ALL                  (0x1e)
+
 /* LCD_INTSTAT - Masked Interrupt Status Register */
                                                   /* Bits 0: Reserved */
 #define LCD_INTSTAT_FUFMIS              (1 << 1)  /* Bit 1: FIFO Undeflow raw interrupt status */
@@ -220,6 +224,8 @@
 #define LCD_INTSTAT_VCOMPMIS            (1 << 3)  /* Bit 3: Vertical compare interrupt status */
 #define LCD_INTSTAT_BERMIS              (1 << 4)  /* Bit 4: AHB Master bus error interrupt status */
                                                   /* Bits 15-31: Reserved */
+#define LCD_INTSTAT_ALL                 (0x1e)
+
 /* LCD_INTCLR - Interrupt Clear Register */
                                                   /* Bits 0: Reserved */
 #define LCD_INTCLR_FUFIC                (1 << 1)  /* Bit 1: FIFO Undeflow raw interrupt clear */
@@ -227,6 +233,8 @@
 #define LCD_INTCLR_VCOMPIC              (1 << 3)  /* Bit 3: Vertical compare interrupt clear */
 #define LCD_INTCLR_BERIC                (1 << 4)  /* Bit 4: AHB Master bus error interrupt clear */
                                                   /* Bits 15-31: Reserved */
+#define LCD_INTCLR_ALL                  (0x1e)
+
 /* Upper and Lower Panel Address register has no bitfields */
 /*
  *   Upper Panel Current Address register (LCDUPCURR)
diff --git a/arch/arm/src/lpc17xx/lpc178x_gpio.c b/arch/arm/src/lpc17xx/lpc178x_gpio.c
index 2e72d7a22738461987b2a1dab3dce6483a711af8..11a22bed58ddeab2623b153940ce12560baadc5f 100755
--- a/arch/arm/src/lpc17xx/lpc178x_gpio.c
+++ b/arch/arm/src/lpc17xx/lpc178x_gpio.c
@@ -132,7 +132,6 @@ const uint32_t g_intbase[GPIO_NPORTS] =
  *
  ****************************************************************************/
 
-#if 0 /* Not used */
 static uint32_t lpc17_getioconmask(unsigned int port, unsigned int pin)
 {
   uint32_t typemask = IOCON_TYPE_D_MASK;
@@ -207,7 +206,7 @@ static uint32_t lpc17_getioconmask(unsigned int port, unsigned int pin)
 
   return typemask;
 }
-#endif
+
 
 /****************************************************************************
  * Name: lpc17_seti2cmode
@@ -242,12 +241,15 @@ static void lpc17_setpinfunction(unsigned int port, unsigned int pin,
 {
   uint32_t regaddr;
   uint32_t regval;
+  uint32_t typemask;
 
+  typemask= lpc17_getioconmask(port,pin);
   regaddr = LPC17_IOCON_P(port, pin);
   regval  = getreg32(regaddr);
 
   regval &= ~IOCON_FUNC_MASK;
   regval |= ((value << IOCON_FUNC_SHIFT) & IOCON_FUNC_MASK);
+  regval &= typemask;
   putreg32(regval, regaddr);
 }
 
@@ -774,6 +776,10 @@ static int lpc17_configalternate(lpc17_pinset_t cfgset, unsigned int port,
       lpc17_setopendrain(port, pin);
     }
 
+  /* Set output slew rate */
+
+  lpc17_setslewmode(cfgset, port, pin);
+
   /* Select the alternate pin */
 
   lpc17_setpinfunction(port, pin, alt);
diff --git a/arch/arm/src/lpc17xx/lpc17_lcd.c b/arch/arm/src/lpc17xx/lpc17_lcd.c
index cf326ea5f283a983deb4a69630a0972cdf21b409..4050356e46eae9b5e9997f85a3654e57a9b56e0a 100644
--- a/arch/arm/src/lpc17xx/lpc17_lcd.c
+++ b/arch/arm/src/lpc17xx/lpc17_lcd.c
@@ -466,16 +466,12 @@ int up_fbinitialize(void)
 
   gvdbg("Entry\n");
 
-  /* Disable LCD controller */
+  /* Give LCD bus priority */
 
-  regval = getreg32(LPC17_LCD_CTRL);
-  regval &= ~LCD_CTRL_LCDPWR;
-  putreg32(regval, LPC17_LCD_CTRL);
-
-  for (i = LPC17_LCD_PWRDIS_DELAY; i; i--);
-
-  regval &= ~LCD_CTRL_LCDEN;
-  putreg32(regval, LPC17_LCD_CTRL);
+  regval = ((SYSCON_MATRIXARB_PRI_ICODE(SYSCON_MATRIXARB_PRI_LOW)) |
+            (SYSCON_MATRIXARB_PRI_DCODE(SYSCON_MATRIXARB_PRI_HIGHEST)) |
+            (SYSCON_MATRIXARB_PRI_LCD(SYSCON_MATRIXARB_PRI_HIGHEST)));
+  putreg32(regval, LPC17_SYSCON_MATRIXARB);
 
   /* Configure pins */
   /* Video data */
@@ -519,22 +515,31 @@ int up_fbinitialize(void)
   lpc17_configgpio(GPIO_LCD_ENABM);
   lpc17_configgpio(GPIO_LCD_PWR);
 
-  gvdbg("Configuring the LCD controller\n");
-
   /* Turn on LCD clock */
 
   modifyreg32(LPC17_SYSCON_PCONP, 0, SYSCON_PCONP_PCLCD);
 
+  gvdbg("Configuring the LCD controller\n");
+
   /* Disable the cursor */
 
   regval  = getreg32(LPC17_LCD_CRSR_CRTL);
   regval &= ~LCD_CRSR_CTRL_CRSON;
   putreg32(regval, LPC17_LCD_CRSR_CRTL);
 
+  /* Clear any pending interrupts */
+
+  putreg32(LCD_INTCLR_ALL, LPC17_LCD_INTCLR);
+
   /* Disable GLCD controller */
 
   putreg32(0, LPC17_LCD_CTRL);
 
+  /* Initialize pixel clock (assuming clock source is the peripheral clock) */
+
+  putreg32(((uint32_t)BOARD_PCLK_FREQUENCY / (uint32_t)LPC17_LCD_PIXEL_CLOCK)+1,
+           LPC17_SYSCON_LCDCFG);
+
   /* Set the bits per pixel */
 
   regval  = getreg32(LPC17_LCD_CTRL);
@@ -558,24 +563,19 @@ int up_fbinitialize(void)
   regval |= LCD_CTRL_LCDBPP_444;    /* 12 bpp, 4:4:4 mode */
 #endif
 
-  putreg32(regval, LPC17_LCD_CTRL);
-
   /* TFT panel */
 
 #if CONFIG_LPC17_LCD_TFTPANEL
   regval |= LCD_CTRL_LCDTFT;
-  putreg32(regval, LPC17_LCD_CTRL);
 #endif
 
-  /* Single panel */
+  /* Swap red and blue */
 
-  regval &= ~LCD_CTRL_LCDDUAL;
-  putreg32(regval, LPC17_LCD_CTRL);
+  regval |= LCD_CTRL_BGR;
 
-  /* Normal RGB output */
+  /* Single panel */
 
-  regval &= ~LCD_CTRL_BGR;
-  putreg32(regval, LPC17_LCD_CTRL);
+  regval &= ~LCD_CTRL_LCDDUAL;
 
   /* Select monochrome or color LCD */
 
@@ -583,96 +583,83 @@ int up_fbinitialize(void)
   /* Select monochrome LCD */
 
   regval &= ~LCD_CTRL_BGR;
-  putreg32(regval, LPC17_LCD_CTRL);
 
   /* Select 4- or 8-bit monochrome interface */
 
-#if LPC17_BPP > 4
+#  if LPC17_BPP > 4
   regval |= LCD_CTRL_LCDMONO8;
-#else
+#  else
   regval &= ~LCD_CTRL_LCDMONO8;
-#endif
-  putreg32(regval, LPC17_LCD_CTRL);
+#  endif
 
 #else
   /* Select color LCD */
 
   regval &= ~(LCD_CTRL_LCDBW | LCD_CTRL_LCDMONO8);
-  putreg32(regval, LPC17_LCD_CTRL);
-#endif
+
+#endif /* CONFIG_LPC17_LCD_MONOCHROME */
 
   /* Little endian byte order */
 
   regval &= ~LCD_CTRL_BEBO;
-  putreg32(regval, LPC17_LCD_CTRL);
 
   /* Little endian pixel order */
 
   regval &= ~LCD_CTRL_BEPO;
   putreg32(regval, LPC17_LCD_CTRL);
 
-  /* Disable power */
+  /* Initialize horizontal timing */
 
-  regval &= ~LCD_CTRL_LCDPWR;
-  putreg32(regval, LPC17_LCD_CTRL);
+  putreg32(0, LPC17_LCD_TIMH);
 
-  /* Initialize pixel clock (assuming clock source is the peripheral clock) */
+  regval = (((CONFIG_LPC17_LCD_HWIDTH/16) - 1) << LCD_TIMH_PPL_SHIFT |
+            (CONFIG_LPC17_LCD_HPULSE - 1)      << LCD_TIMH_HSW_SHIFT |
+            (CONFIG_LPC17_LCD_HFRONTPORCH - 1) << LCD_TIMH_HFP_SHIFT |
+            (CONFIG_LPC17_LCD_HBACKPORCH - 1)  << LCD_TIMH_HBP_SHIFT);
+  putreg32(regval, LPC17_LCD_TIMH);
 
-  putreg32(BOARD_PCLK_FREQUENCY / LPC17_LCD_PIXEL_CLOCK, LPC17_SYSCON_LCDCFG);
+  /* Initialize vertical timing */
 
-  /* Bypass internal pixel clock divider */
+  putreg32(0, LPC17_LCD_TIMV);
 
-  regval  = getreg32(LPC17_LCD_POL);
-  regval |= LCD_POL_BCD;
-  putreg32(regval, LPC17_LCD_POL);
+  regval = ((CONFIG_LPC17_LCD_VHEIGHT - 1) << LCD_TIMV_LPP_SHIFT |
+            (CONFIG_LPC17_LCD_VPULSE - 1)  << LCD_TIMV_VSW_SHIFT |
+            (CONFIG_LPC17_LCD_VFRONTPORCH) << LCD_TIMV_VFP_SHIFT |
+            (CONFIG_LPC17_LCD_VBACKPORCH)  << LCD_TIMV_VBP_SHIFT);
+  putreg32(regval, LPC17_LCD_TIMV);
 
-  /* Select the PCLK for the LCD block clock source */
+  /* Initialize clock and signal polarity */
 
-  regval &= ~LCD_POL_CLKSEL;
-  putreg32(regval, LPC17_LCD_POL);
+  regval = getreg32(LPC17_LCD_POL);
 
   /* LCDFP pin is active LOW and inactive HIGH */
 
   regval |= LCD_POL_IVS;
-  putreg32(regval, LPC17_LCD_POL);
 
   /* LCDLP pin is active LOW and inactive HIGH */
 
   regval |= LCD_POL_IHS;
-  putreg32(regval, LPC17_LCD_POL);
 
   /* Data is driven out into the LCD on the falling edge */
 
   regval &= ~LCD_POL_IPC;
-  putreg32(regval, LPC17_LCD_POL);
-
-  /* Active high */
 
-  regval &= ~LCD_POL_IOE;
-  putreg32(regval, LPC17_LCD_POL);
+  /* Set number of clocks per line */
 
-  regval &= ~LCD_POL_CPL_MASK;
-  regval |= (CONFIG_LPC17_LCD_HWIDTH-1) << LCD_POL_CPL_SHIFT;
-  putreg32(regval, LPC17_LCD_POL);
+  regval |= ((CONFIG_LPC17_LCD_HWIDTH-1) << LCD_POL_CPL_SHIFT);
 
-  /* Initialize horizontal timing */
+  /* Bypass internal pixel clock divider */
 
-  putreg32(0, LPC17_LCD_TIMH);
+  regval |= LCD_POL_BCD;
 
-  regval = (((CONFIG_LPC17_LCD_HWIDTH/16) - 1) << LCD_TIMH_PPL_SHIFT |
-            (CONFIG_LPC17_LCD_HPULSE - 1)      << LCD_TIMH_HSW_SHIFT |
-            (CONFIG_LPC17_LCD_HFRONTPORCH - 1) << LCD_TIMH_HFP_SHIFT |
-            (CONFIG_LPC17_LCD_HBACKPORCH - 1)  << LCD_TIMH_HBP_SHIFT);
-  putreg32(regval, LPC17_LCD_TIMH);
+  /* LCD_ENAB_M is active high */
 
-  /* Initialize vertical timing */
+  regval &= ~LCD_POL_IOE;
 
-  putreg32(0, LPC17_LCD_TIMV);
+  /* Select CCLK for the LCD block clock source */
 
-  regval = ((CONFIG_LPC17_LCD_VHEIGHT - 1) << LCD_TIMV_LPP_SHIFT |
-            (CONFIG_LPC17_LCD_VPULSE - 1)  << LCD_TIMV_VSW_SHIFT |
-            (CONFIG_LPC17_LCD_VFRONTPORCH) << LCD_TIMV_VFP_SHIFT |
-            (CONFIG_LPC17_LCD_VBACKPORCH)  << LCD_TIMV_VBP_SHIFT);
+  regval &= ~LCD_POL_CLKSEL;
+  putreg32(regval, LPC17_LCD_POL);
 
   /* Frame base address doubleword aligned */
 
@@ -682,26 +669,32 @@ int up_fbinitialize(void)
   /* Clear the display */
 
   lpc17_lcdclear(CONFIG_LPC17_LCD_BACKCOLOR);
-  for (i = LPC17_LCD_PWREN_DELAY; i; i--);
 
-  /* Enable LCD */
+#ifdef CONFIG_LPC17_LCD_BACKLIGHT
+  /* Turn on the back light */
+
+  lpc17_backlight(true);
+#endif
 
+  putreg32(0, LPC17_LCD_INTMSK);
   gvdbg("Enabling the display\n");
 
+  for (i = LPC17_LCD_PWREN_DELAY; i; i--);
+
+  /* Enable LCD */
+
   regval  = getreg32(LPC17_LCD_CTRL);
   regval |= LCD_CTRL_LCDEN;
   putreg32(regval, LPC17_LCD_CTRL);
 
+  /* Enable LCD power */
+
   for (i = LPC17_LCD_PWREN_DELAY; i; i--);
 
+  regval  = getreg32(LPC17_LCD_CTRL);
   regval |= LCD_CTRL_LCDPWR;
   putreg32(regval, LPC17_LCD_CTRL);
 
-#ifdef CONFIG_LPC17_LCD_BACKLIGHT
-  /* Turn on the back light */
-
-  lpc17_backlight(true);
-#endif
   return OK;
 }