Gregory Nutt 25f6586c92 Update some input parameter descriptions. 5 years ago
..
Kconfig a830d59da2 This commit brings in a complete, but untested, implementation of a driver for the TI TDA19988 HDMI Encoder. This encoder is used on the Beaglebone Black board. Since this driver is untested, it requires CONFIG_EXPERIMENTAL in the configuration. 5 years ago
Make.defs a830d59da2 This commit brings in a complete, but untested, implementation of a driver for the TI TDA19988 HDMI Encoder. This encoder is used on the Beaglebone Black board. Since this driver is untested, it requires CONFIG_EXPERIMENTAL in the configuration. 5 years ago
README.txt 9da3d4a2a9 drivers/lcd and configs/olimex-lpc1766stk: Remove support for the Nokia6100 LCD. That LCD uses a 9-bit SPI interface (the 9th bit being the command/data bit that is normally a discrete). That communication was never successfully integrated. I now believe that it would would require some special support from the low-level, MCU SPI driver to manage that 9th bit. The deleted code is still available in the Obsoleted repository in the nuttx/drivers/lcd, nuttx/configs/olimex-lpc1766stk, and Patches directories. 6 years ago
ft80x.c 8fdbb1e0a4 Elimate use of the non-standard type systime_t and replace it the equivalent, standard type clock_t 6 years ago
ft80x.h 2baa155791 drivers/lcd: In order to actually use the new register access IOCTL calls, need to move the register address definitions out of the private header file and into the public header file. 6 years ago
ft80x_spi.c 399b9860af Squashed commit of the following: 6 years ago
ili9341.c 67c609e343 Merged in antmerlino/nuttx/big-endian (pull request #784) 5 years ago
lcd_framebuffer.c 9527f849f4 drivers/lcd: Detect and handle more errors in return values within the LCD framebuffer and SSD1306 drivers 6 years ago
max7219.c 8c61c2f31b Remove trailing spaces at the end of lines. 6 years ago
memlcd.c 283b73edc5 Fix lots of typos in C comments and Kconfig help text 6 years ago
mio283qt2.c 24c51ec1ff Centralize definitions associated with CONFIG_DEBUG_LCD 8 years ago
mio283qt9a.c 24c51ec1ff Centralize definitions associated with CONFIG_DEBUG_LCD 8 years ago
p14201.c c2c2c4f111 drivers/lcd: Make LCD driver configuration indepently selected from NX graphics configuration. This makes things awkward and loses some error checking but is a necessary step in order to make LCD drivers usable when the NX graphics system is disabled. 7 years ago
pcd8544.c b54ffe858a Standardization of some function headers. 6 years ago
pcd8544.h 8f8ee5009d Update some C comments. 6 years ago
pcf8574_lcd_backpack.c dc5d18a092 drivers/lcd/pcf8574_lcd_backpack.c: Fix seek method. Had the same problems as noted for st7032.c driver. 5 years ago
pcf8574_lcd_backpack_readme.txt 4643fcdfd8 correct logic hazard in latch and load nybble; was transitioning control lines at the same time as enable, causing spurious behaviour on less-tolerant displays 8 years ago
pcf8833.h ac394041bf Standardize nameing of the pre-processor definitiongs group header 9 years ago
ra8875.c 24c51ec1ff Centralize definitions associated with CONFIG_DEBUG_LCD 8 years ago
ra8875.h a8a3790139 RA8875 LCD driver contributed by Marten Svanfeldt 9 years ago
s1d15g10.h ac394041bf Standardize nameing of the pre-processor definitiongs group header 9 years ago
sd1329.h e4d2822af8 Make some file section headers more consistent with standard 9 years ago
skeleton.c 0c8c7fecf0 Add _ to the beginning of all debug macros to avoid name collisions 8 years ago
ssd1289.c 24c51ec1ff Centralize definitions associated with CONFIG_DEBUG_LCD 8 years ago
ssd1289.h 3a1324741a More trailing whilespace removal 10 years ago
ssd1305.h 7a9457bb07 Email address change in nuttx/ 12 years ago
ssd1306.h 9527f849f4 drivers/lcd: Detect and handle more errors in return values within the LCD framebuffer and SSD1306 drivers 6 years ago
ssd1306_base.c 9527f849f4 drivers/lcd: Detect and handle more errors in return values within the LCD framebuffer and SSD1306 drivers 6 years ago
ssd1306_i2c.c 10069067c1 include/nuttx/i2c/i2c_master.h: Rename I2C_M_NORESTART to I2C_M_NOSTART since it may be used in other contexts than a repeated start. Add comments to clarilfy setup for repeated start. 6 years ago
ssd1306_spi.c 9527f849f4 drivers/lcd: Detect and handle more errors in return values within the LCD framebuffer and SSD1306 drivers 6 years ago
ssd1351.c c2c2c4f111 drivers/lcd: Make LCD driver configuration indepently selected from NX graphics configuration. This makes things awkward and loses some error checking but is a necessary step in order to make LCD drivers usable when the NX graphics system is disabled. 7 years ago
st7032.c 508f90605c drivers/lcd/st7032.c: Fix another error in seek method: Does not account for negative offsets! 5 years ago
st7565.c c2c2c4f111 drivers/lcd: Make LCD driver configuration indepently selected from NX graphics configuration. This makes things awkward and loses some error checking but is a necessary step in order to make LCD drivers usable when the NX graphics system is disabled. 7 years ago
st7565.h e336d24898 drivers/lcd/st7565.c: Use ST7565_POWERCTRL_INT instead of ST7565_POWERCTRL_BRF 7 years ago
st7567.c b54ffe858a Standardization of some function headers. 6 years ago
st7567.h f6206367fb More ST5767 LCD files missed in last commit 11 years ago
tda19988.c 25f6586c92 Update some input parameter descriptions. 5 years ago
tda19988.h 536735420b drivers/lcd/tda19988.c: Remove EDID definitions. Use definitions from new edid.h. 5 years ago
ug-2864ambag01.c c2c2c4f111 drivers/lcd: Make LCD driver configuration indepently selected from NX graphics configuration. This makes things awkward and loses some error checking but is a necessary step in order to make LCD drivers usable when the NX graphics system is disabled. 7 years ago
ug-9664hswag01.c b54ffe858a Standardization of some function headers. 6 years ago

README.txt

nuttx/drivers/lcd README
========================

This is the README.txt file for the drivers/lcd/ directory.

Contents
========

- LCD Header files
include/nuttx/lcd/lcd.h
struct lcd_dev_s
- Binding LCD Drivers
- Examples: /drivers/lcd/
- Examples: configs/
- graphics/

LCD Header files
================

include/nuttx/lcd/lcd.h

Structures and APIs needed to work with LCD drivers are provided in
this header file. This header file also depends on some of the same
definitions used for the frame buffer driver as provided in
include/nuttx/video/fb.h.

struct lcd_dev_s

Each LCD device driver must implement an instance of struct lcd_dev_s.
That structure defines a call table with the following methods:

- Get information about the LCD video controller configuration and the
configuration of each LCD color plane.

int (*getvideoinfo)(FAR struct lcd_dev_s *dev,
FAR struct fb_videoinfo_s *vinfo);
int (*getplaneinfo)(FAR struct lcd_dev_s *dev, unsigned int planeno,
FAR struct lcd_planeinfo_s *pinfo);

- The following are provided only if the video hardware supports RGB
color mapping:

int (*getcmap)(FAR struct lcd_dev_s *dev,
FAR struct fb_cmap_s *cmap);
int (*putcmap)(FAR struct lcd_dev_s *dev,
FAR const struct fb_cmap_s *cmap);

- The following are provided only if the video hardware supports a
hardware cursor:

int (*getcursor)(FAR struct lcd_dev_s *dev,
FAR struct fb_cursorattrib_s *attrib);
int (*setcursor)(FAR struct lcd_dev_s *dev,
FAR struct fb_setcursor_s *settings);

- Get the LCD panel power status (0: full off - CONFIG_LCD_MAXPOWER:
full on). On backlit LCDs, this setting may correspond to the
backlight setting.

int (*getpower)(struct lcd_dev_s *dev);

- Enable/disable LCD panel power (0: full off - CONFIG_LCD_MAXPOWER:
full on). On backlit LCDs, this setting may correspond to the
backlight setting.

int (*setpower)(struct lcd_dev_s *dev, int power);

- Get the current contrast setting (0-CONFIG_LCD_MAXCONTRAST) */

int (*getcontrast)(struct lcd_dev_s *dev);

- Set LCD panel contrast (0-CONFIG_LCD_MAXCONTRAST)

int (*setcontrast)(struct lcd_dev_s *dev, unsigned int contrast);

Binding LCD Drivers
===================

LCD drivers are not normally directly accessed by user code, but are
usually bound to another, higher level device driver. In general, the
binding sequence is:

1. Get an instance of struct lcd_dev_s from the hardware-specific LCD
device driver, and
2. Provide that instance to the initialization method of the higher
level device driver.

Examples: /drivers/lcd/
=======================

Re-usable LCD drivers reside in the drivers/lcd directory:

LCDs:
----
mio283qt2.c. This is a driver for the MI0283QT-2 LCD from Multi-Inno
Technology Co., Ltd. This LCD is based on the Himax HX8347-D LCD
controller.

mio283qt9a.c. This is a driver for the MI0283QT-9A LCD from Multi-Inno
Technology Co., Ltd. This LCD is based on the Ilitek ILI9341 LCD
controller.

ssd12989.c. Generic LCD driver for LCDs based on the Solomon Systech
SSD1289 LCD controller. Think of this as a template for an LCD driver
that you will probably have to customize for any particular LCD
hardware. (see also configs/hymini-stm32v/src/ssd1289.c below).

st7567.c. LCD Display Module, ST7567, Univision Technology Inc. Used
with the LPCXpresso and Embedded Artists base board.

memlcd.c. Sharp Memory LCD Suite, LS013B7DH01, LS013B7DH03, etc.
There are some more different models, they are basically controlled
by similar logics, thus this driver can be extended. Example usage:

ra8875.c. RAiO Technologies RA8875 LCD controller. Contributed by
Marten Svanfeldt.

OLEDs:
-----
p14201.c. Driver for RiT P14201 series display with SD1329 IC
controller. Based on the SD1329 controller. This OLED is used with
older versions of the TI/Luminary LM3S8962 Evaluation Kit. Example
usage

configs/lm3s6965-ek/src
configs/lm3s8962-ek/src

ug-2864ambag01.c. OLED Display Module, UUG-2864AMBAG01, Univision
Technology Inc. Based on the SH1101A controller. Example usage:

configs/stm32f4discovery
configs/zp214xp

ug-9664hswag01.c. OLED Display Module, UG-9664HSWAG01, Univision
Technology Inc. Based on the SSD1305 controller. Used with the
LPC Xpresso and Embedded Artists base board. Example usage:

configs/lpcxpresso-lpc1768

ssd1306.c. OLED Display Modules based on the SSD1306 controllers.
This includes the UG-2864HSWEG01 and UG2832HSWEG04, Both from Univision
Technology Inc. The latter is used with the OLED1 module that comes
with the Atmel SAM4l Xplained Pro board. Example usage:

configs/stm32f4discovery
configs/sam4l-xplained

Segment LCDS (SLCDs):
---------------------

pcf8574_lcd_backpack.c: See pcf8574_lcd_backpack_readme.txt.

Examples: configs/
==================

There are additional LCD drivers in the configs//src directory
that support additional LCDs. LCD drivers in the configuration directory
if they support some differ LCD interface (such as a parallel interface)
that makes then less re-usable:

SSD1289 Drivers:

configs/hymini-stm32v/src/ssd1289.c. See also drivers/lcd/ssd1298.c
above.
configs/stm32f4discovery/src/stm32_ssd1289.c. This examples is the
bottom half for the SSD1289 driver at drivers/lcd/ssd1289.c
configs/hymini-stm32v/src/ssd1289.c. See also drivers/lcd/ssd1298.c
above.
configs/shenzhou/src/stm32_ssd1289.c

kwikstik-k40:

configs/kwikstik-k40/src/k40_lcd.c. Don't waste your time. This is
just a stub.

HX8346:

configs/sam3u-ek/src/sam_lcd.c. The SAM3U-EK development board features
a TFT/Transmissive color LCD module with touch-screen, FTM280C12D,
with integrated driver IC HX8346.

HX8347:

configs/pic32mx7mmb/src/pic32_mio283qt2.c. This driver is for the MI0283QT-2
LCD from Multi-Inno Technology Co., Ltd. This LCD is based on the Himax
HX8347-D LCD controller.

ILI93xx and Similar:

configs/stm3210e-eval/src/stm32_lcd.c. This driver supports the following
LCDs:

1. Ampire AM-240320LTNQW00H
2. Orise Tech SPFD5408B
3. RenesasSP R61580

configs/stm3220g-eval/src/stm32_lcd.c and configs/stm3240g-eval/src/smt32_lcd.c.
AM-240320L8TNQW00H (LCD_ILI9320 or LCD_ILI9321) and
AM-240320D5TOQW01H (LCD_ILI9325)

configs/shenzhou/src/stm32_ili93xx.c. Another ILI93xx driver.
config/sam4e-ek/src/sam_ili9325.c. ILI9325 driver
config/sam4e-ek/src/sam_ili9341.c. ILI9341 driver

ILI9488

configs/samv71-xult/src/sam_ili9488.c
include/nuttx/lcd/ili9488.h

R61505U

configs/hymini-stm32v/src/stm32_r61505u.c

Sharp Memory LCD:

configs/maple/src/stm32_lcd.c

OLEDs:

configs/stm32f4discovery/src/stm32_ug2864ambag01.c
configs/stm32f4discovery/src/stm32_ug2864hsweg01.c
configs/sam4l-xplained/src/sa,_ug2832hsweg04.c
configs/zp214xpa/src/lpc2148_ug2864ambag01.c

LCD controllers built-into the MCU:

arch/arm/src/lpc17xx/lpc17_lcd.c and configs/open1788/src/lpc17_lcd.c.
RGB LCD display panel.
configs/stm32ldiscovery/src/stm32_lcd.c. 1x6 segment LCD with bars
using the segment LCD controller built-into the STM32L15X.

Alphnumeric/segment LCD Displays:

configs/skp16c26/src/m16c_lcd.c. Untested alphanumeric LCD driver.
configs/pcblogic-pic32mx/src/pic32mx_lcd1602.c. LCD1602 is based on the
Hitachi HD44780U LCD controller. This version of the driver
uses the PIC32MX PMP interface to control the LCD. As of this
writing, has *NOT* been verified (mostly because I get bewildered
by all of the jumper wires). See include/nuttx/lcd/hd4478ou.h
for more information about LCD1602.
configs/sure-pic32mx/src/pic32_lcd1602.c. Another LCD1602 segment
LCD. This is a bit-bang version of the driver and appears to
be fully functional. This version of the LCD1602 driver has
been verified and is working fine.
configs/stm32ldiscovery/src/stm32_lcd.c. 1x6 segment LCD with bars
using the segment LCD controller built-into the STM32L15X.

TFT Panel Drivers:

configs/open1788/src/lpc17_lcd.c and arch/arm/src/lpc17xx/lpc17_lcd.c
configs/sama5d3x-ek/src and configs/sama5d4-ek/src: Use
arch/arm/src/sama5/sam_lcd.c

graphics/
=========

See also the usage of the LCD driver in the graphics/ directory.