ili9881c.c 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284
  1. /*
  2. * Allwinner SoCs display driver.
  3. *
  4. * Copyright (C) 2016 Allwinner.
  5. *
  6. * This file is licensed under the terms of the GNU General Public
  7. * License version 2. This program is licensed "as is" without any
  8. * warranty of any kind, whether express or implied.
  9. */
  10. #include "ili9881c.h"
  11. #include "panels.h"
  12. extern s32 bsp_disp_get_panel_info(u32 screen_id,
  13. struct disp_panel_para *info);
  14. static void LCD_power_on(u32 sel);
  15. static void LCD_power_off(u32 sel);
  16. static void LCD_bl_open(u32 sel);
  17. static void LCD_bl_close(u32 sel);
  18. static void LCD_panel_init(u32 sel);
  19. static void LCD_panel_exit(u32 sel);
  20. #define panel_reset(sel, val) sunxi_lcd_gpio_set_value(sel, 1, val)
  21. #define power_en(sel, val) sunxi_lcd_gpio_set_value(sel, 0, val)
  22. static void LCD_cfg_panel_info(struct panel_extend_para *info)
  23. {
  24. u32 i = 0, j = 0;
  25. u32 items;
  26. u8 lcd_gamma_tbl[][2] = {
  27. /*{input value, corrected value} */
  28. {0, 0}, {15, 15}, {30, 30}, {45, 45}, {60, 60},
  29. {75, 75}, {90, 90}, {105, 105}, {120, 120}, {135, 135},
  30. {150, 150}, {165, 165}, {180, 180}, {195, 195}, {210, 210},
  31. {225, 225}, {240, 240}, {255, 255},
  32. };
  33. u32 lcd_cmap_tbl[2][3][4] = {
  34. {
  35. {LCD_CMAP_G0, LCD_CMAP_B1, LCD_CMAP_G2, LCD_CMAP_B3},
  36. {LCD_CMAP_B0, LCD_CMAP_R1, LCD_CMAP_B2, LCD_CMAP_R3},
  37. {LCD_CMAP_R0, LCD_CMAP_G1, LCD_CMAP_R2, LCD_CMAP_G3},
  38. },
  39. {
  40. {LCD_CMAP_B3, LCD_CMAP_G2, LCD_CMAP_B1, LCD_CMAP_G0},
  41. {LCD_CMAP_R3, LCD_CMAP_B2, LCD_CMAP_R1, LCD_CMAP_B0},
  42. {LCD_CMAP_G3, LCD_CMAP_R2, LCD_CMAP_G1, LCD_CMAP_R0},
  43. },
  44. };
  45. items = sizeof(lcd_gamma_tbl) / 2;
  46. for (i = 0; i < items - 1; i++) {
  47. u32 num = lcd_gamma_tbl[i + 1][0] - lcd_gamma_tbl[i][0];
  48. for (j = 0; j < num; j++) {
  49. u32 value = 0;
  50. value =
  51. lcd_gamma_tbl[i][1] +
  52. ((lcd_gamma_tbl[i + 1][1] - lcd_gamma_tbl[i][1]) *
  53. j) /
  54. num;
  55. info->lcd_gamma_tbl[lcd_gamma_tbl[i][0] + j] =
  56. (value << 16) + (value << 8) + value;
  57. }
  58. }
  59. info->lcd_gamma_tbl[255] = (lcd_gamma_tbl[items - 1][1] << 16) +
  60. (lcd_gamma_tbl[items - 1][1] << 8) +
  61. lcd_gamma_tbl[items - 1][1];
  62. memcpy(info->lcd_cmap_tbl, lcd_cmap_tbl, sizeof(lcd_cmap_tbl));
  63. }
  64. static s32 LCD_open_flow(u32 sel)
  65. {
  66. LCD_OPEN_FUNC(sel, LCD_power_on,
  67. 100); /* open lcd power, and delay 50ms */
  68. LCD_OPEN_FUNC(sel, LCD_panel_init,
  69. 200); /* open lcd power, than delay 200ms */
  70. LCD_OPEN_FUNC(sel, sunxi_lcd_tcon_enable,
  71. 50); /* open lcd controller, and delay 100ms */
  72. LCD_OPEN_FUNC(sel, LCD_bl_open,
  73. 0); /* open lcd backlight, and delay 0ms */
  74. return 0;
  75. }
  76. static s32 LCD_close_flow(u32 sel)
  77. {
  78. LCD_CLOSE_FUNC(sel, LCD_bl_close,
  79. 200); /* close lcd backlight, and delay 0ms */
  80. LCD_CLOSE_FUNC(sel, sunxi_lcd_tcon_disable,
  81. 20); /* close lcd controller, and delay 0ms */
  82. LCD_CLOSE_FUNC(sel, LCD_panel_exit,
  83. 10); /* open lcd power, than delay 200ms */
  84. LCD_CLOSE_FUNC(sel, LCD_power_off,
  85. 500); /* close lcd power, and delay 500ms */
  86. return 0;
  87. }
  88. static void LCD_power_on(u32 sel)
  89. {
  90. sunxi_lcd_pin_cfg(sel, 1);
  91. sunxi_lcd_power_enable(sel, 0);
  92. sunxi_lcd_delay_ms(5);
  93. sunxi_lcd_power_enable(sel, 1);
  94. sunxi_lcd_delay_ms(5);
  95. sunxi_lcd_power_enable(sel, 2);
  96. sunxi_lcd_delay_ms(5);
  97. power_en(sel, 1);
  98. sunxi_lcd_delay_ms(20);
  99. panel_reset(sel, 0);
  100. sunxi_lcd_delay_ms(10);
  101. panel_reset(sel, 1);
  102. }
  103. static void LCD_power_off(u32 sel)
  104. {
  105. sunxi_lcd_pin_cfg(sel, 0);
  106. power_en(sel, 0);
  107. sunxi_lcd_delay_ms(20);
  108. panel_reset(sel, 0);
  109. sunxi_lcd_delay_ms(5);
  110. sunxi_lcd_power_disable(
  111. sel, 2); /* lcd power2 */
  112. sunxi_lcd_delay_ms(5);
  113. sunxi_lcd_power_disable(
  114. sel, 1); /* lcd power1 */
  115. sunxi_lcd_delay_ms(5);
  116. sunxi_lcd_power_disable(
  117. sel, 0); /* lcd power */
  118. }
  119. static void LCD_bl_open(u32 sel)
  120. {
  121. sunxi_lcd_pwm_enable(sel);
  122. sunxi_lcd_delay_ms(50);
  123. sunxi_lcd_backlight_enable(sel);
  124. }
  125. static void LCD_bl_close(u32 sel)
  126. {
  127. sunxi_lcd_backlight_disable(sel);
  128. sunxi_lcd_delay_ms(20);
  129. sunxi_lcd_pwm_disable(sel);
  130. }
  131. #define REGFLAG_DELAY 0XFE
  132. #define REGFLAG_END_OF_TABLE 0xFF
  133. struct LCM_setting_table {
  134. u8 cmd;
  135. u32 count;
  136. u8 para_list[64];
  137. };
  138. enum ili9881c_op {
  139. ILI9881C_SWITCH_PAGE,
  140. ILI9881C_COMMAND,
  141. };
  142. struct ili9881c_instr {
  143. enum ili9881c_op op;
  144. union arg {
  145. struct cmd {
  146. u8 cmd;
  147. u8 data;
  148. } cmd;
  149. u8 page;
  150. } arg;
  151. };
  152. #define ILI9881C_SWITCH_PAGE_INSTR(_page) \
  153. { \
  154. .op = ILI9881C_SWITCH_PAGE, \
  155. .arg = { \
  156. .page = (_page), \
  157. }, \
  158. }
  159. #define ILI9881C_COMMAND_INSTR(_cmd, _data) \
  160. { \
  161. .op = ILI9881C_COMMAND, \
  162. .arg = { \
  163. .cmd = { \
  164. .cmd = (_cmd), \
  165. .data = (_data), \
  166. }, \
  167. }, \
  168. }
  169. static struct ili9881c_instr ili9881c_init[] = {
  170. ILI9881C_SWITCH_PAGE_INSTR(3),
  171. ILI9881C_COMMAND_INSTR(0x01, 0x00),
  172. ILI9881C_COMMAND_INSTR(0x02, 0x00),
  173. ILI9881C_COMMAND_INSTR(0x03, 0x56),
  174. ILI9881C_COMMAND_INSTR(0x04, 0x13),
  175. ILI9881C_COMMAND_INSTR(0x05, 0x00),
  176. ILI9881C_COMMAND_INSTR(0x06, 0x06),
  177. ILI9881C_COMMAND_INSTR(0x07, 0x01),
  178. ILI9881C_COMMAND_INSTR(0x08, 0x00),
  179. ILI9881C_COMMAND_INSTR(0x09, 0x30),
  180. ILI9881C_COMMAND_INSTR(0x0A, 0x01),
  181. ILI9881C_COMMAND_INSTR(0x0B, 0x00),
  182. ILI9881C_COMMAND_INSTR(0x0C, 0x30),
  183. ILI9881C_COMMAND_INSTR(0x0D, 0x01),
  184. ILI9881C_COMMAND_INSTR(0x0E, 0x00),
  185. ILI9881C_COMMAND_INSTR(0x0F, 0x18),
  186. ILI9881C_COMMAND_INSTR(0x10, 0x18),
  187. ILI9881C_COMMAND_INSTR(0x11, 0x00),
  188. ILI9881C_COMMAND_INSTR(0x12, 0x00),
  189. ILI9881C_COMMAND_INSTR(0x13, 0x00),
  190. ILI9881C_COMMAND_INSTR(0x14, 0x00),
  191. ILI9881C_COMMAND_INSTR(0x15, 0x00),
  192. ILI9881C_COMMAND_INSTR(0x16, 0x00),
  193. ILI9881C_COMMAND_INSTR(0x17, 0x00),
  194. ILI9881C_COMMAND_INSTR(0x18, 0x00),
  195. ILI9881C_COMMAND_INSTR(0x19, 0x00),
  196. ILI9881C_COMMAND_INSTR(0x1A, 0x00),
  197. ILI9881C_COMMAND_INSTR(0x1B, 0x00),
  198. ILI9881C_COMMAND_INSTR(0x1C, 0x00),
  199. ILI9881C_COMMAND_INSTR(0x1D, 0x00),
  200. ILI9881C_COMMAND_INSTR(0x1E, 0x40),
  201. ILI9881C_COMMAND_INSTR(0x1F, 0xC0),
  202. ILI9881C_COMMAND_INSTR(0x20, 0x02),
  203. ILI9881C_COMMAND_INSTR(0x21, 0x05),
  204. ILI9881C_COMMAND_INSTR(0x22, 0x02),
  205. ILI9881C_COMMAND_INSTR(0x23, 0x00),
  206. ILI9881C_COMMAND_INSTR(0x24, 0x86),
  207. ILI9881C_COMMAND_INSTR(0x25, 0x85),
  208. ILI9881C_COMMAND_INSTR(0x26, 0x00),
  209. ILI9881C_COMMAND_INSTR(0x27, 0x00),
  210. ILI9881C_COMMAND_INSTR(0x28, 0x3B),
  211. ILI9881C_COMMAND_INSTR(0x29, 0x03),
  212. ILI9881C_COMMAND_INSTR(0x2A, 0x00),
  213. ILI9881C_COMMAND_INSTR(0x2B, 0x00),
  214. ILI9881C_COMMAND_INSTR(0x2C, 0x00),
  215. ILI9881C_COMMAND_INSTR(0x2D, 0x00),
  216. ILI9881C_COMMAND_INSTR(0x2E, 0x00),
  217. ILI9881C_COMMAND_INSTR(0x2F, 0x00),
  218. ILI9881C_COMMAND_INSTR(0x30, 0x00),
  219. ILI9881C_COMMAND_INSTR(0x31, 0x00),
  220. ILI9881C_COMMAND_INSTR(0x32, 0x00),
  221. ILI9881C_COMMAND_INSTR(0x33, 0x00),
  222. ILI9881C_COMMAND_INSTR(0x34, 0x00),
  223. ILI9881C_COMMAND_INSTR(0x35, 0x00),
  224. ILI9881C_COMMAND_INSTR(0x36, 0x00),
  225. ILI9881C_COMMAND_INSTR(0x37, 0x00),
  226. ILI9881C_COMMAND_INSTR(0x38, 0x00),
  227. ILI9881C_COMMAND_INSTR(0x39, 0x00),
  228. ILI9881C_COMMAND_INSTR(0x3A, 0x00),
  229. ILI9881C_COMMAND_INSTR(0x3B, 0x00),
  230. ILI9881C_COMMAND_INSTR(0x3C, 0x00),
  231. ILI9881C_COMMAND_INSTR(0x3D, 0x00),
  232. ILI9881C_COMMAND_INSTR(0x3E, 0x00),
  233. ILI9881C_COMMAND_INSTR(0x3F, 0x00),
  234. ILI9881C_COMMAND_INSTR(0x40, 0x00),
  235. ILI9881C_COMMAND_INSTR(0x41, 0x00),
  236. ILI9881C_COMMAND_INSTR(0x42, 0x00),
  237. ILI9881C_COMMAND_INSTR(0x43, 0x00),
  238. ILI9881C_COMMAND_INSTR(0x44, 0x00),
  239. ILI9881C_COMMAND_INSTR(0x50, 0x01),
  240. ILI9881C_COMMAND_INSTR(0x51, 0x23),
  241. ILI9881C_COMMAND_INSTR(0x52, 0x45),
  242. ILI9881C_COMMAND_INSTR(0x53, 0x67),
  243. ILI9881C_COMMAND_INSTR(0x54, 0x89),
  244. ILI9881C_COMMAND_INSTR(0x55, 0xAB),
  245. ILI9881C_COMMAND_INSTR(0x56, 0x01),
  246. ILI9881C_COMMAND_INSTR(0x57, 0x23),
  247. ILI9881C_COMMAND_INSTR(0x58, 0x45),
  248. ILI9881C_COMMAND_INSTR(0x59, 0x67),
  249. ILI9881C_COMMAND_INSTR(0x5A, 0x89),
  250. ILI9881C_COMMAND_INSTR(0x5B, 0xAB),
  251. ILI9881C_COMMAND_INSTR(0x5C, 0xCD),
  252. ILI9881C_COMMAND_INSTR(0x5D, 0xEF),
  253. ILI9881C_COMMAND_INSTR(0x5E, 0x11),
  254. ILI9881C_COMMAND_INSTR(0x5F, 0x08),
  255. ILI9881C_COMMAND_INSTR(0x60, 0x00),
  256. ILI9881C_COMMAND_INSTR(0x61, 0x01),
  257. ILI9881C_COMMAND_INSTR(0x62, 0x02),
  258. ILI9881C_COMMAND_INSTR(0x63, 0x02),
  259. ILI9881C_COMMAND_INSTR(0x64, 0x0F),
  260. ILI9881C_COMMAND_INSTR(0x65, 0x0E),
  261. ILI9881C_COMMAND_INSTR(0x66, 0x0D),
  262. ILI9881C_COMMAND_INSTR(0x67, 0x0C),
  263. ILI9881C_COMMAND_INSTR(0x68, 0x02),
  264. ILI9881C_COMMAND_INSTR(0x69, 0x02),
  265. ILI9881C_COMMAND_INSTR(0x6A, 0x02),
  266. ILI9881C_COMMAND_INSTR(0x6B, 0x02),
  267. ILI9881C_COMMAND_INSTR(0x6C, 0x02),
  268. ILI9881C_COMMAND_INSTR(0x6D, 0x02),
  269. ILI9881C_COMMAND_INSTR(0x6E, 0x06),
  270. ILI9881C_COMMAND_INSTR(0x6F, 0x02),
  271. ILI9881C_COMMAND_INSTR(0x70, 0x02),
  272. ILI9881C_COMMAND_INSTR(0x71, 0x02),
  273. ILI9881C_COMMAND_INSTR(0x72, 0x02),
  274. ILI9881C_COMMAND_INSTR(0x73, 0x02),
  275. ILI9881C_COMMAND_INSTR(0x74, 0x02),
  276. ILI9881C_COMMAND_INSTR(0x75, 0x06),
  277. ILI9881C_COMMAND_INSTR(0x76, 0x00),
  278. ILI9881C_COMMAND_INSTR(0x77, 0x01),
  279. ILI9881C_COMMAND_INSTR(0x78, 0x02),
  280. ILI9881C_COMMAND_INSTR(0x79, 0x02),
  281. ILI9881C_COMMAND_INSTR(0x7A, 0x0F),
  282. ILI9881C_COMMAND_INSTR(0x7B, 0x0E),
  283. ILI9881C_COMMAND_INSTR(0x7C, 0x0D),
  284. ILI9881C_COMMAND_INSTR(0x7D, 0x0C),
  285. ILI9881C_COMMAND_INSTR(0x7E, 0x02),
  286. ILI9881C_COMMAND_INSTR(0x7F, 0x02),
  287. ILI9881C_COMMAND_INSTR(0x80, 0x02),
  288. ILI9881C_COMMAND_INSTR(0x81, 0x02),
  289. ILI9881C_COMMAND_INSTR(0x82, 0x02),
  290. ILI9881C_COMMAND_INSTR(0x83, 0x02),
  291. ILI9881C_COMMAND_INSTR(0x84, 0x08),
  292. ILI9881C_COMMAND_INSTR(0x85, 0x02),
  293. ILI9881C_COMMAND_INSTR(0x86, 0x02),
  294. ILI9881C_COMMAND_INSTR(0x87, 0x02),
  295. ILI9881C_COMMAND_INSTR(0x88, 0x02),
  296. ILI9881C_COMMAND_INSTR(0x89, 0x02),
  297. ILI9881C_COMMAND_INSTR(0x8A, 0x02),
  298. ILI9881C_SWITCH_PAGE_INSTR(4),
  299. ILI9881C_COMMAND_INSTR(0x6C, 0x15),
  300. ILI9881C_COMMAND_INSTR(0x6E, 0x2B),
  301. ILI9881C_COMMAND_INSTR(0x6F, 0x33),
  302. ILI9881C_COMMAND_INSTR(0x8D, 0x15),
  303. ILI9881C_COMMAND_INSTR(0x87, 0xBA),
  304. ILI9881C_COMMAND_INSTR(0x26, 0x76),
  305. ILI9881C_COMMAND_INSTR(0xB2, 0xD1),
  306. ILI9881C_COMMAND_INSTR(0xB5, 0x07),
  307. ILI9881C_COMMAND_INSTR(0x35, 0x1F),
  308. ILI9881C_COMMAND_INSTR(0x3A, 0x24),
  309. ILI9881C_SWITCH_PAGE_INSTR(1),
  310. ILI9881C_COMMAND_INSTR(0x22, 0x0A),
  311. ILI9881C_COMMAND_INSTR(0x31, 0x00),
  312. ILI9881C_COMMAND_INSTR(0x50, 0xB7),
  313. ILI9881C_COMMAND_INSTR(0x51, 0xB7),
  314. ILI9881C_COMMAND_INSTR(0x60, 0x30),
  315. ILI9881C_COMMAND_INSTR(0x61, 0x00),
  316. ILI9881C_COMMAND_INSTR(0x62, 0x19),
  317. ILI9881C_COMMAND_INSTR(0x63, 0x10),
  318. ILI9881C_SWITCH_PAGE_INSTR(5),
  319. ILI9881C_COMMAND_INSTR(0x80, 0x01),
  320. ILI9881C_SWITCH_PAGE_INSTR(1),
  321. ILI9881C_COMMAND_INSTR(0x34, 0x01),
  322. ILI9881C_COMMAND_INSTR(0xA0, 0x18),
  323. ILI9881C_COMMAND_INSTR(0xA1, 0x2A),
  324. ILI9881C_COMMAND_INSTR(0xA2, 0x39),
  325. ILI9881C_COMMAND_INSTR(0xA3, 0x14),
  326. ILI9881C_COMMAND_INSTR(0xA4, 0x17),
  327. ILI9881C_COMMAND_INSTR(0xA5, 0x2A),
  328. ILI9881C_COMMAND_INSTR(0xA6, 0x1D),
  329. ILI9881C_COMMAND_INSTR(0xA7, 0x1E),
  330. ILI9881C_COMMAND_INSTR(0xA8, 0xA5),
  331. ILI9881C_COMMAND_INSTR(0xA9, 0x1C),
  332. ILI9881C_COMMAND_INSTR(0xAA, 0x28),
  333. ILI9881C_COMMAND_INSTR(0xAB, 0x99),
  334. ILI9881C_COMMAND_INSTR(0xAC, 0x1C),
  335. ILI9881C_COMMAND_INSTR(0xAD, 0x1C),
  336. ILI9881C_COMMAND_INSTR(0xAE, 0x4F),
  337. ILI9881C_COMMAND_INSTR(0xAF, 0x23),
  338. ILI9881C_COMMAND_INSTR(0xB0, 0x28),
  339. ILI9881C_COMMAND_INSTR(0xB1, 0x5E),
  340. ILI9881C_COMMAND_INSTR(0xB2, 0x6D),
  341. ILI9881C_COMMAND_INSTR(0xB3, 0x39),
  342. ILI9881C_COMMAND_INSTR(0xC0, 0x16),
  343. ILI9881C_COMMAND_INSTR(0xC1, 0x29),
  344. ILI9881C_COMMAND_INSTR(0xC2, 0x38),
  345. ILI9881C_COMMAND_INSTR(0xC3, 0x15),
  346. ILI9881C_COMMAND_INSTR(0xC4, 0x18),
  347. ILI9881C_COMMAND_INSTR(0xC5, 0x2C),
  348. ILI9881C_COMMAND_INSTR(0xC6, 0x20),
  349. ILI9881C_COMMAND_INSTR(0xC7, 0x20),
  350. ILI9881C_COMMAND_INSTR(0xC8, 0xAE),
  351. ILI9881C_COMMAND_INSTR(0xC9, 0x1C),
  352. ILI9881C_COMMAND_INSTR(0xCA, 0x28),
  353. ILI9881C_COMMAND_INSTR(0xCB, 0x99),
  354. ILI9881C_COMMAND_INSTR(0xCC, 0x1D),
  355. ILI9881C_COMMAND_INSTR(0xCD, 0x1B),
  356. ILI9881C_COMMAND_INSTR(0xCE, 0x50),
  357. ILI9881C_COMMAND_INSTR(0xCF, 0x24),
  358. ILI9881C_COMMAND_INSTR(0xD0, 0x29),
  359. ILI9881C_COMMAND_INSTR(0xD1, 0x5D),
  360. ILI9881C_COMMAND_INSTR(0xD2, 0x6C),
  361. ILI9881C_COMMAND_INSTR(0xD3, 0x39),
  362. ILI9881C_SWITCH_PAGE_INSTR(5),
  363. ILI9881C_COMMAND_INSTR(0x00, 0x00),
  364. ILI9881C_COMMAND_INSTR(0x01, 0x00),
  365. ILI9881C_COMMAND_INSTR(0x02, 0x00),
  366. ILI9881C_COMMAND_INSTR(0x03, 0x00),
  367. ILI9881C_COMMAND_INSTR(0x04, 0x00),
  368. ILI9881C_COMMAND_INSTR(0x05, 0x00),
  369. ILI9881C_COMMAND_INSTR(0x06, 0x00),
  370. ILI9881C_COMMAND_INSTR(0x07, 0x00),
  371. ILI9881C_COMMAND_INSTR(0x08, 0x00),
  372. ILI9881C_COMMAND_INSTR(0x09, 0x00),
  373. ILI9881C_COMMAND_INSTR(0x0A, 0x00),
  374. ILI9881C_COMMAND_INSTR(0x0B, 0x00),
  375. ILI9881C_COMMAND_INSTR(0x0C, 0x00),
  376. ILI9881C_COMMAND_INSTR(0x0D, 0x00),
  377. ILI9881C_COMMAND_INSTR(0x0E, 0x00),
  378. ILI9881C_COMMAND_INSTR(0x0F, 0x00),
  379. ILI9881C_COMMAND_INSTR(0x10, 0x00),
  380. ILI9881C_COMMAND_INSTR(0x11, 0x00),
  381. ILI9881C_COMMAND_INSTR(0x12, 0x00),
  382. ILI9881C_COMMAND_INSTR(0x13, 0x00),
  383. ILI9881C_COMMAND_INSTR(0x14, 0x00),
  384. ILI9881C_COMMAND_INSTR(0x15, 0x00),
  385. ILI9881C_COMMAND_INSTR(0x16, 0x81),
  386. ILI9881C_COMMAND_INSTR(0x17, 0x81),
  387. ILI9881C_COMMAND_INSTR(0x18, 0x81),
  388. ILI9881C_COMMAND_INSTR(0x19, 0x81),
  389. ILI9881C_COMMAND_INSTR(0x1A, 0x81),
  390. ILI9881C_COMMAND_INSTR(0x1B, 0x81),
  391. ILI9881C_COMMAND_INSTR(0x1C, 0x81),
  392. ILI9881C_COMMAND_INSTR(0x1D, 0x81),
  393. ILI9881C_COMMAND_INSTR(0x1E, 0x81),
  394. ILI9881C_COMMAND_INSTR(0x1F, 0x81),
  395. ILI9881C_COMMAND_INSTR(0x20, 0x81),
  396. ILI9881C_COMMAND_INSTR(0x21, 0x81),
  397. ILI9881C_COMMAND_INSTR(0x22, 0x81),
  398. ILI9881C_COMMAND_INSTR(0x23, 0x81),
  399. ILI9881C_COMMAND_INSTR(0x24, 0x81),
  400. ILI9881C_COMMAND_INSTR(0x25, 0x81),
  401. ILI9881C_COMMAND_INSTR(0x26, 0x81),
  402. ILI9881C_COMMAND_INSTR(0x27, 0x81),
  403. ILI9881C_COMMAND_INSTR(0x28, 0x81),
  404. ILI9881C_COMMAND_INSTR(0x29, 0x81),
  405. ILI9881C_COMMAND_INSTR(0x2A, 0x81),
  406. ILI9881C_COMMAND_INSTR(0x2B, 0x81),
  407. ILI9881C_COMMAND_INSTR(0x2C, 0x81),
  408. ILI9881C_COMMAND_INSTR(0x2D, 0x81),
  409. ILI9881C_COMMAND_INSTR(0x2E, 0x81),
  410. ILI9881C_COMMAND_INSTR(0x2F, 0x81),
  411. ILI9881C_COMMAND_INSTR(0x30, 0x81),
  412. ILI9881C_COMMAND_INSTR(0x31, 0x81),
  413. ILI9881C_COMMAND_INSTR(0x32, 0x81),
  414. ILI9881C_COMMAND_INSTR(0x33, 0x81),
  415. ILI9881C_COMMAND_INSTR(0x34, 0x81),
  416. ILI9881C_COMMAND_INSTR(0x35, 0x81),
  417. ILI9881C_COMMAND_INSTR(0x36, 0x81),
  418. ILI9881C_COMMAND_INSTR(0x37, 0x81),
  419. ILI9881C_COMMAND_INSTR(0x38, 0x81),
  420. ILI9881C_COMMAND_INSTR(0x39, 0x81),
  421. ILI9881C_COMMAND_INSTR(0x3A, 0x81),
  422. ILI9881C_COMMAND_INSTR(0x3B, 0x81),
  423. ILI9881C_COMMAND_INSTR(0x3C, 0x81),
  424. ILI9881C_COMMAND_INSTR(0x3D, 0x81),
  425. ILI9881C_COMMAND_INSTR(0x3E, 0x81),
  426. ILI9881C_COMMAND_INSTR(0x3F, 0x81),
  427. ILI9881C_COMMAND_INSTR(0x40, 0x81),
  428. ILI9881C_COMMAND_INSTR(0x41, 0x82),
  429. ILI9881C_COMMAND_INSTR(0x42, 0x82),
  430. ILI9881C_COMMAND_INSTR(0x43, 0x82),
  431. ILI9881C_COMMAND_INSTR(0x44, 0x82),
  432. ILI9881C_COMMAND_INSTR(0x45, 0x82),
  433. ILI9881C_COMMAND_INSTR(0x46, 0x82),
  434. ILI9881C_COMMAND_INSTR(0x47, 0x82),
  435. ILI9881C_COMMAND_INSTR(0x48, 0x82),
  436. ILI9881C_COMMAND_INSTR(0x49, 0x82),
  437. ILI9881C_COMMAND_INSTR(0x4A, 0x82),
  438. ILI9881C_COMMAND_INSTR(0x4B, 0x82),
  439. ILI9881C_COMMAND_INSTR(0x4C, 0x82),
  440. ILI9881C_COMMAND_INSTR(0x4D, 0x82),
  441. ILI9881C_COMMAND_INSTR(0x4E, 0x82),
  442. ILI9881C_COMMAND_INSTR(0x4F, 0x82),
  443. ILI9881C_COMMAND_INSTR(0x50, 0x82),
  444. ILI9881C_COMMAND_INSTR(0x51, 0x82),
  445. ILI9881C_COMMAND_INSTR(0x52, 0x82),
  446. ILI9881C_COMMAND_INSTR(0x53, 0x82),
  447. ILI9881C_COMMAND_INSTR(0x54, 0x82),
  448. ILI9881C_COMMAND_INSTR(0x55, 0x82),
  449. ILI9881C_COMMAND_INSTR(0x56, 0x82),
  450. ILI9881C_COMMAND_INSTR(0x57, 0x82),
  451. ILI9881C_COMMAND_INSTR(0x58, 0x82),
  452. ILI9881C_COMMAND_INSTR(0x59, 0x82),
  453. ILI9881C_COMMAND_INSTR(0x5A, 0x82),
  454. ILI9881C_COMMAND_INSTR(0x5B, 0x82),
  455. ILI9881C_COMMAND_INSTR(0x5C, 0x82),
  456. ILI9881C_COMMAND_INSTR(0x5D, 0x82),
  457. ILI9881C_COMMAND_INSTR(0x5E, 0x82),
  458. ILI9881C_COMMAND_INSTR(0x5F, 0x82),
  459. ILI9881C_COMMAND_INSTR(0x60, 0x82),
  460. ILI9881C_COMMAND_INSTR(0x61, 0x82),
  461. ILI9881C_COMMAND_INSTR(0x62, 0x82),
  462. ILI9881C_COMMAND_INSTR(0x63, 0x82),
  463. ILI9881C_COMMAND_INSTR(0x64, 0x82),
  464. ILI9881C_COMMAND_INSTR(0x65, 0x82),
  465. ILI9881C_COMMAND_INSTR(0x66, 0x82),
  466. ILI9881C_COMMAND_INSTR(0x67, 0x82),
  467. ILI9881C_COMMAND_INSTR(0x68, 0x82),
  468. ILI9881C_COMMAND_INSTR(0x69, 0x82),
  469. ILI9881C_COMMAND_INSTR(0x6A, 0x82),
  470. ILI9881C_COMMAND_INSTR(0x6B, 0x83),
  471. ILI9881C_COMMAND_INSTR(0x6C, 0x83),
  472. ILI9881C_COMMAND_INSTR(0x6D, 0x83),
  473. ILI9881C_COMMAND_INSTR(0x6E, 0x83),
  474. ILI9881C_COMMAND_INSTR(0x6F, 0x83),
  475. ILI9881C_COMMAND_INSTR(0x70, 0x83),
  476. ILI9881C_COMMAND_INSTR(0x71, 0x83),
  477. ILI9881C_COMMAND_INSTR(0x72, 0x83),
  478. ILI9881C_COMMAND_INSTR(0x73, 0x83),
  479. ILI9881C_COMMAND_INSTR(0x74, 0x83),
  480. ILI9881C_COMMAND_INSTR(0x75, 0x83),
  481. ILI9881C_COMMAND_INSTR(0x76, 0x83),
  482. ILI9881C_COMMAND_INSTR(0x77, 0x83),
  483. ILI9881C_COMMAND_INSTR(0x78, 0x83),
  484. ILI9881C_COMMAND_INSTR(0x79, 0x83),
  485. ILI9881C_COMMAND_INSTR(0x7A, 0x83),
  486. ILI9881C_COMMAND_INSTR(0x7B, 0x83),
  487. ILI9881C_COMMAND_INSTR(0x7C, 0x83),
  488. ILI9881C_COMMAND_INSTR(0x7D, 0x83),
  489. ILI9881C_COMMAND_INSTR(0x7E, 0x83),
  490. ILI9881C_COMMAND_INSTR(0x7F, 0x83),
  491. ILI9881C_SWITCH_PAGE_INSTR(6),
  492. ILI9881C_COMMAND_INSTR(0x00, 0x83),
  493. ILI9881C_COMMAND_INSTR(0x01, 0x83),
  494. ILI9881C_COMMAND_INSTR(0x02, 0x83),
  495. ILI9881C_COMMAND_INSTR(0x03, 0x83),
  496. ILI9881C_COMMAND_INSTR(0x04, 0x83),
  497. ILI9881C_COMMAND_INSTR(0x05, 0x83),
  498. ILI9881C_COMMAND_INSTR(0x06, 0x83),
  499. ILI9881C_COMMAND_INSTR(0x07, 0x83),
  500. ILI9881C_COMMAND_INSTR(0x08, 0x83),
  501. ILI9881C_COMMAND_INSTR(0x09, 0x83),
  502. ILI9881C_COMMAND_INSTR(0x0A, 0x83),
  503. ILI9881C_COMMAND_INSTR(0x0B, 0x83),
  504. ILI9881C_COMMAND_INSTR(0x0C, 0x83),
  505. ILI9881C_COMMAND_INSTR(0x0D, 0x83),
  506. ILI9881C_COMMAND_INSTR(0x0E, 0x83),
  507. ILI9881C_COMMAND_INSTR(0x0F, 0x83),
  508. ILI9881C_COMMAND_INSTR(0x10, 0x83),
  509. ILI9881C_COMMAND_INSTR(0x11, 0x83),
  510. ILI9881C_COMMAND_INSTR(0x12, 0x83),
  511. ILI9881C_COMMAND_INSTR(0x13, 0x83),
  512. ILI9881C_COMMAND_INSTR(0x14, 0x83),
  513. ILI9881C_COMMAND_INSTR(0x15, 0x83),
  514. ILI9881C_COMMAND_INSTR(0x16, 0x84),
  515. ILI9881C_COMMAND_INSTR(0x17, 0x84),
  516. ILI9881C_COMMAND_INSTR(0x18, 0x84),
  517. ILI9881C_COMMAND_INSTR(0x19, 0x84),
  518. ILI9881C_COMMAND_INSTR(0x1A, 0x84),
  519. ILI9881C_COMMAND_INSTR(0x1B, 0x84),
  520. ILI9881C_COMMAND_INSTR(0x1C, 0x84),
  521. ILI9881C_COMMAND_INSTR(0x1D, 0x84),
  522. ILI9881C_COMMAND_INSTR(0x1E, 0x84),
  523. ILI9881C_COMMAND_INSTR(0x1F, 0x84),
  524. ILI9881C_COMMAND_INSTR(0x20, 0x84),
  525. ILI9881C_COMMAND_INSTR(0x21, 0x84),
  526. ILI9881C_COMMAND_INSTR(0x22, 0x84),
  527. ILI9881C_COMMAND_INSTR(0x23, 0x84),
  528. ILI9881C_COMMAND_INSTR(0x24, 0x84),
  529. ILI9881C_COMMAND_INSTR(0x25, 0x84),
  530. ILI9881C_COMMAND_INSTR(0x26, 0x84),
  531. ILI9881C_COMMAND_INSTR(0x27, 0x84),
  532. ILI9881C_COMMAND_INSTR(0x28, 0x84),
  533. ILI9881C_COMMAND_INSTR(0x29, 0x84),
  534. ILI9881C_COMMAND_INSTR(0x2A, 0x84),
  535. ILI9881C_COMMAND_INSTR(0x2B, 0x84),
  536. ILI9881C_COMMAND_INSTR(0x2C, 0x84),
  537. ILI9881C_COMMAND_INSTR(0x2D, 0x84),
  538. ILI9881C_COMMAND_INSTR(0x2E, 0x84),
  539. ILI9881C_COMMAND_INSTR(0x2F, 0x84),
  540. ILI9881C_COMMAND_INSTR(0x30, 0x84),
  541. ILI9881C_COMMAND_INSTR(0x31, 0x84),
  542. ILI9881C_COMMAND_INSTR(0x32, 0x84),
  543. ILI9881C_COMMAND_INSTR(0x33, 0x84),
  544. ILI9881C_COMMAND_INSTR(0x34, 0x84),
  545. ILI9881C_COMMAND_INSTR(0x35, 0x84),
  546. ILI9881C_COMMAND_INSTR(0x36, 0x84),
  547. ILI9881C_COMMAND_INSTR(0x37, 0x84),
  548. ILI9881C_COMMAND_INSTR(0x38, 0x84),
  549. ILI9881C_COMMAND_INSTR(0x39, 0x84),
  550. ILI9881C_COMMAND_INSTR(0x3A, 0x84),
  551. ILI9881C_COMMAND_INSTR(0x3B, 0x84),
  552. ILI9881C_COMMAND_INSTR(0x3C, 0x84),
  553. ILI9881C_COMMAND_INSTR(0x3D, 0x84),
  554. ILI9881C_COMMAND_INSTR(0x3E, 0x84),
  555. ILI9881C_COMMAND_INSTR(0x3F, 0x84),
  556. ILI9881C_COMMAND_INSTR(0x40, 0x84),
  557. ILI9881C_COMMAND_INSTR(0x41, 0x85),
  558. ILI9881C_COMMAND_INSTR(0x42, 0x85),
  559. ILI9881C_COMMAND_INSTR(0x43, 0x85),
  560. ILI9881C_COMMAND_INSTR(0x44, 0x85),
  561. ILI9881C_COMMAND_INSTR(0x45, 0x85),
  562. ILI9881C_COMMAND_INSTR(0x46, 0x85),
  563. ILI9881C_COMMAND_INSTR(0x47, 0x85),
  564. ILI9881C_COMMAND_INSTR(0x48, 0x85),
  565. ILI9881C_COMMAND_INSTR(0x49, 0x85),
  566. ILI9881C_COMMAND_INSTR(0x4A, 0x85),
  567. ILI9881C_COMMAND_INSTR(0x4B, 0x85),
  568. ILI9881C_COMMAND_INSTR(0x4C, 0x85),
  569. ILI9881C_COMMAND_INSTR(0x4D, 0x85),
  570. ILI9881C_COMMAND_INSTR(0x4E, 0x85),
  571. ILI9881C_COMMAND_INSTR(0x4F, 0x85),
  572. ILI9881C_COMMAND_INSTR(0x50, 0x85),
  573. ILI9881C_COMMAND_INSTR(0x51, 0x85),
  574. ILI9881C_COMMAND_INSTR(0x52, 0x85),
  575. ILI9881C_COMMAND_INSTR(0x53, 0x85),
  576. ILI9881C_COMMAND_INSTR(0x54, 0x85),
  577. ILI9881C_COMMAND_INSTR(0x55, 0x85),
  578. ILI9881C_COMMAND_INSTR(0x56, 0x85),
  579. ILI9881C_COMMAND_INSTR(0x57, 0x85),
  580. ILI9881C_COMMAND_INSTR(0x58, 0x85),
  581. ILI9881C_COMMAND_INSTR(0x59, 0x85),
  582. ILI9881C_COMMAND_INSTR(0x5A, 0x85),
  583. ILI9881C_COMMAND_INSTR(0x5B, 0x85),
  584. ILI9881C_COMMAND_INSTR(0x5C, 0x85),
  585. ILI9881C_COMMAND_INSTR(0x5D, 0x85),
  586. ILI9881C_COMMAND_INSTR(0x5E, 0x85),
  587. ILI9881C_COMMAND_INSTR(0x5F, 0x85),
  588. ILI9881C_COMMAND_INSTR(0x60, 0x85),
  589. ILI9881C_COMMAND_INSTR(0x61, 0x85),
  590. ILI9881C_COMMAND_INSTR(0x62, 0x85),
  591. ILI9881C_COMMAND_INSTR(0x63, 0x85),
  592. ILI9881C_COMMAND_INSTR(0x64, 0x85),
  593. ILI9881C_COMMAND_INSTR(0x65, 0x85),
  594. ILI9881C_COMMAND_INSTR(0x66, 0x85),
  595. ILI9881C_COMMAND_INSTR(0x67, 0x85),
  596. ILI9881C_COMMAND_INSTR(0x68, 0x85),
  597. ILI9881C_COMMAND_INSTR(0x69, 0x85),
  598. ILI9881C_COMMAND_INSTR(0x6A, 0x85),
  599. ILI9881C_COMMAND_INSTR(0x6B, 0x86),
  600. ILI9881C_COMMAND_INSTR(0x6C, 0x86),
  601. ILI9881C_COMMAND_INSTR(0x6D, 0x86),
  602. ILI9881C_COMMAND_INSTR(0x6E, 0x86),
  603. ILI9881C_COMMAND_INSTR(0x6F, 0x86),
  604. ILI9881C_COMMAND_INSTR(0x70, 0x86),
  605. ILI9881C_COMMAND_INSTR(0x71, 0x86),
  606. ILI9881C_COMMAND_INSTR(0x72, 0x86),
  607. ILI9881C_COMMAND_INSTR(0x73, 0x86),
  608. ILI9881C_COMMAND_INSTR(0x74, 0x86),
  609. ILI9881C_COMMAND_INSTR(0x75, 0x86),
  610. ILI9881C_COMMAND_INSTR(0x76, 0x86),
  611. ILI9881C_COMMAND_INSTR(0x77, 0x86),
  612. ILI9881C_COMMAND_INSTR(0x78, 0x86),
  613. ILI9881C_COMMAND_INSTR(0x79, 0x86),
  614. ILI9881C_COMMAND_INSTR(0x7A, 0x86),
  615. ILI9881C_COMMAND_INSTR(0x7B, 0x86),
  616. ILI9881C_COMMAND_INSTR(0x7C, 0x86),
  617. ILI9881C_COMMAND_INSTR(0x7D, 0x86),
  618. ILI9881C_COMMAND_INSTR(0x7E, 0x86),
  619. ILI9881C_COMMAND_INSTR(0x7F, 0x86),
  620. ILI9881C_SWITCH_PAGE_INSTR(7),
  621. ILI9881C_COMMAND_INSTR(0x00, 0x00),
  622. ILI9881C_COMMAND_INSTR(0x01, 0x00),
  623. ILI9881C_COMMAND_INSTR(0x02, 0x00),
  624. ILI9881C_COMMAND_INSTR(0x03, 0x00),
  625. ILI9881C_COMMAND_INSTR(0x04, 0x00),
  626. ILI9881C_COMMAND_INSTR(0x05, 0x00),
  627. ILI9881C_COMMAND_INSTR(0x06, 0x00),
  628. ILI9881C_COMMAND_INSTR(0x07, 0x00),
  629. ILI9881C_COMMAND_INSTR(0x08, 0x00),
  630. ILI9881C_COMMAND_INSTR(0x09, 0x00),
  631. ILI9881C_COMMAND_INSTR(0x0A, 0x00),
  632. ILI9881C_COMMAND_INSTR(0x0B, 0x00),
  633. ILI9881C_COMMAND_INSTR(0x0C, 0x00),
  634. ILI9881C_COMMAND_INSTR(0x0D, 0x00),
  635. ILI9881C_COMMAND_INSTR(0x0E, 0x00),
  636. ILI9881C_COMMAND_INSTR(0x0F, 0x00),
  637. ILI9881C_COMMAND_INSTR(0x10, 0x00),
  638. ILI9881C_COMMAND_INSTR(0x11, 0x00),
  639. ILI9881C_COMMAND_INSTR(0x12, 0x00),
  640. ILI9881C_COMMAND_INSTR(0x13, 0x00),
  641. ILI9881C_COMMAND_INSTR(0x14, 0x00),
  642. ILI9881C_COMMAND_INSTR(0x15, 0x00),
  643. ILI9881C_COMMAND_INSTR(0x16, 0x00),
  644. ILI9881C_COMMAND_INSTR(0x17, 0x00),
  645. ILI9881C_COMMAND_INSTR(0x18, 0x00),
  646. ILI9881C_COMMAND_INSTR(0x19, 0x00),
  647. ILI9881C_COMMAND_INSTR(0x1A, 0x81),
  648. ILI9881C_COMMAND_INSTR(0x1B, 0x81),
  649. ILI9881C_COMMAND_INSTR(0x1C, 0x81),
  650. ILI9881C_COMMAND_INSTR(0x1D, 0x81),
  651. ILI9881C_COMMAND_INSTR(0x1E, 0x81),
  652. ILI9881C_COMMAND_INSTR(0x1F, 0x81),
  653. ILI9881C_COMMAND_INSTR(0x20, 0x81),
  654. ILI9881C_COMMAND_INSTR(0x21, 0x81),
  655. ILI9881C_COMMAND_INSTR(0x22, 0x81),
  656. ILI9881C_COMMAND_INSTR(0x23, 0x81),
  657. ILI9881C_COMMAND_INSTR(0x24, 0x81),
  658. ILI9881C_COMMAND_INSTR(0x25, 0x81),
  659. ILI9881C_COMMAND_INSTR(0x26, 0x81),
  660. ILI9881C_COMMAND_INSTR(0x27, 0x81),
  661. ILI9881C_COMMAND_INSTR(0x28, 0x81),
  662. ILI9881C_COMMAND_INSTR(0x29, 0x81),
  663. ILI9881C_COMMAND_INSTR(0x2A, 0x81),
  664. ILI9881C_COMMAND_INSTR(0x2B, 0x81),
  665. ILI9881C_COMMAND_INSTR(0x2C, 0x81),
  666. ILI9881C_COMMAND_INSTR(0x2D, 0x81),
  667. ILI9881C_COMMAND_INSTR(0x2E, 0x81),
  668. ILI9881C_COMMAND_INSTR(0x2F, 0x81),
  669. ILI9881C_COMMAND_INSTR(0x30, 0x81),
  670. ILI9881C_COMMAND_INSTR(0x31, 0x81),
  671. ILI9881C_COMMAND_INSTR(0x32, 0x81),
  672. ILI9881C_COMMAND_INSTR(0x33, 0x81),
  673. ILI9881C_COMMAND_INSTR(0x34, 0x81),
  674. ILI9881C_COMMAND_INSTR(0x35, 0x81),
  675. ILI9881C_COMMAND_INSTR(0x36, 0x81),
  676. ILI9881C_COMMAND_INSTR(0x37, 0x81),
  677. ILI9881C_COMMAND_INSTR(0x38, 0x81),
  678. ILI9881C_COMMAND_INSTR(0x39, 0x81),
  679. ILI9881C_COMMAND_INSTR(0x3A, 0x81),
  680. ILI9881C_COMMAND_INSTR(0x3B, 0x81),
  681. ILI9881C_COMMAND_INSTR(0x3C, 0x81),
  682. ILI9881C_COMMAND_INSTR(0x3D, 0x81),
  683. ILI9881C_COMMAND_INSTR(0x3E, 0x81),
  684. ILI9881C_COMMAND_INSTR(0x3F, 0x81),
  685. ILI9881C_COMMAND_INSTR(0x40, 0x81),
  686. ILI9881C_COMMAND_INSTR(0x41, 0x81),
  687. ILI9881C_COMMAND_INSTR(0x42, 0x81),
  688. ILI9881C_COMMAND_INSTR(0x43, 0x81),
  689. ILI9881C_COMMAND_INSTR(0x44, 0x81),
  690. ILI9881C_COMMAND_INSTR(0x45, 0x81),
  691. ILI9881C_COMMAND_INSTR(0x46, 0x81),
  692. ILI9881C_COMMAND_INSTR(0x47, 0x81),
  693. ILI9881C_COMMAND_INSTR(0x48, 0x81),
  694. ILI9881C_COMMAND_INSTR(0x49, 0x81),
  695. ILI9881C_COMMAND_INSTR(0x4A, 0x81),
  696. ILI9881C_COMMAND_INSTR(0x4B, 0x81),
  697. ILI9881C_COMMAND_INSTR(0x4C, 0x81),
  698. ILI9881C_COMMAND_INSTR(0x4D, 0x82),
  699. ILI9881C_COMMAND_INSTR(0x4E, 0x82),
  700. ILI9881C_COMMAND_INSTR(0x4F, 0x82),
  701. ILI9881C_COMMAND_INSTR(0x50, 0x82),
  702. ILI9881C_COMMAND_INSTR(0x51, 0x82),
  703. ILI9881C_COMMAND_INSTR(0x52, 0x82),
  704. ILI9881C_COMMAND_INSTR(0x53, 0x82),
  705. ILI9881C_COMMAND_INSTR(0x54, 0x82),
  706. ILI9881C_COMMAND_INSTR(0x55, 0x82),
  707. ILI9881C_COMMAND_INSTR(0x56, 0x82),
  708. ILI9881C_COMMAND_INSTR(0x57, 0x82),
  709. ILI9881C_COMMAND_INSTR(0x58, 0x82),
  710. ILI9881C_COMMAND_INSTR(0x59, 0x82),
  711. ILI9881C_COMMAND_INSTR(0x5A, 0x82),
  712. ILI9881C_COMMAND_INSTR(0x5B, 0x82),
  713. ILI9881C_COMMAND_INSTR(0x5C, 0x82),
  714. ILI9881C_COMMAND_INSTR(0x5D, 0x82),
  715. ILI9881C_COMMAND_INSTR(0x5E, 0x82),
  716. ILI9881C_COMMAND_INSTR(0x5F, 0x82),
  717. ILI9881C_COMMAND_INSTR(0x60, 0x82),
  718. ILI9881C_COMMAND_INSTR(0x61, 0x82),
  719. ILI9881C_COMMAND_INSTR(0x62, 0x82),
  720. ILI9881C_COMMAND_INSTR(0x63, 0x82),
  721. ILI9881C_COMMAND_INSTR(0x64, 0x82),
  722. ILI9881C_COMMAND_INSTR(0x65, 0x82),
  723. ILI9881C_COMMAND_INSTR(0x66, 0x82),
  724. ILI9881C_COMMAND_INSTR(0x67, 0x82),
  725. ILI9881C_COMMAND_INSTR(0x68, 0x82),
  726. ILI9881C_COMMAND_INSTR(0x69, 0x82),
  727. ILI9881C_COMMAND_INSTR(0x6A, 0x82),
  728. ILI9881C_COMMAND_INSTR(0x6B, 0x82),
  729. ILI9881C_COMMAND_INSTR(0x6C, 0x82),
  730. ILI9881C_COMMAND_INSTR(0x6D, 0x82),
  731. ILI9881C_COMMAND_INSTR(0x6E, 0x82),
  732. ILI9881C_COMMAND_INSTR(0x6F, 0x82),
  733. ILI9881C_COMMAND_INSTR(0x70, 0x82),
  734. ILI9881C_COMMAND_INSTR(0x71, 0x82),
  735. ILI9881C_COMMAND_INSTR(0x72, 0x82),
  736. ILI9881C_COMMAND_INSTR(0x73, 0x82),
  737. ILI9881C_COMMAND_INSTR(0x74, 0x82),
  738. ILI9881C_COMMAND_INSTR(0x75, 0x82),
  739. ILI9881C_COMMAND_INSTR(0x76, 0x82),
  740. ILI9881C_COMMAND_INSTR(0x77, 0x82),
  741. ILI9881C_COMMAND_INSTR(0x78, 0x82),
  742. ILI9881C_COMMAND_INSTR(0x79, 0x82),
  743. ILI9881C_COMMAND_INSTR(0x7A, 0x82),
  744. ILI9881C_COMMAND_INSTR(0x7B, 0x82),
  745. ILI9881C_COMMAND_INSTR(0x7C, 0x82),
  746. ILI9881C_COMMAND_INSTR(0x7D, 0x82),
  747. ILI9881C_COMMAND_INSTR(0x7E, 0x82),
  748. ILI9881C_COMMAND_INSTR(0x7F, 0x82),
  749. ILI9881C_SWITCH_PAGE_INSTR(8),
  750. ILI9881C_COMMAND_INSTR(0x00, 0x82),
  751. ILI9881C_COMMAND_INSTR(0x01, 0x83),
  752. ILI9881C_COMMAND_INSTR(0x02, 0x83),
  753. ILI9881C_COMMAND_INSTR(0x03, 0x83),
  754. ILI9881C_COMMAND_INSTR(0x04, 0x83),
  755. ILI9881C_COMMAND_INSTR(0x05, 0x83),
  756. ILI9881C_COMMAND_INSTR(0x06, 0x83),
  757. ILI9881C_COMMAND_INSTR(0x07, 0x83),
  758. ILI9881C_COMMAND_INSTR(0x08, 0x83),
  759. ILI9881C_COMMAND_INSTR(0x09, 0x83),
  760. ILI9881C_COMMAND_INSTR(0x0A, 0x83),
  761. ILI9881C_COMMAND_INSTR(0x0B, 0x83),
  762. ILI9881C_COMMAND_INSTR(0x0C, 0x83),
  763. ILI9881C_COMMAND_INSTR(0x0D, 0x83),
  764. ILI9881C_COMMAND_INSTR(0x0E, 0x83),
  765. ILI9881C_COMMAND_INSTR(0x0F, 0x83),
  766. ILI9881C_COMMAND_INSTR(0x10, 0x83),
  767. ILI9881C_COMMAND_INSTR(0x11, 0x83),
  768. ILI9881C_COMMAND_INSTR(0x12, 0x83),
  769. ILI9881C_COMMAND_INSTR(0x13, 0x83),
  770. ILI9881C_COMMAND_INSTR(0x14, 0x83),
  771. ILI9881C_COMMAND_INSTR(0x15, 0x83),
  772. ILI9881C_COMMAND_INSTR(0x16, 0x83),
  773. ILI9881C_COMMAND_INSTR(0x17, 0x83),
  774. ILI9881C_COMMAND_INSTR(0x18, 0x83),
  775. ILI9881C_COMMAND_INSTR(0x19, 0x83),
  776. ILI9881C_COMMAND_INSTR(0x1A, 0x83),
  777. ILI9881C_COMMAND_INSTR(0x1B, 0x83),
  778. ILI9881C_COMMAND_INSTR(0x1C, 0x83),
  779. ILI9881C_COMMAND_INSTR(0x1D, 0x83),
  780. ILI9881C_COMMAND_INSTR(0x1E, 0x83),
  781. ILI9881C_COMMAND_INSTR(0x1F, 0x83),
  782. ILI9881C_COMMAND_INSTR(0x20, 0x83),
  783. ILI9881C_COMMAND_INSTR(0x21, 0x83),
  784. ILI9881C_COMMAND_INSTR(0x22, 0x83),
  785. ILI9881C_COMMAND_INSTR(0x23, 0x83),
  786. ILI9881C_COMMAND_INSTR(0x24, 0x83),
  787. ILI9881C_COMMAND_INSTR(0x25, 0x83),
  788. ILI9881C_COMMAND_INSTR(0x26, 0x83),
  789. ILI9881C_COMMAND_INSTR(0x27, 0x83),
  790. ILI9881C_COMMAND_INSTR(0x28, 0x83),
  791. ILI9881C_COMMAND_INSTR(0x29, 0x83),
  792. ILI9881C_COMMAND_INSTR(0x2A, 0x83),
  793. ILI9881C_COMMAND_INSTR(0x2B, 0x83),
  794. ILI9881C_COMMAND_INSTR(0x2C, 0x83),
  795. ILI9881C_COMMAND_INSTR(0x2D, 0x83),
  796. ILI9881C_COMMAND_INSTR(0x2E, 0x83),
  797. ILI9881C_COMMAND_INSTR(0x2F, 0x83),
  798. ILI9881C_COMMAND_INSTR(0x30, 0x83),
  799. ILI9881C_COMMAND_INSTR(0x31, 0x83),
  800. ILI9881C_COMMAND_INSTR(0x32, 0x83),
  801. ILI9881C_COMMAND_INSTR(0x33, 0x83),
  802. ILI9881C_COMMAND_INSTR(0x34, 0x84),
  803. ILI9881C_COMMAND_INSTR(0x35, 0x84),
  804. ILI9881C_COMMAND_INSTR(0x36, 0x84),
  805. ILI9881C_COMMAND_INSTR(0x37, 0x84),
  806. ILI9881C_COMMAND_INSTR(0x38, 0x84),
  807. ILI9881C_COMMAND_INSTR(0x39, 0x84),
  808. ILI9881C_COMMAND_INSTR(0x3A, 0x84),
  809. ILI9881C_COMMAND_INSTR(0x3B, 0x84),
  810. ILI9881C_COMMAND_INSTR(0x3C, 0x84),
  811. ILI9881C_COMMAND_INSTR(0x3D, 0x84),
  812. ILI9881C_COMMAND_INSTR(0x3E, 0x84),
  813. ILI9881C_COMMAND_INSTR(0x3F, 0x84),
  814. ILI9881C_COMMAND_INSTR(0x40, 0x84),
  815. ILI9881C_COMMAND_INSTR(0x41, 0x84),
  816. ILI9881C_COMMAND_INSTR(0x42, 0x84),
  817. ILI9881C_COMMAND_INSTR(0x43, 0x84),
  818. ILI9881C_COMMAND_INSTR(0x44, 0x84),
  819. ILI9881C_COMMAND_INSTR(0x45, 0x84),
  820. ILI9881C_COMMAND_INSTR(0x46, 0x84),
  821. ILI9881C_COMMAND_INSTR(0x47, 0x84),
  822. ILI9881C_COMMAND_INSTR(0x48, 0x84),
  823. ILI9881C_COMMAND_INSTR(0x49, 0x84),
  824. ILI9881C_COMMAND_INSTR(0x4A, 0x84),
  825. ILI9881C_COMMAND_INSTR(0x4B, 0x84),
  826. ILI9881C_COMMAND_INSTR(0x4C, 0x84),
  827. ILI9881C_COMMAND_INSTR(0x4D, 0x84),
  828. ILI9881C_COMMAND_INSTR(0x4E, 0x84),
  829. ILI9881C_COMMAND_INSTR(0x4F, 0x84),
  830. ILI9881C_COMMAND_INSTR(0x50, 0x84),
  831. ILI9881C_COMMAND_INSTR(0x51, 0x84),
  832. ILI9881C_COMMAND_INSTR(0x52, 0x84),
  833. ILI9881C_COMMAND_INSTR(0x53, 0x84),
  834. ILI9881C_COMMAND_INSTR(0x54, 0x84),
  835. ILI9881C_COMMAND_INSTR(0x55, 0x84),
  836. ILI9881C_COMMAND_INSTR(0x56, 0x84),
  837. ILI9881C_COMMAND_INSTR(0x57, 0x84),
  838. ILI9881C_COMMAND_INSTR(0x58, 0x84),
  839. ILI9881C_COMMAND_INSTR(0x59, 0x84),
  840. ILI9881C_COMMAND_INSTR(0x5A, 0x84),
  841. ILI9881C_COMMAND_INSTR(0x5B, 0x84),
  842. ILI9881C_COMMAND_INSTR(0x5C, 0x84),
  843. ILI9881C_COMMAND_INSTR(0x5D, 0x84),
  844. ILI9881C_COMMAND_INSTR(0x5E, 0x84),
  845. ILI9881C_COMMAND_INSTR(0x5F, 0x84),
  846. ILI9881C_COMMAND_INSTR(0x60, 0x84),
  847. ILI9881C_COMMAND_INSTR(0x61, 0x84),
  848. ILI9881C_COMMAND_INSTR(0x62, 0x84),
  849. ILI9881C_COMMAND_INSTR(0x63, 0x84),
  850. ILI9881C_COMMAND_INSTR(0x64, 0x84),
  851. ILI9881C_COMMAND_INSTR(0x65, 0x84),
  852. ILI9881C_COMMAND_INSTR(0x66, 0x84),
  853. ILI9881C_COMMAND_INSTR(0x67, 0x85),
  854. ILI9881C_COMMAND_INSTR(0x68, 0x85),
  855. ILI9881C_COMMAND_INSTR(0x69, 0x85),
  856. ILI9881C_COMMAND_INSTR(0x6A, 0x85),
  857. ILI9881C_COMMAND_INSTR(0x6B, 0x85),
  858. ILI9881C_COMMAND_INSTR(0x6C, 0x85),
  859. ILI9881C_COMMAND_INSTR(0x6D, 0x85),
  860. ILI9881C_COMMAND_INSTR(0x6E, 0x85),
  861. ILI9881C_COMMAND_INSTR(0x6F, 0x85),
  862. ILI9881C_COMMAND_INSTR(0x70, 0x85),
  863. ILI9881C_COMMAND_INSTR(0x71, 0x85),
  864. ILI9881C_COMMAND_INSTR(0x72, 0x85),
  865. ILI9881C_COMMAND_INSTR(0x73, 0x85),
  866. ILI9881C_COMMAND_INSTR(0x74, 0x85),
  867. ILI9881C_COMMAND_INSTR(0x75, 0x85),
  868. ILI9881C_COMMAND_INSTR(0x76, 0x85),
  869. ILI9881C_COMMAND_INSTR(0x77, 0x85),
  870. ILI9881C_COMMAND_INSTR(0x78, 0x85),
  871. ILI9881C_COMMAND_INSTR(0x79, 0x85),
  872. ILI9881C_COMMAND_INSTR(0x7A, 0x85),
  873. ILI9881C_COMMAND_INSTR(0x7B, 0x85),
  874. ILI9881C_COMMAND_INSTR(0x7C, 0x85),
  875. ILI9881C_COMMAND_INSTR(0x7D, 0x85),
  876. ILI9881C_COMMAND_INSTR(0x7E, 0x85),
  877. ILI9881C_COMMAND_INSTR(0x7F, 0x85),
  878. ILI9881C_SWITCH_PAGE_INSTR(9),
  879. ILI9881C_COMMAND_INSTR(0x00, 0x00),
  880. ILI9881C_COMMAND_INSTR(0x01, 0x00),
  881. ILI9881C_COMMAND_INSTR(0x02, 0x00),
  882. ILI9881C_COMMAND_INSTR(0x03, 0x00),
  883. ILI9881C_COMMAND_INSTR(0x04, 0x00),
  884. ILI9881C_COMMAND_INSTR(0x05, 0x00),
  885. ILI9881C_COMMAND_INSTR(0x06, 0x00),
  886. ILI9881C_COMMAND_INSTR(0x07, 0x00),
  887. ILI9881C_COMMAND_INSTR(0x08, 0x00),
  888. ILI9881C_COMMAND_INSTR(0x09, 0x00),
  889. ILI9881C_COMMAND_INSTR(0x0A, 0x00),
  890. ILI9881C_COMMAND_INSTR(0x0B, 0x00),
  891. ILI9881C_COMMAND_INSTR(0x0C, 0x00),
  892. ILI9881C_COMMAND_INSTR(0x0D, 0x00),
  893. ILI9881C_COMMAND_INSTR(0x0E, 0x00),
  894. ILI9881C_COMMAND_INSTR(0x0F, 0x00),
  895. ILI9881C_COMMAND_INSTR(0x10, 0x00),
  896. ILI9881C_COMMAND_INSTR(0x11, 0x00),
  897. ILI9881C_COMMAND_INSTR(0x12, 0x00),
  898. ILI9881C_COMMAND_INSTR(0x13, 0x00),
  899. ILI9881C_COMMAND_INSTR(0x14, 0x00),
  900. ILI9881C_COMMAND_INSTR(0x15, 0x00),
  901. ILI9881C_COMMAND_INSTR(0x16, 0x00),
  902. ILI9881C_COMMAND_INSTR(0x17, 0x00),
  903. ILI9881C_COMMAND_INSTR(0x18, 0x00),
  904. ILI9881C_COMMAND_INSTR(0x19, 0x00),
  905. ILI9881C_COMMAND_INSTR(0x1A, 0x00),
  906. ILI9881C_COMMAND_INSTR(0x1B, 0x00),
  907. ILI9881C_COMMAND_INSTR(0x1C, 0x00),
  908. ILI9881C_COMMAND_INSTR(0x1D, 0x00),
  909. ILI9881C_COMMAND_INSTR(0x1E, 0x00),
  910. ILI9881C_COMMAND_INSTR(0x1F, 0x00),
  911. ILI9881C_COMMAND_INSTR(0x20, 0x00),
  912. ILI9881C_COMMAND_INSTR(0x21, 0x00),
  913. ILI9881C_COMMAND_INSTR(0x22, 0x00),
  914. ILI9881C_COMMAND_INSTR(0x23, 0x00),
  915. ILI9881C_COMMAND_INSTR(0x24, 0x00),
  916. ILI9881C_COMMAND_INSTR(0x25, 0x00),
  917. ILI9881C_COMMAND_INSTR(0x26, 0x00),
  918. ILI9881C_COMMAND_INSTR(0x27, 0x00),
  919. ILI9881C_COMMAND_INSTR(0x28, 0x00),
  920. ILI9881C_COMMAND_INSTR(0x29, 0x00),
  921. ILI9881C_COMMAND_INSTR(0x2A, 0x00),
  922. ILI9881C_COMMAND_INSTR(0x2B, 0x00),
  923. ILI9881C_COMMAND_INSTR(0x2C, 0x00),
  924. ILI9881C_COMMAND_INSTR(0x2D, 0x00),
  925. ILI9881C_COMMAND_INSTR(0x2E, 0x00),
  926. ILI9881C_COMMAND_INSTR(0x2F, 0x00),
  927. ILI9881C_COMMAND_INSTR(0x30, 0x00),
  928. ILI9881C_COMMAND_INSTR(0x31, 0x00),
  929. ILI9881C_COMMAND_INSTR(0x32, 0x00),
  930. ILI9881C_COMMAND_INSTR(0x33, 0x00),
  931. ILI9881C_COMMAND_INSTR(0x34, 0x00),
  932. ILI9881C_COMMAND_INSTR(0x35, 0x00),
  933. ILI9881C_COMMAND_INSTR(0x36, 0x00),
  934. ILI9881C_COMMAND_INSTR(0x37, 0x00),
  935. ILI9881C_COMMAND_INSTR(0x38, 0x00),
  936. ILI9881C_COMMAND_INSTR(0x39, 0x00),
  937. ILI9881C_COMMAND_INSTR(0x3A, 0x00),
  938. ILI9881C_COMMAND_INSTR(0x3B, 0x00),
  939. ILI9881C_COMMAND_INSTR(0x3C, 0x00),
  940. ILI9881C_COMMAND_INSTR(0x3D, 0x00),
  941. ILI9881C_COMMAND_INSTR(0x3E, 0x00),
  942. ILI9881C_COMMAND_INSTR(0x3F, 0x00),
  943. ILI9881C_COMMAND_INSTR(0x40, 0x00),
  944. ILI9881C_COMMAND_INSTR(0x41, 0x00),
  945. ILI9881C_COMMAND_INSTR(0x42, 0x00),
  946. ILI9881C_COMMAND_INSTR(0x43, 0x00),
  947. ILI9881C_COMMAND_INSTR(0x44, 0x00),
  948. ILI9881C_COMMAND_INSTR(0x45, 0x00),
  949. ILI9881C_COMMAND_INSTR(0x46, 0x00),
  950. ILI9881C_COMMAND_INSTR(0x47, 0x00),
  951. ILI9881C_COMMAND_INSTR(0x48, 0x00),
  952. ILI9881C_COMMAND_INSTR(0x49, 0x00),
  953. ILI9881C_COMMAND_INSTR(0x4A, 0x00),
  954. ILI9881C_COMMAND_INSTR(0x4B, 0x00),
  955. ILI9881C_COMMAND_INSTR(0x4C, 0x00),
  956. ILI9881C_COMMAND_INSTR(0x4D, 0x00),
  957. ILI9881C_COMMAND_INSTR(0x4E, 0x00),
  958. ILI9881C_COMMAND_INSTR(0x4F, 0x00),
  959. ILI9881C_COMMAND_INSTR(0x50, 0x00),
  960. ILI9881C_COMMAND_INSTR(0x51, 0x00),
  961. ILI9881C_COMMAND_INSTR(0x52, 0x00),
  962. ILI9881C_COMMAND_INSTR(0x53, 0x00),
  963. ILI9881C_COMMAND_INSTR(0x54, 0x00),
  964. ILI9881C_COMMAND_INSTR(0x55, 0x00),
  965. ILI9881C_COMMAND_INSTR(0x56, 0x00),
  966. ILI9881C_COMMAND_INSTR(0x57, 0x00),
  967. ILI9881C_COMMAND_INSTR(0x58, 0x00),
  968. ILI9881C_COMMAND_INSTR(0x59, 0x00),
  969. ILI9881C_COMMAND_INSTR(0x5A, 0x00),
  970. ILI9881C_COMMAND_INSTR(0x5B, 0x00),
  971. ILI9881C_COMMAND_INSTR(0x5C, 0x00),
  972. ILI9881C_COMMAND_INSTR(0x5D, 0x00),
  973. ILI9881C_COMMAND_INSTR(0x5E, 0x00),
  974. ILI9881C_COMMAND_INSTR(0x5F, 0x00),
  975. ILI9881C_COMMAND_INSTR(0x60, 0x00),
  976. ILI9881C_COMMAND_INSTR(0x61, 0x00),
  977. ILI9881C_COMMAND_INSTR(0x62, 0x00),
  978. ILI9881C_COMMAND_INSTR(0x63, 0x00),
  979. ILI9881C_COMMAND_INSTR(0x64, 0x00),
  980. ILI9881C_COMMAND_INSTR(0x65, 0x00),
  981. ILI9881C_COMMAND_INSTR(0x66, 0x00),
  982. ILI9881C_COMMAND_INSTR(0x67, 0x00),
  983. ILI9881C_COMMAND_INSTR(0x68, 0x00),
  984. ILI9881C_COMMAND_INSTR(0x69, 0x00),
  985. ILI9881C_COMMAND_INSTR(0x6A, 0x00),
  986. ILI9881C_COMMAND_INSTR(0x6B, 0x00),
  987. ILI9881C_COMMAND_INSTR(0x6C, 0x00),
  988. ILI9881C_COMMAND_INSTR(0x6D, 0x00),
  989. ILI9881C_COMMAND_INSTR(0x6E, 0x00),
  990. ILI9881C_COMMAND_INSTR(0x6F, 0x00),
  991. ILI9881C_COMMAND_INSTR(0x70, 0x00),
  992. ILI9881C_COMMAND_INSTR(0x71, 0x00),
  993. ILI9881C_COMMAND_INSTR(0x72, 0x00),
  994. ILI9881C_COMMAND_INSTR(0x73, 0x00),
  995. ILI9881C_COMMAND_INSTR(0x74, 0x00),
  996. ILI9881C_COMMAND_INSTR(0x75, 0x00),
  997. ILI9881C_COMMAND_INSTR(0x76, 0x00),
  998. ILI9881C_COMMAND_INSTR(0x77, 0x00),
  999. ILI9881C_COMMAND_INSTR(0x78, 0x00),
  1000. ILI9881C_COMMAND_INSTR(0x79, 0x00),
  1001. ILI9881C_COMMAND_INSTR(0x7A, 0x00),
  1002. ILI9881C_COMMAND_INSTR(0x7B, 0x00),
  1003. ILI9881C_COMMAND_INSTR(0x7C, 0x00),
  1004. ILI9881C_COMMAND_INSTR(0x7D, 0x00),
  1005. ILI9881C_COMMAND_INSTR(0x7E, 0x00),
  1006. ILI9881C_COMMAND_INSTR(0x7F, 0x00),
  1007. ILI9881C_SWITCH_PAGE_INSTR(0x0A),
  1008. ILI9881C_COMMAND_INSTR(0x00, 0x00),
  1009. ILI9881C_COMMAND_INSTR(0x01, 0x00),
  1010. ILI9881C_COMMAND_INSTR(0x02, 0x00),
  1011. ILI9881C_COMMAND_INSTR(0x03, 0x00),
  1012. ILI9881C_COMMAND_INSTR(0x04, 0x00),
  1013. ILI9881C_COMMAND_INSTR(0x05, 0x00),
  1014. ILI9881C_COMMAND_INSTR(0x06, 0x00),
  1015. ILI9881C_COMMAND_INSTR(0x07, 0x00),
  1016. ILI9881C_COMMAND_INSTR(0x08, 0x00),
  1017. ILI9881C_COMMAND_INSTR(0x09, 0x00),
  1018. ILI9881C_COMMAND_INSTR(0x0A, 0x00),
  1019. ILI9881C_COMMAND_INSTR(0x0B, 0x00),
  1020. ILI9881C_COMMAND_INSTR(0x0C, 0x00),
  1021. ILI9881C_COMMAND_INSTR(0x0D, 0x00),
  1022. ILI9881C_COMMAND_INSTR(0x0E, 0x00),
  1023. ILI9881C_COMMAND_INSTR(0x0F, 0x00),
  1024. ILI9881C_COMMAND_INSTR(0x10, 0x00),
  1025. ILI9881C_COMMAND_INSTR(0x11, 0x00),
  1026. ILI9881C_COMMAND_INSTR(0x12, 0x00),
  1027. ILI9881C_COMMAND_INSTR(0x13, 0x00),
  1028. ILI9881C_COMMAND_INSTR(0x14, 0x00),
  1029. ILI9881C_COMMAND_INSTR(0x15, 0x00),
  1030. ILI9881C_COMMAND_INSTR(0x16, 0x00),
  1031. ILI9881C_COMMAND_INSTR(0x17, 0x00),
  1032. ILI9881C_COMMAND_INSTR(0x18, 0x00),
  1033. ILI9881C_COMMAND_INSTR(0x19, 0x00),
  1034. ILI9881C_COMMAND_INSTR(0x1A, 0x00),
  1035. ILI9881C_COMMAND_INSTR(0x1B, 0x00),
  1036. ILI9881C_COMMAND_INSTR(0x1C, 0x00),
  1037. ILI9881C_COMMAND_INSTR(0x1D, 0x00),
  1038. ILI9881C_COMMAND_INSTR(0x1E, 0x00),
  1039. ILI9881C_COMMAND_INSTR(0x1F, 0x00),
  1040. ILI9881C_COMMAND_INSTR(0x20, 0x00),
  1041. ILI9881C_COMMAND_INSTR(0x21, 0x00),
  1042. ILI9881C_COMMAND_INSTR(0x22, 0x00),
  1043. ILI9881C_COMMAND_INSTR(0x23, 0x00),
  1044. ILI9881C_COMMAND_INSTR(0x24, 0x00),
  1045. ILI9881C_COMMAND_INSTR(0x25, 0x00),
  1046. ILI9881C_COMMAND_INSTR(0x26, 0x00),
  1047. ILI9881C_COMMAND_INSTR(0x27, 0x00),
  1048. ILI9881C_COMMAND_INSTR(0x28, 0x00),
  1049. ILI9881C_COMMAND_INSTR(0x29, 0x00),
  1050. ILI9881C_COMMAND_INSTR(0x2A, 0x00),
  1051. ILI9881C_COMMAND_INSTR(0x2B, 0x00),
  1052. ILI9881C_COMMAND_INSTR(0x2C, 0x00),
  1053. ILI9881C_COMMAND_INSTR(0x2D, 0x00),
  1054. ILI9881C_COMMAND_INSTR(0x2E, 0x00),
  1055. ILI9881C_COMMAND_INSTR(0x2F, 0x00),
  1056. ILI9881C_COMMAND_INSTR(0x30, 0x00),
  1057. ILI9881C_COMMAND_INSTR(0x31, 0x00),
  1058. ILI9881C_COMMAND_INSTR(0x32, 0x00),
  1059. ILI9881C_COMMAND_INSTR(0x33, 0x00),
  1060. ILI9881C_COMMAND_INSTR(0x34, 0x00),
  1061. ILI9881C_COMMAND_INSTR(0x35, 0x00),
  1062. ILI9881C_COMMAND_INSTR(0x36, 0x00),
  1063. ILI9881C_COMMAND_INSTR(0x37, 0x00),
  1064. ILI9881C_COMMAND_INSTR(0x38, 0x00),
  1065. ILI9881C_COMMAND_INSTR(0x39, 0x00),
  1066. ILI9881C_COMMAND_INSTR(0x3A, 0x00),
  1067. ILI9881C_COMMAND_INSTR(0x3B, 0x00),
  1068. ILI9881C_COMMAND_INSTR(0x3C, 0x00),
  1069. ILI9881C_COMMAND_INSTR(0x3D, 0x00),
  1070. ILI9881C_COMMAND_INSTR(0x3E, 0x00),
  1071. ILI9881C_COMMAND_INSTR(0x3F, 0x00),
  1072. ILI9881C_COMMAND_INSTR(0x40, 0x00),
  1073. ILI9881C_COMMAND_INSTR(0x41, 0x00),
  1074. ILI9881C_COMMAND_INSTR(0x42, 0x00),
  1075. ILI9881C_COMMAND_INSTR(0x43, 0x00),
  1076. ILI9881C_COMMAND_INSTR(0x44, 0x00),
  1077. ILI9881C_COMMAND_INSTR(0x45, 0x00),
  1078. ILI9881C_COMMAND_INSTR(0x46, 0x00),
  1079. ILI9881C_COMMAND_INSTR(0x47, 0x00),
  1080. ILI9881C_COMMAND_INSTR(0x48, 0x00),
  1081. ILI9881C_COMMAND_INSTR(0x49, 0x00),
  1082. ILI9881C_COMMAND_INSTR(0x4A, 0x00),
  1083. ILI9881C_COMMAND_INSTR(0x4B, 0x00),
  1084. ILI9881C_COMMAND_INSTR(0x4C, 0x00),
  1085. ILI9881C_COMMAND_INSTR(0x4D, 0x00),
  1086. ILI9881C_COMMAND_INSTR(0x4E, 0x00),
  1087. ILI9881C_COMMAND_INSTR(0x4F, 0x00),
  1088. ILI9881C_COMMAND_INSTR(0x50, 0x00),
  1089. ILI9881C_COMMAND_INSTR(0x51, 0x00),
  1090. ILI9881C_COMMAND_INSTR(0x52, 0x00),
  1091. ILI9881C_COMMAND_INSTR(0x53, 0x00),
  1092. ILI9881C_COMMAND_INSTR(0x54, 0x00),
  1093. ILI9881C_COMMAND_INSTR(0x55, 0x00),
  1094. ILI9881C_COMMAND_INSTR(0x56, 0x00),
  1095. ILI9881C_COMMAND_INSTR(0x57, 0x00),
  1096. ILI9881C_COMMAND_INSTR(0x58, 0x00),
  1097. ILI9881C_COMMAND_INSTR(0x59, 0x00),
  1098. ILI9881C_COMMAND_INSTR(0x5A, 0x00),
  1099. ILI9881C_COMMAND_INSTR(0x5B, 0x00),
  1100. ILI9881C_COMMAND_INSTR(0x5C, 0x00),
  1101. ILI9881C_COMMAND_INSTR(0x5D, 0x00),
  1102. ILI9881C_COMMAND_INSTR(0x5E, 0x00),
  1103. ILI9881C_COMMAND_INSTR(0x5F, 0x00),
  1104. ILI9881C_COMMAND_INSTR(0x60, 0x00),
  1105. ILI9881C_COMMAND_INSTR(0x61, 0x00),
  1106. ILI9881C_COMMAND_INSTR(0x62, 0x00),
  1107. ILI9881C_COMMAND_INSTR(0x63, 0x00),
  1108. ILI9881C_COMMAND_INSTR(0x64, 0x00),
  1109. ILI9881C_COMMAND_INSTR(0x65, 0x00),
  1110. ILI9881C_COMMAND_INSTR(0x66, 0x00),
  1111. ILI9881C_COMMAND_INSTR(0x67, 0x00),
  1112. ILI9881C_COMMAND_INSTR(0x68, 0x00),
  1113. ILI9881C_COMMAND_INSTR(0x69, 0x00),
  1114. ILI9881C_COMMAND_INSTR(0x6A, 0x00),
  1115. ILI9881C_COMMAND_INSTR(0x6B, 0x00),
  1116. ILI9881C_COMMAND_INSTR(0x6C, 0x00),
  1117. ILI9881C_COMMAND_INSTR(0x6D, 0x00),
  1118. ILI9881C_COMMAND_INSTR(0x6E, 0x00),
  1119. ILI9881C_COMMAND_INSTR(0x6F, 0x00),
  1120. ILI9881C_COMMAND_INSTR(0x70, 0x00),
  1121. ILI9881C_COMMAND_INSTR(0x71, 0x00),
  1122. ILI9881C_COMMAND_INSTR(0x72, 0x00),
  1123. ILI9881C_COMMAND_INSTR(0x73, 0x00),
  1124. ILI9881C_COMMAND_INSTR(0x74, 0x00),
  1125. ILI9881C_COMMAND_INSTR(0x75, 0x00),
  1126. ILI9881C_COMMAND_INSTR(0x76, 0x00),
  1127. ILI9881C_COMMAND_INSTR(0x77, 0x00),
  1128. ILI9881C_COMMAND_INSTR(0x78, 0x00),
  1129. ILI9881C_COMMAND_INSTR(0x79, 0x00),
  1130. ILI9881C_COMMAND_INSTR(0x7A, 0x00),
  1131. ILI9881C_COMMAND_INSTR(0x7B, 0x00),
  1132. ILI9881C_COMMAND_INSTR(0x7C, 0x00),
  1133. ILI9881C_COMMAND_INSTR(0x7D, 0x00),
  1134. ILI9881C_COMMAND_INSTR(0x7E, 0x00),
  1135. ILI9881C_COMMAND_INSTR(0x7F, 0x00),
  1136. ILI9881C_SWITCH_PAGE_INSTR(0),
  1137. ILI9881C_COMMAND_INSTR(0x36, 0x03),
  1138. ILI9881C_COMMAND_INSTR(0x35, 0x00),
  1139. ILI9881C_SWITCH_PAGE_INSTR(2),
  1140. ILI9881C_COMMAND_INSTR(0x06, 0x30),
  1141. ILI9881C_COMMAND_INSTR(0x07, 0x01),
  1142. };
  1143. static int ili9881c_switch_page(u32 sel, u8 page)
  1144. {
  1145. #if defined(SUPPORT_DSI)
  1146. u8 buf[3] = { 0x98, 0x81, page };
  1147. int ret;
  1148. ret = dsi_dcs_wr(sel, 0xff, buf, 3);
  1149. if (ret < 0)
  1150. return ret;
  1151. #endif
  1152. return 0;
  1153. }
  1154. static int ili9881c_send_cmd_data(u32 sel, u8 cmd, u8 data)
  1155. {
  1156. #if defined(SUPPORT_DSI)
  1157. u8 buf[1] = { data };
  1158. int ret;
  1159. ret = dsi_dcs_wr(sel, cmd, buf, 1);
  1160. if (ret < 0)
  1161. return ret;
  1162. #endif
  1163. return 0;
  1164. }
  1165. /*add panel initialization code*/
  1166. static struct LCM_setting_table LCM_ILI9881C_setting[] = {
  1167. /*sleep exit*/
  1168. {0x11, 0, {0x00 } },
  1169. {REGFLAG_DELAY, REGFLAG_DELAY, {120} },
  1170. /*display on*/
  1171. {0x29, 0, {0x00 } },
  1172. {REGFLAG_DELAY, REGFLAG_DELAY, {10} },
  1173. {REGFLAG_END_OF_TABLE, REGFLAG_END_OF_TABLE, {} }
  1174. };
  1175. static void LCD_panel_init(u32 sel)
  1176. {
  1177. __u32 i;
  1178. int ret;
  1179. char model_name[25];
  1180. disp_sys_script_get_item("lcd0", "lcd_model_name",
  1181. (int *)model_name, 25);
  1182. sunxi_lcd_dsi_clk_enable(sel);
  1183. sunxi_lcd_delay_ms(20);
  1184. for (i = 0; i < ARRAY_SIZE(ili9881c_init); i++) {
  1185. struct ili9881c_instr *instr = &ili9881c_init[i];
  1186. if (instr->op == ILI9881C_SWITCH_PAGE)
  1187. ret = ili9881c_switch_page(sel, instr->arg.page);
  1188. else if (instr->op == ILI9881C_COMMAND)
  1189. ret = ili9881c_send_cmd_data(sel, instr->arg.cmd.cmd,
  1190. instr->arg.cmd.data);
  1191. if (ret)
  1192. return ;
  1193. }
  1194. ret = ili9881c_switch_page(sel, 0);
  1195. if (ret)
  1196. return ;
  1197. for (i = 0;; i++) {
  1198. if (LCM_ILI9881C_setting[i].count == REGFLAG_END_OF_TABLE)
  1199. break;
  1200. else if (LCM_ILI9881C_setting[i].count == REGFLAG_DELAY)
  1201. sunxi_lcd_delay_ms(
  1202. LCM_ILI9881C_setting[i].para_list[0]);
  1203. #if defined(SUPPORT_DSI)
  1204. else
  1205. dsi_dcs_wr(sel, LCM_ILI9881C_setting[i].cmd,
  1206. LCM_ILI9881C_setting[i].para_list,
  1207. LCM_ILI9881C_setting[i].count);
  1208. #endif
  1209. }
  1210. }
  1211. static void LCD_panel_exit(u32 sel)
  1212. {
  1213. sunxi_lcd_dsi_dcs_write_0para(sel, DSI_DCS_SET_DISPLAY_OFF);
  1214. sunxi_lcd_delay_ms(20);
  1215. sunxi_lcd_dsi_dcs_write_0para(sel, DSI_DCS_ENTER_SLEEP_MODE);
  1216. sunxi_lcd_delay_ms(80);
  1217. }
  1218. /* sel: 0:lcd0; 1:lcd1 */
  1219. static s32 LCD_user_defined_func(u32 sel, u32 para1, u32 para2, u32 para3)
  1220. {
  1221. return 0;
  1222. }
  1223. /* sel: 0:lcd0; 1:lcd1 */
  1224. /*static s32 LCD_set_bright(u32 sel, u32 bright)*/
  1225. /*{*/
  1226. /*sunxi_lcd_dsi_dcs_write_1para(sel,0x51,bright);*/
  1227. /*return 0;*/
  1228. /*}*/
  1229. struct __lcd_panel ili9881c_dsi_panel = {
  1230. /* panel driver name, must mach the name of
  1231. * lcd_drv_name in sys_config.fex
  1232. */
  1233. .name = "ili9881c_dsi_panel",
  1234. .func = {
  1235. .cfg_panel_info = LCD_cfg_panel_info,
  1236. .cfg_open_flow = LCD_open_flow,
  1237. .cfg_close_flow = LCD_close_flow,
  1238. .lcd_user_defined_func = LCD_user_defined_func,
  1239. /*.set_bright = LCD_set_bright, */
  1240. },
  1241. };