• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
3  *
4  * HDF is dual licensed: you can use it either under the terms of
5  * the GPL, or the BSD license, at your option.
6  * See the LICENSE file in the root of this repository for complete details.
7  */
8 
9 #ifndef ILI9881C_BOE_H
10 #define ILI9881C_BOE_H
11 #include <linux/backlight.h>
12 #include <drm/drm_mipi_dsi.h>
13 #include <linux/of.h>
14 #include <linux/regulator/consumer.h>
15 #include "hdf_disp.h"
16 
17 #define AVDD_GPIO    179
18 #define AVEE_GPIO    156
19 #define VGHL_GPIO    155
20 #define TSRST_GPIO   240
21 #define RESET_GPIO   178
22 
23 struct GpioTiming {
24     uint16_t level;
25     uint32_t delay;
26 };
27 
28 struct ResetSeq {
29     uint32_t items;
30     struct GpioTiming *timing;
31 };
32 
33 struct Ili9881cBoeDev {
34     struct PanelData panel;
35     struct mipi_dsi_device *dsiDev;
36     struct regulator *supply;
37     uint16_t avddGpio;
38     uint16_t aveeGpio;
39     uint16_t vghlGpio;
40     uint16_t tsrstGpio;
41     uint16_t resetGpio;
42     struct ResetSeq rstOnSeq;
43     struct ResetSeq rstOffSeq;
44 };
45 
46 /* panel on command payload */
47 static uint8_t g_payLoad0[] = { 0xFF, 0x98, 0x81, 0x03 };
48 static uint8_t g_payLoad1[] = { 0x01, 0x00 };
49 static uint8_t g_payLoad2[] = { 0x02, 0x00 };
50 static uint8_t g_payLoad3[] = { 0x03, 0x73 };
51 static uint8_t g_payLoad4[] = { 0x04, 0x00 };
52 static uint8_t g_payLoad5[] = { 0x05, 0x00 };
53 static uint8_t g_payLoad6[] = { 0x06, 0x08 };
54 static uint8_t g_payLoad7[] = { 0x07, 0x00 };
55 static uint8_t g_payLoad8[] = { 0x08, 0x00 };
56 static uint8_t g_payLoad9[] = { 0x09, 0x00 };
57 static uint8_t g_payLoad10[] = { 0x0A, 0x01 };
58 static uint8_t g_payLoad11[] = { 0x0B, 0x01 };
59 static uint8_t g_payLoad12[] = { 0x0C, 0x00 };
60 static uint8_t g_payLoad13[] = { 0x0D, 0x01 };
61 static uint8_t g_payLoad14[] = { 0x0E, 0x01 };
62 static uint8_t g_payLoad15[] = { 0x0F, 0x00 };
63 static uint8_t g_payLoad16[] = { 0x10, 0x00 };
64 static uint8_t g_payLoad17[] = { 0x11, 0x00 };
65 static uint8_t g_payLoad18[] = { 0x12, 0x00 };
66 static uint8_t g_payLoad19[] = { 0x13, 0x1F };
67 static uint8_t g_payLoad20[] = { 0x14, 0x1F };
68 static uint8_t g_payLoad21[] = { 0x15, 0x00 };
69 static uint8_t g_payLoad22[] = { 0x16, 0x00 };
70 static uint8_t g_payLoad23[] = { 0x17, 0x00 };
71 static uint8_t g_payLoad24[] = { 0x18, 0x00 };
72 static uint8_t g_payLoad25[] = { 0x19, 0x00 };
73 static uint8_t g_payLoad26[] = { 0x1A, 0x00 };
74 static uint8_t g_payLoad27[] = { 0x1B, 0x00 };
75 static uint8_t g_payLoad28[] = { 0x1C, 0x00 };
76 static uint8_t g_payLoad29[] = { 0x1D, 0x00 };
77 static uint8_t g_payLoad30[] = { 0x1E, 0x40 };
78 static uint8_t g_payLoad31[] = { 0x1F, 0xC0 };
79 static uint8_t g_payLoad32[] = { 0x20, 0x06 };
80 static uint8_t g_payLoad33[] = { 0x21, 0x01 };
81 static uint8_t g_payLoad34[] = { 0x22, 0x06 };
82 static uint8_t g_payLoad35[] = { 0x23, 0x01 };
83 static uint8_t g_payLoad36[] = { 0x24, 0x88 };
84 static uint8_t g_payLoad37[] = { 0x25, 0x88 };
85 static uint8_t g_payLoad38[] = { 0x26, 0x00 };
86 static uint8_t g_payLoad39[] = { 0x27, 0x00 };
87 static uint8_t g_payLoad40[] = { 0x28, 0x3B };
88 static uint8_t g_payLoad41[] = { 0x29, 0x03 };
89 static uint8_t g_payLoad42[] = { 0x2A, 0x00 };
90 static uint8_t g_payLoad43[] = { 0x2B, 0x00 };
91 static uint8_t g_payLoad44[] = { 0x2C, 0x00 };
92 static uint8_t g_payLoad45[] = { 0x2D, 0x00 };
93 static uint8_t g_payLoad46[] = { 0x2E, 0x00 };
94 static uint8_t g_payLoad47[] = { 0x2F, 0x00 };
95 static uint8_t g_payLoad48[] = { 0x30, 0x00 };
96 static uint8_t g_payLoad49[] = { 0x31, 0x00 };
97 static uint8_t g_payLoad50[] = { 0x32, 0x00 };
98 static uint8_t g_payLoad51[] = { 0x33, 0x00 };
99 static uint8_t g_payLoad52[] = { 0x34, 0x00 };
100 static uint8_t g_payLoad53[] = { 0x35, 0x00 };
101 static uint8_t g_payLoad54[] = { 0x36, 0x00 };
102 static uint8_t g_payLoad55[] = { 0x37, 0x00 };
103 static uint8_t g_payLoad56[] = { 0x38, 0x00 };
104 static uint8_t g_payLoad57[] = { 0x39, 0x00 };
105 static uint8_t g_payLoad58[] = { 0x3A, 0x00 };
106 static uint8_t g_payLoad59[] = { 0x3B, 0x00 };
107 static uint8_t g_payLoad60[] = { 0x3C, 0x00 };
108 static uint8_t g_payLoad61[] = { 0x3D, 0x00 };
109 static uint8_t g_payLoad62[] = { 0x3E, 0x00 };
110 static uint8_t g_payLoad63[] = { 0x3F, 0x00 };
111 static uint8_t g_payLoad64[] = { 0x40, 0x00 };
112 static uint8_t g_payLoad65[] = { 0x41, 0x00 };
113 static uint8_t g_payLoad66[] = { 0x42, 0x00 };
114 static uint8_t g_payLoad67[] = { 0x43, 0x00 };
115 static uint8_t g_payLoad68[] = { 0x44, 0x00 };
116 static uint8_t g_payLoad69[] = { 0x50, 0x01 };
117 static uint8_t g_payLoad70[] = { 0x51, 0x23 };
118 static uint8_t g_payLoad71[] = { 0x52, 0x45 };
119 static uint8_t g_payLoad72[] = { 0x53, 0x67 };
120 static uint8_t g_payLoad73[] = { 0x54, 0x89 };
121 static uint8_t g_payLoad74[] = { 0x55, 0xAB };
122 static uint8_t g_payLoad75[] = { 0x56, 0x01 };
123 static uint8_t g_payLoad76[] = { 0x57, 0x23 };
124 static uint8_t g_payLoad77[] = { 0x58, 0x45 };
125 static uint8_t g_payLoad78[] = { 0x59, 0x67 };
126 static uint8_t g_payLoad79[] = { 0x5A, 0x89 };
127 static uint8_t g_payLoad80[] = { 0x5B, 0xAB };
128 static uint8_t g_payLoad81[] = { 0x5C, 0xCD };
129 static uint8_t g_payLoad82[] = { 0x5D, 0xEF };
130 static uint8_t g_payLoad83[] = { 0x5E, 0x00 };
131 static uint8_t g_payLoad84[] = { 0x5F, 0x01 };
132 static uint8_t g_payLoad85[] = { 0x60, 0x01 };
133 static uint8_t g_payLoad86[] = { 0x61, 0x06 };
134 static uint8_t g_payLoad87[] = { 0x62, 0x06 };
135 static uint8_t g_payLoad88[] = { 0x63, 0x07 };
136 static uint8_t g_payLoad89[] = { 0x64, 0x07 };
137 static uint8_t g_payLoad90[] = { 0x65, 0x00 };
138 static uint8_t g_payLoad91[] = { 0x66, 0x00 };
139 static uint8_t g_payLoad92[] = { 0x67, 0x02 };
140 static uint8_t g_payLoad93[] = { 0x68, 0x02 };
141 static uint8_t g_payLoad94[] = { 0x69, 0x05 };
142 static uint8_t g_payLoad95[] = { 0x6A, 0x05 };
143 static uint8_t g_payLoad96[] = { 0x6B, 0x02 };
144 static uint8_t g_payLoad97[] = { 0x6C, 0x0D };
145 static uint8_t g_payLoad98[] = { 0x6D, 0x0D };
146 static uint8_t g_payLoad99[] = { 0x6E, 0x0C };
147 static uint8_t g_payLoad100[] = { 0x6F, 0x0C };
148 static uint8_t g_payLoad101[] = { 0x70, 0x0F };
149 static uint8_t g_payLoad102[] = { 0x71, 0x0F };
150 static uint8_t g_payLoad103[] = { 0x72, 0x0E };
151 static uint8_t g_payLoad104[] = { 0x73, 0x0E };
152 static uint8_t g_payLoad105[] = { 0x74, 0x02 };
153 static uint8_t g_payLoad106[] = { 0x75, 0x01 };
154 static uint8_t g_payLoad107[] = { 0x76, 0x01 };
155 static uint8_t g_payLoad108[] = { 0x77, 0x06 };
156 static uint8_t g_payLoad109[] = { 0x78, 0x06 };
157 static uint8_t g_payLoad110[] = { 0x79, 0x07 };
158 static uint8_t g_payLoad111[] = { 0x7A, 0x07 };
159 static uint8_t g_payLoad112[] = { 0x7B, 0x00 };
160 static uint8_t g_payLoad113[] = { 0x7C, 0x00 };
161 static uint8_t g_payLoad114[] = { 0x7D, 0x02 };
162 static uint8_t g_payLoad115[] = { 0x7E, 0x02 };
163 static uint8_t g_payLoad116[] = { 0x7F, 0x05 };
164 static uint8_t g_payLoad117[] = { 0x80, 0x05 };
165 static uint8_t g_payLoad118[] = { 0x81, 0x02 };
166 static uint8_t g_payLoad119[] = { 0x82, 0x0D };
167 static uint8_t g_payLoad120[] = { 0x83, 0x0D };
168 static uint8_t g_payLoad121[] = { 0x84, 0x0C };
169 static uint8_t g_payLoad122[] = { 0x85, 0x0C };
170 static uint8_t g_payLoad123[] = { 0x86, 0x0F };
171 static uint8_t g_payLoad124[] = { 0x87, 0x0F };
172 static uint8_t g_payLoad125[] = { 0x88, 0x0E };
173 static uint8_t g_payLoad126[] = { 0x89, 0x0E };
174 static uint8_t g_payLoad127[] = { 0x8A, 0x02 };
175 static uint8_t g_payLoad128[] = { 0xFF, 0x98, 0x81, 0x04 };
176 static uint8_t g_payLoad129[] = { 0x6C, 0x15 };
177 static uint8_t g_payLoad130[] = { 0x6E, 0x2A };
178 static uint8_t g_payLoad131[] = { 0x6F, 0x33 };
179 static uint8_t g_payLoad132[] = { 0x8D, 0x1B };
180 static uint8_t g_payLoad133[] = { 0x87, 0xBA };
181 static uint8_t g_payLoad134[] = { 0x3A, 0x24 };
182 static uint8_t g_payLoad135[] = { 0x26, 0x76 };
183 static uint8_t g_payLoad136[] = { 0xB2, 0xD1 };
184 static uint8_t g_payLoad137[] = { 0xFF, 0x98, 0x81, 0x01 };
185 static uint8_t g_payLoad138[] = { 0x22, 0x0A };
186 static uint8_t g_payLoad139[] = { 0x31, 0x00 };
187 static uint8_t g_payLoad140[] = { 0x43, 0x66 };
188 static uint8_t g_payLoad141[] = { 0x53, 0x40 };
189 static uint8_t g_payLoad142[] = { 0x50, 0x87 };
190 static uint8_t g_payLoad143[] = { 0x51, 0x82 };
191 static uint8_t g_payLoad144[] = { 0x60, 0x15 };
192 static uint8_t g_payLoad145[] = { 0x61, 0x01 };
193 static uint8_t g_payLoad146[] = { 0x62, 0x0C };
194 static uint8_t g_payLoad147[] = { 0x63, 0x00 };
195 static uint8_t g_payLoad148[] = { 0xA0, 0x00 };
196 static uint8_t g_payLoad149[] = { 0xA1, 0x13 };
197 static uint8_t g_payLoad150[] = { 0xA2, 0x23 };
198 static uint8_t g_payLoad151[] = { 0xA3, 0x14 };
199 static uint8_t g_payLoad152[] = { 0xA4, 0x16 };
200 static uint8_t g_payLoad153[] = { 0xA5, 0x29 };
201 static uint8_t g_payLoad154[] = { 0xA6, 0x1E };
202 static uint8_t g_payLoad155[] = { 0xA7, 0x1D };
203 static uint8_t g_payLoad156[] = { 0xA8, 0x86 };
204 static uint8_t g_payLoad157[] = { 0xA9, 0x1E };
205 static uint8_t g_payLoad158[] = { 0xAA, 0x29 };
206 static uint8_t g_payLoad159[] = { 0xAB, 0x74 };
207 static uint8_t g_payLoad160[] = { 0xAC, 0x19 };
208 static uint8_t g_payLoad161[] = { 0xAD, 0x17 };
209 static uint8_t g_payLoad162[] = { 0xAE, 0x4B };
210 static uint8_t g_payLoad163[] = { 0xAF, 0x20 };
211 static uint8_t g_payLoad164[] = { 0xB0, 0x26 };
212 static uint8_t g_payLoad165[] = { 0xB1, 0x4C };
213 static uint8_t g_payLoad166[] = { 0xB2, 0x5D };
214 static uint8_t g_payLoad167[] = { 0xB3, 0x3F };
215 static uint8_t g_payLoad168[] = { 0xC0, 0x00 };
216 static uint8_t g_payLoad169[] = { 0xC1, 0x13 };
217 static uint8_t g_payLoad170[] = { 0xC2, 0x23 };
218 static uint8_t g_payLoad171[] = { 0xC3, 0x14 };
219 static uint8_t g_payLoad172[] = { 0xC4, 0x16 };
220 static uint8_t g_payLoad173[] = { 0xC5, 0x29 };
221 static uint8_t g_payLoad174[] = { 0xC6, 0x1E };
222 static uint8_t g_payLoad175[] = { 0xC7, 0x1D };
223 static uint8_t g_payLoad176[] = { 0xC8, 0x86 };
224 static uint8_t g_payLoad177[] = { 0xC9, 0x1E };
225 static uint8_t g_payLoad178[] = { 0xCA, 0x29 };
226 static uint8_t g_payLoad179[] = { 0xCB, 0x74 };
227 static uint8_t g_payLoad180[] = { 0xCC, 0x19 };
228 static uint8_t g_payLoad181[] = { 0xCD, 0x17 };
229 static uint8_t g_payLoad182[] = { 0xCE, 0x4B };
230 static uint8_t g_payLoad183[] = { 0xCF, 0x20 };
231 static uint8_t g_payLoad184[] = { 0xD0, 0x26 };
232 static uint8_t g_payLoad185[] = { 0xD1, 0x4C };
233 static uint8_t g_payLoad186[] = { 0xD2, 0x5D };
234 static uint8_t g_payLoad187[] = { 0xD3, 0x3F };
235 static uint8_t g_payLoad188[] = { 0xFF, 0x98, 0x81, 0x00 };
236 static uint8_t g_payLoad189[] = { 0x11, 0x00 };
237 static uint8_t g_payLoad190[] = { 0x29, 0x00 };
238 static uint8_t g_payLoad191[] = { 0x35, 0x00 };
239 
240 static struct DsiCmdDesc g_panelOnCode[] = {
241     { 0x39, 0x00, sizeof(g_payLoad0), g_payLoad0 },
242     { 0x23, 0x00, sizeof(g_payLoad1), g_payLoad1 },
243     { 0x23, 0x00, sizeof(g_payLoad2), g_payLoad2 },
244     { 0x23, 0x00, sizeof(g_payLoad3), g_payLoad3 },
245     { 0x23, 0x00, sizeof(g_payLoad4), g_payLoad4 },
246     { 0x23, 0x00, sizeof(g_payLoad5), g_payLoad5 },
247     { 0x23, 0x00, sizeof(g_payLoad6), g_payLoad6 },
248     { 0x23, 0x00, sizeof(g_payLoad7), g_payLoad7 },
249     { 0x23, 0x00, sizeof(g_payLoad8), g_payLoad8 },
250     { 0x23, 0x00, sizeof(g_payLoad9), g_payLoad9 },
251     { 0x23, 0x00, sizeof(g_payLoad10), g_payLoad10 },
252     { 0x23, 0x00, sizeof(g_payLoad11), g_payLoad11 },
253     { 0x23, 0x00, sizeof(g_payLoad12), g_payLoad12 },
254     { 0x23, 0x00, sizeof(g_payLoad13), g_payLoad13 },
255     { 0x23, 0x00, sizeof(g_payLoad14), g_payLoad14 },
256     { 0x23, 0x00, sizeof(g_payLoad15), g_payLoad15 },
257     { 0x23, 0x00, sizeof(g_payLoad16), g_payLoad16 },
258     { 0x23, 0x00, sizeof(g_payLoad17), g_payLoad17 },
259     { 0x23, 0x00, sizeof(g_payLoad18), g_payLoad18 },
260     { 0x23, 0x00, sizeof(g_payLoad19), g_payLoad19 },
261     { 0x23, 0x00, sizeof(g_payLoad20), g_payLoad20 },
262     { 0x23, 0x00, sizeof(g_payLoad21), g_payLoad21 },
263     { 0x23, 0x00, sizeof(g_payLoad22), g_payLoad22 },
264     { 0x23, 0x00, sizeof(g_payLoad23), g_payLoad23 },
265     { 0x23, 0x00, sizeof(g_payLoad24), g_payLoad24 },
266     { 0x23, 0x00, sizeof(g_payLoad25), g_payLoad25 },
267     { 0x23, 0x00, sizeof(g_payLoad26), g_payLoad26 },
268     { 0x23, 0x00, sizeof(g_payLoad27), g_payLoad27 },
269     { 0x23, 0x00, sizeof(g_payLoad28), g_payLoad28 },
270     { 0x23, 0x00, sizeof(g_payLoad29), g_payLoad29 },
271     { 0x23, 0x00, sizeof(g_payLoad30), g_payLoad30 },
272     { 0x23, 0x00, sizeof(g_payLoad31), g_payLoad31 },
273     { 0x23, 0x00, sizeof(g_payLoad32), g_payLoad32 },
274     { 0x23, 0x00, sizeof(g_payLoad33), g_payLoad33 },
275     { 0x23, 0x00, sizeof(g_payLoad34), g_payLoad34 },
276     { 0x23, 0x00, sizeof(g_payLoad35), g_payLoad35 },
277     { 0x23, 0x00, sizeof(g_payLoad36), g_payLoad36 },
278     { 0x23, 0x00, sizeof(g_payLoad37), g_payLoad37 },
279     { 0x23, 0x00, sizeof(g_payLoad38), g_payLoad38 },
280     { 0x23, 0x00, sizeof(g_payLoad39), g_payLoad39 },
281     { 0x23, 0x00, sizeof(g_payLoad40), g_payLoad40 },
282     { 0x23, 0x00, sizeof(g_payLoad41), g_payLoad41 },
283     { 0x23, 0x00, sizeof(g_payLoad42), g_payLoad42 },
284     { 0x23, 0x00, sizeof(g_payLoad43), g_payLoad43 },
285     { 0x23, 0x00, sizeof(g_payLoad44), g_payLoad44 },
286     { 0x23, 0x00, sizeof(g_payLoad45), g_payLoad45 },
287     { 0x23, 0x00, sizeof(g_payLoad46), g_payLoad46 },
288     { 0x23, 0x00, sizeof(g_payLoad47), g_payLoad47 },
289     { 0x23, 0x00, sizeof(g_payLoad48), g_payLoad48 },
290     { 0x23, 0x00, sizeof(g_payLoad49), g_payLoad49 },
291     { 0x23, 0x00, sizeof(g_payLoad50), g_payLoad50 },
292     { 0x23, 0x00, sizeof(g_payLoad51), g_payLoad51 },
293     { 0x23, 0x00, sizeof(g_payLoad52), g_payLoad52 },
294     { 0x23, 0x00, sizeof(g_payLoad53), g_payLoad53 },
295     { 0x23, 0x00, sizeof(g_payLoad54), g_payLoad54 },
296     { 0x23, 0x00, sizeof(g_payLoad55), g_payLoad55 },
297     { 0x23, 0x00, sizeof(g_payLoad56), g_payLoad56 },
298     { 0x23, 0x00, sizeof(g_payLoad57), g_payLoad57 },
299     { 0x23, 0x00, sizeof(g_payLoad58), g_payLoad58 },
300     { 0x23, 0x00, sizeof(g_payLoad59), g_payLoad59 },
301     { 0x23, 0x00, sizeof(g_payLoad60), g_payLoad60 },
302     { 0x23, 0x00, sizeof(g_payLoad61), g_payLoad61 },
303     { 0x23, 0x00, sizeof(g_payLoad62), g_payLoad62 },
304     { 0x23, 0x00, sizeof(g_payLoad63), g_payLoad63 },
305     { 0x23, 0x00, sizeof(g_payLoad64), g_payLoad64 },
306     { 0x23, 0x00, sizeof(g_payLoad65), g_payLoad65 },
307     { 0x23, 0x00, sizeof(g_payLoad66), g_payLoad66 },
308     { 0x23, 0x00, sizeof(g_payLoad67), g_payLoad67 },
309     { 0x23, 0x00, sizeof(g_payLoad68), g_payLoad68 },
310     { 0x23, 0x00, sizeof(g_payLoad69), g_payLoad69 },
311     { 0x23, 0x00, sizeof(g_payLoad70), g_payLoad70 },
312     { 0x23, 0x00, sizeof(g_payLoad71), g_payLoad71 },
313     { 0x23, 0x00, sizeof(g_payLoad72), g_payLoad72 },
314     { 0x23, 0x00, sizeof(g_payLoad73), g_payLoad73 },
315     { 0x23, 0x00, sizeof(g_payLoad74), g_payLoad74 },
316     { 0x23, 0x00, sizeof(g_payLoad75), g_payLoad75 },
317     { 0x23, 0x00, sizeof(g_payLoad76), g_payLoad76 },
318     { 0x23, 0x00, sizeof(g_payLoad77), g_payLoad77 },
319     { 0x23, 0x00, sizeof(g_payLoad78), g_payLoad78 },
320     { 0x23, 0x00, sizeof(g_payLoad79), g_payLoad79 },
321     { 0x23, 0x00, sizeof(g_payLoad80), g_payLoad80 },
322     { 0x23, 0x00, sizeof(g_payLoad81), g_payLoad81 },
323     { 0x23, 0x00, sizeof(g_payLoad82), g_payLoad82 },
324     { 0x23, 0x00, sizeof(g_payLoad83), g_payLoad83 },
325     { 0x23, 0x00, sizeof(g_payLoad84), g_payLoad84 },
326     { 0x23, 0x00, sizeof(g_payLoad85), g_payLoad85 },
327     { 0x23, 0x00, sizeof(g_payLoad86), g_payLoad86 },
328     { 0x23, 0x00, sizeof(g_payLoad87), g_payLoad87 },
329     { 0x23, 0x00, sizeof(g_payLoad88), g_payLoad88 },
330     { 0x23, 0x00, sizeof(g_payLoad89), g_payLoad89 },
331     { 0x23, 0x00, sizeof(g_payLoad90), g_payLoad90 },
332     { 0x23, 0x00, sizeof(g_payLoad91), g_payLoad91 },
333     { 0x23, 0x00, sizeof(g_payLoad92), g_payLoad92 },
334     { 0x23, 0x00, sizeof(g_payLoad93), g_payLoad93 },
335     { 0x23, 0x00, sizeof(g_payLoad94), g_payLoad94 },
336     { 0x23, 0x00, sizeof(g_payLoad95), g_payLoad95 },
337     { 0x23, 0x00, sizeof(g_payLoad96), g_payLoad96 },
338     { 0x23, 0x00, sizeof(g_payLoad97), g_payLoad97 },
339     { 0x23, 0x00, sizeof(g_payLoad98), g_payLoad98 },
340     { 0x23, 0x00, sizeof(g_payLoad99), g_payLoad99 },
341     { 0x23, 0x00, sizeof(g_payLoad100), g_payLoad100 },
342     { 0x23, 0x00, sizeof(g_payLoad101), g_payLoad101 },
343     { 0x23, 0x00, sizeof(g_payLoad102), g_payLoad102 },
344     { 0x23, 0x00, sizeof(g_payLoad103), g_payLoad103 },
345     { 0x23, 0x00, sizeof(g_payLoad104), g_payLoad104 },
346     { 0x23, 0x00, sizeof(g_payLoad105), g_payLoad105 },
347     { 0x23, 0x00, sizeof(g_payLoad106), g_payLoad106 },
348     { 0x23, 0x00, sizeof(g_payLoad107), g_payLoad107 },
349     { 0x23, 0x00, sizeof(g_payLoad108), g_payLoad108 },
350     { 0x23, 0x00, sizeof(g_payLoad109), g_payLoad109 },
351     { 0x23, 0x00, sizeof(g_payLoad110), g_payLoad110 },
352     { 0x23, 0x00, sizeof(g_payLoad111), g_payLoad111 },
353     { 0x23, 0x00, sizeof(g_payLoad112), g_payLoad112 },
354     { 0x23, 0x00, sizeof(g_payLoad113), g_payLoad113 },
355     { 0x23, 0x00, sizeof(g_payLoad114), g_payLoad114 },
356     { 0x23, 0x00, sizeof(g_payLoad115), g_payLoad115 },
357     { 0x23, 0x00, sizeof(g_payLoad116), g_payLoad116 },
358     { 0x23, 0x00, sizeof(g_payLoad117), g_payLoad117 },
359     { 0x23, 0x00, sizeof(g_payLoad118), g_payLoad118 },
360     { 0x23, 0x00, sizeof(g_payLoad119), g_payLoad119 },
361     { 0x23, 0x00, sizeof(g_payLoad120), g_payLoad120 },
362     { 0x23, 0x00, sizeof(g_payLoad121), g_payLoad121 },
363     { 0x23, 0x00, sizeof(g_payLoad122), g_payLoad122 },
364     { 0x23, 0x00, sizeof(g_payLoad123), g_payLoad123 },
365     { 0x23, 0x00, sizeof(g_payLoad124), g_payLoad124 },
366     { 0x23, 0x00, sizeof(g_payLoad125), g_payLoad125 },
367     { 0x23, 0x00, sizeof(g_payLoad126), g_payLoad126 },
368     { 0x23, 0x00, sizeof(g_payLoad127), g_payLoad127 },
369     { 0x39, 0x00, sizeof(g_payLoad128), g_payLoad128 },
370     { 0x23, 0x00, sizeof(g_payLoad129), g_payLoad129 },
371     { 0x23, 0x00, sizeof(g_payLoad130), g_payLoad130 },
372     { 0x23, 0x00, sizeof(g_payLoad131), g_payLoad131 },
373     { 0x23, 0x00, sizeof(g_payLoad132), g_payLoad132 },
374     { 0x23, 0x00, sizeof(g_payLoad133), g_payLoad133 },
375     { 0x23, 0x00, sizeof(g_payLoad134), g_payLoad134 },
376     { 0x23, 0x00, sizeof(g_payLoad135), g_payLoad135 },
377     { 0x23, 0x00, sizeof(g_payLoad136), g_payLoad136 },
378     { 0x39, 0x00, sizeof(g_payLoad137), g_payLoad137 },
379     { 0x23, 0x00, sizeof(g_payLoad138), g_payLoad138 },
380     { 0x23, 0x00, sizeof(g_payLoad139), g_payLoad139 },
381     { 0x23, 0x00, sizeof(g_payLoad140), g_payLoad140 },
382     { 0x23, 0x00, sizeof(g_payLoad141), g_payLoad141 },
383     { 0x23, 0x00, sizeof(g_payLoad142), g_payLoad142 },
384     { 0x23, 0x00, sizeof(g_payLoad143), g_payLoad143 },
385     { 0x23, 0x00, sizeof(g_payLoad144), g_payLoad144 },
386     { 0x23, 0x00, sizeof(g_payLoad145), g_payLoad145 },
387     { 0x23, 0x00, sizeof(g_payLoad146), g_payLoad146 },
388     { 0x23, 0x00, sizeof(g_payLoad147), g_payLoad147 },
389     { 0x23, 0x00, sizeof(g_payLoad148), g_payLoad148 },
390     { 0x23, 0x00, sizeof(g_payLoad149), g_payLoad149 },
391     { 0x23, 0x00, sizeof(g_payLoad150), g_payLoad150 },
392     { 0x23, 0x00, sizeof(g_payLoad151), g_payLoad151 },
393     { 0x23, 0x00, sizeof(g_payLoad152), g_payLoad152 },
394     { 0x23, 0x00, sizeof(g_payLoad153), g_payLoad153 },
395     { 0x23, 0x00, sizeof(g_payLoad154), g_payLoad154 },
396     { 0x23, 0x00, sizeof(g_payLoad155), g_payLoad155 },
397     { 0x23, 0x00, sizeof(g_payLoad156), g_payLoad156 },
398     { 0x23, 0x00, sizeof(g_payLoad157), g_payLoad157 },
399     { 0x23, 0x00, sizeof(g_payLoad158), g_payLoad158 },
400     { 0x23, 0x00, sizeof(g_payLoad159), g_payLoad159 },
401     { 0x23, 0x00, sizeof(g_payLoad160), g_payLoad160 },
402     { 0x23, 0x00, sizeof(g_payLoad161), g_payLoad161 },
403     { 0x23, 0x00, sizeof(g_payLoad162), g_payLoad162 },
404     { 0x23, 0x00, sizeof(g_payLoad163), g_payLoad163 },
405     { 0x23, 0x00, sizeof(g_payLoad164), g_payLoad164 },
406     { 0x23, 0x00, sizeof(g_payLoad165), g_payLoad165 },
407     { 0x23, 0x00, sizeof(g_payLoad166), g_payLoad166 },
408     { 0x23, 0x00, sizeof(g_payLoad167), g_payLoad167 },
409     { 0x23, 0x00, sizeof(g_payLoad168), g_payLoad168 },
410     { 0x23, 0x00, sizeof(g_payLoad169), g_payLoad169 },
411     { 0x23, 0x00, sizeof(g_payLoad170), g_payLoad170 },
412     { 0x23, 0x00, sizeof(g_payLoad171), g_payLoad171 },
413     { 0x23, 0x00, sizeof(g_payLoad172), g_payLoad172 },
414     { 0x23, 0x00, sizeof(g_payLoad173), g_payLoad173 },
415     { 0x23, 0x00, sizeof(g_payLoad174), g_payLoad174 },
416     { 0x23, 0x00, sizeof(g_payLoad175), g_payLoad175 },
417     { 0x23, 0x00, sizeof(g_payLoad176), g_payLoad176 },
418     { 0x23, 0x00, sizeof(g_payLoad177), g_payLoad177 },
419     { 0x23, 0x00, sizeof(g_payLoad178), g_payLoad178 },
420     { 0x23, 0x00, sizeof(g_payLoad179), g_payLoad179 },
421     { 0x23, 0x00, sizeof(g_payLoad180), g_payLoad180 },
422     { 0x23, 0x00, sizeof(g_payLoad181), g_payLoad181 },
423     { 0x23, 0x00, sizeof(g_payLoad182), g_payLoad182 },
424     { 0x23, 0x00, sizeof(g_payLoad183), g_payLoad183 },
425     { 0x23, 0x00, sizeof(g_payLoad184), g_payLoad184 },
426     { 0x23, 0x00, sizeof(g_payLoad185), g_payLoad185 },
427     { 0x23, 0x00, sizeof(g_payLoad186), g_payLoad186 },
428     { 0x23, 0x00, sizeof(g_payLoad187), g_payLoad187 },
429     { 0x39, 0x00, sizeof(g_payLoad188), g_payLoad188 },
430     { 0x23, 0x78, sizeof(g_payLoad189), g_payLoad189 },
431     { 0x23, 0x0A, sizeof(g_payLoad190), g_payLoad190 },
432     { 0x23, 0x00, sizeof(g_payLoad191), g_payLoad191 },
433 };
434 
435 /* panel off command payload */
436 static uint8_t g_offpayLoad0[] = { 0x11 };
437 static uint8_t g_offpayLoad1[] = { 0x29 };
438 
439 static struct DsiCmdDesc g_panelOffCode[] = {
440     { 0x13, 0x0A, sizeof(g_offpayLoad0), g_offpayLoad0 },
441     { 0x13, 0x78, sizeof(g_offpayLoad1), g_offpayLoad1 },
442 };
443 
444 #endif