diff --git a/ChangeLog b/ChangeLog
index bcc923a2c563c0effd11646691f7f3f8ca6fa047..f6d88ef3d6c4a584d5533f5eff9b6fcf6a56d035 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1090,3 +1090,6 @@
 	  no one has been using this port.
 
 5.4 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+
+	* include/nuttx/lcd.h - Defines an LCD interface.
+
diff --git a/Documentation/NXGraphicsSubsystem.html b/Documentation/NXGraphicsSubsystem.html
index 22aa5f962536e5df23b5dbb8fd7b18959b48170f..a712bfa6ea53b9f80ebdb246ebe28f17acb6d891 100644
--- a/Documentation/NXGraphicsSubsystem.html
+++ b/Documentation/NXGraphicsSubsystem.html
@@ -12,7 +12,7 @@
       <h1><big><font color="#3c34ec">
         <i>NX Graphics Subsystem</i>
       </font></big></h1>
-      <p>Last Updated: December 16, 2008</p>
+      <p>Last Updated: April 16, 2010</p>
     </td>
   </tr>
 </table>
@@ -2606,6 +2606,10 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
     <dt><code>CONFIG_NX_PACKEDMSFIRST</code>:
       <dd>If a pixel depth of less than 8-bits is used, then NX needs
       to know if the pixels pack from the MS to LS or from LS to MS
+    <dt><code>CONFIG_NX_LCDDRIVER</code>:
+      <dd>By default, NX builds to use a framebuffer driver (see <code>include/nuttx/fb.h</code>).
+      If this option is defined, NX will build to use an LCD driver (see <code>include/nuttx/lcd.h</code>).
+  </li>
   </dl>
 </ul>
 
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index 8dd0eaa498d4fac27f7235e8575a147dd47a7436..53171e5b3753756407cfc67b9f758c333bc66cd7 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -8,7 +8,7 @@
   <tr align="center" bgcolor="#e4e4e4">
     <td>
       <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
-      <p>Last Updated: April 11, 2010</p>
+      <p>Last Updated: April 14, 2010</p>
     </td>
   </tr>
 </table>
@@ -1689,28 +1689,9 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt;
 </table>
 
 <ul><pre>
-nuttx-5.3 2010-04-11 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-
-	* arch/arm/src/lpc313x/lpc313x_usbdev.c - USB driver for the LPC313x
-	  contributed by David Hewson.
-	* configs/ea3131/src/up_ubstrgc.c, configs/ea3131/usbserial,
-	  configs/ea3131/usbstorage - USB storage and USB serial example support
-	  contributed by David Hewson.
-	* Several important compilation error fixes in lpc313x and (dualspeed) USB
-	  code also contributed by David Hewson.
-	* arch/arm/src/sam3u/sam3u_dmac.c - DMA support for the AT90SAM3U.
-	* arch/arm/src/sam3u/sam3u_hsmci.c - SD memory card support for AT90SAM3U
-	  (Neither the DMA nor the HSMCI driver are functional on the initial checkin).
-	* drivers/usbdev - Several important fixes to the USB mass storage driver
-	  submitted by David Hewson.
-	* configs/olimex-lpc2378, arch/arm/include/lpc2378, and arch/arm/src/lpc2378 -
-	  Basic port of the NXP 2378 on the Olimex board contributed by
-	  Rommel Marcelo.
-	* arch/arm/src/sam3u/sam3u_internal.h - Fixed a critical bug in the AT91SAM3U
-	  PIO decoding.  No PIOs greater than 15 could be used on any port!  Obviously,
-	  no one has been using this port.
+nuttx-5.4 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
 
-nuttx-5.3 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+	* include/nuttx/lcd.h - Defines an LCD interface.
 
 pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
 
diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
index 0d00497b9c72b74e07f120767ad9222ca3f61528..b2359dd9e71a5b7cf80bc2338bf9e23141a3fea9 100644
--- a/Documentation/NuttxPortingGuide.html
+++ b/Documentation/NuttxPortingGuide.html
@@ -12,7 +12,7 @@
       <h1><big><font color="#3c34ec">
         <i>NuttX RTOS Porting Guide</i>
       </font></big></h1>
-      <p>Last Updated: December 16, 2009</p>
+      <p>Last Updated: April 16, 2010</p>
     </td>
   </tr>
 </table>
@@ -2850,6 +2850,11 @@ extern void up_ledoff(int led);
     If a pixel depth of less than 8-bits is used, then NX needs
     to know if the pixels pack from the MS to LS or from LS to MS
   </li>
+  <li>
+    <code>CONFIG_NX_LCDDRIVER</code>:
+    By default, NX builds to use a framebuffer driver (see <code>include/nuttx/fb.h</code>).
+    If this option is defined, NX will build to use an LCD driver (see <code>include/nuttx/lcd.h</code>).
+  </li>
   <li>
     <code>CONFIG_NX_MOUSE</code>:
     Build in support for mouse input.
diff --git a/arch/sim/src/up_framebuffer.c b/arch/sim/src/up_framebuffer.c
index d71a5e9e930e13232d1d14ba66550bc754451bfe..298eb9f8a512eae115f9fad12035db395d3f430d 100644
--- a/arch/sim/src/up_framebuffer.c
+++ b/arch/sim/src/up_framebuffer.c
@@ -1,7 +1,7 @@
 /****************************************************************************
  * arch/sim/src/up_framebuffer.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
diff --git a/configs/README.txt b/configs/README.txt
index 863cdf52d6c48f5df5a9569ba68f702b0ef325ef..51b73972176d179a1c1b8dbda52573e16c31a040 100644
--- a/configs/README.txt
+++ b/configs/README.txt
@@ -518,6 +518,10 @@ defconfig -- This is a configuration file similar to the Linux
 		CONFIG_NX_PACKEDMSFIRST
 		  If a pixel depth of less than 8-bits is used, then NX needs
 		  to know if the pixels pack from the MS to LS or from LS to MS
+		CONFIG_NX_LCDDRIVER
+		  By default, NX builds to use a framebuffer driver (see
+		  include/nuttx/fb.h). If this option is defined, NX will
+		  build to use an LCD driver (see include/nuttx/lcd.h).
 		CONFIG_NX_MOUSE
 		  Build in support for mouse input.
 		CONFIG_NX_KBD
diff --git a/drivers/mmcsd/mmcsd_sdio.c b/drivers/mmcsd/mmcsd_sdio.c
index ef37210662b006cf1f632e467e01e5237ed0d0c3..e5d438bc34c15da9f84983196f6244980eb641a5 100644
--- a/drivers/mmcsd/mmcsd_sdio.c
+++ b/drivers/mmcsd/mmcsd_sdio.c
@@ -2355,6 +2355,12 @@ static int mmcsd_sdinitialize(FAR struct mmcsd_state_s *priv)
     {
       fdbg("WARN: Failed to set wide bus operation: %d\n", ret);
     }
+
+  /* TODO: If widebus selected, then send CMD6 to see if the card supports
+   * high speed mode.  A new SDIO method will be needed to set high speed
+   * mode.
+   */
+
   return OK;
 }
 
diff --git a/examples/nx/nx_kbdin.c b/examples/nx/nx_kbdin.c
index adfd686f7bc0eb8b80dc49ff7f64101f7d6f4564..e1cc9cd2e4894fa7294e7bad0e390142e6821961 100644
--- a/examples/nx/nx_kbdin.c
+++ b/examples/nx/nx_kbdin.c
@@ -1,7 +1,7 @@
 /****************************************************************************
  * examples/nx/nx_kbdin.c
  *
- *   Copyright (C) 2008 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
diff --git a/include/nuttx/lcd.h b/include/nuttx/lcd.h
index d1a1ce62171dd1c7e6a738b29eec61e6c6121423..aee8d1dd236481cdf5f3e4e0a8f218a9748536f4 100755
--- a/include/nuttx/lcd.h
+++ b/include/nuttx/lcd.h
@@ -52,11 +52,25 @@
  ****************************************************************************/
 
 /* This structure describes one color plane.  Some YUV formats may support
- * up to 4 planes
+ * up to 4 planes (although they probably wouldn't be used on LCD hardware).
+ * The framebuffer driver provides the video memory address in its
+ * corresponding fb_planeinfo_s structure.  The LCD driver, instead, provides
+ * methods to transfer data to/from the LCD color plane.
  */
 
 struct lcd_planeinfo_s
 {
+  /* LCD Data Transfer ******************************************************/
+
+  int (*putrun)(struct lcd_dev_s *dev, unsigned int planeno,
+                fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
+                size_t npixels);
+  int (*getrun)(struct lcd_dev_s *dev, unsigned int planeno,
+                fb_coord_t row, fb_coord_t col, FAR uint8_t *buffer,
+                size_t npixels);
+
+  /* Plane color characteristics ********************************************/
+
   uint8_t bpp; /* Bits per pixel */
 };
 
@@ -117,12 +131,6 @@ struct lcd_dev_s
   /* Set LCD panel contrast (0-CONFIG_LCD_MAXCONTRAST) */
 
   int (*setcontrast)(struct lcd_dev_s *dev, unsigned int contrast);
-
-  /* LCD Data Transfer ******************************************************/
-
-  int (*run)(struct lcd_dev_s *dev, unsigned int planeno,
-             fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
-             size_t npixels);
 };
 
 /****************************************************************************
diff --git a/include/nuttx/nxtk.h b/include/nuttx/nxtk.h
index 2eb07bb7c583634e7ebc91f47f4197179e048bbe..43f29ca22cd55a64d6613f6851d45c209028b848 100644
--- a/include/nuttx/nxtk.h
+++ b/include/nuttx/nxtk.h
@@ -1,7 +1,7 @@
 /****************************************************************************
  * include/nuttx/nxtk.h
  *
- *   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