168 lines
6.6 KiB
C
168 lines
6.6 KiB
C
/**
|
|
* @file ili9488.h
|
|
*/
|
|
|
|
#ifndef ILI9844_H
|
|
#define ILI9844_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
|
#include "lvgl.h"
|
|
#else
|
|
#include "lvgl/lvgl.h"
|
|
#endif
|
|
#include "../lvgl_helpers.h"
|
|
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
#define ILI9488_DC CONFIG_LV_DISP_PIN_DC
|
|
#define ILI9488_RST CONFIG_LV_DISP_PIN_RST
|
|
#define ILI9488_BCKL CONFIG_LV_DISP_PIN_BCKL
|
|
|
|
#define ILI9488_ENABLE_BACKLIGHT_CONTROL CONFIG_LV_ENABLE_BACKLIGHT_CONTROL
|
|
|
|
#if CONFIG_LV_BACKLIGHT_ACTIVE_LVL
|
|
#define ILI9488_BCKL_ACTIVE_LVL 1
|
|
#else
|
|
#define ILI9488_BCKL_ACTIVE_LVL 0
|
|
#endif
|
|
|
|
/*******************
|
|
* ILI9488 REGS
|
|
*********************/
|
|
|
|
/* 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
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
typedef struct {
|
|
uint8_t red;
|
|
uint8_t green;
|
|
uint8_t blue;
|
|
} lv_color_custom_t;
|
|
|
|
/**********************
|
|
* GLOBAL PROTOTYPES
|
|
**********************/
|
|
|
|
void ili9488_init(void);
|
|
void ili9488_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_map);
|
|
void ili9488_enable_backlight(bool backlight);
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /*ILI9488_H*/
|