VSF Documented
vsf_disp_mipi_lcd_dcs.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __VSF_DISP_MIPI_LCD_DISPLAY_COMMAND_SET_H__
19#define __VSF_DISP_MIPI_LCD_DISPLAY_COMMAND_SET_H__
20
21/*============================ INCLUDES ======================================*/
22
23#if VSF_USE_UI == ENABLED && VSF_DISP_USE_MIPI_SPI_LCD == ENABLED
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29/*============================ MACROFIED FUNCTIONS ===========================*/
30
31#define VSF_DISP_MIPI_LCD_WRITE(__CMD, __PARAM_LEN, ...) \
32 (__CMD), (__PARAM_LEN), ##__VA_ARGS__
33
34/*============================ MACROS ========================================*/
35
36// MIPI Display Command Set
37// Current Specification Version is MIPI DCS v1.5 (March 2021)
38// The main reference for this code here is v1.2: mipi-DCS-specification-v1.2a.pdf
39
40// No Operation
41#define MIPI_DCS_CMD_HEX_CODE_NOP 0x00
42#define MIPI_DCS_CMD_NOP \
43 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_NOP, 0)
44
45// Software Reset
46#define MIPI_DCS_CMD_HEX_CODE_SOFT_RESET 0x01
47#define MIPI_DCS_CMD_SOFT_RESET \
48 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SOFT_RESET, 0)
49
50// TODO: support read
51//#define MIPI_DCS_CMD_HEX_CODE_GET_COMPRESSION_MODE 0x03
52//#define MIPI_DCS_CMD_HEX_CODE_GET_DISPLAY_ID 0x04
53//#define MIPI_DCS_CMD_HEX_CODE_GET_ERROR_COUNT_ON_DSI 0x05
54//#define MIPI_DCS_CMD_HEX_CODE_GET_RED_CHANNEL 0x06
55//#define MIPI_DCS_CMD_HEX_CODE_GET_GREEN_CHANNEL 0x07
56//#define MIPI_DCS_CMD_HEX_CODE_GET_BLUE_CHANNEL 0x08
57//#define MIPI_DCS_CMD_HEX_CODE_GET_DISPLAY_STATUS 0x09
58//#define MIPI_DCS_CMD_HEX_CODE_GET_POWER_MODE 0x0A
59//#define MIPI_DCS_CMD_HEX_CODE_GET_ADDRESS_MODE 0x0B
60//#define MIPI_DCS_CMD_HEX_CODE_GET_PIXEL_FORMAT 0x0C
61//#define MIPI_DCS_CMD_HEX_CODE_GET_DISPLAY_MODE 0x0D
62//#define MIPI_DCS_CMD_HEX_CODE_GET_SIGNAL_MODE 0x0E
63//#define MIPI_DCS_CMD_HEX_CODE_GET_DIAGNOSTIC_RESULT 0x0F
64
65// Power for the display panel is off
66#define MIPI_DCS_CMD_HEX_CODE_ENTER_SLEEP_MODE 0x10
67#define MIPI_DCS_CMD_ENTER_SLEEP_MODE \
68 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_ENTER_SLEEP_MODE, 0)
69
70// Power for the display panel is on
71#define MIPI_DCS_CMD_HEX_CODE_EXIT_SLEEP_MODE 0x11
72#define MIPI_DCS_CMD_EXIT_SLEEP_MODE \
73 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_EXIT_SLEEP_MODE, 0)
74
75// Part of the display area is used for image display
76#define MIPI_DCS_CMD_HEX_CODE_ENTER_PARTIAL_MODE 0x12
77#define MIPI_DCS_CMD_ENTER_PARTIAL_MODE \
78 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_ENTER_PARTIAL_MODE, 0)
79
80// The whole display area is used for image display
81#define MIPI_DCS_CMD_HEX_CODE_ENTER_NORMAL_MODE 0x13
82#define MIPI_DCS_CMD_ENTER_NORMAL_MODE \
83 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_ENTER_NORMAL_MODE, 0)
84
85// TODO: support read
86//#define MIPI_DCS_CMD_HEX_CODE_GET_IMAGE_CHECKSUM_RGB 0x14
87//#define MIPI_DCS_CMD_HEX_CODE_GET_IMAGE_CHECKSUM_CT 0x15
88
89// Displayed image colors are not inverted
90#define MIPI_DCS_CMD_HEX_CODE_EXIT_INVERT_MODE 0x20
91#define MIPI_DCS_CMD_EXIT_INVERT_MODE \
92 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_EXIT_INVERT_MODE, 0)
93
94// Displayed image colors are inverted
95#define MIPI_DCS_CMD_HEX_CODE_ENTER_INVERT_MODE 0x21
96#define MIPI_DCS_CMD_ENTER_INVERT_MODE \
97 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_ENTER_INVERT_MODE, 0)
98
99// Selects the gamma curve used by the display device.
100#define MIPI_DCS_CMD_HEX_CODE_SET_GAMMA_CURVE 0x26
101#define MIPI_DCS_CMD_GAMMA_CURVE_GC0 0x01
102#define MIPI_DCS_CMD_GAMMA_CURVE_GC1 0x02
103#define MIPI_DCS_CMD_GAMMA_CURVE_GC2 0x04
104#define MIPI_DCS_CMD_GAMMA_CURVE_GC3 0x08
105#define MIPI_DCS_CMD_SET_GAMMA_CURVE(__GC_MASK) \
106 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_GAMMA_CURVE, 0, __GC_MASK)
107
108// Blanks the display device
109#define MIPI_DCS_CMD_HEX_CODE_SET_DISPLAY_OFF 0x28
110#define MIPI_DCS_CMD_SET_DISPLAY_OFF \
111 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_DISPLAY_OFF, 0)
112
113// Show the image on the display device
114#define MIPI_DCS_CMD_HEX_CODE_SET_DISPLAY_ON 0x29
115#define MIPI_DCS_CMD_SET_DISPLAY_ON \
116 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_DISPLAY_ON, 0)
117
118// Set the column extent
119#define MIPI_DCS_CMD_HEX_CODE_SET_COLUMN_ADDRESS 0x2A
120// SC: Start Column, EC: End Column, Address: closed interval [SC, EC]
121#define MIPI_DCS_CMD_SET_COLUMN_ADDRESS(__SC, __EC) \
122 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_COLUMN_ADDRESS, 4,\
123 ((uint16_t)__SC >> 8), (__SC & 0xFF), \
124 ((uint16_t)__EC >> 8), (__EC & 0xFF))
125
126// Set the page extent
127#define MIPI_DCS_CMD_HEX_CODE_SET_PAGE_ADDRESS 0x2B
128// SP: Start Page, EP: End Page, Address: closed interval [SP, EP]
129#define MIPI_DCS_CMD_SET_PAGE_ADDRESS(__SP, __EP) \
130 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_PAGE_ADDRESS, 4, \
131 ((uint16_t)__SP >> 8), (__SP & 0xFF), \
132 ((uint16_t)__EP >> 8), (__EP & 0xFF))
133
134// Transfer image data from the Host Processor to the peripheral starting at
135// the location provided by set_column_address and set_page_address
136#define MIPI_DCS_CMD_HEX_CODE_WRITE_MEMORY_START 0x2C
137#define MIPI_DCS_CMD_WRITE_MEMORY_START(__NUM, ...) \
138 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_WRITE_MEMORY_START, __NUM, ##__VA_ARGS__)
139
140// Fills the peripheral look-up table with the provided data
141#define MIPI_DCS_CMD_HEX_CODE_WRITE_LUT 0x2D
142#define MIPI_DCS_CMD_WRITE_LUT(__NUM, ...) \
143 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_WRITE_LUT, __NUM, ##__VA_ARGS__)
144
145// TODO: support read
146//#define MIPI_DCS_CMD_HEX_CODE_READ_MEMORY_START 0x2E
147
148// Defines the number of rows in the partial display area on the display device.
149#define MIPI_DCS_CMD_HEX_CODE_SET_PARTIAL_ROWS 0x30
150// SR: Start Row, ER: End Row, Address: closed interval [SR, ER]
151#define MIPI_DCS_CMD_SET_PARTIAL_ROWS(__SR, __ER) \
152 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_PARTIAL_ROWS, 4, \
153 ((uint16_t)__SR >> 8), (__SR & 0xFF), \
154 ((uint16_t)__ER >> 8), (__ER & 0xFF))
155
156#define MIPI_DCS_CMD_HEX_CODE_SET_PARTIAL_COLUMNS 0x31
157// SC: Start Column, EC: End Column, Address: closed interval [SC, EC]
158#define MIPI_DCS_CMD_SET_PARTIAL_COLUMNS(__SC, __EC) \
159 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_PARTIAL_COLUMNS, 4, \
160 ((uint16_t)__SC >> 8), (__SC & 0xFF), \
161 ((uint16_t)__EC >> 8), (__EC & 0xFF))
162
163// Defines the vertical scrolling and fixed area on display device
164#define MIPI_DCS_CMD_HEX_CODE_SET_SCROLL_AREA 0x33
165// __TFA: TOP_FIXED_AREA, __VSA: VERTICAL_SCROLLING_AREA, __BFA: BOTTOM_FIXED_AREA
166#define MIPI_DCS_CMD_SET_SCROLL_AREA(__TFA, __VERTICAL_SCROLLING_AREA, __BFA) \
167 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_SCROLL_AREA, 6, \
168 ((uint16_t)__TFA >> 8), (__TFA & 0xFF), \
169 ((uint16_t)__VSA >> 8), (__VSA & 0xFF), \
170 ((uint16_t)__BFA >> 8), (__BFA & 0xFF))
171
172// Synchronization information is not sent from the display module to the host processor
173#define MIPI_DCS_CMD_HEX_CODE_SET_TEAR_OFF 0x34
174#define MIPI_DCS_CMD_SET_TEAR_OFF \
175 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_TEAR_OFF, 0)
176
177// Synchronization information is sent from the display module to the host processor at the start of VFP
178#define MIPI_DCS_CMD_HEX_CODE_SET_TEAR_ON 0x35
179#define MIPI_DCS_CMD_SET_TEAR_ON \
180 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_TEAR_ON, 0)
181
182#define MIPI_DCS_CMD_HEX_CODE_SET_ADDRESS_MODE 0x36
183// bits[7:5]: host processor to display module*s frame memory
184// Page Address Order, 0 = Top to Bottom, 1 = Bottom to Top
185#define MIPI_DCS_PAGE_ADDRESS_TOP_TO_BOTTOM (0 << 7)
186#define MIPI_DCS_PAGE_ADDRESS_BOTTOM_TO_TOP (1 << 7)
187// Column Address Order, 0 = Left to Right, 1 = Right to Left
188#define MIPI_DCS_COLUME_ADDRESS_LEFT_TO_RIGHT (0 << 6)
189#define MIPI_DCS_COLUME_ADDRESS_RIGHT_TO_LEFT (1 << 6)
190// Page/Column Addressing Order,
191// 0 = Normal Mode, column register is first increment
192// 1 = Reverse Mode, page register is first increment
193#define MIPI_DCS_PAGE_COLUMN_NORMAL_ORDER (0 << 5)
194#define MIPI_DCS_PAGE_COLUMN_REVERSE_ORDER (1 << 5)
195// bits[4:0]: display module*s frame memory to the display device
196// Display Device Line Refresh Order, 0 = Top line to Bottom line, 1 = Bottom line to Top line
197#define MIPI_DCS_DEVICE_REFRESH_TOP_TO_BOTTOM (0 << 4)
198#define MIPI_DCS_DEVICE_REFRESH_BOTTOM_TO_TOP (1 << 4)
199// RGB/BGR Order, 0 = RGB, 1 = BGR
200#define MIPI_DCS_DEVICE_REFRESH_RGB (0 << 3)
201#define MIPI_DCS_DEVICE_REFRESH_BGR (1 << 3)
202// Display Data Latch Data Order, 0 = left side to the right side, 1 = right side to the left side
203#define MIPI_DCS_LCD_REFRESH_LEFT_TO_RIGHT (0 << 2)
204#define MIPI_DCS_LCD_REFRESH_RIGHT_TO_LEFT (1 << 2)
205// Flip Horizontal, 0 = Normal, 1 = Flipped
206#define MIPI_DCS_FLIP_HORIZONTAL_NORMAL (0 << 1)
207#define MIPI_DCS_FLIP_HORIZONTAL_FLIPPED (1 << 1)
208// Flip Vertical, 0 = Normal, 1 = Flipped
209#define MIPI_DCS_FLIP_VERTICAL_NORMAL (0 << 0)
210#define MIPI_DCS_FLIP_VERTICAL_FLIPPED (1 << 0)
211// TODO: define some mode
212#define MIPI_DCS_CMD_SET_ADDRESS_MODE(__MODE_MASK) \
213 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_ADDRESS_MODE, 1, __MODE_MASK)
214
215// Defines the vertical scrolling starting point
216#define MIPI_DCS_CMD_HEX_CODE_SET_SCROLL_START 0x37
217#define MIPI_DCS_CMD_SET_SCROLL_START(__VSP) \
218 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_SCROLL_START, 2, \
219 ((uint16_t)__VSP >> 8), (__VSP & 0xFF))
220
221// Idle Mode Off
222#define MIPI_DCS_CMD_HEX_CODE_EXIT_IDLE_MODE 0x38
223#define MIPI_DCS_CMD_EXIT_IDLE_MODE \
224 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_EXIT_IDLE_MODE, 0)
225
226// Idle Mode On
227#define MIPI_DCS_CMD_HEX_CODE_ENTER_IDLE_MODE 0x39
228#define MIPI_DCS_CMD_ENTER_IDLE_MODE \
229 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_ENTER_IDLE_MODE, 0)
230
231// TODO
232// Defines how many bits per pixel are used in the interface.
233#define MIPI_DCS_CMD_HEX_CODE_SET_PIXEL_FORMAT 0x3A
234#define MIPI_DCS_PIXEL_FORMAT_BITS_3 0x01
235#define MIPI_DCS_PIXEL_FORMAT_BITS_8 0x02
236#define MIPI_DCS_PIXEL_FORMAT_BITS_12 0x03
237#define MIPI_DCS_PIXEL_FORMAT_BITS_16 0x05
238#define MIPI_DCS_PIXEL_FORMAT_BITS_18 0x06
239#define MIPI_DCS_PIXEL_FORMAT_BITS_24 0x07
240// __BITS IN [3, 8, 12, 16, 18, 24]
241#define MIPI_DCS_PIXEL_FORMAT_BITS(__BITS) MIPI_DCS_PIXEL_FORMAT_BITS_ ## __BITS
242// DPI: Display Pixel Interface, or MCU Interface
243// __BITS IN [3, 8, 12, 16, 18, 24]
244#define MIPI_DCS_PIXEL_FORMAT_DBI_BITS(__BITS) MIPI_DCS_PIXEL_FORMAT_BITS(__BITS)
245// DBI: Display Bus Interface, or System-80 interface
246// __BITS IN [3, 8, 12, 16, 18, 24]
247#define MIPI_DCS_PIXEL_FORMAT_DPI_BITS(__BITS) (MIPI_DCS_PIXEL_FORMAT_BITS(__BITS) << 4)
248#define MIPI_DCS_CMD_SET_PIXEL_FORMAT(__PF) \
249 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_PIXEL_FORMAT, 1, __PF)
250
251// Transfer image information from the Host Processor interface to the peripheral from the last written location.
252#define MIPI_DCS_CMD_HEX_CODE_WRITE_MEMORY_CONTINUE 0x3C
253#define MIPI_DCS_CMD_WRITE_MEMORY_CONTINUE(__LEN, ...) \
254 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_WRITE_MEMORY_CONTINUE, __LEN, ##__VA_ARGS__)
255
256// 3D is used on the display panel
257#define MIPI_DCS_CMD_HEX_CODE_SET_3D_CONTROL 0x3D
258// 3DL/R 每 Left / Right Order, 0 = Data sent left eye first, 1 = Data sent right eye first.
259#define MIPI_DCS_3D_CONTROL_LEFT_EYE_FIRST (0 << 5)
260#define MIPI_DCS_3D_CONTROL_RIGHT_EYE_FIRST (1 << 5)
261// 3DVSYNC 每 Second VSYNC Enabled between Left and Right images
262// 0 = No sync pulses between left and right data.
263// 1 = Sync pulse (HSYNC, VSYNC, blanking) between left and right data.
264#define MIPI_DCS_3D_CONTROL_3DVSYNC_NO (0 << 4)
265#define MIPI_DCS_3D_CONTROL_3DVSYNC_SYNC (1 << 4)
266// 3DFMT[1:0] 每 Stereoscopic Image Format
267// 00 = Line (alternating lines of left and right data)
268// 01 = Frame (alternating frames of left and right data)
269// 10 = Pixel (alternating pixels of left and right data)
270#define MIPI_DCS_3D_CONTROL_3DFMT_LINE (0 << 2)
271#define MIPI_DCS_3D_CONTROL_3DFMT_FRAME (1 << 2)
272#define MIPI_DCS_3D_CONTROL_3DFMT_PIXEL (2 << 2)
273// 3DMODE[1:0] 每 3D Mode On / Off, Display Orientation
274// 00 = 3D Mode Off (2D Mode On).
275// 01 = 3D Mode On, Portrait Orientation
276// 10 = 3D Mode On, Landscape Orientation
277#define MIPI_DCS_3D_CONTROL_3DMODE_OFF (0 << 0)
278#define MIPI_DCS_3D_CONTROL_3DMODE_ON_PO (1 << 0)
279#define MIPI_DCS_3D_CONTROL_3DMODE_ON_LO (2 << 0)
280#define MIPI_DCS_CMD_SET_3D_CONTROL(__V) \
281 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_3D_CONTROL, 2, __V, 0)
282
283// TODO: support read
284//#define MIPI_DCS_CMD_HEX_CODE_READ_MEMORY_CONTINUE 0x3E
285//#define MIPI_DCS_CMD_HEX_CODE_GET_3D_CONTROL 0x3F
286
287// Set VSYNC timing
288#define MIPI_DCS_CMD_HEX_CODE_SET_VSYNC_TIMING 0x40
289// RESET 每 Restart display update, 0 = No operation, 1 = Restart display update
290#define MIPI_DCS_VSYNC_TIMING_NO_RESET (0 << 7)
291#define MIPI_DCS_VSYNC_TIMING_RESET (1 << 7)
292// DIR 每 Line Direction, 0 = Later (Down), 1 = Earlier (Up)
293#define MIPI_DCS_VSYNC_TIMING_LD_LATER (0 << 7)
294#define MIPI_DCS_VSYNC_TIMING_LD_EARLIER (1 << 7)
295// LINES[4:0] 每 Number of Lines in Adjustment
296#define MIPI_DCS_VSYNC_TIMING_LD_LINES(__L) (__L << 1)
297// FRAME 每 Adjustment Frame, 0 = Next Frame, 1 = Frame After Next Frame
298#define MIPI_DCS_VSYNC_TIMING_NEXT_FRAME (0 << 0)
299#define MIPI_DCS_VSYNC_TIMING_FRAME_AFTER_NEXT_FRAME (1 << 0)
300#define MIPI_DCS_CMD_SET_VSYNC_TIMING(__V) \
301 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_VSYNC_TIMING, 1)
302
303// TODO
304// Synchronization information is sent from the display module to
305// the host processor when the display device refresh reaches the provided scanline.
306#define MIPI_DCS_CMD_HEX_CODE_SET_TEAR_SCANLINE 0x44
307#define MIPI_DCS_CMD_SET_TEAR_SCANLINE(__N) \
308 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_TEAR_SCANLINE, 2, \
309 ((uint16_t)__N >> 8), (__N & 0xFF)
310
311// TODO: support read
312//#define MIPI_DCS_CMD_HEX_CODE_GET_SCANLINE 0x45
313
314// TODO: need more doc
315#define MIPI_DCS_CMD_HEX_CODE_SET_DISPLAY_BRIGHTNESS 0x51
316#define MIPI_DCS_CMD_SET_DISPLAY_BRIGHTNESS(__B) \
317 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_DISPLAY_BRIGHTNESS, 1, __B)
318
319// TODO: support read
320//#define MIPI_DCS_CMD_HEX_CODE_GET_DISPLAY_BRIGHTNESS 0x52
321
322// TODO: need more doc
323#define MIPI_DCS_CMD_HEX_CODE_WRITE_CONTROL_DISPLAY 0x53
324#define MIPI_DCS_CMD_WRITE_CONTROL_DISPLAY(__DISP) \
325 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_WRITE_CONTROL_DISPLAY, 1, __DISP)
326
327// TODO: support read
328//#define MIPI_DCS_CMD_HEX_CODE_GET_CONTROL_DISPLAY 0x54
329
330// TODO: need more doc
331#define MIPI_DCS_CMD_HEX_CODE_WRITE_POWER_SAVE 0x55
332#define MIPI_DCS_CMD_WRITE_POWER_SAVE(__V) \
333 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_WRITE_POWER_SAVE, 1, __V)
334
335// TODO: support read
336//#define MIPI_DCS_CMD_HEX_CODE_GET_POWER_SAVE 0x56
337
338// TODO: need more doc
339#define MIPI_DCS_CMD_HEX_CODE_SET_CABC_MIN_BRIGHTNESS 0x5E
340#define MIPI_DCS_CMD_SET_CABC_MIN_BRIGHTNESS(__B) \
341 VSF_DISP_MIPI_LCD_WRITE(MIPI_DCS_CMD_HEX_CODE_SET_CABC_MIN_BRIGHTNESS, 1, __B)
342
343/*============================ TYPES =========================================*/
344/*============================ GLOBAL VARIABLES ==============================*/
345/*============================ PROTOTYPES ====================================*/
346
347#ifdef __cplusplus
348}
349#endif
350
351#endif // VSF_USE_UI
352#endif // __VSF_DISP_MIPI_SPI_LCD_H__