summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2015-04-03 07:12:11 -0600
committerGregory Nutt <gnutt@nuttx.org>2015-04-03 07:12:11 -0600
commitd66baed9c8691cc7bc6f080303891e1c02165d6a (patch)
treee9383c96fb0c1a57774c1214c7f134301bb208b5
parent127f32a09a284664b7663a2a15177533f17d9575 (diff)
downloadpx4-nuttx-d66baed9c8691cc7bc6f080303891e1c02165d6a.tar.gz
px4-nuttx-d66baed9c8691cc7bc6f080303891e1c02165d6a.tar.bz2
px4-nuttx-d66baed9c8691cc7bc6f080303891e1c02165d6a.zip
Add ILI9488 header file
-rw-r--r--nuttx/drivers/lcd/README.txt52
-rw-r--r--nuttx/include/nuttx/lcd/ili9488.h137
2 files changed, 165 insertions, 24 deletions
diff --git a/nuttx/drivers/lcd/README.txt b/nuttx/drivers/lcd/README.txt
index 522749460..10e31ecec 100644
--- a/nuttx/drivers/lcd/README.txt
+++ b/nuttx/drivers/lcd/README.txt
@@ -21,7 +21,7 @@ LCD Header files
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 privided in
+ definitions used for the frame buffer driver as provided in
include/nuttx/video/fb.h.
struct lcd_dev_s
@@ -106,7 +106,7 @@ Re-usable LCD drivers reside in the drivers/lcd directory:
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 proably ahve to customize for any particular LCD
+ 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
@@ -143,7 +143,7 @@ Re-usable LCD drivers reside in the drivers/lcd directory:
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. Examplel usage:
+ with the Atmel SAM4l Xplained Pro board. Example usage:
configs/stm32f4discovery
configs/sam4l-xplained
@@ -164,67 +164,72 @@ that makes then less re-usable:
configs/hymini-stm32v/src/ssd1289.c. See also drivers/lcd/ssd1298.c
above.
- configs/stm32f4discovery/src/up_ssd1289.c. This examples is the
+ 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/up_ssd1289.c
+ configs/shenzhou/src/stm32_ssd1289.c
kwikstik-k40:
- configs/kwikstik-k40/src/up_lcd.c. Don't waste your time. This is
+ configs/kwikstik-k40/src/k40_lcd.c. Don't waste your time. This is
just a stub.
Nokia LCD Drivers:
- configs/olimex-lpc1766stk/src/up_lcd.c. This examples is the
+ configs/olimex-lpc1766stk/src/lpc17_lcd.c. This examples is the
bottom half for the driver at drivers/lcd/nokia6100.c.
- This was never completedly debugged ... there are probably issues
+ This was never completely debugged ... there are probably issues
with that nasty 9-bit SPI interfaces.
HX8346:
- configs/sam3u-ek/src/up_lcd.c. The SAM3U-EK developement board features
+ 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/up_mio283qt2.c. This driver is for the MI0283QT-2
+ 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/up_lcd.c. This driver supports the following
+ 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/up_lcd.c and configs/stm3240g-eval/src/up_lcd.c.
+ 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/up_ili93xx.c. Another ILI93xx driver.
+ 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/up_r61505u.c
+ configs/hymini-stm32v/src/stm32_r61505u.c
Sharp Memory LCD:
- configs/maple/src/up_lcd.c
+ configs/maple/src/stm32_lcd.c
OLEDs:
- configs/stm32f4discovery/src/up_ug2864ambag01.c
- configs/stm32f4discovery/src/up_ug2864hsweg01.c
- configs/sam4l-xplained/src/up_ug2832hsweg04.c
- configs/zp214xpa/src/up_ug2864ambag01.c
+ 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:
@@ -235,14 +240,14 @@ that makes then less re-usable:
Alphnumeric/segment LCD Displays:
- configs/skp16c26/src/up_lcd.c. Untested alphanumeric LCD driver.
- configs/pcblogic-pic32mx/src/up_lcd1602.c. LCD1602 is based on the
+ 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 verfied (mostly because I get bewildered
+ 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/up_lcd1602.c. Another LCD1602 segment
+ 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.
@@ -259,4 +264,3 @@ graphics/
=========
See also the usage of the LCD driver in the graphics/ directory.
-
diff --git a/nuttx/include/nuttx/lcd/ili9488.h b/nuttx/include/nuttx/lcd/ili9488.h
new file mode 100644
index 000000000..f769cd39d
--- /dev/null
+++ b/nuttx/include/nuttx/lcd/ili9488.h
@@ -0,0 +1,137 @@
+/****************************************************************************
+ * include/nuttx/lcd/ili9488.h
+ *
+ * Copyright (c) 2011, Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * - Atmel's name may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+#ifndef __INCLUDE_NUTTX_LCD_ILI9488_H
+#define __INCLUDE_NUTTX_LCD_ILI9488_H
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* Level 1 Commands (from the display Datasheet) */
+
+#define ILI9488_CMD_NOP 0x00
+#define ILI9488_CMD_SOFTWARE_RESET 0x01
+#define ILI9488_CMD_READ_DISP_ID 0x04
+#define ILI9488_CMD_READ_ERROR_DSI 0x05
+#define ILI9488_CMD_READ_DISP_STATUS 0x09
+#define ILI9488_CMD_READ_DISP_POWER_MODE 0x0a
+#define ILI9488_CMD_READ_DISP_MADCTRL 0x0b
+#define ILI9488_CMD_READ_DISP_PIXEL_FORMAT 0x0c
+#define ILI9488_CMD_READ_DISP_IMAGE_MODE 0x0d
+#define ILI9488_CMD_READ_DISP_SIGNAL_MODE 0x0e
+#define ILI9488_CMD_READ_DISP_SELF_DIAGNOSTIC 0x0f
+#define ILI9488_CMD_ENTER_SLEEP_MODE 0x10
+#define ILI9488_CMD_SLEEP_OUT 0x11
+#define ILI9488_CMD_PARTIAL_MODE_ON 0x12
+#define ILI9488_CMD_NORMAL_DISP_MODE_ON 0x13
+#define ILI9488_CMD_DISP_INVERSION_OFF 0x20
+#define ILI9488_CMD_DISP_INVERSION_ON 0x21
+#define ILI9488_CMD_PIXEL_OFF 0x22
+#define ILI9488_CMD_PIXEL_ON 0x23
+#define ILI9488_CMD_DISPLAY_OFF 0x28
+#define ILI9488_CMD_DISPLAY_ON 0x29
+#define ILI9488_CMD_COLUMN_ADDRESS_SET 0x2a
+#define ILI9488_CMD_PAGE_ADDRESS_SET 0x2b
+#define ILI9488_CMD_MEMORY_WRITE 0x2c
+#define ILI9488_CMD_MEMORY_READ 0x2e
+#define ILI9488_CMD_PARTIAL_AREA 0x30
+#define ILI9488_CMD_VERT_SCROLL_DEFINITION 0x33
+#define ILI9488_CMD_TEARING_EFFECT_LINE_OFF 0x34
+#define ILI9488_CMD_TEARING_EFFECT_LINE_ON 0x35
+#define ILI9488_CMD_MEMORY_ACCESS_CONTROL 0x36
+#define ILI9488_CMD_VERT_SCROLL_START_ADDRESS 0x37
+#define ILI9488_CMD_IDLE_MODE_OFF 0x38
+#define ILI9488_CMD_IDLE_MODE_ON 0x39
+#define ILI9488_CMD_COLMOD_PIXEL_FORMAT_SET 0x3a
+#define ILI9488_CMD_WRITE_MEMORY_CONTINUE 0x3c
+#define ILI9488_CMD_READ_MEMORY_CONTINUE 0x3e
+#define ILI9488_CMD_SET_TEAR_SCANLINE 0x44
+#define ILI9488_CMD_GET_SCANLINE 0x45
+#define ILI9488_CMD_WRITE_DISPLAY_BRIGHTNESS 0x51
+#define ILI9488_CMD_READ_DISPLAY_BRIGHTNESS 0x52
+#define ILI9488_CMD_WRITE_CTRL_DISPLAY 0x53
+#define ILI9488_CMD_READ_CTRL_DISPLAY 0x54
+#define ILI9488_CMD_WRITE_CONTENT_ADAPT_BRIGHTNESS 0x55
+#define ILI9488_CMD_READ_CONTENT_ADAPT_BRIGHTNESS 0x56
+#define ILI9488_CMD_WRITE_MIN_CAB_LEVEL 0x5e
+#define ILI9488_CMD_READ_MIN_CAB_LEVEL 0x5f
+#define ILI9488_CMD_READ_ABC_SELF_DIAG_RES 0x68
+#define ILI9488_CMD_READ_ID1 0xda
+#define ILI9488_CMD_READ_ID2 0xdb
+#define ILI9488_CMD_READ_ID3 0xdc
+
+/* Level 2 Commands (from the display Datasheet) */
+
+#define ILI9488_CMD_INTERFACE_MODE_CONTROL 0xb0
+#define ILI9488_CMD_FRAME_RATE_CONTROL_NORMAL 0xb1
+#define ILI9488_CMD_FRAME_RATE_CONTROL_IDLE_8COLOR 0xb2
+#define ILI9488_CMD_FRAME_RATE_CONTROL_PARTIAL 0xb3
+#define ILI9488_CMD_DISPLAY_INVERSION_CONTROL 0xb4
+#define ILI9488_CMD_BLANKING_PORCH_CONTROL 0xb5
+#define ILI9488_CMD_DISPLAY_FUNCTION_CONTROL 0xb6
+#define ILI9488_CMD_ENTRY_MODE_SET 0xb7
+#define ILI9488_CMD_BACKLIGHT_CONTROL_1 0xb9
+#define ILI9488_CMD_BACKLIGHT_CONTROL_2 0xba
+#define ILI9488_CMD_HS_LANES_CONTROL 0xbe
+#define ILI9488_CMD_POWER_CONTROL_1 0xc0
+#define ILI9488_CMD_POWER_CONTROL_2 0xc1
+#define ILI9488_CMD_POWER_CONTROL_NORMAL_3 0xc2
+#define ILI9488_CMD_POWER_CONTROL_IDEL_4 0xc3
+#define ILI9488_CMD_POWER_CONTROL_PARTIAL_5 0xc4
+#define ILI9488_CMD_VCOM_CONTROL_1 0xc5
+#define ILI9488_CMD_CABC_CONTROL_1 0xc6
+#define ILI9488_CMD_CABC_CONTROL_2 0xc8
+#define ILI9488_CMD_CABC_CONTROL_3 0xc9
+#define ILI9488_CMD_CABC_CONTROL_4 0xca
+#define ILI9488_CMD_CABC_CONTROL_5 0xcb
+#define ILI9488_CMD_CABC_CONTROL_6 0xcc
+#define ILI9488_CMD_CABC_CONTROL_7 0xcd
+#define ILI9488_CMD_CABC_CONTROL_8 0xce
+#define ILI9488_CMD_CABC_CONTROL_9 0xcf
+#define ILI9488_CMD_NVMEM_WRITE 0xd0
+#define ILI9488_CMD_NVMEM_PROTECTION_KEY 0xd1
+#define ILI9488_CMD_NVMEM_STATUS_READ 0xd2
+#define ILI9488_CMD_READ_ID4 0xd3
+#define ILI9488_CMD_ADJUST_CONTROL_1 0xd7
+#define ILI9488_CMD_READ_ID_VERSION 0xd8
+#define ILI9488_CMD_POSITIVE_GAMMA_CORRECTION 0xe0
+#define ILI9488_CMD_NEGATIVE_GAMMA_CORRECTION 0xe1
+#define ILI9488_CMD_DIGITAL_GAMMA_CONTROL_1 0xe2
+#define ILI9488_CMD_DIGITAL_GAMMA_CONTROL_2 0xe3
+#define ILI9488_CMD_SET_IMAGE_FUNCTION 0xe9
+#define ILI9488_CMD_ADJUST_CONTROL_2 0xf2
+#define ILI9488_CMD_ADJUST_CONTROL_3 0xf7
+#define ILI9488_CMD_ADJUST_CONTROL_4 0xf8
+#define ILI9488_CMD_ADJUST_CONTROL_5 0xf9
+#define ILI9488_CMD_SPI_READ_SETTINGS 0xfb
+#define ILI9488_CMD_ADJUST_CONTROL_6 0xfc
+#define ILI9488_CMD_ADJUST_CONTROL_7 0xff
+
+#endif /* __INCLUDE_NUTTX_LCD_ILI9488_H */