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