diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig
index 681bc85d62695192d412bf3d11a982f5e0558b2b..601c8c186741e3e3599ceebc4e680abac9c79700 100755
--- a/configs/lm3s6965-ek/nx/defconfig
+++ b/configs/lm3s6965-ek/nx/defconfig
@@ -580,7 +580,7 @@ CONFIG_NX_MXCLIENTMSGS=16
 # RiT P14201 OLED Driver Configuration
 #
 # CONFIG_LCD_P14201 - Enable P14201 support
-# CONFIG_P14201_SPIMODE - Controls the SPI mode
+# CONFIG_P14201_SPIMODE - Controls the SPI mode (should be mode 2)
 # CONFIG_P14201_FREQUENCY - Define to use a different bus frequency
 # CONFIG_P14201_NINTERFACES - Specifies the number of physical P14201 devices that
 #   will be supported.
@@ -593,7 +593,7 @@ CONFIG_NX_MXCLIENTMSGS=16
 #
 #   The latter limitation effectively reduces the 128x96 disply to 64x96.
 CONFIG_LCD_P14201=y
-CONFIG_P14201_SPIMODE=0
+CONFIG_P14201_SPIMODE=2
 CONFIG_P14201_FREQUENCY=20000000
 CONFIG_P14201_NINTERFACES=1
 CONFIG_P14201_FRAMEBUFFER=y
diff --git a/configs/lm3s6965-ek/src/up_oled.c b/configs/lm3s6965-ek/src/up_oled.c
index 10d467a58cbbd6d0b44098c7263921c25ff486db..5bc3e9146ab602fcf57de0dea02456943f7347b0 100755
--- a/configs/lm3s6965-ek/src/up_oled.c
+++ b/configs/lm3s6965-ek/src/up_oled.c
@@ -45,6 +45,7 @@
 #include <errno.h>
 
 #include <nuttx/spi.h>
+#include <nuttx/lcd.h>
 #include <nuttx/p14201.h>
 
 #include "lm3s_internal.h"
@@ -94,6 +95,10 @@ FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno)
      else
         {
           gllvdbg("Bound SPI port 0 to OLED %d\n", devno);
+
+          /* And turn the OLED on (CONFIG_LCD_MAXPOWER should be 1) */
+
+          (void)dev->setpower(dev, CONFIG_LCD_MAXPOWER);
           return dev;
         }
     }
diff --git a/drivers/lcd/p14201.c b/drivers/lcd/p14201.c
index 7e334dcdb1bc4a6c21abdf5dedc238fa2963a919..b8edc52feb2b279f5dced4dee40fc810c63f6a33 100755
--- a/drivers/lcd/p14201.c
+++ b/drivers/lcd/p14201.c
@@ -93,6 +93,8 @@
 #ifndef CONFIG_P14201_SPIMODE
 #  define CONFIG_P14201_SPIMODE SPIDEV_MODE2
 #endif
+#undef CONFIG_P14201_SPIMODE
+#  define CONFIG_P14201_SPIMODE SPIDEV_MODE2
 
 /* CONFIG_P14201_NINTERFACES determines the number of physical interfaces
  * that will be supported.
@@ -440,16 +442,21 @@ static const uint8_t g_setallrow[] =
  
 static inline void rit_configspi(FAR struct spi_dev_s *spi)
 {
+#ifdef CONFIG_P14201_FREQUENCY
+  ritdbg("Mode: %d Bits: 8 Frequency: %d\n",
+         CONFIG_P14201_SPIMODE, CONFIG_P14201_FREQUENCY);
+#else
+  ritdbg("Mode: %d Bits: 8\n", CONFIG_P14201_SPIMODE);
+#endif
+
   /* Configure SPI for the P14201.  But only if we own the SPI bus.  Otherwise, don't
    * bother because it might change.
    */
 
 #ifdef CONFIG_SPI_OWNBUS
-  ritdbg("Mode: %d Bits: 8\n", CONFIG_P14201_SPIMODE);
   SPI_SETMODE(spi, CONFIG_P14201_SPIMODE);
   SPI_SETBITS(spi, 8);
 #ifdef CONFIG_P14201_FREQUENCY
-  ritdbg("Frequency: %d\n", CONFIG_P14201_FREQUENCY);
   SPI_SETFREQUENCY(spi, CONFIG_P14201_FREQUENCY)
 #endif
 #endif
@@ -476,7 +483,6 @@ static inline void rit_select(FAR struct spi_dev_s *spi)
 {
   /* We own the SPI bus, so just select the chip */
 
-  ritdbg("Selected\n");
   SPI_SELECT(spi, SPIDEV_DISPLAY, true);
 }
 #else
@@ -486,7 +492,6 @@ static void rit_select(FAR struct spi_dev_s *spi)
    * devices competing for the SPI bus
    */
 
-  ritdbg("Selected\n");
   SPI_LOCK(spi, true);
   SPI_SELECT(spi, SPIDEV_DISPLAY, true);
 
@@ -494,11 +499,9 @@ static void rit_select(FAR struct spi_dev_s *spi)
    * might have gotten configured for a different device while unlocked)
    */
 
-  ritdbg("Mode: %d Bits: 8\n", CONFIG_P14201_SPIMODE);
   SPI_SETMODE(spi, CONFIG_P14201_SPIMODE);
   SPI_SETBITS(spi, 8);
 #ifdef CONFIG_P14201_FREQUENCY
-  ritdbg("Frequency: %d\n", CONFIG_P14201_FREQUENCY);
   SPI_SETFREQUENCY(spi, CONFIG_P14201_FREQUENCY);
 #endif
 }
@@ -525,7 +528,6 @@ static inline void rit_deselect(FAR struct spi_dev_s *spi)
 {
   /* We own the SPI bus, so just de-select the chip */
 
-  ritdbg("De-selected\n");
   SPI_SELECT(spi, SPIDEV_DISPLAY, false);
 }
 #else
@@ -533,7 +535,6 @@ static void rit_deselect(FAR struct spi_dev_s *spi)
 {
   /* De-select P14201 chip and relinquish the SPI bus. */
 
-  ritdbg("De-selected\n");
   SPI_SELECT(spi, SPIDEV_DISPLAY, false);
   SPI_LOCK(spi, false);
 }
@@ -618,7 +619,7 @@ static void rit_sndcmds(FAR struct rit_dev_s *priv, FAR const uint8_t *table)
 
   while ((cmdlen = *table++) != 0)
     {
-      ritdbg("command: %02x cmdlen: %d\n", cmdlen, *table);
+      ritdbg("command: %02x cmdlen: %d\n", *table, cmdlen);
       rit_sndcmd(priv, table, cmdlen);
       table += cmdlen;
     }
@@ -765,6 +766,7 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
   start = col >> 1;
   aend  = (col + npixels) >> 1;
   end   = (col + npixels + 1) >> 1;
+  ritdbg("start: %d aend: %d end: %d\n", start, aend, end);
 
   /* Copy the run into the framebuffer, handling nibble alignment */
 
@@ -1173,17 +1175,17 @@ FAR struct lcd_dev_s *rit_initialize(FAR struct spi_dev_s *spi, unsigned int dev
 
   gvdbg("Initializing devno: %d\n", devno);
  
-  /* Configure and enable LCD */
-
-  rit_configspi(spi);
-  rit_sndcmds(priv, g_initcmds);
-
   /* Driver state data */
 
   priv->spi      = spi;
   priv->contrast = RIT_CONTRAST;
   priv->on       = false;
 
+  /* Configure and enable LCD */
+
+  rit_configspi(spi);
+  rit_sndcmds(priv, g_initcmds);
+
   /* Clear the display */
 
   rit_clear(priv);