mipi_renesas.c 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293
  1. /* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
  2. *
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License version 2 and
  5. * only version 2 as published by the Free Software Foundation.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. */
  12. #include "msm_fb.h"
  13. #include "mipi_dsi.h"
  14. #include "mipi_renesas.h"
  15. #include <mach/socinfo.h>
  16. #define RENESAS_CMD_DELAY 0 /* 50 */
  17. #define RENESAS_SLEEP_OFF_DELAY 50
  18. static struct msm_panel_common_pdata *mipi_renesas_pdata;
  19. static struct dsi_buf renesas_tx_buf;
  20. static struct dsi_buf renesas_rx_buf;
  21. static int mipi_renesas_lcd_init(void);
  22. static char config_sleep_out[2] = {0x11, 0x00};
  23. static char config_CMD_MODE[2] = {0x40, 0x01};
  24. static char config_WRTXHT[7] = {0x92, 0x16, 0x08, 0x08, 0x00, 0x01, 0xe0};
  25. static char config_WRTXVT[7] = {0x8b, 0x02, 0x02, 0x02, 0x00, 0x03, 0x60};
  26. static char config_PLL2NR[2] = {0xa0, 0x24};
  27. static char config_PLL2NF1[2] = {0xa2, 0xd0};
  28. static char config_PLL2NF2[2] = {0xa4, 0x00};
  29. static char config_PLL2BWADJ1[2] = {0xa6, 0xd0};
  30. static char config_PLL2BWADJ2[2] = {0xa8, 0x00};
  31. static char config_PLL2CTL[2] = {0xaa, 0x00};
  32. static char config_DBICBR[2] = {0x48, 0x03};
  33. static char config_DBICTYPE[2] = {0x49, 0x00};
  34. static char config_DBICSET1[2] = {0x4a, 0x1c};
  35. static char config_DBICADD[2] = {0x4b, 0x00};
  36. static char config_DBICCTL[2] = {0x4e, 0x01};
  37. /* static char config_COLMOD_565[2] = {0x3a, 0x05}; */
  38. /* static char config_COLMOD_666PACK[2] = {0x3a, 0x06}; */
  39. static char config_COLMOD_888[2] = {0x3a, 0x07};
  40. static char config_MADCTL[2] = {0x36, 0x00};
  41. static char config_DBIOC[2] = {0x82, 0x40};
  42. static char config_CASET[7] = {0x2a, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdf };
  43. static char config_PASET[7] = {0x2b, 0x00, 0x00, 0x00, 0x00, 0x03, 0x5f };
  44. static char config_TXON[2] = {0x81, 0x00};
  45. static char config_BLSET_TM[2] = {0xff, 0x6c};
  46. static char config_DSIRXCTL[2] = {0x41, 0x01};
  47. static char config_TEON[2] = {0x35, 0x00};
  48. static char config_TEOFF[1] = {0x34};
  49. static char config_AGCPSCTL_TM[2] = {0x56, 0x08};
  50. static char config_DBICADD70[2] = {0x4b, 0x70};
  51. static char config_DBICSET_15[2] = {0x4a, 0x15};
  52. static char config_DBICADD72[2] = {0x4b, 0x72};
  53. static char config_Power_Ctrl_2a_cmd[3] = {0x4c, 0x40, 0x10};
  54. static char config_Auto_Sequencer_Setting_a_cmd[3] = {0x4c, 0x00, 0x00};
  55. static char Driver_Output_Ctrl_indx[3] = {0x4c, 0x00, 0x01};
  56. static char Driver_Output_Ctrl_cmd[3] = {0x4c, 0x03, 0x10};
  57. static char config_LCD_drive_AC_Ctrl_indx[3] = {0x4c, 0x00, 0x02};
  58. static char config_LCD_drive_AC_Ctrl_cmd[3] = {0x4c, 0x01, 0x00};
  59. static char config_Entry_Mode_indx[3] = {0x4c, 0x00, 0x03};
  60. static char config_Entry_Mode_cmd[3] = {0x4c, 0x00, 0x00};
  61. static char config_Display_Ctrl_1_indx[3] = {0x4c, 0x00, 0x07};
  62. static char config_Display_Ctrl_1_cmd[3] = {0x4c, 0x00, 0x00};
  63. static char config_Display_Ctrl_2_indx[3] = {0x4c, 0x00, 0x08};
  64. static char config_Display_Ctrl_2_cmd[3] = {0x4c, 0x00, 0x04};
  65. static char config_Display_Ctrl_3_indx[3] = {0x4c, 0x00, 0x09};
  66. static char config_Display_Ctrl_3_cmd[3] = {0x4c, 0x00, 0x0c};
  67. static char config_Display_IF_Ctrl_1_indx[3] = {0x4c, 0x00, 0x0c};
  68. static char config_Display_IF_Ctrl_1_cmd[3] = {0x4c, 0x40, 0x10};
  69. static char config_Display_IF_Ctrl_2_indx[3] = {0x4c, 0x00, 0x0e};
  70. static char config_Display_IF_Ctrl_2_cmd[3] = {0x4c, 0x00, 0x00};
  71. static char config_Panel_IF_Ctrl_1_indx[3] = {0x4c, 0x00, 0x20};
  72. static char config_Panel_IF_Ctrl_1_cmd[3] = {0x4c, 0x01, 0x3f};
  73. static char config_Panel_IF_Ctrl_3_indx[3] = {0x4c, 0x00, 0x22};
  74. static char config_Panel_IF_Ctrl_3_cmd[3] = {0x4c, 0x76, 0x00};
  75. static char config_Panel_IF_Ctrl_4_indx[3] = {0x4c, 0x00, 0x23};
  76. static char config_Panel_IF_Ctrl_4_cmd[3] = {0x4c, 0x1c, 0x0a};
  77. static char config_Panel_IF_Ctrl_5_indx[3] = {0x4c, 0x00, 0x24};
  78. static char config_Panel_IF_Ctrl_5_cmd[3] = {0x4c, 0x1c, 0x2c};
  79. static char config_Panel_IF_Ctrl_6_indx[3] = {0x4c, 0x00, 0x25};
  80. static char config_Panel_IF_Ctrl_6_cmd[3] = {0x4c, 0x1c, 0x4e};
  81. static char config_Panel_IF_Ctrl_8_indx[3] = {0x4c, 0x00, 0x27};
  82. static char config_Panel_IF_Ctrl_8_cmd[3] = {0x4c, 0x00, 0x00};
  83. static char config_Panel_IF_Ctrl_9_indx[3] = {0x4c, 0x00, 0x28};
  84. static char config_Panel_IF_Ctrl_9_cmd[3] = {0x4c, 0x76, 0x0c};
  85. static char config_gam_adjust_00_indx[3] = {0x4c, 0x03, 0x00};
  86. static char config_gam_adjust_00_cmd[3] = {0x4c, 0x00, 0x00};
  87. static char config_gam_adjust_01_indx[3] = {0x4c, 0x03, 0x01};
  88. static char config_gam_adjust_01_cmd[3] = {0x4c, 0x05, 0x02};
  89. static char config_gam_adjust_02_indx[3] = {0x4c, 0x03, 0x02};
  90. static char config_gam_adjust_02_cmd[3] = {0x4c, 0x07, 0x05};
  91. static char config_gam_adjust_03_indx[3] = {0x4c, 0x03, 0x03};
  92. static char config_gam_adjust_03_cmd[3] = {0x4c, 0x00, 0x00};
  93. static char config_gam_adjust_04_indx[3] = {0x4c, 0x03, 0x04};
  94. static char config_gam_adjust_04_cmd[3] = {0x4c, 0x02, 0x00};
  95. static char config_gam_adjust_05_indx[3] = {0x4c, 0x03, 0x05};
  96. static char config_gam_adjust_05_cmd[3] = {0x4c, 0x07, 0x07};
  97. static char config_gam_adjust_06_indx[3] = {0x4c, 0x03, 0x06};
  98. static char config_gam_adjust_06_cmd[3] = {0x4c, 0x10, 0x10};
  99. static char config_gam_adjust_07_indx[3] = {0x4c, 0x03, 0x07};
  100. static char config_gam_adjust_07_cmd[3] = {0x4c, 0x02, 0x02};
  101. static char config_gam_adjust_08_indx[3] = {0x4c, 0x03, 0x08};
  102. static char config_gam_adjust_08_cmd[3] = {0x4c, 0x07, 0x04};
  103. static char config_gam_adjust_09_indx[3] = {0x4c, 0x03, 0x09};
  104. static char config_gam_adjust_09_cmd[3] = {0x4c, 0x07, 0x07};
  105. static char config_gam_adjust_0A_indx[3] = {0x4c, 0x03, 0x0a};
  106. static char config_gam_adjust_0A_cmd[3] = {0x4c, 0x00, 0x00};
  107. static char config_gam_adjust_0B_indx[3] = {0x4c, 0x03, 0x0b};
  108. static char config_gam_adjust_0B_cmd[3] = {0x4c, 0x00, 0x00};
  109. static char config_gam_adjust_0C_indx[3] = {0x4c, 0x03, 0x0c};
  110. static char config_gam_adjust_0C_cmd[3] = {0x4c, 0x07, 0x07};
  111. static char config_gam_adjust_0D_indx[3] = {0x4c, 0x03, 0x0d};
  112. static char config_gam_adjust_0D_cmd[3] = {0x4c, 0x10, 0x10};
  113. static char config_gam_adjust_10_indx[3] = {0x4c, 0x03, 0x10};
  114. static char config_gam_adjust_10_cmd[3] = {0x4c, 0x01, 0x04};
  115. static char config_gam_adjust_11_indx[3] = {0x4c, 0x03, 0x11};
  116. static char config_gam_adjust_11_cmd[3] = {0x4c, 0x05, 0x03};
  117. static char config_gam_adjust_12_indx[3] = {0x4c, 0x03, 0x12};
  118. static char config_gam_adjust_12_cmd[3] = {0x4c, 0x03, 0x04};
  119. static char config_gam_adjust_15_indx[3] = {0x4c, 0x03, 0x15};
  120. static char config_gam_adjust_15_cmd[3] = {0x4c, 0x03, 0x04};
  121. static char config_gam_adjust_16_indx[3] = {0x4c, 0x03, 0x16};
  122. static char config_gam_adjust_16_cmd[3] = {0x4c, 0x03, 0x1c};
  123. static char config_gam_adjust_17_indx[3] = {0x4c, 0x03, 0x17};
  124. static char config_gam_adjust_17_cmd[3] = {0x4c, 0x02, 0x04};
  125. static char config_gam_adjust_18_indx[3] = {0x4c, 0x03, 0x18};
  126. static char config_gam_adjust_18_cmd[3] = {0x4c, 0x04, 0x02};
  127. static char config_gam_adjust_19_indx[3] = {0x4c, 0x03, 0x19};
  128. static char config_gam_adjust_19_cmd[3] = {0x4c, 0x03, 0x05};
  129. static char config_gam_adjust_1C_indx[3] = {0x4c, 0x03, 0x1c};
  130. static char config_gam_adjust_1C_cmd[3] = {0x4c, 0x07, 0x07};
  131. static char config_gam_adjust_1D_indx[3] = {0x4c, 0x03, 0x1D};
  132. static char config_gam_adjust_1D_cmd[3] = {0x4c, 0x02, 0x1f};
  133. static char config_gam_adjust_20_indx[3] = {0x4c, 0x03, 0x20};
  134. static char config_gam_adjust_20_cmd[3] = {0x4c, 0x05, 0x07};
  135. static char config_gam_adjust_21_indx[3] = {0x4c, 0x03, 0x21};
  136. static char config_gam_adjust_21_cmd[3] = {0x4c, 0x06, 0x04};
  137. static char config_gam_adjust_22_indx[3] = {0x4c, 0x03, 0x22};
  138. static char config_gam_adjust_22_cmd[3] = {0x4c, 0x04, 0x05};
  139. static char config_gam_adjust_27_indx[3] = {0x4c, 0x03, 0x27};
  140. static char config_gam_adjust_27_cmd[3] = {0x4c, 0x02, 0x03};
  141. static char config_gam_adjust_28_indx[3] = {0x4c, 0x03, 0x28};
  142. static char config_gam_adjust_28_cmd[3] = {0x4c, 0x03, 0x00};
  143. static char config_gam_adjust_29_indx[3] = {0x4c, 0x03, 0x29};
  144. static char config_gam_adjust_29_cmd[3] = {0x4c, 0x00, 0x02};
  145. static char config_Power_Ctrl_1_indx[3] = {0x4c, 0x01, 0x00};
  146. static char config_Power_Ctrl_1b_cmd[3] = {0x4c, 0x36, 0x3c};
  147. static char config_Power_Ctrl_2_indx[3] = {0x4c, 0x01, 0x01};
  148. static char config_Power_Ctrl_2b_cmd[3] = {0x4c, 0x40, 0x03};
  149. static char config_Power_Ctrl_3_indx[3] = {0x4c, 0x01, 0x02};
  150. static char config_Power_Ctrl_3a_cmd[3] = {0x4c, 0x00, 0x01};
  151. static char config_Power_Ctrl_4_indx[3] = {0x4c, 0x01, 0x03};
  152. static char config_Power_Ctrl_4a_cmd[3] = {0x4c, 0x3c, 0x58};
  153. static char config_Power_Ctrl_6_indx[3] = {0x4c, 0x01, 0x0c};
  154. static char config_Power_Ctrl_6a_cmd[3] = {0x4c, 0x01, 0x35};
  155. static char config_Auto_Sequencer_Setting_b_cmd[3] = {0x4c, 0x00, 0x02};
  156. static char config_Panel_IF_Ctrl_10_indx[3] = {0x4c, 0x00, 0x29};
  157. static char config_Panel_IF_Ctrl_10a_cmd[3] = {0x4c, 0x03, 0xbf};
  158. static char config_Auto_Sequencer_Setting_indx[3] = {0x4c, 0x01, 0x06};
  159. static char config_Auto_Sequencer_Setting_c_cmd[3] = {0x4c, 0x00, 0x03};
  160. static char config_Power_Ctrl_2c_cmd[3] = {0x4c, 0x40, 0x10};
  161. static char config_VIDEO[2] = {0x40, 0x00};
  162. static char config_Panel_IF_Ctrl_10_indx_off[3] = {0x4C, 0x00, 0x29};
  163. static char config_Panel_IF_Ctrl_10b_cmd_off[3] = {0x4C, 0x00, 0x02};
  164. static char config_Power_Ctrl_1a_cmd[3] = {0x4C, 0x30, 0x00};
  165. static struct dsi_cmd_desc renesas_sleep_off_cmds[] = {
  166. {DTYPE_DCS_WRITE, 1, 0, 0, RENESAS_SLEEP_OFF_DELAY,
  167. sizeof(config_sleep_out), config_sleep_out }
  168. };
  169. static struct dsi_cmd_desc renesas_display_off_cmds[] = {
  170. /* Choosing Command Mode */
  171. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  172. sizeof(config_CMD_MODE), config_CMD_MODE },
  173. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  174. sizeof(config_DBICADD70), config_DBICADD70},
  175. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  176. sizeof(config_Auto_Sequencer_Setting_indx),
  177. config_Auto_Sequencer_Setting_indx},
  178. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  179. sizeof(config_DBICSET_15), config_DBICSET_15},
  180. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  181. sizeof(config_DBICADD72), config_DBICADD72},
  182. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  183. sizeof(config_Auto_Sequencer_Setting_b_cmd),
  184. config_Auto_Sequencer_Setting_b_cmd},
  185. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY * 2,
  186. sizeof(config_DBICSET_15), config_DBICSET_15},
  187. /* After waiting >= 5 frames, turn OFF RGB signals
  188. This is done by on DSI/MDP (depends on Vid/Cmd Mode. */
  189. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  190. sizeof(config_DBICADD70), config_DBICADD70},
  191. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  192. sizeof(config_Auto_Sequencer_Setting_indx),
  193. config_Auto_Sequencer_Setting_indx},
  194. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  195. sizeof(config_DBICSET_15), config_DBICSET_15},
  196. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  197. sizeof(config_DBICADD72), config_DBICADD72},
  198. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  199. sizeof(config_Auto_Sequencer_Setting_a_cmd),
  200. config_Auto_Sequencer_Setting_a_cmd},
  201. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  202. sizeof(config_DBICSET_15), config_DBICSET_15},
  203. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  204. sizeof(config_DBICADD70), config_DBICADD70},
  205. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  206. sizeof(config_Panel_IF_Ctrl_10_indx_off),
  207. config_Panel_IF_Ctrl_10_indx_off},
  208. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  209. sizeof(config_DBICSET_15), config_DBICSET_15},
  210. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  211. sizeof(config_DBICADD72), config_DBICADD72},
  212. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  213. sizeof(config_Panel_IF_Ctrl_10b_cmd_off),
  214. config_Panel_IF_Ctrl_10b_cmd_off},
  215. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  216. sizeof(config_DBICSET_15), config_DBICSET_15},
  217. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  218. sizeof(config_DBICADD70), config_DBICADD70},
  219. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  220. sizeof(config_Power_Ctrl_1_indx),
  221. config_Power_Ctrl_1_indx},
  222. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  223. sizeof(config_DBICSET_15), config_DBICSET_15},
  224. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  225. sizeof(config_DBICADD72), config_DBICADD72},
  226. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  227. sizeof(config_Power_Ctrl_1a_cmd),
  228. config_Power_Ctrl_1a_cmd},
  229. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  230. sizeof(config_DBICSET_15), config_DBICSET_15},
  231. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  232. sizeof(config_TEOFF), config_TEOFF},
  233. };
  234. static struct dsi_cmd_desc renesas_display_on_cmds[] = {
  235. /* Choosing Command Mode */
  236. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  237. sizeof(config_CMD_MODE), config_CMD_MODE },
  238. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  239. sizeof(config_WRTXHT), config_WRTXHT },
  240. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  241. sizeof(config_WRTXVT), config_WRTXVT },
  242. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  243. sizeof(config_PLL2NR), config_PLL2NR },
  244. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  245. sizeof(config_PLL2NF1), config_PLL2NF1 },
  246. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  247. sizeof(config_PLL2NF2), config_PLL2NF2 },
  248. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  249. sizeof(config_PLL2BWADJ1), config_PLL2BWADJ1},
  250. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  251. sizeof(config_PLL2BWADJ2), config_PLL2BWADJ2},
  252. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  253. sizeof(config_PLL2CTL), config_PLL2CTL},
  254. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  255. sizeof(config_DBICBR), config_DBICBR},
  256. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  257. sizeof(config_DBICTYPE), config_DBICTYPE},
  258. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  259. sizeof(config_DBICSET1), config_DBICSET1},
  260. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  261. sizeof(config_DBICADD), config_DBICADD},
  262. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  263. sizeof(config_DBICCTL), config_DBICCTL},
  264. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  265. sizeof(config_COLMOD_888), config_COLMOD_888},
  266. /* Choose config_COLMOD_565 or config_COLMOD_666PACK for other modes */
  267. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  268. sizeof(config_MADCTL), config_MADCTL},
  269. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  270. sizeof(config_DBIOC), config_DBIOC},
  271. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  272. sizeof(config_CASET), config_CASET},
  273. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  274. sizeof(config_PASET), config_PASET},
  275. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  276. sizeof(config_DSIRXCTL), config_DSIRXCTL},
  277. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  278. sizeof(config_TEON), config_TEON},
  279. {DTYPE_DCS_WRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  280. sizeof(config_TXON), config_TXON},
  281. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  282. sizeof(config_BLSET_TM), config_BLSET_TM},
  283. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  284. sizeof(config_AGCPSCTL_TM), config_AGCPSCTL_TM},
  285. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  286. sizeof(config_DBICADD70), config_DBICADD70},
  287. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  288. sizeof(config_Power_Ctrl_1_indx), config_Power_Ctrl_1_indx },
  289. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  290. sizeof(config_DBICSET_15), config_DBICSET_15},
  291. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  292. sizeof(config_DBICADD72), config_DBICADD72},
  293. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  294. sizeof(config_Power_Ctrl_1a_cmd), config_Power_Ctrl_1a_cmd},
  295. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  296. sizeof(config_DBICSET_15), config_DBICSET_15},
  297. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  298. sizeof(config_DBICADD70), config_DBICADD70},
  299. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  300. sizeof(config_Power_Ctrl_2_indx), config_Power_Ctrl_2_indx },
  301. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  302. sizeof(config_DBICSET_15), config_DBICSET_15},
  303. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  304. sizeof(config_DBICADD72), config_DBICADD72},
  305. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  306. sizeof(config_Power_Ctrl_2a_cmd), config_Power_Ctrl_2a_cmd},
  307. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  308. sizeof(config_DBICSET_15), config_DBICSET_15},
  309. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  310. sizeof(config_DBICADD70), config_DBICADD70},
  311. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  312. sizeof(config_Auto_Sequencer_Setting_indx),
  313. config_Auto_Sequencer_Setting_indx },
  314. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  315. sizeof(config_DBICSET_15), config_DBICSET_15},
  316. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  317. sizeof(config_DBICADD72), config_DBICADD72},
  318. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  319. sizeof(config_Auto_Sequencer_Setting_a_cmd),
  320. config_Auto_Sequencer_Setting_a_cmd },
  321. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  322. sizeof(config_DBICSET_15), config_DBICSET_15},
  323. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  324. sizeof(config_DBICADD70), config_DBICADD70},
  325. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  326. sizeof(Driver_Output_Ctrl_indx), Driver_Output_Ctrl_indx},
  327. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  328. sizeof(config_DBICSET_15), config_DBICSET_15},
  329. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  330. sizeof(config_DBICADD72), config_DBICADD72},
  331. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  332. sizeof(Driver_Output_Ctrl_cmd),
  333. Driver_Output_Ctrl_cmd},
  334. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  335. sizeof(config_DBICSET_15), config_DBICSET_15},
  336. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  337. sizeof(config_DBICADD70), config_DBICADD70},
  338. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  339. sizeof(config_LCD_drive_AC_Ctrl_indx),
  340. config_LCD_drive_AC_Ctrl_indx},
  341. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  342. sizeof(config_DBICSET_15), config_DBICSET_15},
  343. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  344. sizeof(config_DBICADD72), config_DBICADD72},
  345. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  346. sizeof(config_LCD_drive_AC_Ctrl_cmd),
  347. config_LCD_drive_AC_Ctrl_cmd },
  348. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  349. sizeof(config_DBICSET_15), config_DBICSET_15},
  350. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  351. sizeof(config_DBICADD70), config_DBICADD70},
  352. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  353. sizeof(config_Entry_Mode_indx),
  354. config_Entry_Mode_indx},
  355. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  356. sizeof(config_DBICSET_15), config_DBICSET_15},
  357. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  358. sizeof(config_DBICADD72), config_DBICADD72},
  359. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  360. sizeof(config_Entry_Mode_cmd),
  361. config_Entry_Mode_cmd},
  362. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  363. sizeof(config_DBICSET_15), config_DBICSET_15},
  364. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  365. sizeof(config_DBICADD70), config_DBICADD70},
  366. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  367. sizeof(config_Display_Ctrl_1_indx),
  368. config_Display_Ctrl_1_indx},
  369. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  370. sizeof(config_DBICSET_15), config_DBICSET_15},
  371. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  372. sizeof(config_DBICADD72), config_DBICADD72},
  373. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  374. sizeof(config_Display_Ctrl_1_cmd),
  375. config_Display_Ctrl_1_cmd},
  376. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  377. sizeof(config_DBICSET_15), config_DBICSET_15},
  378. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  379. sizeof(config_DBICADD70), config_DBICADD70},
  380. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  381. sizeof(config_Display_Ctrl_2_indx),
  382. config_Display_Ctrl_2_indx},
  383. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  384. sizeof(config_DBICSET_15), config_DBICSET_15},
  385. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  386. sizeof(config_DBICADD72), config_DBICADD72},
  387. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  388. sizeof(config_Display_Ctrl_2_cmd),
  389. config_Display_Ctrl_2_cmd},
  390. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  391. sizeof(config_DBICSET_15), config_DBICSET_15},
  392. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  393. sizeof(config_DBICADD70), config_DBICADD70},
  394. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  395. sizeof(config_Display_Ctrl_3_indx),
  396. config_Display_Ctrl_3_indx},
  397. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  398. sizeof(config_DBICSET_15), config_DBICSET_15},
  399. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  400. sizeof(config_DBICADD72), config_DBICADD72},
  401. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  402. sizeof(config_Display_Ctrl_3_cmd),
  403. config_Display_Ctrl_3_cmd},
  404. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  405. sizeof(config_DBICSET_15), config_DBICSET_15},
  406. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  407. sizeof(config_DBICADD70), config_DBICADD70},
  408. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  409. sizeof(config_Display_IF_Ctrl_1_indx),
  410. config_Display_IF_Ctrl_1_indx },
  411. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  412. sizeof(config_DBICSET_15), config_DBICSET_15},
  413. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  414. sizeof(config_DBICADD72), config_DBICADD72},
  415. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  416. sizeof(config_Display_IF_Ctrl_1_cmd),
  417. config_Display_IF_Ctrl_1_cmd},
  418. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  419. sizeof(config_DBICSET_15), config_DBICSET_15},
  420. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  421. sizeof(config_DBICADD70), config_DBICADD70},
  422. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  423. sizeof(config_Display_IF_Ctrl_2_indx),
  424. config_Display_IF_Ctrl_2_indx},
  425. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  426. sizeof(config_DBICSET_15), config_DBICSET_15},
  427. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  428. sizeof(config_DBICADD72), config_DBICADD72},
  429. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  430. sizeof(config_Display_IF_Ctrl_2_cmd),
  431. config_Display_IF_Ctrl_2_cmd},
  432. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  433. sizeof(config_DBICSET_15), config_DBICSET_15},
  434. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  435. sizeof(config_DBICADD70), config_DBICADD70},
  436. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  437. sizeof(config_Panel_IF_Ctrl_1_indx),
  438. config_Panel_IF_Ctrl_1_indx },
  439. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  440. sizeof(config_DBICSET_15), config_DBICSET_15},
  441. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  442. sizeof(config_DBICADD72), config_DBICADD72},
  443. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  444. sizeof(config_Panel_IF_Ctrl_1_cmd),
  445. config_Panel_IF_Ctrl_1_cmd},
  446. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  447. sizeof(config_DBICSET_15), config_DBICSET_15},
  448. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  449. sizeof(config_DBICADD70), config_DBICADD70},
  450. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  451. sizeof(config_Panel_IF_Ctrl_3_indx),
  452. config_Panel_IF_Ctrl_3_indx },
  453. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  454. sizeof(config_DBICSET_15), config_DBICSET_15},
  455. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  456. sizeof(config_DBICADD72), config_DBICADD72},
  457. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  458. sizeof(config_Panel_IF_Ctrl_3_cmd),
  459. config_Panel_IF_Ctrl_3_cmd},
  460. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  461. sizeof(config_DBICSET_15), config_DBICSET_15},
  462. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  463. sizeof(config_DBICADD70), config_DBICADD70},
  464. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  465. sizeof(config_Panel_IF_Ctrl_4_indx),
  466. config_Panel_IF_Ctrl_4_indx },
  467. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  468. sizeof(config_DBICSET_15), config_DBICSET_15},
  469. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  470. sizeof(config_DBICADD72), config_DBICADD72},
  471. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  472. sizeof(config_Panel_IF_Ctrl_4_cmd),
  473. config_Panel_IF_Ctrl_4_cmd },
  474. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  475. sizeof(config_DBICSET_15), config_DBICSET_15},
  476. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  477. sizeof(config_DBICADD70), config_DBICADD70},
  478. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  479. sizeof(config_Panel_IF_Ctrl_5_indx),
  480. config_Panel_IF_Ctrl_5_indx },
  481. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  482. sizeof(config_DBICSET_15), config_DBICSET_15},
  483. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  484. sizeof(config_DBICADD72), config_DBICADD72},
  485. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  486. sizeof(config_Panel_IF_Ctrl_5_cmd),
  487. config_Panel_IF_Ctrl_5_cmd},
  488. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  489. sizeof(config_DBICSET_15), config_DBICSET_15},
  490. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  491. sizeof(config_DBICADD70), config_DBICADD70},
  492. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  493. sizeof(config_Panel_IF_Ctrl_6_indx),
  494. config_Panel_IF_Ctrl_6_indx },
  495. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  496. sizeof(config_DBICSET_15), config_DBICSET_15},
  497. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  498. sizeof(config_DBICADD72), config_DBICADD72},
  499. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  500. sizeof(config_Panel_IF_Ctrl_6_cmd),
  501. config_Panel_IF_Ctrl_6_cmd },
  502. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  503. sizeof(config_DBICSET_15), config_DBICSET_15},
  504. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  505. sizeof(config_DBICADD70), config_DBICADD70},
  506. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  507. sizeof(config_Panel_IF_Ctrl_8_indx),
  508. config_Panel_IF_Ctrl_8_indx },
  509. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  510. sizeof(config_DBICSET_15), config_DBICSET_15},
  511. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  512. sizeof(config_DBICADD72), config_DBICADD72},
  513. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  514. sizeof(config_Panel_IF_Ctrl_8_cmd),
  515. config_Panel_IF_Ctrl_8_cmd },
  516. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  517. sizeof(config_DBICSET_15), config_DBICSET_15},
  518. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  519. sizeof(config_DBICADD70), config_DBICADD70},
  520. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  521. sizeof(config_Panel_IF_Ctrl_9_indx),
  522. config_Panel_IF_Ctrl_9_indx },
  523. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  524. sizeof(config_DBICSET_15), config_DBICSET_15},
  525. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  526. sizeof(config_DBICADD72), config_DBICADD72},
  527. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  528. sizeof(config_Panel_IF_Ctrl_9_cmd),
  529. config_Panel_IF_Ctrl_9_cmd},
  530. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  531. sizeof(config_DBICSET_15), config_DBICSET_15},
  532. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  533. sizeof(config_DBICADD70), config_DBICADD70},
  534. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  535. sizeof(config_gam_adjust_00_indx),
  536. config_gam_adjust_00_indx},
  537. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  538. sizeof(config_DBICSET_15), config_DBICSET_15},
  539. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  540. sizeof(config_DBICADD72), config_DBICADD72},
  541. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  542. sizeof(config_gam_adjust_00_cmd),
  543. config_gam_adjust_00_cmd},
  544. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  545. sizeof(config_DBICSET_15), config_DBICSET_15},
  546. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  547. sizeof(config_DBICADD70), config_DBICADD70},
  548. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  549. sizeof(config_gam_adjust_01_indx),
  550. config_gam_adjust_01_indx},
  551. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  552. sizeof(config_DBICSET_15), config_DBICSET_15},
  553. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  554. sizeof(config_DBICADD72), config_DBICADD72},
  555. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  556. sizeof(config_gam_adjust_01_cmd),
  557. config_gam_adjust_01_cmd},
  558. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  559. sizeof(config_DBICSET_15), config_DBICSET_15},
  560. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  561. sizeof(config_DBICADD70), config_DBICADD70},
  562. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  563. sizeof(config_gam_adjust_02_indx),
  564. config_gam_adjust_02_indx},
  565. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  566. sizeof(config_DBICSET_15), config_DBICSET_15},
  567. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  568. sizeof(config_DBICADD72), config_DBICADD72},
  569. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  570. sizeof(config_gam_adjust_02_cmd),
  571. config_gam_adjust_02_cmd},
  572. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  573. sizeof(config_DBICSET_15), config_DBICSET_15},
  574. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  575. sizeof(config_DBICADD70), config_DBICADD70},
  576. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  577. sizeof(config_gam_adjust_03_indx),
  578. config_gam_adjust_03_indx},
  579. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  580. sizeof(config_DBICSET_15), config_DBICSET_15},
  581. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  582. sizeof(config_DBICADD72), config_DBICADD72},
  583. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  584. sizeof(config_gam_adjust_03_cmd),
  585. config_gam_adjust_03_cmd},
  586. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  587. sizeof(config_DBICSET_15), config_DBICSET_15},
  588. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  589. sizeof(config_DBICADD70), config_DBICADD70},
  590. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  591. sizeof(config_gam_adjust_04_indx), config_gam_adjust_04_indx},
  592. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  593. sizeof(config_DBICSET_15), config_DBICSET_15},
  594. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  595. sizeof(config_DBICADD72), config_DBICADD72},
  596. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  597. sizeof(config_gam_adjust_04_cmd), config_gam_adjust_04_cmd},
  598. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  599. sizeof(config_DBICSET_15), config_DBICSET_15},
  600. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  601. sizeof(config_DBICADD70), config_DBICADD70},
  602. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  603. sizeof(config_gam_adjust_05_indx), config_gam_adjust_05_indx},
  604. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  605. sizeof(config_DBICSET_15), config_DBICSET_15},
  606. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  607. sizeof(config_DBICADD72), config_DBICADD72},
  608. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  609. sizeof(config_gam_adjust_05_cmd), config_gam_adjust_05_cmd},
  610. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  611. sizeof(config_DBICSET_15), config_DBICSET_15},
  612. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  613. sizeof(config_DBICADD70), config_DBICADD70},
  614. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  615. sizeof(config_gam_adjust_06_indx), config_gam_adjust_06_indx},
  616. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  617. sizeof(config_DBICSET_15), config_DBICSET_15},
  618. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  619. sizeof(config_DBICADD72), config_DBICADD72},
  620. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  621. sizeof(config_gam_adjust_06_cmd), config_gam_adjust_06_cmd},
  622. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  623. sizeof(config_DBICSET_15), config_DBICSET_15},
  624. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  625. sizeof(config_DBICADD70), config_DBICADD70},
  626. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  627. sizeof(config_gam_adjust_07_indx), config_gam_adjust_07_indx},
  628. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  629. sizeof(config_DBICSET_15), config_DBICSET_15},
  630. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  631. sizeof(config_DBICADD72), config_DBICADD72},
  632. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  633. sizeof(config_gam_adjust_07_cmd), config_gam_adjust_07_cmd},
  634. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  635. sizeof(config_DBICSET_15), config_DBICSET_15},
  636. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  637. sizeof(config_DBICADD70), config_DBICADD70},
  638. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  639. sizeof(config_gam_adjust_08_indx), config_gam_adjust_08_indx},
  640. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  641. sizeof(config_DBICSET_15), config_DBICSET_15},
  642. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  643. sizeof(config_DBICADD72), config_DBICADD72},
  644. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  645. sizeof(config_gam_adjust_08_cmd), config_gam_adjust_08_cmd},
  646. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  647. sizeof(config_DBICSET_15), config_DBICSET_15},
  648. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  649. sizeof(config_DBICADD70), config_DBICADD70},
  650. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  651. sizeof(config_gam_adjust_09_indx), config_gam_adjust_09_indx},
  652. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  653. sizeof(config_DBICSET_15), config_DBICSET_15},
  654. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  655. sizeof(config_DBICADD72), config_DBICADD72},
  656. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  657. sizeof(config_gam_adjust_09_cmd), config_gam_adjust_09_cmd},
  658. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  659. sizeof(config_DBICSET_15), config_DBICSET_15},
  660. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  661. sizeof(config_DBICADD70), config_DBICADD70},
  662. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  663. sizeof(config_gam_adjust_0A_indx), config_gam_adjust_0A_indx},
  664. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  665. sizeof(config_DBICSET_15), config_DBICSET_15},
  666. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  667. sizeof(config_DBICADD72), config_DBICADD72},
  668. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  669. sizeof(config_gam_adjust_0A_cmd), config_gam_adjust_0A_cmd},
  670. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  671. sizeof(config_DBICSET_15), config_DBICSET_15},
  672. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  673. sizeof(config_DBICADD70), config_DBICADD70},
  674. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  675. sizeof(config_gam_adjust_0B_indx), config_gam_adjust_0B_indx},
  676. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  677. sizeof(config_DBICSET_15), config_DBICSET_15},
  678. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  679. sizeof(config_DBICADD72), config_DBICADD72},
  680. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  681. sizeof(config_gam_adjust_0B_cmd), config_gam_adjust_0B_cmd},
  682. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  683. sizeof(config_DBICSET_15), config_DBICSET_15},
  684. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  685. sizeof(config_DBICADD70), config_DBICADD70},
  686. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  687. sizeof(config_gam_adjust_0C_indx), config_gam_adjust_0C_indx},
  688. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  689. sizeof(config_DBICSET_15), config_DBICSET_15},
  690. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  691. sizeof(config_DBICADD72), config_DBICADD72},
  692. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  693. sizeof(config_gam_adjust_0C_cmd), config_gam_adjust_0C_cmd},
  694. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  695. sizeof(config_DBICSET_15), config_DBICSET_15},
  696. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  697. sizeof(config_DBICADD70), config_DBICADD70},
  698. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  699. sizeof(config_gam_adjust_0D_indx), config_gam_adjust_0D_indx},
  700. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  701. sizeof(config_DBICSET_15), config_DBICSET_15},
  702. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  703. sizeof(config_DBICADD72), config_DBICADD72},
  704. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  705. sizeof(config_gam_adjust_0D_cmd), config_gam_adjust_0D_cmd},
  706. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  707. sizeof(config_DBICSET_15), config_DBICSET_15},
  708. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  709. sizeof(config_DBICADD70), config_DBICADD70},
  710. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  711. sizeof(config_gam_adjust_10_indx), config_gam_adjust_10_indx},
  712. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  713. sizeof(config_DBICSET_15), config_DBICSET_15},
  714. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  715. sizeof(config_DBICADD72), config_DBICADD72},
  716. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  717. sizeof(config_gam_adjust_10_cmd), config_gam_adjust_10_cmd},
  718. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  719. sizeof(config_DBICSET_15), config_DBICSET_15},
  720. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  721. sizeof(config_DBICADD70), config_DBICADD70},
  722. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  723. sizeof(config_gam_adjust_11_indx), config_gam_adjust_11_indx},
  724. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  725. sizeof(config_DBICSET_15), config_DBICSET_15},
  726. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  727. sizeof(config_DBICADD72), config_DBICADD72},
  728. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  729. sizeof(config_gam_adjust_11_cmd), config_gam_adjust_11_cmd},
  730. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  731. sizeof(config_DBICSET_15), config_DBICSET_15},
  732. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  733. sizeof(config_DBICADD70), config_DBICADD70},
  734. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  735. sizeof(config_gam_adjust_12_indx), config_gam_adjust_12_indx},
  736. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  737. sizeof(config_DBICSET_15), config_DBICSET_15},
  738. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  739. sizeof(config_DBICADD72), config_DBICADD72},
  740. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  741. sizeof(config_gam_adjust_12_cmd), config_gam_adjust_12_cmd},
  742. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  743. sizeof(config_DBICSET_15), config_DBICSET_15},
  744. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  745. sizeof(config_DBICADD70), config_DBICADD70},
  746. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  747. sizeof(config_gam_adjust_15_indx), config_gam_adjust_15_indx},
  748. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  749. sizeof(config_DBICSET_15), config_DBICSET_15},
  750. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  751. sizeof(config_DBICADD72), config_DBICADD72},
  752. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  753. sizeof(config_gam_adjust_15_cmd), config_gam_adjust_15_cmd},
  754. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  755. sizeof(config_DBICSET_15), config_DBICSET_15},
  756. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  757. sizeof(config_DBICADD70), config_DBICADD70},
  758. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  759. sizeof(config_gam_adjust_16_indx), config_gam_adjust_16_indx},
  760. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  761. sizeof(config_DBICSET_15), config_DBICSET_15},
  762. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  763. sizeof(config_DBICADD72), config_DBICADD72},
  764. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  765. sizeof(config_gam_adjust_16_cmd), config_gam_adjust_16_cmd},
  766. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  767. sizeof(config_DBICSET_15), config_DBICSET_15},
  768. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  769. sizeof(config_DBICADD70), config_DBICADD70},
  770. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  771. sizeof(config_gam_adjust_17_indx), config_gam_adjust_17_indx},
  772. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  773. sizeof(config_DBICSET_15), config_DBICSET_15},
  774. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  775. sizeof(config_DBICADD72), config_DBICADD72},
  776. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  777. sizeof(config_gam_adjust_17_cmd), config_gam_adjust_17_cmd},
  778. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  779. sizeof(config_DBICSET_15), config_DBICSET_15},
  780. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  781. sizeof(config_DBICADD70), config_DBICADD70},
  782. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  783. sizeof(config_gam_adjust_18_indx), config_gam_adjust_18_indx},
  784. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  785. sizeof(config_DBICSET_15), config_DBICSET_15},
  786. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  787. sizeof(config_DBICADD72), config_DBICADD72},
  788. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  789. sizeof(config_gam_adjust_18_cmd), config_gam_adjust_18_cmd},
  790. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  791. sizeof(config_DBICSET_15), config_DBICSET_15},
  792. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  793. sizeof(config_DBICADD70), config_DBICADD70},
  794. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  795. sizeof(config_gam_adjust_19_indx), config_gam_adjust_19_indx},
  796. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  797. sizeof(config_DBICSET_15), config_DBICSET_15},
  798. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  799. sizeof(config_DBICADD72), config_DBICADD72},
  800. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  801. sizeof(config_gam_adjust_19_cmd), config_gam_adjust_19_cmd},
  802. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  803. sizeof(config_DBICSET_15), config_DBICSET_15},
  804. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  805. sizeof(config_DBICADD70), config_DBICADD70},
  806. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  807. sizeof(config_gam_adjust_1C_indx), config_gam_adjust_1C_indx},
  808. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  809. sizeof(config_DBICSET_15), config_DBICSET_15},
  810. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  811. sizeof(config_DBICADD72), config_DBICADD72},
  812. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  813. sizeof(config_gam_adjust_1C_cmd), config_gam_adjust_1C_cmd},
  814. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  815. sizeof(config_DBICSET_15), config_DBICSET_15},
  816. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  817. sizeof(config_DBICADD70), config_DBICADD70},
  818. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  819. sizeof(config_gam_adjust_1D_indx), config_gam_adjust_1D_indx},
  820. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  821. sizeof(config_DBICSET_15), config_DBICSET_15},
  822. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  823. sizeof(config_DBICADD72), config_DBICADD72},
  824. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  825. sizeof(config_gam_adjust_1D_cmd), config_gam_adjust_1D_cmd},
  826. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  827. sizeof(config_DBICSET_15), config_DBICSET_15},
  828. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  829. sizeof(config_DBICADD70), config_DBICADD70},
  830. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  831. sizeof(config_gam_adjust_20_indx), config_gam_adjust_20_indx},
  832. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  833. sizeof(config_DBICSET_15), config_DBICSET_15},
  834. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  835. sizeof(config_DBICADD72), config_DBICADD72},
  836. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  837. sizeof(config_gam_adjust_20_cmd), config_gam_adjust_20_cmd},
  838. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  839. sizeof(config_DBICSET_15), config_DBICSET_15},
  840. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  841. sizeof(config_DBICADD70), config_DBICADD70},
  842. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  843. sizeof(config_gam_adjust_21_indx), config_gam_adjust_21_indx},
  844. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  845. sizeof(config_DBICSET_15), config_DBICSET_15},
  846. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  847. sizeof(config_DBICADD72), config_DBICADD72},
  848. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  849. sizeof(config_gam_adjust_21_cmd), config_gam_adjust_21_cmd},
  850. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  851. sizeof(config_DBICSET_15), config_DBICSET_15},
  852. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  853. sizeof(config_DBICADD70), config_DBICADD70},
  854. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  855. sizeof(config_gam_adjust_22_indx), config_gam_adjust_22_indx},
  856. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  857. sizeof(config_DBICSET_15), config_DBICSET_15},
  858. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  859. sizeof(config_DBICADD72), config_DBICADD72},
  860. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  861. sizeof(config_gam_adjust_22_cmd), config_gam_adjust_22_cmd},
  862. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  863. sizeof(config_DBICSET_15), config_DBICSET_15},
  864. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  865. sizeof(config_DBICADD70), config_DBICADD70},
  866. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  867. sizeof(config_gam_adjust_27_indx), config_gam_adjust_27_indx},
  868. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  869. sizeof(config_DBICSET_15), config_DBICSET_15},
  870. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  871. sizeof(config_DBICADD72), config_DBICADD72},
  872. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  873. sizeof(config_gam_adjust_27_cmd), config_gam_adjust_27_cmd},
  874. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  875. sizeof(config_DBICSET_15), config_DBICSET_15},
  876. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  877. sizeof(config_DBICADD70), config_DBICADD70},
  878. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  879. sizeof(config_gam_adjust_28_indx), config_gam_adjust_28_indx},
  880. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  881. sizeof(config_DBICSET_15), config_DBICSET_15},
  882. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  883. sizeof(config_DBICADD72), config_DBICADD72},
  884. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  885. sizeof(config_gam_adjust_28_cmd), config_gam_adjust_28_cmd},
  886. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  887. sizeof(config_DBICSET_15), config_DBICSET_15},
  888. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  889. sizeof(config_DBICADD70), config_DBICADD70},
  890. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  891. sizeof(config_gam_adjust_29_indx), config_gam_adjust_29_indx},
  892. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  893. sizeof(config_DBICSET_15), config_DBICSET_15},
  894. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  895. sizeof(config_DBICADD72), config_DBICADD72},
  896. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  897. sizeof(config_gam_adjust_29_cmd), config_gam_adjust_29_cmd},
  898. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  899. sizeof(config_DBICSET_15), config_DBICSET_15},
  900. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  901. sizeof(config_DBICADD70), config_DBICADD70},
  902. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  903. sizeof(config_Power_Ctrl_1_indx), config_Power_Ctrl_1_indx},
  904. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  905. sizeof(config_DBICSET_15), config_DBICSET_15},
  906. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  907. sizeof(config_DBICADD72), config_DBICADD72},
  908. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  909. sizeof(config_Power_Ctrl_1b_cmd), config_Power_Ctrl_1b_cmd},
  910. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  911. sizeof(config_DBICSET_15), config_DBICSET_15},
  912. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  913. sizeof(config_DBICADD70), config_DBICADD70},
  914. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  915. sizeof(config_Power_Ctrl_2_indx), config_Power_Ctrl_2_indx},
  916. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  917. sizeof(config_DBICSET_15), config_DBICSET_15},
  918. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  919. sizeof(config_DBICADD72), config_DBICADD72},
  920. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  921. sizeof(config_Power_Ctrl_2b_cmd), config_Power_Ctrl_2b_cmd},
  922. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  923. sizeof(config_DBICSET_15), config_DBICSET_15},
  924. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  925. sizeof(config_DBICADD70), config_DBICADD70},
  926. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  927. sizeof(config_Power_Ctrl_3_indx), config_Power_Ctrl_3_indx},
  928. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  929. sizeof(config_DBICSET_15), config_DBICSET_15},
  930. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  931. sizeof(config_DBICADD72), config_DBICADD72},
  932. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  933. sizeof(config_Power_Ctrl_3a_cmd), config_Power_Ctrl_3a_cmd},
  934. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  935. sizeof(config_DBICSET_15), config_DBICSET_15},
  936. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  937. sizeof(config_DBICADD70), config_DBICADD70},
  938. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  939. sizeof(config_Power_Ctrl_4_indx), config_Power_Ctrl_4_indx},
  940. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  941. sizeof(config_DBICSET_15), config_DBICSET_15},
  942. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  943. sizeof(config_DBICADD72), config_DBICADD72},
  944. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  945. sizeof(config_Power_Ctrl_4a_cmd), config_Power_Ctrl_4a_cmd},
  946. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  947. sizeof(config_DBICSET_15), config_DBICSET_15},
  948. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  949. sizeof(config_DBICADD70), config_DBICADD70},
  950. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  951. sizeof(config_Power_Ctrl_6_indx), config_Power_Ctrl_6_indx},
  952. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  953. sizeof(config_DBICSET_15), config_DBICSET_15},
  954. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  955. sizeof(config_DBICADD72), config_DBICADD72},
  956. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  957. sizeof(config_Power_Ctrl_6a_cmd), config_Power_Ctrl_6a_cmd},
  958. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  959. sizeof(config_DBICSET_15), config_DBICSET_15},
  960. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  961. sizeof(config_DBICADD70), config_DBICADD70},
  962. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  963. sizeof(config_Auto_Sequencer_Setting_indx),
  964. config_Auto_Sequencer_Setting_indx},
  965. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  966. sizeof(config_DBICSET_15), config_DBICSET_15},
  967. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  968. sizeof(config_DBICADD72), config_DBICADD72},
  969. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  970. sizeof(config_Auto_Sequencer_Setting_b_cmd),
  971. config_Auto_Sequencer_Setting_b_cmd},
  972. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  973. sizeof(config_DBICSET_15), config_DBICSET_15},
  974. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  975. sizeof(config_DBICADD70), config_DBICADD70},
  976. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  977. sizeof(config_Panel_IF_Ctrl_10_indx),
  978. config_Panel_IF_Ctrl_10_indx},
  979. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  980. sizeof(config_DBICSET_15), config_DBICSET_15},
  981. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  982. sizeof(config_DBICADD72), config_DBICADD72},
  983. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  984. sizeof(config_Panel_IF_Ctrl_10a_cmd),
  985. config_Panel_IF_Ctrl_10a_cmd},
  986. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  987. sizeof(config_DBICSET_15), config_DBICSET_15},
  988. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  989. sizeof(config_DBICADD70), config_DBICADD70},
  990. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  991. sizeof(config_Auto_Sequencer_Setting_indx),
  992. config_Auto_Sequencer_Setting_indx},
  993. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  994. sizeof(config_DBICSET_15), config_DBICSET_15},
  995. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  996. sizeof(config_DBICADD72), config_DBICADD72},
  997. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  998. sizeof(config_Auto_Sequencer_Setting_c_cmd),
  999. config_Auto_Sequencer_Setting_c_cmd},
  1000. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  1001. sizeof(config_DBICSET_15), config_DBICSET_15},
  1002. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  1003. sizeof(config_DBICADD70), config_DBICADD70},
  1004. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  1005. sizeof(config_Power_Ctrl_2_indx),
  1006. config_Power_Ctrl_2_indx},
  1007. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  1008. sizeof(config_DBICSET_15), config_DBICSET_15},
  1009. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  1010. sizeof(config_DBICADD72), config_DBICADD72},
  1011. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  1012. sizeof(config_Power_Ctrl_2c_cmd),
  1013. config_Power_Ctrl_2c_cmd},
  1014. {DTYPE_DCS_WRITE1, 1, 0, 0, 0/* RENESAS_CMD_DELAY */,
  1015. sizeof(config_DBICSET_15), config_DBICSET_15},
  1016. };
  1017. static char config_WRTXHT2[7] = {0x92, 0x15, 0x05, 0x0F, 0x00, 0x01, 0xe0};
  1018. static char config_WRTXVT2[7] = {0x8b, 0x14, 0x01, 0x14, 0x00, 0x03, 0x60};
  1019. static struct dsi_cmd_desc renesas_hvga_on_cmds[] = {
  1020. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  1021. sizeof(config_WRTXHT2), config_WRTXHT2},
  1022. {DTYPE_DCS_LWRITE, 1, 0, 0, RENESAS_CMD_DELAY,
  1023. sizeof(config_WRTXVT2), config_WRTXVT2},
  1024. };
  1025. static struct dsi_cmd_desc renesas_video_on_cmds[] = {
  1026. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  1027. sizeof(config_VIDEO), config_VIDEO}
  1028. };
  1029. static struct dsi_cmd_desc renesas_cmd_on_cmds[] = {
  1030. {DTYPE_DCS_WRITE1, 1, 0, 0, RENESAS_CMD_DELAY,
  1031. sizeof(config_CMD_MODE), config_CMD_MODE},
  1032. };
  1033. static int mipi_renesas_lcd_on(struct platform_device *pdev)
  1034. {
  1035. struct msm_fb_data_type *mfd;
  1036. struct mipi_panel_info *mipi;
  1037. struct dcs_cmd_req cmdreq;
  1038. mfd = platform_get_drvdata(pdev);
  1039. mipi = &mfd->panel_info.mipi;
  1040. if (!mfd)
  1041. return -ENODEV;
  1042. if (mfd->key != MFD_KEY)
  1043. return -EINVAL;
  1044. memset(&cmdreq, 0, sizeof(cmdreq));
  1045. cmdreq.cmds = renesas_sleep_off_cmds;
  1046. cmdreq.cmds_cnt = ARRAY_SIZE(renesas_sleep_off_cmds);
  1047. cmdreq.flags = CMD_REQ_COMMIT;
  1048. cmdreq.rlen = 0;
  1049. cmdreq.cb = NULL;
  1050. mipi_dsi_cmdlist_put(&cmdreq);
  1051. mipi_set_tx_power_mode(1);
  1052. cmdreq.cmds = renesas_display_on_cmds;
  1053. cmdreq.cmds_cnt = ARRAY_SIZE(renesas_display_on_cmds);
  1054. cmdreq.flags = CMD_REQ_COMMIT;
  1055. cmdreq.rlen = 0;
  1056. cmdreq.cb = NULL;
  1057. mipi_dsi_cmdlist_put(&cmdreq);
  1058. if (cpu_is_msm7x25a() || cpu_is_msm7x25aa() || cpu_is_msm7x25ab()) {
  1059. cmdreq.cmds = renesas_hvga_on_cmds;
  1060. cmdreq.cmds_cnt = ARRAY_SIZE(renesas_hvga_on_cmds);
  1061. cmdreq.flags = CMD_REQ_COMMIT;
  1062. cmdreq.rlen = 0;
  1063. cmdreq.cb = NULL;
  1064. mipi_dsi_cmdlist_put(&cmdreq);
  1065. }
  1066. if (mipi->mode == DSI_VIDEO_MODE) {
  1067. cmdreq.cmds = renesas_video_on_cmds;
  1068. cmdreq.cmds_cnt = ARRAY_SIZE(renesas_video_on_cmds);
  1069. cmdreq.flags = CMD_REQ_COMMIT;
  1070. cmdreq.rlen = 0;
  1071. cmdreq.cb = NULL;
  1072. mipi_dsi_cmdlist_put(&cmdreq);
  1073. } else {
  1074. cmdreq.cmds = renesas_cmd_on_cmds;
  1075. cmdreq.cmds_cnt = ARRAY_SIZE(renesas_cmd_on_cmds);
  1076. cmdreq.flags = CMD_REQ_COMMIT;
  1077. cmdreq.rlen = 0;
  1078. cmdreq.cb = NULL;
  1079. mipi_dsi_cmdlist_put(&cmdreq);
  1080. }
  1081. mipi_set_tx_power_mode(0);
  1082. return 0;
  1083. }
  1084. static int mipi_renesas_lcd_off(struct platform_device *pdev)
  1085. {
  1086. struct msm_fb_data_type *mfd;
  1087. struct dcs_cmd_req cmdreq;
  1088. mfd = platform_get_drvdata(pdev);
  1089. if (!mfd)
  1090. return -ENODEV;
  1091. if (mfd->key != MFD_KEY)
  1092. return -EINVAL;
  1093. memset(&cmdreq, 0, sizeof(cmdreq));
  1094. cmdreq.cmds = renesas_display_off_cmds;
  1095. cmdreq.cmds_cnt = ARRAY_SIZE(renesas_display_off_cmds);
  1096. cmdreq.flags = CMD_REQ_COMMIT;
  1097. cmdreq.rlen = 0;
  1098. cmdreq.cb = NULL;
  1099. mipi_dsi_cmdlist_put(&cmdreq);
  1100. return 0;
  1101. }
  1102. static int __devinit mipi_renesas_lcd_probe(struct platform_device *pdev)
  1103. {
  1104. if (pdev->id == 0) {
  1105. mipi_renesas_pdata = pdev->dev.platform_data;
  1106. return 0;
  1107. }
  1108. msm_fb_add_device(pdev);
  1109. return 0;
  1110. }
  1111. static void mipi_renesas_set_backlight(struct msm_fb_data_type *mfd)
  1112. {
  1113. int ret = -EPERM;
  1114. int bl_level;
  1115. bl_level = mfd->bl_level;
  1116. if (mipi_renesas_pdata && mipi_renesas_pdata->pmic_backlight)
  1117. ret = mipi_renesas_pdata->pmic_backlight(bl_level);
  1118. else
  1119. pr_err("%s(): Backlight level set failed", __func__);
  1120. }
  1121. static struct platform_driver this_driver = {
  1122. .probe = mipi_renesas_lcd_probe,
  1123. .driver = {
  1124. .name = "mipi_renesas",
  1125. },
  1126. };
  1127. static struct msm_fb_panel_data renesas_panel_data = {
  1128. .on = mipi_renesas_lcd_on,
  1129. .off = mipi_renesas_lcd_off,
  1130. .set_backlight = mipi_renesas_set_backlight,
  1131. };
  1132. static int ch_used[3];
  1133. int mipi_renesas_device_register(struct msm_panel_info *pinfo,
  1134. u32 channel, u32 panel)
  1135. {
  1136. struct platform_device *pdev = NULL;
  1137. int ret;
  1138. if ((channel >= 3) || ch_used[channel])
  1139. return -ENODEV;
  1140. ch_used[channel] = TRUE;
  1141. ret = mipi_renesas_lcd_init();
  1142. if (ret) {
  1143. pr_err("mipi_renesas_lcd_init() failed with ret %u\n", ret);
  1144. return ret;
  1145. }
  1146. pdev = platform_device_alloc("mipi_renesas", (panel << 8)|channel);
  1147. if (!pdev)
  1148. return -ENOMEM;
  1149. renesas_panel_data.panel_info = *pinfo;
  1150. ret = platform_device_add_data(pdev, &renesas_panel_data,
  1151. sizeof(renesas_panel_data));
  1152. if (ret) {
  1153. pr_err("%s: platform_device_add_data failed!\n", __func__);
  1154. goto err_device_put;
  1155. }
  1156. ret = platform_device_add(pdev);
  1157. if (ret) {
  1158. pr_err("%s: platform_device_register failed!\n", __func__);
  1159. goto err_device_put;
  1160. }
  1161. return 0;
  1162. err_device_put:
  1163. platform_device_put(pdev);
  1164. return ret;
  1165. }
  1166. static int mipi_renesas_lcd_init(void)
  1167. {
  1168. mipi_dsi_buf_alloc(&renesas_tx_buf, DSI_BUF_SIZE);
  1169. mipi_dsi_buf_alloc(&renesas_rx_buf, DSI_BUF_SIZE);
  1170. return platform_driver_register(&this_driver);
  1171. }