Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Defines for Mobile Industry Processor Interface (MIPI(R))
0004  * Display Working Group standards: DSI, DCS, DBI, DPI
0005  *
0006  * Copyright (C) 2010 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
0007  * Copyright (C) 2006 Nokia Corporation
0008  * Author: Imre Deak <imre.deak@nokia.com>
0009  */
0010 #ifndef MIPI_DISPLAY_H
0011 #define MIPI_DISPLAY_H
0012 
0013 /* MIPI DSI Processor-to-Peripheral transaction types */
0014 enum {
0015     MIPI_DSI_V_SYNC_START               = 0x01,
0016     MIPI_DSI_V_SYNC_END             = 0x11,
0017     MIPI_DSI_H_SYNC_START               = 0x21,
0018     MIPI_DSI_H_SYNC_END             = 0x31,
0019 
0020     MIPI_DSI_COMPRESSION_MODE           = 0x07,
0021     MIPI_DSI_END_OF_TRANSMISSION            = 0x08,
0022 
0023     MIPI_DSI_COLOR_MODE_OFF             = 0x02,
0024     MIPI_DSI_COLOR_MODE_ON              = 0x12,
0025     MIPI_DSI_SHUTDOWN_PERIPHERAL            = 0x22,
0026     MIPI_DSI_TURN_ON_PERIPHERAL         = 0x32,
0027 
0028     MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM        = 0x03,
0029     MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM        = 0x13,
0030     MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM        = 0x23,
0031 
0032     MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM       = 0x04,
0033     MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM       = 0x14,
0034     MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM       = 0x24,
0035 
0036     MIPI_DSI_DCS_SHORT_WRITE            = 0x05,
0037     MIPI_DSI_DCS_SHORT_WRITE_PARAM          = 0x15,
0038 
0039     MIPI_DSI_DCS_READ               = 0x06,
0040     MIPI_DSI_EXECUTE_QUEUE              = 0x16,
0041 
0042     MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE     = 0x37,
0043 
0044     MIPI_DSI_NULL_PACKET                = 0x09,
0045     MIPI_DSI_BLANKING_PACKET            = 0x19,
0046     MIPI_DSI_GENERIC_LONG_WRITE         = 0x29,
0047     MIPI_DSI_DCS_LONG_WRITE             = 0x39,
0048 
0049     MIPI_DSI_PICTURE_PARAMETER_SET          = 0x0a,
0050     MIPI_DSI_COMPRESSED_PIXEL_STREAM        = 0x0b,
0051 
0052     MIPI_DSI_LOOSELY_PACKED_PIXEL_STREAM_YCBCR20    = 0x0c,
0053     MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR24        = 0x1c,
0054     MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR16        = 0x2c,
0055 
0056     MIPI_DSI_PACKED_PIXEL_STREAM_30         = 0x0d,
0057     MIPI_DSI_PACKED_PIXEL_STREAM_36         = 0x1d,
0058     MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR12        = 0x3d,
0059 
0060     MIPI_DSI_PACKED_PIXEL_STREAM_16         = 0x0e,
0061     MIPI_DSI_PACKED_PIXEL_STREAM_18         = 0x1e,
0062     MIPI_DSI_PIXEL_STREAM_3BYTE_18          = 0x2e,
0063     MIPI_DSI_PACKED_PIXEL_STREAM_24         = 0x3e,
0064 };
0065 
0066 /* MIPI DSI Peripheral-to-Processor transaction types */
0067 enum {
0068     MIPI_DSI_RX_ACKNOWLEDGE_AND_ERROR_REPORT    = 0x02,
0069     MIPI_DSI_RX_END_OF_TRANSMISSION         = 0x08,
0070     MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE   = 0x11,
0071     MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE   = 0x12,
0072     MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE      = 0x1a,
0073     MIPI_DSI_RX_DCS_LONG_READ_RESPONSE      = 0x1c,
0074     MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE   = 0x21,
0075     MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE   = 0x22,
0076 };
0077 
0078 /* MIPI DCS commands */
0079 enum {
0080     MIPI_DCS_NOP            = 0x00,
0081     MIPI_DCS_SOFT_RESET     = 0x01,
0082     MIPI_DCS_GET_COMPRESSION_MODE   = 0x03,
0083     MIPI_DCS_GET_DISPLAY_ID     = 0x04,
0084     MIPI_DCS_GET_ERROR_COUNT_ON_DSI = 0x05,
0085     MIPI_DCS_GET_RED_CHANNEL    = 0x06,
0086     MIPI_DCS_GET_GREEN_CHANNEL  = 0x07,
0087     MIPI_DCS_GET_BLUE_CHANNEL   = 0x08,
0088     MIPI_DCS_GET_DISPLAY_STATUS = 0x09,
0089     MIPI_DCS_GET_POWER_MODE     = 0x0A,
0090     MIPI_DCS_GET_ADDRESS_MODE   = 0x0B,
0091     MIPI_DCS_GET_PIXEL_FORMAT   = 0x0C,
0092     MIPI_DCS_GET_DISPLAY_MODE   = 0x0D,
0093     MIPI_DCS_GET_SIGNAL_MODE    = 0x0E,
0094     MIPI_DCS_GET_DIAGNOSTIC_RESULT  = 0x0F,
0095     MIPI_DCS_ENTER_SLEEP_MODE   = 0x10,
0096     MIPI_DCS_EXIT_SLEEP_MODE    = 0x11,
0097     MIPI_DCS_ENTER_PARTIAL_MODE = 0x12,
0098     MIPI_DCS_ENTER_NORMAL_MODE  = 0x13,
0099     MIPI_DCS_GET_IMAGE_CHECKSUM_RGB = 0x14,
0100     MIPI_DCS_GET_IMAGE_CHECKSUM_CT  = 0x15,
0101     MIPI_DCS_EXIT_INVERT_MODE   = 0x20,
0102     MIPI_DCS_ENTER_INVERT_MODE  = 0x21,
0103     MIPI_DCS_SET_GAMMA_CURVE    = 0x26,
0104     MIPI_DCS_SET_DISPLAY_OFF    = 0x28,
0105     MIPI_DCS_SET_DISPLAY_ON     = 0x29,
0106     MIPI_DCS_SET_COLUMN_ADDRESS = 0x2A,
0107     MIPI_DCS_SET_PAGE_ADDRESS   = 0x2B,
0108     MIPI_DCS_WRITE_MEMORY_START = 0x2C,
0109     MIPI_DCS_WRITE_LUT      = 0x2D,
0110     MIPI_DCS_READ_MEMORY_START  = 0x2E,
0111     MIPI_DCS_SET_PARTIAL_ROWS   = 0x30,     /* MIPI DCS 1.02 - MIPI_DCS_SET_PARTIAL_AREA before that */
0112     MIPI_DCS_SET_PARTIAL_COLUMNS    = 0x31,
0113     MIPI_DCS_SET_SCROLL_AREA    = 0x33,
0114     MIPI_DCS_SET_TEAR_OFF       = 0x34,
0115     MIPI_DCS_SET_TEAR_ON        = 0x35,
0116     MIPI_DCS_SET_ADDRESS_MODE   = 0x36,
0117     MIPI_DCS_SET_SCROLL_START   = 0x37,
0118     MIPI_DCS_EXIT_IDLE_MODE     = 0x38,
0119     MIPI_DCS_ENTER_IDLE_MODE    = 0x39,
0120     MIPI_DCS_SET_PIXEL_FORMAT   = 0x3A,
0121     MIPI_DCS_WRITE_MEMORY_CONTINUE  = 0x3C,
0122     MIPI_DCS_SET_3D_CONTROL     = 0x3D,
0123     MIPI_DCS_READ_MEMORY_CONTINUE   = 0x3E,
0124     MIPI_DCS_GET_3D_CONTROL     = 0x3F,
0125     MIPI_DCS_SET_VSYNC_TIMING   = 0x40,
0126     MIPI_DCS_SET_TEAR_SCANLINE  = 0x44,
0127     MIPI_DCS_GET_SCANLINE       = 0x45,
0128     MIPI_DCS_SET_DISPLAY_BRIGHTNESS = 0x51,     /* MIPI DCS 1.3 */
0129     MIPI_DCS_GET_DISPLAY_BRIGHTNESS = 0x52,     /* MIPI DCS 1.3 */
0130     MIPI_DCS_WRITE_CONTROL_DISPLAY  = 0x53,     /* MIPI DCS 1.3 */
0131     MIPI_DCS_GET_CONTROL_DISPLAY    = 0x54,     /* MIPI DCS 1.3 */
0132     MIPI_DCS_WRITE_POWER_SAVE   = 0x55,     /* MIPI DCS 1.3 */
0133     MIPI_DCS_GET_POWER_SAVE     = 0x56,     /* MIPI DCS 1.3 */
0134     MIPI_DCS_SET_CABC_MIN_BRIGHTNESS = 0x5E,    /* MIPI DCS 1.3 */
0135     MIPI_DCS_GET_CABC_MIN_BRIGHTNESS = 0x5F,    /* MIPI DCS 1.3 */
0136     MIPI_DCS_READ_DDB_START     = 0xA1,
0137     MIPI_DCS_READ_PPS_START     = 0xA2,
0138     MIPI_DCS_READ_DDB_CONTINUE  = 0xA8,
0139     MIPI_DCS_READ_PPS_CONTINUE  = 0xA9,
0140 };
0141 
0142 /* MIPI DCS pixel formats */
0143 #define MIPI_DCS_PIXEL_FMT_24BIT    7
0144 #define MIPI_DCS_PIXEL_FMT_18BIT    6
0145 #define MIPI_DCS_PIXEL_FMT_16BIT    5
0146 #define MIPI_DCS_PIXEL_FMT_12BIT    3
0147 #define MIPI_DCS_PIXEL_FMT_8BIT     2
0148 #define MIPI_DCS_PIXEL_FMT_3BIT     1
0149 
0150 #endif