diff options
Diffstat (limited to 'nuttx/arch/arm/src/lpc17xx')
-rw-r--r-- | nuttx/arch/arm/src/lpc17xx/Kconfig | 11 | ||||
-rw-r--r-- | nuttx/arch/arm/src/lpc17xx/lpc17_lcd.c | 24 |
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; |