summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/lpc17xx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch/arm/src/lpc17xx')
-rw-r--r--nuttx/arch/arm/src/lpc17xx/Kconfig11
-rw-r--r--nuttx/arch/arm/src/lpc17xx/lpc17_lcd.c24
2 files changed, 35 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/lpc17xx/Kconfig b/nuttx/arch/arm/src/lpc17xx/Kconfig
index 82b830a14..923964dad 100644
--- a/nuttx/arch/arm/src/lpc17xx/Kconfig
+++ b/nuttx/arch/arm/src/lpc17xx/Kconfig
@@ -654,6 +654,14 @@ config LPC17_LCD_TFTPANEL
display panels require the digital color value of each pixel to be
applied to the display data inputs.
+config LPC17_LCD_MONOCHROME
+ bool "Monochrome LCD"
+ default n
+ depends on !LPC17_LCD_TFTPANEL
+ ---help---
+ STN LCD monochrome/color selection. Selects monochrome LCD. This
+ selection has no meaning for a TFT panel.
+
choice
prompt "Bits per pixel"
default LPC17_LCD_BPP24 if LPC17_LCD_TFTPANEL
@@ -673,6 +681,7 @@ config LPC17_LCD_BPP8
config LPC17_LCD_BPP16
bool "16 bit per pixel"
+ depends on !LPC17_LCD_MONOCHROME
config LPC17_LCD_BPP24
bool "24 bit per pixel"
@@ -680,9 +689,11 @@ config LPC17_LCD_BPP24
config LPC17_LCD_BPP16_565
bool "16 bpp, 5:6:5 mode"
+ depends on !LPC17_LCD_MONOCHROME
config LPC17_LCD_BPP12_444
bool "12 bpp, 4:4:4 mode"
+ depends on !LPC17_LCD_MONOCHROME
endchoice
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_lcd.c b/nuttx/arch/arm/src/lpc17xx/lpc17_lcd.c
index c10d8ade7..dccc10404 100644
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_lcd.c
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_lcd.c
@@ -563,6 +563,30 @@ int up_fbinitialize(void)
regval &= ~LCD_CTRL_BGR;
putreg32(regval, LPC17_LCD_CTRL);
+ /* Select monochrome or color LCD */
+
+#ifdef CONFIG_LPC17_LCD_MONOCHROME
+ /* Select monochrome LCD */
+
+ regval &= ~LCD_CTRL_BGR;
+ putreg32(regval, LPC17_LCD_CTRL);
+
+ /* Select 4- or 8-bit monochrome interface */
+
+#if LPC17_BPP > 4
+ regval |= LCD_CTRL_LCDMONO8;
+#else
+ regval &= ~LCD_CTRL_LCDMONO8;
+#endif
+ putreg32(regval, LPC17_LCD_CTRL);
+
+#else
+ /* Select color LCD */
+
+ regval &= ~(LCD_CTRL_LCDBW | LCD_CTRL_LCDMONO8);
+ putreg32(regval, LPC17_LCD_CTRL);
+#endif
+
/* Little endian byte order */
regval &= ~LCD_CTRL_BEBO;