* [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
@ 2023-06-16 21:07 ` Linus Walleij
0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: dri-devel, linux-kernel, Linus Walleij
This is two patches fixing things I would normally complain about
in reviews, but alas I missed this one, so I go in and fix it up
myself.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Fix a missed static keyword
- Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org
---
Linus Walleij (2):
drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
1 file changed, 1193 insertions(+), 1227 deletions(-)
---
base-commit: ac9a78681b921877518763ba0e89202254349d1b
change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44
Best regards,
--
Linus Walleij <linus.walleij@linaro.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
@ 2023-06-16 21:07 ` Linus Walleij
0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: linux-kernel, dri-devel
This is two patches fixing things I would normally complain about
in reviews, but alas I missed this one, so I go in and fix it up
myself.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Fix a missed static keyword
- Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org
---
Linus Walleij (2):
drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
1 file changed, 1193 insertions(+), 1227 deletions(-)
---
base-commit: ac9a78681b921877518763ba0e89202254349d1b
change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44
Best regards,
--
Linus Walleij <linus.walleij@linaro.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
2023-06-16 21:07 ` Linus Walleij
@ 2023-06-16 21:07 ` Linus Walleij
-1 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: dri-devel, linux-kernel, Linus Walleij
The boe-tv101wum-nl6 is reinventing the mechanism to send command
sequences that we usually nix during review, but I missed this one
so fixing it up myself.
Also use the explicit function calls to mipi_dsi_dcs_exit_sleep_mode()
and mipi_dsi_dcs_set_display_on() instead of reimplementing them
with homegrown sequences.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2408 ++++++++++++------------
1 file changed, 1193 insertions(+), 1215 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index 783234ae0f57..bc806d420ca7 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -33,7 +33,7 @@ struct panel_desc {
unsigned long mode_flags;
enum mipi_dsi_pixel_format format;
- const struct panel_init_cmd *init_cmds;
+ int (*init)(struct mipi_dsi_device *dsi);
unsigned int lanes;
bool discharge_on_disable;
};
@@ -54,1224 +54,1200 @@ struct boe_panel {
bool prepared;
};
-enum dsi_cmd_type {
- INIT_DCS_CMD,
- DELAY_CMD,
-};
+static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
+{
+ int ret;
-struct panel_init_cmd {
- enum dsi_cmd_type type;
- size_t len;
- const char *data;
-};
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD9);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x5A);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0x95, 0xE6);
+ mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x6D, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+ mipi_dsi_dcs_write_seq(dsi, 0x77, 0x3B);
-#define _INIT_DCS_CMD(...) { \
- .type = INIT_DCS_CMD, \
- .len = sizeof((char[]){__VA_ARGS__}), \
- .data = (char[]){__VA_ARGS__} }
-
-#define _INIT_DELAY_CMD(...) { \
- .type = DELAY_CMD,\
- .len = sizeof((char[]){__VA_ARGS__}), \
- .data = (char[]){__VA_ARGS__} }
-
-static const struct panel_init_cmd boe_tv110c9m_init_cmd[] = {
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x05, 0xD9),
- _INIT_DCS_CMD(0x07, 0x78),
- _INIT_DCS_CMD(0x08, 0x5A),
- _INIT_DCS_CMD(0x0D, 0x63),
- _INIT_DCS_CMD(0x0E, 0x91),
- _INIT_DCS_CMD(0x0F, 0x73),
- _INIT_DCS_CMD(0x95, 0xE6),
- _INIT_DCS_CMD(0x96, 0xF0),
- _INIT_DCS_CMD(0x30, 0x00),
- _INIT_DCS_CMD(0x6D, 0x66),
- _INIT_DCS_CMD(0x75, 0xA2),
- _INIT_DCS_CMD(0x77, 0x3B),
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
- _INIT_DCS_CMD(0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
- _INIT_DCS_CMD(0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
- _INIT_DCS_CMD(0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
- _INIT_DCS_CMD(0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
- _INIT_DCS_CMD(0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
- _INIT_DCS_CMD(0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
- _INIT_DCS_CMD(0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
- _INIT_DCS_CMD(0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
- _INIT_DCS_CMD(0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
- _INIT_DCS_CMD(0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
- _INIT_DCS_CMD(0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
- _INIT_DCS_CMD(0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
- _INIT_DCS_CMD(0xFF, 0x21),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
- _INIT_DCS_CMD(0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
- _INIT_DCS_CMD(0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
- _INIT_DCS_CMD(0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
- _INIT_DCS_CMD(0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
- _INIT_DCS_CMD(0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
- _INIT_DCS_CMD(0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
- _INIT_DCS_CMD(0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-
- _INIT_DCS_CMD(0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
- _INIT_DCS_CMD(0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
- _INIT_DCS_CMD(0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
- _INIT_DCS_CMD(0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
- _INIT_DCS_CMD(0xFF, 0x24),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x00, 0x00),
- _INIT_DCS_CMD(0x01, 0x00),
-
- _INIT_DCS_CMD(0x02, 0x1C),
- _INIT_DCS_CMD(0x03, 0x1C),
-
- _INIT_DCS_CMD(0x04, 0x1D),
- _INIT_DCS_CMD(0x05, 0x1D),
-
- _INIT_DCS_CMD(0x06, 0x04),
- _INIT_DCS_CMD(0x07, 0x04),
-
- _INIT_DCS_CMD(0x08, 0x0F),
- _INIT_DCS_CMD(0x09, 0x0F),
-
- _INIT_DCS_CMD(0x0A, 0x0E),
- _INIT_DCS_CMD(0x0B, 0x0E),
-
- _INIT_DCS_CMD(0x0C, 0x0D),
- _INIT_DCS_CMD(0x0D, 0x0D),
-
- _INIT_DCS_CMD(0x0E, 0x0C),
- _INIT_DCS_CMD(0x0F, 0x0C),
-
- _INIT_DCS_CMD(0x10, 0x08),
- _INIT_DCS_CMD(0x11, 0x08),
-
- _INIT_DCS_CMD(0x12, 0x00),
- _INIT_DCS_CMD(0x13, 0x00),
- _INIT_DCS_CMD(0x14, 0x00),
- _INIT_DCS_CMD(0x15, 0x00),
-
- _INIT_DCS_CMD(0x16, 0x00),
- _INIT_DCS_CMD(0x17, 0x00),
-
- _INIT_DCS_CMD(0x18, 0x1C),
- _INIT_DCS_CMD(0x19, 0x1C),
-
- _INIT_DCS_CMD(0x1A, 0x1D),
- _INIT_DCS_CMD(0x1B, 0x1D),
-
- _INIT_DCS_CMD(0x1C, 0x04),
- _INIT_DCS_CMD(0x1D, 0x04),
-
- _INIT_DCS_CMD(0x1E, 0x0F),
- _INIT_DCS_CMD(0x1F, 0x0F),
-
- _INIT_DCS_CMD(0x20, 0x0E),
- _INIT_DCS_CMD(0x21, 0x0E),
-
- _INIT_DCS_CMD(0x22, 0x0D),
- _INIT_DCS_CMD(0x23, 0x0D),
-
- _INIT_DCS_CMD(0x24, 0x0C),
- _INIT_DCS_CMD(0x25, 0x0C),
-
- _INIT_DCS_CMD(0x26, 0x08),
- _INIT_DCS_CMD(0x27, 0x08),
-
- _INIT_DCS_CMD(0x28, 0x00),
- _INIT_DCS_CMD(0x29, 0x00),
- _INIT_DCS_CMD(0x2A, 0x00),
- _INIT_DCS_CMD(0x2B, 0x00),
-
- _INIT_DCS_CMD(0x2D, 0x20),
- _INIT_DCS_CMD(0x2F, 0x0A),
- _INIT_DCS_CMD(0x30, 0x44),
- _INIT_DCS_CMD(0x33, 0x0C),
- _INIT_DCS_CMD(0x34, 0x32),
-
- _INIT_DCS_CMD(0x37, 0x44),
- _INIT_DCS_CMD(0x38, 0x40),
- _INIT_DCS_CMD(0x39, 0x00),
- _INIT_DCS_CMD(0x3A, 0x5D),
- _INIT_DCS_CMD(0x3B, 0x60),
- _INIT_DCS_CMD(0x3D, 0x42),
- _INIT_DCS_CMD(0x3F, 0x06),
- _INIT_DCS_CMD(0x43, 0x06),
- _INIT_DCS_CMD(0x47, 0x66),
- _INIT_DCS_CMD(0x4A, 0x5D),
- _INIT_DCS_CMD(0x4B, 0x60),
- _INIT_DCS_CMD(0x4C, 0x91),
- _INIT_DCS_CMD(0x4D, 0x21),
- _INIT_DCS_CMD(0x4E, 0x43),
- _INIT_DCS_CMD(0x51, 0x12),
- _INIT_DCS_CMD(0x52, 0x34),
- _INIT_DCS_CMD(0x55, 0x82, 0x02),
- _INIT_DCS_CMD(0x56, 0x04),
- _INIT_DCS_CMD(0x58, 0x21),
- _INIT_DCS_CMD(0x59, 0x30),
- _INIT_DCS_CMD(0x5A, 0x60),
- _INIT_DCS_CMD(0x5B, 0x50),
- _INIT_DCS_CMD(0x5E, 0x00, 0x06),
- _INIT_DCS_CMD(0x5F, 0x00),
- _INIT_DCS_CMD(0x65, 0x82),
- _INIT_DCS_CMD(0x7E, 0x20),
- _INIT_DCS_CMD(0x7F, 0x3C),
- _INIT_DCS_CMD(0x82, 0x04),
- _INIT_DCS_CMD(0x97, 0xC0),
-
- _INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
- _INIT_DCS_CMD(0x91, 0x44),
- _INIT_DCS_CMD(0x92, 0xA9),
- _INIT_DCS_CMD(0x93, 0x1A),
- _INIT_DCS_CMD(0x94, 0x96),
- _INIT_DCS_CMD(0xD7, 0x55),
- _INIT_DCS_CMD(0xDA, 0x0A),
- _INIT_DCS_CMD(0xDE, 0x08),
- _INIT_DCS_CMD(0xDB, 0x05),
- _INIT_DCS_CMD(0xDC, 0xA9),
- _INIT_DCS_CMD(0xDD, 0x22),
-
- _INIT_DCS_CMD(0xDF, 0x05),
- _INIT_DCS_CMD(0xE0, 0xA9),
- _INIT_DCS_CMD(0xE1, 0x05),
- _INIT_DCS_CMD(0xE2, 0xA9),
- _INIT_DCS_CMD(0xE3, 0x05),
- _INIT_DCS_CMD(0xE4, 0xA9),
- _INIT_DCS_CMD(0xE5, 0x05),
- _INIT_DCS_CMD(0xE6, 0xA9),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x8D, 0x00),
- _INIT_DCS_CMD(0x8E, 0x00),
- _INIT_DCS_CMD(0xB5, 0x90),
- _INIT_DCS_CMD(0xFF, 0x25),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x05, 0x00),
- _INIT_DCS_CMD(0x19, 0x07),
- _INIT_DCS_CMD(0x1F, 0x60),
- _INIT_DCS_CMD(0x20, 0x50),
- _INIT_DCS_CMD(0x26, 0x60),
- _INIT_DCS_CMD(0x27, 0x50),
- _INIT_DCS_CMD(0x33, 0x60),
- _INIT_DCS_CMD(0x34, 0x50),
- _INIT_DCS_CMD(0x3F, 0xE0),
- _INIT_DCS_CMD(0x40, 0x00),
- _INIT_DCS_CMD(0x44, 0x00),
- _INIT_DCS_CMD(0x45, 0x40),
- _INIT_DCS_CMD(0x48, 0x60),
- _INIT_DCS_CMD(0x49, 0x50),
- _INIT_DCS_CMD(0x5B, 0x00),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0xD0),
- _INIT_DCS_CMD(0x61, 0x60),
- _INIT_DCS_CMD(0x62, 0x50),
- _INIT_DCS_CMD(0xF1, 0x10),
- _INIT_DCS_CMD(0xFF, 0x2A),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x64, 0x16),
- _INIT_DCS_CMD(0x67, 0x16),
- _INIT_DCS_CMD(0x6A, 0x16),
-
- _INIT_DCS_CMD(0x70, 0x30),
-
- _INIT_DCS_CMD(0xA2, 0xF3),
- _INIT_DCS_CMD(0xA3, 0xFF),
- _INIT_DCS_CMD(0xA4, 0xFF),
- _INIT_DCS_CMD(0xA5, 0xFF),
-
- _INIT_DCS_CMD(0xD6, 0x08),
-
- _INIT_DCS_CMD(0xFF, 0x26),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x00, 0xA1),
-
- _INIT_DCS_CMD(0x02, 0x31),
- _INIT_DCS_CMD(0x04, 0x28),
- _INIT_DCS_CMD(0x06, 0x30),
- _INIT_DCS_CMD(0x0C, 0x16),
- _INIT_DCS_CMD(0x0D, 0x0D),
- _INIT_DCS_CMD(0x0F, 0x00),
- _INIT_DCS_CMD(0x11, 0x00),
- _INIT_DCS_CMD(0x12, 0x50),
- _INIT_DCS_CMD(0x13, 0x56),
- _INIT_DCS_CMD(0x14, 0x57),
- _INIT_DCS_CMD(0x15, 0x00),
- _INIT_DCS_CMD(0x16, 0x10),
- _INIT_DCS_CMD(0x17, 0xA0),
- _INIT_DCS_CMD(0x18, 0x86),
- _INIT_DCS_CMD(0x19, 0x0D),
- _INIT_DCS_CMD(0x1A, 0x7F),
- _INIT_DCS_CMD(0x1B, 0x0C),
- _INIT_DCS_CMD(0x1C, 0xBF),
- _INIT_DCS_CMD(0x22, 0x00),
- _INIT_DCS_CMD(0x23, 0x00),
- _INIT_DCS_CMD(0x2A, 0x0D),
- _INIT_DCS_CMD(0x2B, 0x7F),
-
- _INIT_DCS_CMD(0x1D, 0x00),
- _INIT_DCS_CMD(0x1E, 0x65),
- _INIT_DCS_CMD(0x1F, 0x65),
- _INIT_DCS_CMD(0x24, 0x00),
- _INIT_DCS_CMD(0x25, 0x65),
- _INIT_DCS_CMD(0x2F, 0x05),
- _INIT_DCS_CMD(0x30, 0x65),
- _INIT_DCS_CMD(0x31, 0x05),
- _INIT_DCS_CMD(0x32, 0x7D),
- _INIT_DCS_CMD(0x39, 0x00),
- _INIT_DCS_CMD(0x3A, 0x65),
- _INIT_DCS_CMD(0x20, 0x01),
- _INIT_DCS_CMD(0x33, 0x11),
- _INIT_DCS_CMD(0x34, 0x78),
- _INIT_DCS_CMD(0x35, 0x16),
- _INIT_DCS_CMD(0xC8, 0x04),
- _INIT_DCS_CMD(0xC9, 0x9E),
- _INIT_DCS_CMD(0xCA, 0x4E),
- _INIT_DCS_CMD(0xCB, 0x00),
-
- _INIT_DCS_CMD(0xA9, 0x49),
- _INIT_DCS_CMD(0xAA, 0x4B),
- _INIT_DCS_CMD(0xAB, 0x48),
- _INIT_DCS_CMD(0xAC, 0x43),
- _INIT_DCS_CMD(0xAD, 0x40),
- _INIT_DCS_CMD(0xAE, 0x50),
- _INIT_DCS_CMD(0xAF, 0x44),
- _INIT_DCS_CMD(0xB0, 0x54),
- _INIT_DCS_CMD(0xB1, 0x4E),
- _INIT_DCS_CMD(0xB2, 0x4D),
- _INIT_DCS_CMD(0xB3, 0x4C),
- _INIT_DCS_CMD(0xB4, 0x41),
- _INIT_DCS_CMD(0xB5, 0x47),
- _INIT_DCS_CMD(0xB6, 0x53),
- _INIT_DCS_CMD(0xB7, 0x3E),
- _INIT_DCS_CMD(0xB8, 0x51),
- _INIT_DCS_CMD(0xB9, 0x3C),
- _INIT_DCS_CMD(0xBA, 0x3B),
- _INIT_DCS_CMD(0xBB, 0x46),
- _INIT_DCS_CMD(0xBC, 0x45),
- _INIT_DCS_CMD(0xBD, 0x55),
- _INIT_DCS_CMD(0xBE, 0x3D),
- _INIT_DCS_CMD(0xBF, 0x3F),
- _INIT_DCS_CMD(0xC0, 0x52),
- _INIT_DCS_CMD(0xC1, 0x4A),
- _INIT_DCS_CMD(0xC2, 0x39),
- _INIT_DCS_CMD(0xC3, 0x4F),
- _INIT_DCS_CMD(0xC4, 0x3A),
- _INIT_DCS_CMD(0xC5, 0x42),
- _INIT_DCS_CMD(0xFF, 0x27),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x56, 0x06),
- _INIT_DCS_CMD(0x58, 0x80),
- _INIT_DCS_CMD(0x59, 0x75),
- _INIT_DCS_CMD(0x5A, 0x00),
- _INIT_DCS_CMD(0x5B, 0x02),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0x20),
- _INIT_DCS_CMD(0x5F, 0x10),
- _INIT_DCS_CMD(0x60, 0x00),
- _INIT_DCS_CMD(0x61, 0x2E),
- _INIT_DCS_CMD(0x62, 0x00),
- _INIT_DCS_CMD(0x63, 0x01),
- _INIT_DCS_CMD(0x64, 0x43),
- _INIT_DCS_CMD(0x65, 0x2D),
- _INIT_DCS_CMD(0x66, 0x00),
- _INIT_DCS_CMD(0x67, 0x01),
- _INIT_DCS_CMD(0x68, 0x44),
-
- _INIT_DCS_CMD(0x00, 0x00),
- _INIT_DCS_CMD(0x78, 0x00),
- _INIT_DCS_CMD(0xC3, 0x00),
-
- _INIT_DCS_CMD(0xFF, 0x2A),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x22, 0x2F),
- _INIT_DCS_CMD(0x23, 0x08),
-
- _INIT_DCS_CMD(0x24, 0x00),
- _INIT_DCS_CMD(0x25, 0x65),
- _INIT_DCS_CMD(0x26, 0xF8),
- _INIT_DCS_CMD(0x27, 0x00),
- _INIT_DCS_CMD(0x28, 0x1A),
- _INIT_DCS_CMD(0x29, 0x00),
- _INIT_DCS_CMD(0x2A, 0x1A),
- _INIT_DCS_CMD(0x2B, 0x00),
- _INIT_DCS_CMD(0x2D, 0x1A),
-
- _INIT_DCS_CMD(0xFF, 0x23),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x00, 0x80),
- _INIT_DCS_CMD(0x07, 0x00),
-
- _INIT_DCS_CMD(0xFF, 0xE0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x14, 0x60),
- _INIT_DCS_CMD(0x16, 0xC0),
-
- _INIT_DCS_CMD(0xFF, 0xF0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x3A, 0x08),
-
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xB9, 0x01),
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x18, 0x40),
-
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xB9, 0x02),
- _INIT_DCS_CMD(0x35, 0x00),
- _INIT_DCS_CMD(0x51, 0x00, 0xFF),
- _INIT_DCS_CMD(0x53, 0x24),
- _INIT_DCS_CMD(0x55, 0x00),
- _INIT_DCS_CMD(0xBB, 0x13),
- _INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
- _INIT_DELAY_CMD(100),
- _INIT_DCS_CMD(0x11),
- _INIT_DELAY_CMD(200),
- _INIT_DCS_CMD(0x29),
- _INIT_DELAY_CMD(100),
- {},
-};
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x01, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x03, 0x1C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x1D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x04);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x09, 0x0F);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x0E);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x10, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x1C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x1D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x04);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x0F);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x21, 0x0E);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x0D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x5D);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x43, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x47, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0x4A, 0x5D);
+ mipi_dsi_dcs_write_seq(dsi, 0x4B, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x4C, 0x91);
+ mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x12);
+ mipi_dsi_dcs_write_seq(dsi, 0x52, 0x34);
+ mipi_dsi_dcs_write_seq(dsi, 0x55, 0x82, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x82);
+ mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0x82, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x97, 0xC0);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x92, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x94, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x55);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x22);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x8D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x8E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x90);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x3F, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x44, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x45, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x48, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x49, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0xD0);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x67, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x16);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x70, 0x30);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xA2, 0xF3);
+ mipi_dsi_dcs_write_seq(dsi, 0xA3, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xA5, 0xFF);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x31, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x32, 0x7D);
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x9E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x49);
+ mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4B);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xAF, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x54);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x4D);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x4C);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x53);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x3E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x51);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x3B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x55);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x3D);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x4A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x3A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+ mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x68, 0x44);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x78, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0xC0);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x00, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0x55, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+ msleep(100);
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(200);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(100);
-static const struct panel_init_cmd inx_hj110iz_init_cmd[] = {
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x05, 0xD1),
- _INIT_DCS_CMD(0x0D, 0x63),
- _INIT_DCS_CMD(0x07, 0x8C),
- _INIT_DCS_CMD(0x08, 0x4B),
- _INIT_DCS_CMD(0x0E, 0x91),
- _INIT_DCS_CMD(0x0F, 0x69),
- _INIT_DCS_CMD(0x95, 0xF5),
- _INIT_DCS_CMD(0x96, 0xF5),
- _INIT_DCS_CMD(0x9D, 0x00),
- _INIT_DCS_CMD(0x9E, 0x00),
- _INIT_DCS_CMD(0x69, 0x98),
- _INIT_DCS_CMD(0x75, 0xA2),
- _INIT_DCS_CMD(0x77, 0xB3),
- _INIT_DCS_CMD(0xFF, 0x24),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x91, 0x44),
- _INIT_DCS_CMD(0x92, 0x7A),
- _INIT_DCS_CMD(0x93, 0x1A),
- _INIT_DCS_CMD(0x94, 0x40),
- _INIT_DCS_CMD(0x9A, 0x08),
- _INIT_DCS_CMD(0x60, 0x96),
- _INIT_DCS_CMD(0x61, 0xD0),
- _INIT_DCS_CMD(0x63, 0x70),
- _INIT_DCS_CMD(0xC2, 0xCF),
- _INIT_DCS_CMD(0x9B, 0x0F),
- _INIT_DCS_CMD(0x9A, 0x08),
- _INIT_DCS_CMD(0x00, 0x03),
- _INIT_DCS_CMD(0x01, 0x03),
- _INIT_DCS_CMD(0x02, 0x03),
- _INIT_DCS_CMD(0x03, 0x03),
- _INIT_DCS_CMD(0x04, 0x03),
- _INIT_DCS_CMD(0x05, 0x03),
- _INIT_DCS_CMD(0x06, 0x22),
- _INIT_DCS_CMD(0x07, 0x06),
- _INIT_DCS_CMD(0x08, 0x00),
- _INIT_DCS_CMD(0x09, 0x1D),
- _INIT_DCS_CMD(0x0A, 0x1C),
- _INIT_DCS_CMD(0x0B, 0x13),
- _INIT_DCS_CMD(0x0C, 0x12),
- _INIT_DCS_CMD(0x0D, 0x11),
- _INIT_DCS_CMD(0x0E, 0x10),
- _INIT_DCS_CMD(0x0F, 0x0F),
- _INIT_DCS_CMD(0x10, 0x0E),
- _INIT_DCS_CMD(0x11, 0x0D),
- _INIT_DCS_CMD(0x12, 0x0C),
- _INIT_DCS_CMD(0x13, 0x04),
- _INIT_DCS_CMD(0x14, 0x03),
- _INIT_DCS_CMD(0x15, 0x03),
- _INIT_DCS_CMD(0x16, 0x03),
- _INIT_DCS_CMD(0x17, 0x03),
- _INIT_DCS_CMD(0x18, 0x03),
- _INIT_DCS_CMD(0x19, 0x03),
- _INIT_DCS_CMD(0x1A, 0x03),
- _INIT_DCS_CMD(0x1B, 0x03),
- _INIT_DCS_CMD(0x1C, 0x22),
- _INIT_DCS_CMD(0x1D, 0x06),
- _INIT_DCS_CMD(0x1E, 0x00),
- _INIT_DCS_CMD(0x1F, 0x1D),
- _INIT_DCS_CMD(0x20, 0x1C),
- _INIT_DCS_CMD(0x21, 0x13),
- _INIT_DCS_CMD(0x22, 0x12),
- _INIT_DCS_CMD(0x23, 0x11),
- _INIT_DCS_CMD(0x24, 0x10),
- _INIT_DCS_CMD(0x25, 0x0F),
- _INIT_DCS_CMD(0x26, 0x0E),
- _INIT_DCS_CMD(0x27, 0x0D),
- _INIT_DCS_CMD(0x28, 0x0C),
- _INIT_DCS_CMD(0x29, 0x04),
- _INIT_DCS_CMD(0x2A, 0x03),
- _INIT_DCS_CMD(0x2B, 0x03),
-
- _INIT_DCS_CMD(0x2F, 0x05),
- _INIT_DCS_CMD(0x30, 0x32),
- _INIT_DCS_CMD(0x31, 0x43),
- _INIT_DCS_CMD(0x33, 0x05),
- _INIT_DCS_CMD(0x34, 0x32),
- _INIT_DCS_CMD(0x35, 0x43),
- _INIT_DCS_CMD(0x37, 0x44),
- _INIT_DCS_CMD(0x38, 0x40),
- _INIT_DCS_CMD(0x39, 0x00),
- _INIT_DCS_CMD(0x3A, 0x18),
- _INIT_DCS_CMD(0x3B, 0x00),
- _INIT_DCS_CMD(0x3D, 0x93),
- _INIT_DCS_CMD(0xAB, 0x44),
- _INIT_DCS_CMD(0xAC, 0x40),
-
- _INIT_DCS_CMD(0x4D, 0x21),
- _INIT_DCS_CMD(0x4E, 0x43),
- _INIT_DCS_CMD(0x4F, 0x65),
- _INIT_DCS_CMD(0x50, 0x87),
- _INIT_DCS_CMD(0x51, 0x78),
- _INIT_DCS_CMD(0x52, 0x56),
- _INIT_DCS_CMD(0x53, 0x34),
- _INIT_DCS_CMD(0x54, 0x21),
- _INIT_DCS_CMD(0x55, 0x83),
- _INIT_DCS_CMD(0x56, 0x08),
- _INIT_DCS_CMD(0x58, 0x21),
- _INIT_DCS_CMD(0x59, 0x40),
- _INIT_DCS_CMD(0x5A, 0x00),
- _INIT_DCS_CMD(0x5B, 0x2C),
- _INIT_DCS_CMD(0x5E, 0x00, 0x10),
- _INIT_DCS_CMD(0x5F, 0x00),
-
- _INIT_DCS_CMD(0x7A, 0x00),
- _INIT_DCS_CMD(0x7B, 0x00),
- _INIT_DCS_CMD(0x7C, 0x00),
- _INIT_DCS_CMD(0x7D, 0x00),
- _INIT_DCS_CMD(0x7E, 0x20),
- _INIT_DCS_CMD(0x7F, 0x3C),
- _INIT_DCS_CMD(0x80, 0x00),
- _INIT_DCS_CMD(0x81, 0x00),
- _INIT_DCS_CMD(0x82, 0x08),
- _INIT_DCS_CMD(0x97, 0x02),
- _INIT_DCS_CMD(0xC5, 0x10),
- _INIT_DCS_CMD(0xDA, 0x05),
- _INIT_DCS_CMD(0xDB, 0x01),
- _INIT_DCS_CMD(0xDC, 0x7A),
- _INIT_DCS_CMD(0xDD, 0x55),
- _INIT_DCS_CMD(0xDE, 0x27),
- _INIT_DCS_CMD(0xDF, 0x01),
- _INIT_DCS_CMD(0xE0, 0x7A),
- _INIT_DCS_CMD(0xE1, 0x01),
- _INIT_DCS_CMD(0xE2, 0x7A),
- _INIT_DCS_CMD(0xE3, 0x01),
- _INIT_DCS_CMD(0xE4, 0x7A),
- _INIT_DCS_CMD(0xE5, 0x01),
- _INIT_DCS_CMD(0xE6, 0x7A),
- _INIT_DCS_CMD(0xE7, 0x00),
- _INIT_DCS_CMD(0xE8, 0x00),
- _INIT_DCS_CMD(0xE9, 0x01),
- _INIT_DCS_CMD(0xEA, 0x7A),
- _INIT_DCS_CMD(0xEB, 0x01),
- _INIT_DCS_CMD(0xEE, 0x7A),
- _INIT_DCS_CMD(0xEF, 0x01),
- _INIT_DCS_CMD(0xF0, 0x7A),
-
- _INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
- _INIT_DCS_CMD(0xFF, 0x25),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x05, 0x00),
-
- _INIT_DCS_CMD(0x13, 0x02),
- _INIT_DCS_CMD(0x14, 0xDF),
- _INIT_DCS_CMD(0xF1, 0x10),
- _INIT_DCS_CMD(0x1E, 0x00),
- _INIT_DCS_CMD(0x1F, 0x00),
- _INIT_DCS_CMD(0x20, 0x2C),
- _INIT_DCS_CMD(0x25, 0x00),
- _INIT_DCS_CMD(0x26, 0x00),
- _INIT_DCS_CMD(0x27, 0x2C),
- _INIT_DCS_CMD(0x3F, 0x80),
- _INIT_DCS_CMD(0x40, 0x00),
- _INIT_DCS_CMD(0x43, 0x00),
-
- _INIT_DCS_CMD(0x44, 0x18),
- _INIT_DCS_CMD(0x45, 0x00),
-
- _INIT_DCS_CMD(0x48, 0x00),
- _INIT_DCS_CMD(0x49, 0x2C),
- _INIT_DCS_CMD(0x5B, 0x80),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0x00),
- _INIT_DCS_CMD(0x61, 0x00),
- _INIT_DCS_CMD(0x62, 0x2C),
- _INIT_DCS_CMD(0x68, 0x10),
- _INIT_DCS_CMD(0xFF, 0x26),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x00, 0xA1),
- _INIT_DCS_CMD(0x02, 0x31),
- _INIT_DCS_CMD(0x0A, 0xF2),
- _INIT_DCS_CMD(0x04, 0x28),
- _INIT_DCS_CMD(0x06, 0x30),
- _INIT_DCS_CMD(0x0C, 0x16),
- _INIT_DCS_CMD(0x0D, 0x0D),
- _INIT_DCS_CMD(0x0F, 0x00),
- _INIT_DCS_CMD(0x11, 0x00),
- _INIT_DCS_CMD(0x12, 0x50),
- _INIT_DCS_CMD(0x13, 0x56),
- _INIT_DCS_CMD(0x14, 0x57),
- _INIT_DCS_CMD(0x15, 0x00),
- _INIT_DCS_CMD(0x16, 0x10),
- _INIT_DCS_CMD(0x17, 0xA0),
- _INIT_DCS_CMD(0x18, 0x86),
- _INIT_DCS_CMD(0x22, 0x00),
- _INIT_DCS_CMD(0x23, 0x00),
- _INIT_DCS_CMD(0x19, 0x0D),
- _INIT_DCS_CMD(0x1A, 0x7F),
- _INIT_DCS_CMD(0x1B, 0x0C),
- _INIT_DCS_CMD(0x1C, 0xBF),
- _INIT_DCS_CMD(0x2A, 0x0D),
- _INIT_DCS_CMD(0x2B, 0x7F),
- _INIT_DCS_CMD(0x20, 0x00),
-
- _INIT_DCS_CMD(0x1D, 0x00),
- _INIT_DCS_CMD(0x1E, 0x78),
- _INIT_DCS_CMD(0x1F, 0x78),
-
- _INIT_DCS_CMD(0x2F, 0x03),
- _INIT_DCS_CMD(0x30, 0x78),
- _INIT_DCS_CMD(0x33, 0x78),
- _INIT_DCS_CMD(0x34, 0x66),
- _INIT_DCS_CMD(0x35, 0x11),
-
- _INIT_DCS_CMD(0x39, 0x10),
- _INIT_DCS_CMD(0x3A, 0x78),
- _INIT_DCS_CMD(0x3B, 0x06),
-
- _INIT_DCS_CMD(0xC8, 0x04),
- _INIT_DCS_CMD(0xC9, 0x84),
- _INIT_DCS_CMD(0xCA, 0x4E),
- _INIT_DCS_CMD(0xCB, 0x00),
-
- _INIT_DCS_CMD(0xA9, 0x50),
- _INIT_DCS_CMD(0xAA, 0x4F),
- _INIT_DCS_CMD(0xAB, 0x4D),
- _INIT_DCS_CMD(0xAC, 0x4A),
- _INIT_DCS_CMD(0xAD, 0x48),
- _INIT_DCS_CMD(0xAE, 0x46),
- _INIT_DCS_CMD(0xFF, 0x27),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xC0, 0x18),
- _INIT_DCS_CMD(0xC1, 0x00),
- _INIT_DCS_CMD(0xC2, 0x00),
- _INIT_DCS_CMD(0x56, 0x06),
- _INIT_DCS_CMD(0x58, 0x80),
- _INIT_DCS_CMD(0x59, 0x75),
- _INIT_DCS_CMD(0x5A, 0x00),
- _INIT_DCS_CMD(0x5B, 0x02),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0x20),
- _INIT_DCS_CMD(0x5F, 0x10),
- _INIT_DCS_CMD(0x60, 0x00),
- _INIT_DCS_CMD(0x61, 0x2E),
- _INIT_DCS_CMD(0x62, 0x00),
- _INIT_DCS_CMD(0x63, 0x01),
- _INIT_DCS_CMD(0x64, 0x43),
- _INIT_DCS_CMD(0x65, 0x2D),
- _INIT_DCS_CMD(0x66, 0x00),
- _INIT_DCS_CMD(0x67, 0x01),
- _INIT_DCS_CMD(0x68, 0x43),
- _INIT_DCS_CMD(0x98, 0x01),
- _INIT_DCS_CMD(0xB4, 0x03),
- _INIT_DCS_CMD(0x9B, 0xBD),
- _INIT_DCS_CMD(0xA0, 0x90),
- _INIT_DCS_CMD(0xAB, 0x1B),
- _INIT_DCS_CMD(0xBC, 0x0C),
- _INIT_DCS_CMD(0xBD, 0x28),
-
- _INIT_DCS_CMD(0xFF, 0x2A),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x22, 0x2F),
- _INIT_DCS_CMD(0x23, 0x08),
-
- _INIT_DCS_CMD(0x24, 0x00),
- _INIT_DCS_CMD(0x25, 0x65),
- _INIT_DCS_CMD(0x26, 0xF8),
- _INIT_DCS_CMD(0x27, 0x00),
- _INIT_DCS_CMD(0x28, 0x1A),
- _INIT_DCS_CMD(0x29, 0x00),
- _INIT_DCS_CMD(0x2A, 0x1A),
- _INIT_DCS_CMD(0x2B, 0x00),
- _INIT_DCS_CMD(0x2D, 0x1A),
-
- _INIT_DCS_CMD(0x64, 0x96),
- _INIT_DCS_CMD(0x65, 0x00),
- _INIT_DCS_CMD(0x66, 0x00),
- _INIT_DCS_CMD(0x6A, 0x96),
- _INIT_DCS_CMD(0x6B, 0x00),
- _INIT_DCS_CMD(0x6C, 0x00),
- _INIT_DCS_CMD(0x70, 0x92),
- _INIT_DCS_CMD(0x71, 0x00),
- _INIT_DCS_CMD(0x72, 0x00),
- _INIT_DCS_CMD(0xA2, 0x33),
- _INIT_DCS_CMD(0xA3, 0x30),
- _INIT_DCS_CMD(0xA4, 0xC0),
- _INIT_DCS_CMD(0xE8, 0x00),
- _INIT_DCS_CMD(0x97, 0x3C),
- _INIT_DCS_CMD(0x98, 0x02),
- _INIT_DCS_CMD(0x99, 0x95),
- _INIT_DCS_CMD(0x9A, 0x06),
- _INIT_DCS_CMD(0x9B, 0x00),
- _INIT_DCS_CMD(0x9C, 0x0B),
- _INIT_DCS_CMD(0x9D, 0x0A),
- _INIT_DCS_CMD(0x9E, 0x90),
- _INIT_DCS_CMD(0xFF, 0xF0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x3A, 0x08),
- _INIT_DCS_CMD(0xFF, 0xD0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x00, 0x33),
- _INIT_DCS_CMD(0x08, 0x01),
- _INIT_DCS_CMD(0x09, 0xBF),
- _INIT_DCS_CMD(0x2F, 0x33),
- _INIT_DCS_CMD(0xFF, 0x23),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x00, 0x80),
- _INIT_DCS_CMD(0x07, 0x00),
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x30, 0x00),
- _INIT_DCS_CMD(0xFF, 0x24),
- _INIT_DCS_CMD(0x5C, 0x88),
- _INIT_DCS_CMD(0x5D, 0x08),
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xB9, 0x01),
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0x18, 0x40),
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xB9, 0x02),
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xBB, 0x13),
- _INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
- _INIT_DCS_CMD(0x35, 0x00),
- _INIT_DCS_CMD(0x51, 0x0F, 0xFF),
- _INIT_DCS_CMD(0x53, 0x24),
- _INIT_DELAY_CMD(100),
- _INIT_DCS_CMD(0x11),
- _INIT_DELAY_CMD(200),
- _INIT_DCS_CMD(0x29),
- _INIT_DELAY_CMD(100),
- {},
-};
+ return 0;
+}
-static const struct panel_init_cmd boe_init_cmd[] = {
- _INIT_DELAY_CMD(24),
- _INIT_DCS_CMD(0xB0, 0x05),
- _INIT_DCS_CMD(0xB1, 0xE5),
- _INIT_DCS_CMD(0xB3, 0x52),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xB3, 0x88),
- _INIT_DCS_CMD(0xB0, 0x04),
- _INIT_DCS_CMD(0xB8, 0x00),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xB6, 0x03),
- _INIT_DCS_CMD(0xBA, 0x8B),
- _INIT_DCS_CMD(0xBF, 0x1A),
- _INIT_DCS_CMD(0xC0, 0x0F),
- _INIT_DCS_CMD(0xC2, 0x0C),
- _INIT_DCS_CMD(0xC3, 0x02),
- _INIT_DCS_CMD(0xC4, 0x0C),
- _INIT_DCS_CMD(0xC5, 0x02),
- _INIT_DCS_CMD(0xB0, 0x01),
- _INIT_DCS_CMD(0xE0, 0x26),
- _INIT_DCS_CMD(0xE1, 0x26),
- _INIT_DCS_CMD(0xDC, 0x00),
- _INIT_DCS_CMD(0xDD, 0x00),
- _INIT_DCS_CMD(0xCC, 0x26),
- _INIT_DCS_CMD(0xCD, 0x26),
- _INIT_DCS_CMD(0xC8, 0x00),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xD2, 0x03),
- _INIT_DCS_CMD(0xD3, 0x03),
- _INIT_DCS_CMD(0xE6, 0x04),
- _INIT_DCS_CMD(0xE7, 0x04),
- _INIT_DCS_CMD(0xC4, 0x09),
- _INIT_DCS_CMD(0xC5, 0x09),
- _INIT_DCS_CMD(0xD8, 0x0A),
- _INIT_DCS_CMD(0xD9, 0x0A),
- _INIT_DCS_CMD(0xC2, 0x0B),
- _INIT_DCS_CMD(0xC3, 0x0B),
- _INIT_DCS_CMD(0xD6, 0x0C),
- _INIT_DCS_CMD(0xD7, 0x0C),
- _INIT_DCS_CMD(0xC0, 0x05),
- _INIT_DCS_CMD(0xC1, 0x05),
- _INIT_DCS_CMD(0xD4, 0x06),
- _INIT_DCS_CMD(0xD5, 0x06),
- _INIT_DCS_CMD(0xCA, 0x07),
- _INIT_DCS_CMD(0xCB, 0x07),
- _INIT_DCS_CMD(0xDE, 0x08),
- _INIT_DCS_CMD(0xDF, 0x08),
- _INIT_DCS_CMD(0xB0, 0x02),
- _INIT_DCS_CMD(0xC0, 0x00),
- _INIT_DCS_CMD(0xC1, 0x0D),
- _INIT_DCS_CMD(0xC2, 0x17),
- _INIT_DCS_CMD(0xC3, 0x26),
- _INIT_DCS_CMD(0xC4, 0x31),
- _INIT_DCS_CMD(0xC5, 0x1C),
- _INIT_DCS_CMD(0xC6, 0x2C),
- _INIT_DCS_CMD(0xC7, 0x33),
- _INIT_DCS_CMD(0xC8, 0x31),
- _INIT_DCS_CMD(0xC9, 0x37),
- _INIT_DCS_CMD(0xCA, 0x37),
- _INIT_DCS_CMD(0xCB, 0x37),
- _INIT_DCS_CMD(0xCC, 0x39),
- _INIT_DCS_CMD(0xCD, 0x2E),
- _INIT_DCS_CMD(0xCE, 0x2F),
- _INIT_DCS_CMD(0xCF, 0x2F),
- _INIT_DCS_CMD(0xD0, 0x07),
- _INIT_DCS_CMD(0xD2, 0x00),
- _INIT_DCS_CMD(0xD3, 0x0D),
- _INIT_DCS_CMD(0xD4, 0x17),
- _INIT_DCS_CMD(0xD5, 0x26),
- _INIT_DCS_CMD(0xD6, 0x31),
- _INIT_DCS_CMD(0xD7, 0x3F),
- _INIT_DCS_CMD(0xD8, 0x3F),
- _INIT_DCS_CMD(0xD9, 0x3F),
- _INIT_DCS_CMD(0xDA, 0x3F),
- _INIT_DCS_CMD(0xDB, 0x37),
- _INIT_DCS_CMD(0xDC, 0x37),
- _INIT_DCS_CMD(0xDD, 0x37),
- _INIT_DCS_CMD(0xDE, 0x39),
- _INIT_DCS_CMD(0xDF, 0x2E),
- _INIT_DCS_CMD(0xE0, 0x2F),
- _INIT_DCS_CMD(0xE1, 0x2F),
- _INIT_DCS_CMD(0xE2, 0x07),
- _INIT_DCS_CMD(0xB0, 0x03),
- _INIT_DCS_CMD(0xC8, 0x0B),
- _INIT_DCS_CMD(0xC9, 0x07),
- _INIT_DCS_CMD(0xC3, 0x00),
- _INIT_DCS_CMD(0xE7, 0x00),
- _INIT_DCS_CMD(0xC5, 0x2A),
- _INIT_DCS_CMD(0xDE, 0x2A),
- _INIT_DCS_CMD(0xCA, 0x43),
- _INIT_DCS_CMD(0xC9, 0x07),
- _INIT_DCS_CMD(0xE4, 0xC0),
- _INIT_DCS_CMD(0xE5, 0x0D),
- _INIT_DCS_CMD(0xCB, 0x00),
- _INIT_DCS_CMD(0xB0, 0x06),
- _INIT_DCS_CMD(0xB8, 0xA5),
- _INIT_DCS_CMD(0xC0, 0xA5),
- _INIT_DCS_CMD(0xC7, 0x0F),
- _INIT_DCS_CMD(0xD5, 0x32),
- _INIT_DCS_CMD(0xB8, 0x00),
- _INIT_DCS_CMD(0xC0, 0x00),
- _INIT_DCS_CMD(0xBC, 0x00),
- _INIT_DCS_CMD(0xB0, 0x07),
- _INIT_DCS_CMD(0xB1, 0x00),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x0F),
- _INIT_DCS_CMD(0xB4, 0x25),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4E),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x97),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x22),
- _INIT_DCS_CMD(0xBB, 0xA4),
- _INIT_DCS_CMD(0xBC, 0x2B),
- _INIT_DCS_CMD(0xBD, 0x2F),
- _INIT_DCS_CMD(0xBE, 0xA9),
- _INIT_DCS_CMD(0xBF, 0x25),
- _INIT_DCS_CMD(0xC0, 0x61),
- _INIT_DCS_CMD(0xC1, 0x97),
- _INIT_DCS_CMD(0xC2, 0xB2),
- _INIT_DCS_CMD(0xC3, 0xCD),
- _INIT_DCS_CMD(0xC4, 0xD9),
- _INIT_DCS_CMD(0xC5, 0xE7),
- _INIT_DCS_CMD(0xC6, 0xF4),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x08),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x05),
- _INIT_DCS_CMD(0xB3, 0x11),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x98),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x23),
- _INIT_DCS_CMD(0xBB, 0xA6),
- _INIT_DCS_CMD(0xBC, 0x2C),
- _INIT_DCS_CMD(0xBD, 0x30),
- _INIT_DCS_CMD(0xBE, 0xAA),
- _INIT_DCS_CMD(0xBF, 0x26),
- _INIT_DCS_CMD(0xC0, 0x62),
- _INIT_DCS_CMD(0xC1, 0x9B),
- _INIT_DCS_CMD(0xC2, 0xB5),
- _INIT_DCS_CMD(0xC3, 0xCF),
- _INIT_DCS_CMD(0xC4, 0xDB),
- _INIT_DCS_CMD(0xC5, 0xE8),
- _INIT_DCS_CMD(0xC6, 0xF5),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x09),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x16),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x3B),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x73),
- _INIT_DCS_CMD(0xB8, 0x99),
- _INIT_DCS_CMD(0xB9, 0xE0),
- _INIT_DCS_CMD(0xBA, 0x26),
- _INIT_DCS_CMD(0xBB, 0xAD),
- _INIT_DCS_CMD(0xBC, 0x36),
- _INIT_DCS_CMD(0xBD, 0x3A),
- _INIT_DCS_CMD(0xBE, 0xAE),
- _INIT_DCS_CMD(0xBF, 0x2A),
- _INIT_DCS_CMD(0xC0, 0x66),
- _INIT_DCS_CMD(0xC1, 0x9E),
- _INIT_DCS_CMD(0xC2, 0xB8),
- _INIT_DCS_CMD(0xC3, 0xD1),
- _INIT_DCS_CMD(0xC4, 0xDD),
- _INIT_DCS_CMD(0xC5, 0xE9),
- _INIT_DCS_CMD(0xC6, 0xF6),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x0A),
- _INIT_DCS_CMD(0xB1, 0x00),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x0F),
- _INIT_DCS_CMD(0xB4, 0x25),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4E),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x97),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x22),
- _INIT_DCS_CMD(0xBB, 0xA4),
- _INIT_DCS_CMD(0xBC, 0x2B),
- _INIT_DCS_CMD(0xBD, 0x2F),
- _INIT_DCS_CMD(0xBE, 0xA9),
- _INIT_DCS_CMD(0xBF, 0x25),
- _INIT_DCS_CMD(0xC0, 0x61),
- _INIT_DCS_CMD(0xC1, 0x97),
- _INIT_DCS_CMD(0xC2, 0xB2),
- _INIT_DCS_CMD(0xC3, 0xCD),
- _INIT_DCS_CMD(0xC4, 0xD9),
- _INIT_DCS_CMD(0xC5, 0xE7),
- _INIT_DCS_CMD(0xC6, 0xF4),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x0B),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x05),
- _INIT_DCS_CMD(0xB3, 0x11),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x98),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x23),
- _INIT_DCS_CMD(0xBB, 0xA6),
- _INIT_DCS_CMD(0xBC, 0x2C),
- _INIT_DCS_CMD(0xBD, 0x30),
- _INIT_DCS_CMD(0xBE, 0xAA),
- _INIT_DCS_CMD(0xBF, 0x26),
- _INIT_DCS_CMD(0xC0, 0x62),
- _INIT_DCS_CMD(0xC1, 0x9B),
- _INIT_DCS_CMD(0xC2, 0xB5),
- _INIT_DCS_CMD(0xC3, 0xCF),
- _INIT_DCS_CMD(0xC4, 0xDB),
- _INIT_DCS_CMD(0xC5, 0xE8),
- _INIT_DCS_CMD(0xC6, 0xF5),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x0C),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x16),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x3B),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x73),
- _INIT_DCS_CMD(0xB8, 0x99),
- _INIT_DCS_CMD(0xB9, 0xE0),
- _INIT_DCS_CMD(0xBA, 0x26),
- _INIT_DCS_CMD(0xBB, 0xAD),
- _INIT_DCS_CMD(0xBC, 0x36),
- _INIT_DCS_CMD(0xBD, 0x3A),
- _INIT_DCS_CMD(0xBE, 0xAE),
- _INIT_DCS_CMD(0xBF, 0x2A),
- _INIT_DCS_CMD(0xC0, 0x66),
- _INIT_DCS_CMD(0xC1, 0x9E),
- _INIT_DCS_CMD(0xC2, 0xB8),
- _INIT_DCS_CMD(0xC3, 0xD1),
- _INIT_DCS_CMD(0xC4, 0xDD),
- _INIT_DCS_CMD(0xC5, 0xE9),
- _INIT_DCS_CMD(0xC6, 0xF6),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xB3, 0x08),
- _INIT_DCS_CMD(0xB0, 0x04),
- _INIT_DCS_CMD(0xB8, 0x68),
- _INIT_DELAY_CMD(150),
- {},
-};
+static int inx_hj110iz_init(struct mipi_dsi_device *dsi) {
+ int ret;
-static const struct panel_init_cmd auo_kd101n80_45na_init_cmd[] = {
- _INIT_DELAY_CMD(24),
- _INIT_DCS_CMD(0x11),
- _INIT_DELAY_CMD(120),
- _INIT_DCS_CMD(0x29),
- _INIT_DELAY_CMD(120),
- {},
-};
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD1);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x8C);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x4B);
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x69);
+ mipi_dsi_dcs_write_seq(dsi, 0x95, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x69, 0x98);
+ mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+ mipi_dsi_dcs_write_seq(dsi, 0x77, 0xB3);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x92, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x94, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x60, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0xD0);
+ mipi_dsi_dcs_write_seq(dsi, 0x63, 0x70);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xCF);
+ mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x01, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x03, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x09, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x12);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x10, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x21, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x12);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x03);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x32);
+ mipi_dsi_dcs_write_seq(dsi, 0x31, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x93);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x40);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x4F, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x50, 0x87);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x52, 0x56);
+ mipi_dsi_dcs_write_seq(dsi, 0x53, 0x34);
+ mipi_dsi_dcs_write_seq(dsi, 0x54, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x55, 0x83);
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x7A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0x80, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x81, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x82, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x97, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x55);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x27);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xE9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xEA, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xEB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xEE, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xEF, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xF0, 0x7A);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0xDF);
+ mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x43, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x44, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0x45, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x48, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x49, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x68, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0x0A, 0xF2);
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x78);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x11);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x06);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x84);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x4D);
+ mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x4A);
+ mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+ mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x68, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x98, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x9B, 0xBD);
+ mipi_dsi_dcs_write_seq(dsi, 0xA0, 0x90);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x1B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x28);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0x6B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x6C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x70, 0x92);
+ mipi_dsi_dcs_write_seq(dsi, 0x71, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x72, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xA2, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0xA3, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xC0);
+ mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x97, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0x98, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x99, 0x95);
+ mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x9C, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x90);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xD0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x09, 0xBF);
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x88);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x0F, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+ msleep(100);
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(200);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(100);
-static const struct panel_init_cmd auo_b101uan08_3_init_cmd[] = {
- _INIT_DELAY_CMD(24),
- _INIT_DCS_CMD(0xB0, 0x01),
- _INIT_DCS_CMD(0xC0, 0x48),
- _INIT_DCS_CMD(0xC1, 0x48),
- _INIT_DCS_CMD(0xC2, 0x47),
- _INIT_DCS_CMD(0xC3, 0x47),
- _INIT_DCS_CMD(0xC4, 0x46),
- _INIT_DCS_CMD(0xC5, 0x46),
- _INIT_DCS_CMD(0xC6, 0x45),
- _INIT_DCS_CMD(0xC7, 0x45),
- _INIT_DCS_CMD(0xC8, 0x64),
- _INIT_DCS_CMD(0xC9, 0x64),
- _INIT_DCS_CMD(0xCA, 0x4F),
- _INIT_DCS_CMD(0xCB, 0x4F),
- _INIT_DCS_CMD(0xCC, 0x40),
- _INIT_DCS_CMD(0xCD, 0x40),
- _INIT_DCS_CMD(0xCE, 0x66),
- _INIT_DCS_CMD(0xCF, 0x66),
- _INIT_DCS_CMD(0xD0, 0x4F),
- _INIT_DCS_CMD(0xD1, 0x4F),
- _INIT_DCS_CMD(0xD2, 0x41),
- _INIT_DCS_CMD(0xD3, 0x41),
- _INIT_DCS_CMD(0xD4, 0x48),
- _INIT_DCS_CMD(0xD5, 0x48),
- _INIT_DCS_CMD(0xD6, 0x47),
- _INIT_DCS_CMD(0xD7, 0x47),
- _INIT_DCS_CMD(0xD8, 0x46),
- _INIT_DCS_CMD(0xD9, 0x46),
- _INIT_DCS_CMD(0xDA, 0x45),
- _INIT_DCS_CMD(0xDB, 0x45),
- _INIT_DCS_CMD(0xDC, 0x64),
- _INIT_DCS_CMD(0xDD, 0x64),
- _INIT_DCS_CMD(0xDE, 0x4F),
- _INIT_DCS_CMD(0xDF, 0x4F),
- _INIT_DCS_CMD(0xE0, 0x40),
- _INIT_DCS_CMD(0xE1, 0x40),
- _INIT_DCS_CMD(0xE2, 0x66),
- _INIT_DCS_CMD(0xE3, 0x66),
- _INIT_DCS_CMD(0xE4, 0x4F),
- _INIT_DCS_CMD(0xE5, 0x4F),
- _INIT_DCS_CMD(0xE6, 0x41),
- _INIT_DCS_CMD(0xE7, 0x41),
- _INIT_DELAY_CMD(150),
- {},
-};
+ return 0;
+}
-static const struct panel_init_cmd starry_qfh032011_53g_init_cmd[] = {
- _INIT_DCS_CMD(0xB0, 0x01),
- _INIT_DCS_CMD(0xC3, 0x4F),
- _INIT_DCS_CMD(0xC4, 0x40),
- _INIT_DCS_CMD(0xC5, 0x40),
- _INIT_DCS_CMD(0xC6, 0x40),
- _INIT_DCS_CMD(0xC7, 0x40),
- _INIT_DCS_CMD(0xC8, 0x4D),
- _INIT_DCS_CMD(0xC9, 0x52),
- _INIT_DCS_CMD(0xCA, 0x51),
- _INIT_DCS_CMD(0xCD, 0x5D),
- _INIT_DCS_CMD(0xCE, 0x5B),
- _INIT_DCS_CMD(0xCF, 0x4B),
- _INIT_DCS_CMD(0xD0, 0x49),
- _INIT_DCS_CMD(0xD1, 0x47),
- _INIT_DCS_CMD(0xD2, 0x45),
- _INIT_DCS_CMD(0xD3, 0x41),
- _INIT_DCS_CMD(0xD7, 0x50),
- _INIT_DCS_CMD(0xD8, 0x40),
- _INIT_DCS_CMD(0xD9, 0x40),
- _INIT_DCS_CMD(0xDA, 0x40),
- _INIT_DCS_CMD(0xDB, 0x40),
- _INIT_DCS_CMD(0xDC, 0x4E),
- _INIT_DCS_CMD(0xDD, 0x52),
- _INIT_DCS_CMD(0xDE, 0x51),
- _INIT_DCS_CMD(0xE1, 0x5E),
- _INIT_DCS_CMD(0xE2, 0x5C),
- _INIT_DCS_CMD(0xE3, 0x4C),
- _INIT_DCS_CMD(0xE4, 0x4A),
- _INIT_DCS_CMD(0xE5, 0x48),
- _INIT_DCS_CMD(0xE6, 0x46),
- _INIT_DCS_CMD(0xE7, 0x42),
- _INIT_DCS_CMD(0xB0, 0x03),
- _INIT_DCS_CMD(0xBE, 0x03),
- _INIT_DCS_CMD(0xCC, 0x44),
- _INIT_DCS_CMD(0xC8, 0x07),
- _INIT_DCS_CMD(0xC9, 0x05),
- _INIT_DCS_CMD(0xCA, 0x42),
- _INIT_DCS_CMD(0xCD, 0x3E),
- _INIT_DCS_CMD(0xCF, 0x60),
- _INIT_DCS_CMD(0xD2, 0x04),
- _INIT_DCS_CMD(0xD3, 0x04),
- _INIT_DCS_CMD(0xD4, 0x01),
- _INIT_DCS_CMD(0xD5, 0x00),
- _INIT_DCS_CMD(0xD6, 0x03),
- _INIT_DCS_CMD(0xD7, 0x04),
- _INIT_DCS_CMD(0xD9, 0x01),
- _INIT_DCS_CMD(0xDB, 0x01),
- _INIT_DCS_CMD(0xE4, 0xF0),
- _INIT_DCS_CMD(0xE5, 0x0A),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xCC, 0x08),
- _INIT_DCS_CMD(0xC2, 0x08),
- _INIT_DCS_CMD(0xC4, 0x10),
- _INIT_DCS_CMD(0xB0, 0x02),
- _INIT_DCS_CMD(0xC0, 0x00),
- _INIT_DCS_CMD(0xC1, 0x0A),
- _INIT_DCS_CMD(0xC2, 0x20),
- _INIT_DCS_CMD(0xC3, 0x24),
- _INIT_DCS_CMD(0xC4, 0x23),
- _INIT_DCS_CMD(0xC5, 0x29),
- _INIT_DCS_CMD(0xC6, 0x23),
- _INIT_DCS_CMD(0xC7, 0x1C),
- _INIT_DCS_CMD(0xC8, 0x19),
- _INIT_DCS_CMD(0xC9, 0x17),
- _INIT_DCS_CMD(0xCA, 0x17),
- _INIT_DCS_CMD(0xCB, 0x18),
- _INIT_DCS_CMD(0xCC, 0x1A),
- _INIT_DCS_CMD(0xCD, 0x1E),
- _INIT_DCS_CMD(0xCE, 0x20),
- _INIT_DCS_CMD(0xCF, 0x23),
- _INIT_DCS_CMD(0xD0, 0x07),
- _INIT_DCS_CMD(0xD1, 0x00),
- _INIT_DCS_CMD(0xD2, 0x00),
- _INIT_DCS_CMD(0xD3, 0x0A),
- _INIT_DCS_CMD(0xD4, 0x13),
- _INIT_DCS_CMD(0xD5, 0x1C),
- _INIT_DCS_CMD(0xD6, 0x1A),
- _INIT_DCS_CMD(0xD7, 0x13),
- _INIT_DCS_CMD(0xD8, 0x17),
- _INIT_DCS_CMD(0xD9, 0x1C),
- _INIT_DCS_CMD(0xDA, 0x19),
- _INIT_DCS_CMD(0xDB, 0x17),
- _INIT_DCS_CMD(0xDC, 0x17),
- _INIT_DCS_CMD(0xDD, 0x18),
- _INIT_DCS_CMD(0xDE, 0x1A),
- _INIT_DCS_CMD(0xDF, 0x1E),
- _INIT_DCS_CMD(0xE0, 0x20),
- _INIT_DCS_CMD(0xE1, 0x23),
- _INIT_DCS_CMD(0xE2, 0x07),
- _INIT_DCS_CMD(0X11),
- _INIT_DELAY_CMD(120),
- _INIT_DCS_CMD(0X29),
- _INIT_DELAY_CMD(80),
- {},
-};
+static int boe_init(struct mipi_dsi_device *dsi)
+{
+ msleep(24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0xE5);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x88);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x8B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x09);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x09);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xC0);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0xA5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0xA5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x32);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x09);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x68);
+ msleep(150);
-static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+ return 0;
+}
+
+static int auo_kd101n80_45na_init(struct mipi_dsi_device *dsi)
{
- return container_of(panel, struct boe_panel, base);
+ int ret;
+
+ msleep(24);
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(120);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(120);
+
+ return 0;
}
-static int boe_panel_init_dcs_cmd(struct boe_panel *boe)
+static int auo_b101uan08_3_init(struct mipi_dsi_device *dsi)
{
- struct mipi_dsi_device *dsi = boe->dsi;
- struct drm_panel *panel = &boe->base;
- int i, err = 0;
-
- if (boe->desc->init_cmds) {
- const struct panel_init_cmd *init_cmds = boe->desc->init_cmds;
-
- for (i = 0; init_cmds[i].len != 0; i++) {
- const struct panel_init_cmd *cmd = &init_cmds[i];
-
- switch (cmd->type) {
- case DELAY_CMD:
- msleep(cmd->data[0]);
- err = 0;
- break;
-
- case INIT_DCS_CMD:
- err = mipi_dsi_dcs_write(dsi, cmd->data[0],
- cmd->len <= 1 ? NULL :
- &cmd->data[1],
- cmd->len - 1);
- break;
-
- default:
- err = -EINVAL;
- }
-
- if (err < 0) {
- dev_err(panel->dev,
- "failed to write command %u\n", i);
- return err;
- }
- }
- }
+ msleep(24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x41);
+ msleep(150);
+
+ return 0;
+}
+
+static int starry_qfh032011_53g_init(struct mipi_dsi_device *dsi)
+{
+ int ret;
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x4D);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x51);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x5D);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x5B);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x4B);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x49);
+ mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x51);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x5E);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x5C);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x4C);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x3E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x19);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x1E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x19);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x1E);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(120);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(80);
+
return 0;
}
+static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+{
+ return container_of(panel, struct boe_panel, base);
+}
+
static int boe_panel_enter_sleep_mode(struct boe_panel *boe)
{
struct mipi_dsi_device *dsi = boe->dsi;
@@ -1373,10 +1349,12 @@ static int boe_panel_prepare(struct drm_panel *panel)
gpiod_set_value(boe->enable_gpio, 1);
usleep_range(6000, 10000);
- ret = boe_panel_init_dcs_cmd(boe);
- if (ret < 0) {
- dev_err(panel->dev, "failed to init panel: %d\n", ret);
- goto poweroff;
+ if (boe->desc->init) {
+ ret = boe->desc->init(boe->dsi);
+ if (ret < 0) {
+ dev_err(panel->dev, "failed to init panel: %d\n", ret);
+ goto poweroff;
+ }
}
boe->prepared = true;
@@ -1427,7 +1405,7 @@ static const struct panel_desc boe_tv110c9m_desc = {
| MIPI_DSI_MODE_VIDEO_HSE
| MIPI_DSI_CLOCK_NON_CONTINUOUS
| MIPI_DSI_MODE_VIDEO_BURST,
- .init_cmds = boe_tv110c9m_init_cmd,
+ .init = boe_tv110c9m_init,
};
static const struct drm_display_mode inx_hj110iz_default_mode = {
@@ -1456,7 +1434,7 @@ static const struct panel_desc inx_hj110iz_desc = {
| MIPI_DSI_MODE_VIDEO_HSE
| MIPI_DSI_CLOCK_NON_CONTINUOUS
| MIPI_DSI_MODE_VIDEO_BURST,
- .init_cmds = inx_hj110iz_init_cmd,
+ .init = inx_hj110iz_init,
};
static const struct drm_display_mode boe_tv101wum_nl6_default_mode = {
@@ -1482,7 +1460,7 @@ static const struct panel_desc boe_tv101wum_nl6_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = boe_init_cmd,
+ .init = boe_init,
.discharge_on_disable = false,
};
@@ -1509,7 +1487,7 @@ static const struct panel_desc auo_kd101n80_45na_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = auo_kd101n80_45na_init_cmd,
+ .init = auo_kd101n80_45na_init,
.discharge_on_disable = true,
};
@@ -1537,7 +1515,7 @@ static const struct panel_desc boe_tv101wum_n53_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = boe_init_cmd,
+ .init = boe_init,
};
static const struct drm_display_mode auo_b101uan08_3_default_mode = {
@@ -1564,7 +1542,7 @@ static const struct panel_desc auo_b101uan08_3_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = auo_b101uan08_3_init_cmd,
+ .init = auo_b101uan08_3_init,
};
static const struct drm_display_mode boe_tv105wum_nw0_default_mode = {
@@ -1591,7 +1569,7 @@ static const struct panel_desc boe_tv105wum_nw0_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = boe_init_cmd,
+ .init = boe_init,
};
static const struct drm_display_mode starry_qfh032011_53g_default_mode = {
@@ -1617,7 +1595,7 @@ static const struct panel_desc starry_qfh032011_53g_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = starry_qfh032011_53g_init_cmd,
+ .init = starry_qfh032011_53g_init,
};
static int boe_panel_get_modes(struct drm_panel *panel,
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
@ 2023-06-16 21:07 ` Linus Walleij
0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: linux-kernel, dri-devel
The boe-tv101wum-nl6 is reinventing the mechanism to send command
sequences that we usually nix during review, but I missed this one
so fixing it up myself.
Also use the explicit function calls to mipi_dsi_dcs_exit_sleep_mode()
and mipi_dsi_dcs_set_display_on() instead of reimplementing them
with homegrown sequences.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2408 ++++++++++++------------
1 file changed, 1193 insertions(+), 1215 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index 783234ae0f57..bc806d420ca7 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -33,7 +33,7 @@ struct panel_desc {
unsigned long mode_flags;
enum mipi_dsi_pixel_format format;
- const struct panel_init_cmd *init_cmds;
+ int (*init)(struct mipi_dsi_device *dsi);
unsigned int lanes;
bool discharge_on_disable;
};
@@ -54,1224 +54,1200 @@ struct boe_panel {
bool prepared;
};
-enum dsi_cmd_type {
- INIT_DCS_CMD,
- DELAY_CMD,
-};
+static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
+{
+ int ret;
-struct panel_init_cmd {
- enum dsi_cmd_type type;
- size_t len;
- const char *data;
-};
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD9);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x5A);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0x95, 0xE6);
+ mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x6D, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+ mipi_dsi_dcs_write_seq(dsi, 0x77, 0x3B);
-#define _INIT_DCS_CMD(...) { \
- .type = INIT_DCS_CMD, \
- .len = sizeof((char[]){__VA_ARGS__}), \
- .data = (char[]){__VA_ARGS__} }
-
-#define _INIT_DELAY_CMD(...) { \
- .type = DELAY_CMD,\
- .len = sizeof((char[]){__VA_ARGS__}), \
- .data = (char[]){__VA_ARGS__} }
-
-static const struct panel_init_cmd boe_tv110c9m_init_cmd[] = {
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x05, 0xD9),
- _INIT_DCS_CMD(0x07, 0x78),
- _INIT_DCS_CMD(0x08, 0x5A),
- _INIT_DCS_CMD(0x0D, 0x63),
- _INIT_DCS_CMD(0x0E, 0x91),
- _INIT_DCS_CMD(0x0F, 0x73),
- _INIT_DCS_CMD(0x95, 0xE6),
- _INIT_DCS_CMD(0x96, 0xF0),
- _INIT_DCS_CMD(0x30, 0x00),
- _INIT_DCS_CMD(0x6D, 0x66),
- _INIT_DCS_CMD(0x75, 0xA2),
- _INIT_DCS_CMD(0x77, 0x3B),
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
- _INIT_DCS_CMD(0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
- _INIT_DCS_CMD(0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
- _INIT_DCS_CMD(0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
- _INIT_DCS_CMD(0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
- _INIT_DCS_CMD(0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
- _INIT_DCS_CMD(0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
- _INIT_DCS_CMD(0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
- _INIT_DCS_CMD(0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
- _INIT_DCS_CMD(0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9),
- _INIT_DCS_CMD(0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31),
- _INIT_DCS_CMD(0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B),
- _INIT_DCS_CMD(0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF),
-
- _INIT_DCS_CMD(0xFF, 0x21),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
- _INIT_DCS_CMD(0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
- _INIT_DCS_CMD(0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
- _INIT_DCS_CMD(0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
- _INIT_DCS_CMD(0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
- _INIT_DCS_CMD(0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
- _INIT_DCS_CMD(0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
- _INIT_DCS_CMD(0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
-
- _INIT_DCS_CMD(0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1),
- _INIT_DCS_CMD(0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29),
- _INIT_DCS_CMD(0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73),
-
- _INIT_DCS_CMD(0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0),
- _INIT_DCS_CMD(0xFF, 0x24),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x00, 0x00),
- _INIT_DCS_CMD(0x01, 0x00),
-
- _INIT_DCS_CMD(0x02, 0x1C),
- _INIT_DCS_CMD(0x03, 0x1C),
-
- _INIT_DCS_CMD(0x04, 0x1D),
- _INIT_DCS_CMD(0x05, 0x1D),
-
- _INIT_DCS_CMD(0x06, 0x04),
- _INIT_DCS_CMD(0x07, 0x04),
-
- _INIT_DCS_CMD(0x08, 0x0F),
- _INIT_DCS_CMD(0x09, 0x0F),
-
- _INIT_DCS_CMD(0x0A, 0x0E),
- _INIT_DCS_CMD(0x0B, 0x0E),
-
- _INIT_DCS_CMD(0x0C, 0x0D),
- _INIT_DCS_CMD(0x0D, 0x0D),
-
- _INIT_DCS_CMD(0x0E, 0x0C),
- _INIT_DCS_CMD(0x0F, 0x0C),
-
- _INIT_DCS_CMD(0x10, 0x08),
- _INIT_DCS_CMD(0x11, 0x08),
-
- _INIT_DCS_CMD(0x12, 0x00),
- _INIT_DCS_CMD(0x13, 0x00),
- _INIT_DCS_CMD(0x14, 0x00),
- _INIT_DCS_CMD(0x15, 0x00),
-
- _INIT_DCS_CMD(0x16, 0x00),
- _INIT_DCS_CMD(0x17, 0x00),
-
- _INIT_DCS_CMD(0x18, 0x1C),
- _INIT_DCS_CMD(0x19, 0x1C),
-
- _INIT_DCS_CMD(0x1A, 0x1D),
- _INIT_DCS_CMD(0x1B, 0x1D),
-
- _INIT_DCS_CMD(0x1C, 0x04),
- _INIT_DCS_CMD(0x1D, 0x04),
-
- _INIT_DCS_CMD(0x1E, 0x0F),
- _INIT_DCS_CMD(0x1F, 0x0F),
-
- _INIT_DCS_CMD(0x20, 0x0E),
- _INIT_DCS_CMD(0x21, 0x0E),
-
- _INIT_DCS_CMD(0x22, 0x0D),
- _INIT_DCS_CMD(0x23, 0x0D),
-
- _INIT_DCS_CMD(0x24, 0x0C),
- _INIT_DCS_CMD(0x25, 0x0C),
-
- _INIT_DCS_CMD(0x26, 0x08),
- _INIT_DCS_CMD(0x27, 0x08),
-
- _INIT_DCS_CMD(0x28, 0x00),
- _INIT_DCS_CMD(0x29, 0x00),
- _INIT_DCS_CMD(0x2A, 0x00),
- _INIT_DCS_CMD(0x2B, 0x00),
-
- _INIT_DCS_CMD(0x2D, 0x20),
- _INIT_DCS_CMD(0x2F, 0x0A),
- _INIT_DCS_CMD(0x30, 0x44),
- _INIT_DCS_CMD(0x33, 0x0C),
- _INIT_DCS_CMD(0x34, 0x32),
-
- _INIT_DCS_CMD(0x37, 0x44),
- _INIT_DCS_CMD(0x38, 0x40),
- _INIT_DCS_CMD(0x39, 0x00),
- _INIT_DCS_CMD(0x3A, 0x5D),
- _INIT_DCS_CMD(0x3B, 0x60),
- _INIT_DCS_CMD(0x3D, 0x42),
- _INIT_DCS_CMD(0x3F, 0x06),
- _INIT_DCS_CMD(0x43, 0x06),
- _INIT_DCS_CMD(0x47, 0x66),
- _INIT_DCS_CMD(0x4A, 0x5D),
- _INIT_DCS_CMD(0x4B, 0x60),
- _INIT_DCS_CMD(0x4C, 0x91),
- _INIT_DCS_CMD(0x4D, 0x21),
- _INIT_DCS_CMD(0x4E, 0x43),
- _INIT_DCS_CMD(0x51, 0x12),
- _INIT_DCS_CMD(0x52, 0x34),
- _INIT_DCS_CMD(0x55, 0x82, 0x02),
- _INIT_DCS_CMD(0x56, 0x04),
- _INIT_DCS_CMD(0x58, 0x21),
- _INIT_DCS_CMD(0x59, 0x30),
- _INIT_DCS_CMD(0x5A, 0x60),
- _INIT_DCS_CMD(0x5B, 0x50),
- _INIT_DCS_CMD(0x5E, 0x00, 0x06),
- _INIT_DCS_CMD(0x5F, 0x00),
- _INIT_DCS_CMD(0x65, 0x82),
- _INIT_DCS_CMD(0x7E, 0x20),
- _INIT_DCS_CMD(0x7F, 0x3C),
- _INIT_DCS_CMD(0x82, 0x04),
- _INIT_DCS_CMD(0x97, 0xC0),
-
- _INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
- _INIT_DCS_CMD(0x91, 0x44),
- _INIT_DCS_CMD(0x92, 0xA9),
- _INIT_DCS_CMD(0x93, 0x1A),
- _INIT_DCS_CMD(0x94, 0x96),
- _INIT_DCS_CMD(0xD7, 0x55),
- _INIT_DCS_CMD(0xDA, 0x0A),
- _INIT_DCS_CMD(0xDE, 0x08),
- _INIT_DCS_CMD(0xDB, 0x05),
- _INIT_DCS_CMD(0xDC, 0xA9),
- _INIT_DCS_CMD(0xDD, 0x22),
-
- _INIT_DCS_CMD(0xDF, 0x05),
- _INIT_DCS_CMD(0xE0, 0xA9),
- _INIT_DCS_CMD(0xE1, 0x05),
- _INIT_DCS_CMD(0xE2, 0xA9),
- _INIT_DCS_CMD(0xE3, 0x05),
- _INIT_DCS_CMD(0xE4, 0xA9),
- _INIT_DCS_CMD(0xE5, 0x05),
- _INIT_DCS_CMD(0xE6, 0xA9),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x8D, 0x00),
- _INIT_DCS_CMD(0x8E, 0x00),
- _INIT_DCS_CMD(0xB5, 0x90),
- _INIT_DCS_CMD(0xFF, 0x25),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x05, 0x00),
- _INIT_DCS_CMD(0x19, 0x07),
- _INIT_DCS_CMD(0x1F, 0x60),
- _INIT_DCS_CMD(0x20, 0x50),
- _INIT_DCS_CMD(0x26, 0x60),
- _INIT_DCS_CMD(0x27, 0x50),
- _INIT_DCS_CMD(0x33, 0x60),
- _INIT_DCS_CMD(0x34, 0x50),
- _INIT_DCS_CMD(0x3F, 0xE0),
- _INIT_DCS_CMD(0x40, 0x00),
- _INIT_DCS_CMD(0x44, 0x00),
- _INIT_DCS_CMD(0x45, 0x40),
- _INIT_DCS_CMD(0x48, 0x60),
- _INIT_DCS_CMD(0x49, 0x50),
- _INIT_DCS_CMD(0x5B, 0x00),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0xD0),
- _INIT_DCS_CMD(0x61, 0x60),
- _INIT_DCS_CMD(0x62, 0x50),
- _INIT_DCS_CMD(0xF1, 0x10),
- _INIT_DCS_CMD(0xFF, 0x2A),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x64, 0x16),
- _INIT_DCS_CMD(0x67, 0x16),
- _INIT_DCS_CMD(0x6A, 0x16),
-
- _INIT_DCS_CMD(0x70, 0x30),
-
- _INIT_DCS_CMD(0xA2, 0xF3),
- _INIT_DCS_CMD(0xA3, 0xFF),
- _INIT_DCS_CMD(0xA4, 0xFF),
- _INIT_DCS_CMD(0xA5, 0xFF),
-
- _INIT_DCS_CMD(0xD6, 0x08),
-
- _INIT_DCS_CMD(0xFF, 0x26),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x00, 0xA1),
-
- _INIT_DCS_CMD(0x02, 0x31),
- _INIT_DCS_CMD(0x04, 0x28),
- _INIT_DCS_CMD(0x06, 0x30),
- _INIT_DCS_CMD(0x0C, 0x16),
- _INIT_DCS_CMD(0x0D, 0x0D),
- _INIT_DCS_CMD(0x0F, 0x00),
- _INIT_DCS_CMD(0x11, 0x00),
- _INIT_DCS_CMD(0x12, 0x50),
- _INIT_DCS_CMD(0x13, 0x56),
- _INIT_DCS_CMD(0x14, 0x57),
- _INIT_DCS_CMD(0x15, 0x00),
- _INIT_DCS_CMD(0x16, 0x10),
- _INIT_DCS_CMD(0x17, 0xA0),
- _INIT_DCS_CMD(0x18, 0x86),
- _INIT_DCS_CMD(0x19, 0x0D),
- _INIT_DCS_CMD(0x1A, 0x7F),
- _INIT_DCS_CMD(0x1B, 0x0C),
- _INIT_DCS_CMD(0x1C, 0xBF),
- _INIT_DCS_CMD(0x22, 0x00),
- _INIT_DCS_CMD(0x23, 0x00),
- _INIT_DCS_CMD(0x2A, 0x0D),
- _INIT_DCS_CMD(0x2B, 0x7F),
-
- _INIT_DCS_CMD(0x1D, 0x00),
- _INIT_DCS_CMD(0x1E, 0x65),
- _INIT_DCS_CMD(0x1F, 0x65),
- _INIT_DCS_CMD(0x24, 0x00),
- _INIT_DCS_CMD(0x25, 0x65),
- _INIT_DCS_CMD(0x2F, 0x05),
- _INIT_DCS_CMD(0x30, 0x65),
- _INIT_DCS_CMD(0x31, 0x05),
- _INIT_DCS_CMD(0x32, 0x7D),
- _INIT_DCS_CMD(0x39, 0x00),
- _INIT_DCS_CMD(0x3A, 0x65),
- _INIT_DCS_CMD(0x20, 0x01),
- _INIT_DCS_CMD(0x33, 0x11),
- _INIT_DCS_CMD(0x34, 0x78),
- _INIT_DCS_CMD(0x35, 0x16),
- _INIT_DCS_CMD(0xC8, 0x04),
- _INIT_DCS_CMD(0xC9, 0x9E),
- _INIT_DCS_CMD(0xCA, 0x4E),
- _INIT_DCS_CMD(0xCB, 0x00),
-
- _INIT_DCS_CMD(0xA9, 0x49),
- _INIT_DCS_CMD(0xAA, 0x4B),
- _INIT_DCS_CMD(0xAB, 0x48),
- _INIT_DCS_CMD(0xAC, 0x43),
- _INIT_DCS_CMD(0xAD, 0x40),
- _INIT_DCS_CMD(0xAE, 0x50),
- _INIT_DCS_CMD(0xAF, 0x44),
- _INIT_DCS_CMD(0xB0, 0x54),
- _INIT_DCS_CMD(0xB1, 0x4E),
- _INIT_DCS_CMD(0xB2, 0x4D),
- _INIT_DCS_CMD(0xB3, 0x4C),
- _INIT_DCS_CMD(0xB4, 0x41),
- _INIT_DCS_CMD(0xB5, 0x47),
- _INIT_DCS_CMD(0xB6, 0x53),
- _INIT_DCS_CMD(0xB7, 0x3E),
- _INIT_DCS_CMD(0xB8, 0x51),
- _INIT_DCS_CMD(0xB9, 0x3C),
- _INIT_DCS_CMD(0xBA, 0x3B),
- _INIT_DCS_CMD(0xBB, 0x46),
- _INIT_DCS_CMD(0xBC, 0x45),
- _INIT_DCS_CMD(0xBD, 0x55),
- _INIT_DCS_CMD(0xBE, 0x3D),
- _INIT_DCS_CMD(0xBF, 0x3F),
- _INIT_DCS_CMD(0xC0, 0x52),
- _INIT_DCS_CMD(0xC1, 0x4A),
- _INIT_DCS_CMD(0xC2, 0x39),
- _INIT_DCS_CMD(0xC3, 0x4F),
- _INIT_DCS_CMD(0xC4, 0x3A),
- _INIT_DCS_CMD(0xC5, 0x42),
- _INIT_DCS_CMD(0xFF, 0x27),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x56, 0x06),
- _INIT_DCS_CMD(0x58, 0x80),
- _INIT_DCS_CMD(0x59, 0x75),
- _INIT_DCS_CMD(0x5A, 0x00),
- _INIT_DCS_CMD(0x5B, 0x02),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0x20),
- _INIT_DCS_CMD(0x5F, 0x10),
- _INIT_DCS_CMD(0x60, 0x00),
- _INIT_DCS_CMD(0x61, 0x2E),
- _INIT_DCS_CMD(0x62, 0x00),
- _INIT_DCS_CMD(0x63, 0x01),
- _INIT_DCS_CMD(0x64, 0x43),
- _INIT_DCS_CMD(0x65, 0x2D),
- _INIT_DCS_CMD(0x66, 0x00),
- _INIT_DCS_CMD(0x67, 0x01),
- _INIT_DCS_CMD(0x68, 0x44),
-
- _INIT_DCS_CMD(0x00, 0x00),
- _INIT_DCS_CMD(0x78, 0x00),
- _INIT_DCS_CMD(0xC3, 0x00),
-
- _INIT_DCS_CMD(0xFF, 0x2A),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x22, 0x2F),
- _INIT_DCS_CMD(0x23, 0x08),
-
- _INIT_DCS_CMD(0x24, 0x00),
- _INIT_DCS_CMD(0x25, 0x65),
- _INIT_DCS_CMD(0x26, 0xF8),
- _INIT_DCS_CMD(0x27, 0x00),
- _INIT_DCS_CMD(0x28, 0x1A),
- _INIT_DCS_CMD(0x29, 0x00),
- _INIT_DCS_CMD(0x2A, 0x1A),
- _INIT_DCS_CMD(0x2B, 0x00),
- _INIT_DCS_CMD(0x2D, 0x1A),
-
- _INIT_DCS_CMD(0xFF, 0x23),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x00, 0x80),
- _INIT_DCS_CMD(0x07, 0x00),
-
- _INIT_DCS_CMD(0xFF, 0xE0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x14, 0x60),
- _INIT_DCS_CMD(0x16, 0xC0),
-
- _INIT_DCS_CMD(0xFF, 0xF0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x3A, 0x08),
-
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xB9, 0x01),
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x18, 0x40),
-
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xB9, 0x02),
- _INIT_DCS_CMD(0x35, 0x00),
- _INIT_DCS_CMD(0x51, 0x00, 0xFF),
- _INIT_DCS_CMD(0x53, 0x24),
- _INIT_DCS_CMD(0x55, 0x00),
- _INIT_DCS_CMD(0xBB, 0x13),
- _INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
- _INIT_DELAY_CMD(100),
- _INIT_DCS_CMD(0x11),
- _INIT_DELAY_CMD(200),
- _INIT_DCS_CMD(0x29),
- _INIT_DELAY_CMD(100),
- {},
-};
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x01, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x03, 0x1C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x1D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x04);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x09, 0x0F);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x0E);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x10, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x1C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x1D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x04);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x0F);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x21, 0x0E);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x0D);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0C);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x5D);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x43, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x47, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0x4A, 0x5D);
+ mipi_dsi_dcs_write_seq(dsi, 0x4B, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x4C, 0x91);
+ mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x12);
+ mipi_dsi_dcs_write_seq(dsi, 0x52, 0x34);
+ mipi_dsi_dcs_write_seq(dsi, 0x55, 0x82, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x82);
+ mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0x82, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x97, 0xC0);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x92, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x94, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x55);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x22);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x8D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x8E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x90);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x3F, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x44, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x45, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x48, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x49, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0xD0);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x67, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x16);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x70, 0x30);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xA2, 0xF3);
+ mipi_dsi_dcs_write_seq(dsi, 0xA3, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xA5, 0xFF);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x31, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x32, 0x7D);
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x9E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x49);
+ mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4B);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xAF, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x54);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x4D);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x4C);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x53);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x3E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x51);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x3B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x55);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x3D);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x4A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x3A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+ mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x68, 0x44);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x78, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0xC0);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x00, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0x55, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+ msleep(100);
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(200);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(100);
-static const struct panel_init_cmd inx_hj110iz_init_cmd[] = {
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x05, 0xD1),
- _INIT_DCS_CMD(0x0D, 0x63),
- _INIT_DCS_CMD(0x07, 0x8C),
- _INIT_DCS_CMD(0x08, 0x4B),
- _INIT_DCS_CMD(0x0E, 0x91),
- _INIT_DCS_CMD(0x0F, 0x69),
- _INIT_DCS_CMD(0x95, 0xF5),
- _INIT_DCS_CMD(0x96, 0xF5),
- _INIT_DCS_CMD(0x9D, 0x00),
- _INIT_DCS_CMD(0x9E, 0x00),
- _INIT_DCS_CMD(0x69, 0x98),
- _INIT_DCS_CMD(0x75, 0xA2),
- _INIT_DCS_CMD(0x77, 0xB3),
- _INIT_DCS_CMD(0xFF, 0x24),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x91, 0x44),
- _INIT_DCS_CMD(0x92, 0x7A),
- _INIT_DCS_CMD(0x93, 0x1A),
- _INIT_DCS_CMD(0x94, 0x40),
- _INIT_DCS_CMD(0x9A, 0x08),
- _INIT_DCS_CMD(0x60, 0x96),
- _INIT_DCS_CMD(0x61, 0xD0),
- _INIT_DCS_CMD(0x63, 0x70),
- _INIT_DCS_CMD(0xC2, 0xCF),
- _INIT_DCS_CMD(0x9B, 0x0F),
- _INIT_DCS_CMD(0x9A, 0x08),
- _INIT_DCS_CMD(0x00, 0x03),
- _INIT_DCS_CMD(0x01, 0x03),
- _INIT_DCS_CMD(0x02, 0x03),
- _INIT_DCS_CMD(0x03, 0x03),
- _INIT_DCS_CMD(0x04, 0x03),
- _INIT_DCS_CMD(0x05, 0x03),
- _INIT_DCS_CMD(0x06, 0x22),
- _INIT_DCS_CMD(0x07, 0x06),
- _INIT_DCS_CMD(0x08, 0x00),
- _INIT_DCS_CMD(0x09, 0x1D),
- _INIT_DCS_CMD(0x0A, 0x1C),
- _INIT_DCS_CMD(0x0B, 0x13),
- _INIT_DCS_CMD(0x0C, 0x12),
- _INIT_DCS_CMD(0x0D, 0x11),
- _INIT_DCS_CMD(0x0E, 0x10),
- _INIT_DCS_CMD(0x0F, 0x0F),
- _INIT_DCS_CMD(0x10, 0x0E),
- _INIT_DCS_CMD(0x11, 0x0D),
- _INIT_DCS_CMD(0x12, 0x0C),
- _INIT_DCS_CMD(0x13, 0x04),
- _INIT_DCS_CMD(0x14, 0x03),
- _INIT_DCS_CMD(0x15, 0x03),
- _INIT_DCS_CMD(0x16, 0x03),
- _INIT_DCS_CMD(0x17, 0x03),
- _INIT_DCS_CMD(0x18, 0x03),
- _INIT_DCS_CMD(0x19, 0x03),
- _INIT_DCS_CMD(0x1A, 0x03),
- _INIT_DCS_CMD(0x1B, 0x03),
- _INIT_DCS_CMD(0x1C, 0x22),
- _INIT_DCS_CMD(0x1D, 0x06),
- _INIT_DCS_CMD(0x1E, 0x00),
- _INIT_DCS_CMD(0x1F, 0x1D),
- _INIT_DCS_CMD(0x20, 0x1C),
- _INIT_DCS_CMD(0x21, 0x13),
- _INIT_DCS_CMD(0x22, 0x12),
- _INIT_DCS_CMD(0x23, 0x11),
- _INIT_DCS_CMD(0x24, 0x10),
- _INIT_DCS_CMD(0x25, 0x0F),
- _INIT_DCS_CMD(0x26, 0x0E),
- _INIT_DCS_CMD(0x27, 0x0D),
- _INIT_DCS_CMD(0x28, 0x0C),
- _INIT_DCS_CMD(0x29, 0x04),
- _INIT_DCS_CMD(0x2A, 0x03),
- _INIT_DCS_CMD(0x2B, 0x03),
-
- _INIT_DCS_CMD(0x2F, 0x05),
- _INIT_DCS_CMD(0x30, 0x32),
- _INIT_DCS_CMD(0x31, 0x43),
- _INIT_DCS_CMD(0x33, 0x05),
- _INIT_DCS_CMD(0x34, 0x32),
- _INIT_DCS_CMD(0x35, 0x43),
- _INIT_DCS_CMD(0x37, 0x44),
- _INIT_DCS_CMD(0x38, 0x40),
- _INIT_DCS_CMD(0x39, 0x00),
- _INIT_DCS_CMD(0x3A, 0x18),
- _INIT_DCS_CMD(0x3B, 0x00),
- _INIT_DCS_CMD(0x3D, 0x93),
- _INIT_DCS_CMD(0xAB, 0x44),
- _INIT_DCS_CMD(0xAC, 0x40),
-
- _INIT_DCS_CMD(0x4D, 0x21),
- _INIT_DCS_CMD(0x4E, 0x43),
- _INIT_DCS_CMD(0x4F, 0x65),
- _INIT_DCS_CMD(0x50, 0x87),
- _INIT_DCS_CMD(0x51, 0x78),
- _INIT_DCS_CMD(0x52, 0x56),
- _INIT_DCS_CMD(0x53, 0x34),
- _INIT_DCS_CMD(0x54, 0x21),
- _INIT_DCS_CMD(0x55, 0x83),
- _INIT_DCS_CMD(0x56, 0x08),
- _INIT_DCS_CMD(0x58, 0x21),
- _INIT_DCS_CMD(0x59, 0x40),
- _INIT_DCS_CMD(0x5A, 0x00),
- _INIT_DCS_CMD(0x5B, 0x2C),
- _INIT_DCS_CMD(0x5E, 0x00, 0x10),
- _INIT_DCS_CMD(0x5F, 0x00),
-
- _INIT_DCS_CMD(0x7A, 0x00),
- _INIT_DCS_CMD(0x7B, 0x00),
- _INIT_DCS_CMD(0x7C, 0x00),
- _INIT_DCS_CMD(0x7D, 0x00),
- _INIT_DCS_CMD(0x7E, 0x20),
- _INIT_DCS_CMD(0x7F, 0x3C),
- _INIT_DCS_CMD(0x80, 0x00),
- _INIT_DCS_CMD(0x81, 0x00),
- _INIT_DCS_CMD(0x82, 0x08),
- _INIT_DCS_CMD(0x97, 0x02),
- _INIT_DCS_CMD(0xC5, 0x10),
- _INIT_DCS_CMD(0xDA, 0x05),
- _INIT_DCS_CMD(0xDB, 0x01),
- _INIT_DCS_CMD(0xDC, 0x7A),
- _INIT_DCS_CMD(0xDD, 0x55),
- _INIT_DCS_CMD(0xDE, 0x27),
- _INIT_DCS_CMD(0xDF, 0x01),
- _INIT_DCS_CMD(0xE0, 0x7A),
- _INIT_DCS_CMD(0xE1, 0x01),
- _INIT_DCS_CMD(0xE2, 0x7A),
- _INIT_DCS_CMD(0xE3, 0x01),
- _INIT_DCS_CMD(0xE4, 0x7A),
- _INIT_DCS_CMD(0xE5, 0x01),
- _INIT_DCS_CMD(0xE6, 0x7A),
- _INIT_DCS_CMD(0xE7, 0x00),
- _INIT_DCS_CMD(0xE8, 0x00),
- _INIT_DCS_CMD(0xE9, 0x01),
- _INIT_DCS_CMD(0xEA, 0x7A),
- _INIT_DCS_CMD(0xEB, 0x01),
- _INIT_DCS_CMD(0xEE, 0x7A),
- _INIT_DCS_CMD(0xEF, 0x01),
- _INIT_DCS_CMD(0xF0, 0x7A),
-
- _INIT_DCS_CMD(0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00),
- _INIT_DCS_CMD(0xFF, 0x25),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x05, 0x00),
-
- _INIT_DCS_CMD(0x13, 0x02),
- _INIT_DCS_CMD(0x14, 0xDF),
- _INIT_DCS_CMD(0xF1, 0x10),
- _INIT_DCS_CMD(0x1E, 0x00),
- _INIT_DCS_CMD(0x1F, 0x00),
- _INIT_DCS_CMD(0x20, 0x2C),
- _INIT_DCS_CMD(0x25, 0x00),
- _INIT_DCS_CMD(0x26, 0x00),
- _INIT_DCS_CMD(0x27, 0x2C),
- _INIT_DCS_CMD(0x3F, 0x80),
- _INIT_DCS_CMD(0x40, 0x00),
- _INIT_DCS_CMD(0x43, 0x00),
-
- _INIT_DCS_CMD(0x44, 0x18),
- _INIT_DCS_CMD(0x45, 0x00),
-
- _INIT_DCS_CMD(0x48, 0x00),
- _INIT_DCS_CMD(0x49, 0x2C),
- _INIT_DCS_CMD(0x5B, 0x80),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0x00),
- _INIT_DCS_CMD(0x61, 0x00),
- _INIT_DCS_CMD(0x62, 0x2C),
- _INIT_DCS_CMD(0x68, 0x10),
- _INIT_DCS_CMD(0xFF, 0x26),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x00, 0xA1),
- _INIT_DCS_CMD(0x02, 0x31),
- _INIT_DCS_CMD(0x0A, 0xF2),
- _INIT_DCS_CMD(0x04, 0x28),
- _INIT_DCS_CMD(0x06, 0x30),
- _INIT_DCS_CMD(0x0C, 0x16),
- _INIT_DCS_CMD(0x0D, 0x0D),
- _INIT_DCS_CMD(0x0F, 0x00),
- _INIT_DCS_CMD(0x11, 0x00),
- _INIT_DCS_CMD(0x12, 0x50),
- _INIT_DCS_CMD(0x13, 0x56),
- _INIT_DCS_CMD(0x14, 0x57),
- _INIT_DCS_CMD(0x15, 0x00),
- _INIT_DCS_CMD(0x16, 0x10),
- _INIT_DCS_CMD(0x17, 0xA0),
- _INIT_DCS_CMD(0x18, 0x86),
- _INIT_DCS_CMD(0x22, 0x00),
- _INIT_DCS_CMD(0x23, 0x00),
- _INIT_DCS_CMD(0x19, 0x0D),
- _INIT_DCS_CMD(0x1A, 0x7F),
- _INIT_DCS_CMD(0x1B, 0x0C),
- _INIT_DCS_CMD(0x1C, 0xBF),
- _INIT_DCS_CMD(0x2A, 0x0D),
- _INIT_DCS_CMD(0x2B, 0x7F),
- _INIT_DCS_CMD(0x20, 0x00),
-
- _INIT_DCS_CMD(0x1D, 0x00),
- _INIT_DCS_CMD(0x1E, 0x78),
- _INIT_DCS_CMD(0x1F, 0x78),
-
- _INIT_DCS_CMD(0x2F, 0x03),
- _INIT_DCS_CMD(0x30, 0x78),
- _INIT_DCS_CMD(0x33, 0x78),
- _INIT_DCS_CMD(0x34, 0x66),
- _INIT_DCS_CMD(0x35, 0x11),
-
- _INIT_DCS_CMD(0x39, 0x10),
- _INIT_DCS_CMD(0x3A, 0x78),
- _INIT_DCS_CMD(0x3B, 0x06),
-
- _INIT_DCS_CMD(0xC8, 0x04),
- _INIT_DCS_CMD(0xC9, 0x84),
- _INIT_DCS_CMD(0xCA, 0x4E),
- _INIT_DCS_CMD(0xCB, 0x00),
-
- _INIT_DCS_CMD(0xA9, 0x50),
- _INIT_DCS_CMD(0xAA, 0x4F),
- _INIT_DCS_CMD(0xAB, 0x4D),
- _INIT_DCS_CMD(0xAC, 0x4A),
- _INIT_DCS_CMD(0xAD, 0x48),
- _INIT_DCS_CMD(0xAE, 0x46),
- _INIT_DCS_CMD(0xFF, 0x27),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xC0, 0x18),
- _INIT_DCS_CMD(0xC1, 0x00),
- _INIT_DCS_CMD(0xC2, 0x00),
- _INIT_DCS_CMD(0x56, 0x06),
- _INIT_DCS_CMD(0x58, 0x80),
- _INIT_DCS_CMD(0x59, 0x75),
- _INIT_DCS_CMD(0x5A, 0x00),
- _INIT_DCS_CMD(0x5B, 0x02),
- _INIT_DCS_CMD(0x5C, 0x00),
- _INIT_DCS_CMD(0x5D, 0x00),
- _INIT_DCS_CMD(0x5E, 0x20),
- _INIT_DCS_CMD(0x5F, 0x10),
- _INIT_DCS_CMD(0x60, 0x00),
- _INIT_DCS_CMD(0x61, 0x2E),
- _INIT_DCS_CMD(0x62, 0x00),
- _INIT_DCS_CMD(0x63, 0x01),
- _INIT_DCS_CMD(0x64, 0x43),
- _INIT_DCS_CMD(0x65, 0x2D),
- _INIT_DCS_CMD(0x66, 0x00),
- _INIT_DCS_CMD(0x67, 0x01),
- _INIT_DCS_CMD(0x68, 0x43),
- _INIT_DCS_CMD(0x98, 0x01),
- _INIT_DCS_CMD(0xB4, 0x03),
- _INIT_DCS_CMD(0x9B, 0xBD),
- _INIT_DCS_CMD(0xA0, 0x90),
- _INIT_DCS_CMD(0xAB, 0x1B),
- _INIT_DCS_CMD(0xBC, 0x0C),
- _INIT_DCS_CMD(0xBD, 0x28),
-
- _INIT_DCS_CMD(0xFF, 0x2A),
- _INIT_DCS_CMD(0xFB, 0x01),
-
- _INIT_DCS_CMD(0x22, 0x2F),
- _INIT_DCS_CMD(0x23, 0x08),
-
- _INIT_DCS_CMD(0x24, 0x00),
- _INIT_DCS_CMD(0x25, 0x65),
- _INIT_DCS_CMD(0x26, 0xF8),
- _INIT_DCS_CMD(0x27, 0x00),
- _INIT_DCS_CMD(0x28, 0x1A),
- _INIT_DCS_CMD(0x29, 0x00),
- _INIT_DCS_CMD(0x2A, 0x1A),
- _INIT_DCS_CMD(0x2B, 0x00),
- _INIT_DCS_CMD(0x2D, 0x1A),
-
- _INIT_DCS_CMD(0x64, 0x96),
- _INIT_DCS_CMD(0x65, 0x00),
- _INIT_DCS_CMD(0x66, 0x00),
- _INIT_DCS_CMD(0x6A, 0x96),
- _INIT_DCS_CMD(0x6B, 0x00),
- _INIT_DCS_CMD(0x6C, 0x00),
- _INIT_DCS_CMD(0x70, 0x92),
- _INIT_DCS_CMD(0x71, 0x00),
- _INIT_DCS_CMD(0x72, 0x00),
- _INIT_DCS_CMD(0xA2, 0x33),
- _INIT_DCS_CMD(0xA3, 0x30),
- _INIT_DCS_CMD(0xA4, 0xC0),
- _INIT_DCS_CMD(0xE8, 0x00),
- _INIT_DCS_CMD(0x97, 0x3C),
- _INIT_DCS_CMD(0x98, 0x02),
- _INIT_DCS_CMD(0x99, 0x95),
- _INIT_DCS_CMD(0x9A, 0x06),
- _INIT_DCS_CMD(0x9B, 0x00),
- _INIT_DCS_CMD(0x9C, 0x0B),
- _INIT_DCS_CMD(0x9D, 0x0A),
- _INIT_DCS_CMD(0x9E, 0x90),
- _INIT_DCS_CMD(0xFF, 0xF0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x3A, 0x08),
- _INIT_DCS_CMD(0xFF, 0xD0),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x00, 0x33),
- _INIT_DCS_CMD(0x08, 0x01),
- _INIT_DCS_CMD(0x09, 0xBF),
- _INIT_DCS_CMD(0x2F, 0x33),
- _INIT_DCS_CMD(0xFF, 0x23),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x00, 0x80),
- _INIT_DCS_CMD(0x07, 0x00),
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0x30, 0x00),
- _INIT_DCS_CMD(0xFF, 0x24),
- _INIT_DCS_CMD(0x5C, 0x88),
- _INIT_DCS_CMD(0x5D, 0x08),
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xB9, 0x01),
- _INIT_DCS_CMD(0xFF, 0x20),
- _INIT_DCS_CMD(0x18, 0x40),
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xB9, 0x02),
- _INIT_DCS_CMD(0xFF, 0x10),
- _INIT_DCS_CMD(0xFB, 0x01),
- _INIT_DCS_CMD(0xBB, 0x13),
- _INIT_DCS_CMD(0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04),
- _INIT_DCS_CMD(0x35, 0x00),
- _INIT_DCS_CMD(0x51, 0x0F, 0xFF),
- _INIT_DCS_CMD(0x53, 0x24),
- _INIT_DELAY_CMD(100),
- _INIT_DCS_CMD(0x11),
- _INIT_DELAY_CMD(200),
- _INIT_DCS_CMD(0x29),
- _INIT_DELAY_CMD(100),
- {},
-};
+ return 0;
+}
-static const struct panel_init_cmd boe_init_cmd[] = {
- _INIT_DELAY_CMD(24),
- _INIT_DCS_CMD(0xB0, 0x05),
- _INIT_DCS_CMD(0xB1, 0xE5),
- _INIT_DCS_CMD(0xB3, 0x52),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xB3, 0x88),
- _INIT_DCS_CMD(0xB0, 0x04),
- _INIT_DCS_CMD(0xB8, 0x00),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xB6, 0x03),
- _INIT_DCS_CMD(0xBA, 0x8B),
- _INIT_DCS_CMD(0xBF, 0x1A),
- _INIT_DCS_CMD(0xC0, 0x0F),
- _INIT_DCS_CMD(0xC2, 0x0C),
- _INIT_DCS_CMD(0xC3, 0x02),
- _INIT_DCS_CMD(0xC4, 0x0C),
- _INIT_DCS_CMD(0xC5, 0x02),
- _INIT_DCS_CMD(0xB0, 0x01),
- _INIT_DCS_CMD(0xE0, 0x26),
- _INIT_DCS_CMD(0xE1, 0x26),
- _INIT_DCS_CMD(0xDC, 0x00),
- _INIT_DCS_CMD(0xDD, 0x00),
- _INIT_DCS_CMD(0xCC, 0x26),
- _INIT_DCS_CMD(0xCD, 0x26),
- _INIT_DCS_CMD(0xC8, 0x00),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xD2, 0x03),
- _INIT_DCS_CMD(0xD3, 0x03),
- _INIT_DCS_CMD(0xE6, 0x04),
- _INIT_DCS_CMD(0xE7, 0x04),
- _INIT_DCS_CMD(0xC4, 0x09),
- _INIT_DCS_CMD(0xC5, 0x09),
- _INIT_DCS_CMD(0xD8, 0x0A),
- _INIT_DCS_CMD(0xD9, 0x0A),
- _INIT_DCS_CMD(0xC2, 0x0B),
- _INIT_DCS_CMD(0xC3, 0x0B),
- _INIT_DCS_CMD(0xD6, 0x0C),
- _INIT_DCS_CMD(0xD7, 0x0C),
- _INIT_DCS_CMD(0xC0, 0x05),
- _INIT_DCS_CMD(0xC1, 0x05),
- _INIT_DCS_CMD(0xD4, 0x06),
- _INIT_DCS_CMD(0xD5, 0x06),
- _INIT_DCS_CMD(0xCA, 0x07),
- _INIT_DCS_CMD(0xCB, 0x07),
- _INIT_DCS_CMD(0xDE, 0x08),
- _INIT_DCS_CMD(0xDF, 0x08),
- _INIT_DCS_CMD(0xB0, 0x02),
- _INIT_DCS_CMD(0xC0, 0x00),
- _INIT_DCS_CMD(0xC1, 0x0D),
- _INIT_DCS_CMD(0xC2, 0x17),
- _INIT_DCS_CMD(0xC3, 0x26),
- _INIT_DCS_CMD(0xC4, 0x31),
- _INIT_DCS_CMD(0xC5, 0x1C),
- _INIT_DCS_CMD(0xC6, 0x2C),
- _INIT_DCS_CMD(0xC7, 0x33),
- _INIT_DCS_CMD(0xC8, 0x31),
- _INIT_DCS_CMD(0xC9, 0x37),
- _INIT_DCS_CMD(0xCA, 0x37),
- _INIT_DCS_CMD(0xCB, 0x37),
- _INIT_DCS_CMD(0xCC, 0x39),
- _INIT_DCS_CMD(0xCD, 0x2E),
- _INIT_DCS_CMD(0xCE, 0x2F),
- _INIT_DCS_CMD(0xCF, 0x2F),
- _INIT_DCS_CMD(0xD0, 0x07),
- _INIT_DCS_CMD(0xD2, 0x00),
- _INIT_DCS_CMD(0xD3, 0x0D),
- _INIT_DCS_CMD(0xD4, 0x17),
- _INIT_DCS_CMD(0xD5, 0x26),
- _INIT_DCS_CMD(0xD6, 0x31),
- _INIT_DCS_CMD(0xD7, 0x3F),
- _INIT_DCS_CMD(0xD8, 0x3F),
- _INIT_DCS_CMD(0xD9, 0x3F),
- _INIT_DCS_CMD(0xDA, 0x3F),
- _INIT_DCS_CMD(0xDB, 0x37),
- _INIT_DCS_CMD(0xDC, 0x37),
- _INIT_DCS_CMD(0xDD, 0x37),
- _INIT_DCS_CMD(0xDE, 0x39),
- _INIT_DCS_CMD(0xDF, 0x2E),
- _INIT_DCS_CMD(0xE0, 0x2F),
- _INIT_DCS_CMD(0xE1, 0x2F),
- _INIT_DCS_CMD(0xE2, 0x07),
- _INIT_DCS_CMD(0xB0, 0x03),
- _INIT_DCS_CMD(0xC8, 0x0B),
- _INIT_DCS_CMD(0xC9, 0x07),
- _INIT_DCS_CMD(0xC3, 0x00),
- _INIT_DCS_CMD(0xE7, 0x00),
- _INIT_DCS_CMD(0xC5, 0x2A),
- _INIT_DCS_CMD(0xDE, 0x2A),
- _INIT_DCS_CMD(0xCA, 0x43),
- _INIT_DCS_CMD(0xC9, 0x07),
- _INIT_DCS_CMD(0xE4, 0xC0),
- _INIT_DCS_CMD(0xE5, 0x0D),
- _INIT_DCS_CMD(0xCB, 0x00),
- _INIT_DCS_CMD(0xB0, 0x06),
- _INIT_DCS_CMD(0xB8, 0xA5),
- _INIT_DCS_CMD(0xC0, 0xA5),
- _INIT_DCS_CMD(0xC7, 0x0F),
- _INIT_DCS_CMD(0xD5, 0x32),
- _INIT_DCS_CMD(0xB8, 0x00),
- _INIT_DCS_CMD(0xC0, 0x00),
- _INIT_DCS_CMD(0xBC, 0x00),
- _INIT_DCS_CMD(0xB0, 0x07),
- _INIT_DCS_CMD(0xB1, 0x00),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x0F),
- _INIT_DCS_CMD(0xB4, 0x25),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4E),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x97),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x22),
- _INIT_DCS_CMD(0xBB, 0xA4),
- _INIT_DCS_CMD(0xBC, 0x2B),
- _INIT_DCS_CMD(0xBD, 0x2F),
- _INIT_DCS_CMD(0xBE, 0xA9),
- _INIT_DCS_CMD(0xBF, 0x25),
- _INIT_DCS_CMD(0xC0, 0x61),
- _INIT_DCS_CMD(0xC1, 0x97),
- _INIT_DCS_CMD(0xC2, 0xB2),
- _INIT_DCS_CMD(0xC3, 0xCD),
- _INIT_DCS_CMD(0xC4, 0xD9),
- _INIT_DCS_CMD(0xC5, 0xE7),
- _INIT_DCS_CMD(0xC6, 0xF4),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x08),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x05),
- _INIT_DCS_CMD(0xB3, 0x11),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x98),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x23),
- _INIT_DCS_CMD(0xBB, 0xA6),
- _INIT_DCS_CMD(0xBC, 0x2C),
- _INIT_DCS_CMD(0xBD, 0x30),
- _INIT_DCS_CMD(0xBE, 0xAA),
- _INIT_DCS_CMD(0xBF, 0x26),
- _INIT_DCS_CMD(0xC0, 0x62),
- _INIT_DCS_CMD(0xC1, 0x9B),
- _INIT_DCS_CMD(0xC2, 0xB5),
- _INIT_DCS_CMD(0xC3, 0xCF),
- _INIT_DCS_CMD(0xC4, 0xDB),
- _INIT_DCS_CMD(0xC5, 0xE8),
- _INIT_DCS_CMD(0xC6, 0xF5),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x09),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x16),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x3B),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x73),
- _INIT_DCS_CMD(0xB8, 0x99),
- _INIT_DCS_CMD(0xB9, 0xE0),
- _INIT_DCS_CMD(0xBA, 0x26),
- _INIT_DCS_CMD(0xBB, 0xAD),
- _INIT_DCS_CMD(0xBC, 0x36),
- _INIT_DCS_CMD(0xBD, 0x3A),
- _INIT_DCS_CMD(0xBE, 0xAE),
- _INIT_DCS_CMD(0xBF, 0x2A),
- _INIT_DCS_CMD(0xC0, 0x66),
- _INIT_DCS_CMD(0xC1, 0x9E),
- _INIT_DCS_CMD(0xC2, 0xB8),
- _INIT_DCS_CMD(0xC3, 0xD1),
- _INIT_DCS_CMD(0xC4, 0xDD),
- _INIT_DCS_CMD(0xC5, 0xE9),
- _INIT_DCS_CMD(0xC6, 0xF6),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x0A),
- _INIT_DCS_CMD(0xB1, 0x00),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x0F),
- _INIT_DCS_CMD(0xB4, 0x25),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4E),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x97),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x22),
- _INIT_DCS_CMD(0xBB, 0xA4),
- _INIT_DCS_CMD(0xBC, 0x2B),
- _INIT_DCS_CMD(0xBD, 0x2F),
- _INIT_DCS_CMD(0xBE, 0xA9),
- _INIT_DCS_CMD(0xBF, 0x25),
- _INIT_DCS_CMD(0xC0, 0x61),
- _INIT_DCS_CMD(0xC1, 0x97),
- _INIT_DCS_CMD(0xC2, 0xB2),
- _INIT_DCS_CMD(0xC3, 0xCD),
- _INIT_DCS_CMD(0xC4, 0xD9),
- _INIT_DCS_CMD(0xC5, 0xE7),
- _INIT_DCS_CMD(0xC6, 0xF4),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x0B),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x05),
- _INIT_DCS_CMD(0xB3, 0x11),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x39),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x72),
- _INIT_DCS_CMD(0xB8, 0x98),
- _INIT_DCS_CMD(0xB9, 0xDC),
- _INIT_DCS_CMD(0xBA, 0x23),
- _INIT_DCS_CMD(0xBB, 0xA6),
- _INIT_DCS_CMD(0xBC, 0x2C),
- _INIT_DCS_CMD(0xBD, 0x30),
- _INIT_DCS_CMD(0xBE, 0xAA),
- _INIT_DCS_CMD(0xBF, 0x26),
- _INIT_DCS_CMD(0xC0, 0x62),
- _INIT_DCS_CMD(0xC1, 0x9B),
- _INIT_DCS_CMD(0xC2, 0xB5),
- _INIT_DCS_CMD(0xC3, 0xCF),
- _INIT_DCS_CMD(0xC4, 0xDB),
- _INIT_DCS_CMD(0xC5, 0xE8),
- _INIT_DCS_CMD(0xC6, 0xF5),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x0C),
- _INIT_DCS_CMD(0xB1, 0x04),
- _INIT_DCS_CMD(0xB2, 0x02),
- _INIT_DCS_CMD(0xB3, 0x16),
- _INIT_DCS_CMD(0xB4, 0x24),
- _INIT_DCS_CMD(0xB5, 0x3B),
- _INIT_DCS_CMD(0xB6, 0x4F),
- _INIT_DCS_CMD(0xB7, 0x73),
- _INIT_DCS_CMD(0xB8, 0x99),
- _INIT_DCS_CMD(0xB9, 0xE0),
- _INIT_DCS_CMD(0xBA, 0x26),
- _INIT_DCS_CMD(0xBB, 0xAD),
- _INIT_DCS_CMD(0xBC, 0x36),
- _INIT_DCS_CMD(0xBD, 0x3A),
- _INIT_DCS_CMD(0xBE, 0xAE),
- _INIT_DCS_CMD(0xBF, 0x2A),
- _INIT_DCS_CMD(0xC0, 0x66),
- _INIT_DCS_CMD(0xC1, 0x9E),
- _INIT_DCS_CMD(0xC2, 0xB8),
- _INIT_DCS_CMD(0xC3, 0xD1),
- _INIT_DCS_CMD(0xC4, 0xDD),
- _INIT_DCS_CMD(0xC5, 0xE9),
- _INIT_DCS_CMD(0xC6, 0xF6),
- _INIT_DCS_CMD(0xC7, 0xFA),
- _INIT_DCS_CMD(0xC8, 0xFC),
- _INIT_DCS_CMD(0xC9, 0x00),
- _INIT_DCS_CMD(0xCA, 0x00),
- _INIT_DCS_CMD(0xCB, 0x16),
- _INIT_DCS_CMD(0xCC, 0xAF),
- _INIT_DCS_CMD(0xCD, 0xFF),
- _INIT_DCS_CMD(0xCE, 0xFF),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xB3, 0x08),
- _INIT_DCS_CMD(0xB0, 0x04),
- _INIT_DCS_CMD(0xB8, 0x68),
- _INIT_DELAY_CMD(150),
- {},
-};
+static int inx_hj110iz_init(struct mipi_dsi_device *dsi) {
+ int ret;
-static const struct panel_init_cmd auo_kd101n80_45na_init_cmd[] = {
- _INIT_DELAY_CMD(24),
- _INIT_DCS_CMD(0x11),
- _INIT_DELAY_CMD(120),
- _INIT_DCS_CMD(0x29),
- _INIT_DELAY_CMD(120),
- {},
-};
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD1);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x8C);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x4B);
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x69);
+ mipi_dsi_dcs_write_seq(dsi, 0x95, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x69, 0x98);
+ mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
+ mipi_dsi_dcs_write_seq(dsi, 0x77, 0xB3);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x92, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x94, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x60, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0xD0);
+ mipi_dsi_dcs_write_seq(dsi, 0x63, 0x70);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xCF);
+ mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x01, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x03, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x09, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x12);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x10, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x1D);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0x21, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x12);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x0E);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x03);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x32);
+ mipi_dsi_dcs_write_seq(dsi, 0x31, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x93);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x40);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x4F, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x50, 0x87);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x52, 0x56);
+ mipi_dsi_dcs_write_seq(dsi, 0x53, 0x34);
+ mipi_dsi_dcs_write_seq(dsi, 0x54, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x55, 0x83);
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x7A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0x80, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x81, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x82, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0x97, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x55);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x27);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xE9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xEA, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xEB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xEE, 0x7A);
+ mipi_dsi_dcs_write_seq(dsi, 0xEF, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xF0, 0x7A);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0xDF);
+ mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x43, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x44, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0x45, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x48, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x49, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0x68, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
+ mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0x0A, 0xF2);
+ mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
+ mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
+ mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
+ mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
+ mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
+ mipi_dsi_dcs_write_seq(dsi, 0x20, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x78);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x33, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x34, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x11);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x39, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x78);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x06);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x84);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x4D);
+ mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x4A);
+ mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
+ mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
+ mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x68, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0x98, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0x9B, 0xBD);
+ mipi_dsi_dcs_write_seq(dsi, 0xA0, 0x90);
+ mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x1B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x28);
+
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
+ mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
+ mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
+
+ mipi_dsi_dcs_write_seq(dsi, 0x64, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0x65, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x96);
+ mipi_dsi_dcs_write_seq(dsi, 0x6B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x6C, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x70, 0x92);
+ mipi_dsi_dcs_write_seq(dsi, 0x71, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x72, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xA2, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0xA3, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xC0);
+ mipi_dsi_dcs_write_seq(dsi, 0xE8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x97, 0x3C);
+ mipi_dsi_dcs_write_seq(dsi, 0x98, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0x99, 0x95);
+ mipi_dsi_dcs_write_seq(dsi, 0x9A, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0x9B, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x9C, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0x9D, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0x9E, 0x90);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xD0);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0x08, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x09, 0xBF);
+ mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
+ mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x88);
+ mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0x51, 0x0F, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
+ msleep(100);
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(200);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(100);
-static const struct panel_init_cmd auo_b101uan08_3_init_cmd[] = {
- _INIT_DELAY_CMD(24),
- _INIT_DCS_CMD(0xB0, 0x01),
- _INIT_DCS_CMD(0xC0, 0x48),
- _INIT_DCS_CMD(0xC1, 0x48),
- _INIT_DCS_CMD(0xC2, 0x47),
- _INIT_DCS_CMD(0xC3, 0x47),
- _INIT_DCS_CMD(0xC4, 0x46),
- _INIT_DCS_CMD(0xC5, 0x46),
- _INIT_DCS_CMD(0xC6, 0x45),
- _INIT_DCS_CMD(0xC7, 0x45),
- _INIT_DCS_CMD(0xC8, 0x64),
- _INIT_DCS_CMD(0xC9, 0x64),
- _INIT_DCS_CMD(0xCA, 0x4F),
- _INIT_DCS_CMD(0xCB, 0x4F),
- _INIT_DCS_CMD(0xCC, 0x40),
- _INIT_DCS_CMD(0xCD, 0x40),
- _INIT_DCS_CMD(0xCE, 0x66),
- _INIT_DCS_CMD(0xCF, 0x66),
- _INIT_DCS_CMD(0xD0, 0x4F),
- _INIT_DCS_CMD(0xD1, 0x4F),
- _INIT_DCS_CMD(0xD2, 0x41),
- _INIT_DCS_CMD(0xD3, 0x41),
- _INIT_DCS_CMD(0xD4, 0x48),
- _INIT_DCS_CMD(0xD5, 0x48),
- _INIT_DCS_CMD(0xD6, 0x47),
- _INIT_DCS_CMD(0xD7, 0x47),
- _INIT_DCS_CMD(0xD8, 0x46),
- _INIT_DCS_CMD(0xD9, 0x46),
- _INIT_DCS_CMD(0xDA, 0x45),
- _INIT_DCS_CMD(0xDB, 0x45),
- _INIT_DCS_CMD(0xDC, 0x64),
- _INIT_DCS_CMD(0xDD, 0x64),
- _INIT_DCS_CMD(0xDE, 0x4F),
- _INIT_DCS_CMD(0xDF, 0x4F),
- _INIT_DCS_CMD(0xE0, 0x40),
- _INIT_DCS_CMD(0xE1, 0x40),
- _INIT_DCS_CMD(0xE2, 0x66),
- _INIT_DCS_CMD(0xE3, 0x66),
- _INIT_DCS_CMD(0xE4, 0x4F),
- _INIT_DCS_CMD(0xE5, 0x4F),
- _INIT_DCS_CMD(0xE6, 0x41),
- _INIT_DCS_CMD(0xE7, 0x41),
- _INIT_DELAY_CMD(150),
- {},
-};
+ return 0;
+}
-static const struct panel_init_cmd starry_qfh032011_53g_init_cmd[] = {
- _INIT_DCS_CMD(0xB0, 0x01),
- _INIT_DCS_CMD(0xC3, 0x4F),
- _INIT_DCS_CMD(0xC4, 0x40),
- _INIT_DCS_CMD(0xC5, 0x40),
- _INIT_DCS_CMD(0xC6, 0x40),
- _INIT_DCS_CMD(0xC7, 0x40),
- _INIT_DCS_CMD(0xC8, 0x4D),
- _INIT_DCS_CMD(0xC9, 0x52),
- _INIT_DCS_CMD(0xCA, 0x51),
- _INIT_DCS_CMD(0xCD, 0x5D),
- _INIT_DCS_CMD(0xCE, 0x5B),
- _INIT_DCS_CMD(0xCF, 0x4B),
- _INIT_DCS_CMD(0xD0, 0x49),
- _INIT_DCS_CMD(0xD1, 0x47),
- _INIT_DCS_CMD(0xD2, 0x45),
- _INIT_DCS_CMD(0xD3, 0x41),
- _INIT_DCS_CMD(0xD7, 0x50),
- _INIT_DCS_CMD(0xD8, 0x40),
- _INIT_DCS_CMD(0xD9, 0x40),
- _INIT_DCS_CMD(0xDA, 0x40),
- _INIT_DCS_CMD(0xDB, 0x40),
- _INIT_DCS_CMD(0xDC, 0x4E),
- _INIT_DCS_CMD(0xDD, 0x52),
- _INIT_DCS_CMD(0xDE, 0x51),
- _INIT_DCS_CMD(0xE1, 0x5E),
- _INIT_DCS_CMD(0xE2, 0x5C),
- _INIT_DCS_CMD(0xE3, 0x4C),
- _INIT_DCS_CMD(0xE4, 0x4A),
- _INIT_DCS_CMD(0xE5, 0x48),
- _INIT_DCS_CMD(0xE6, 0x46),
- _INIT_DCS_CMD(0xE7, 0x42),
- _INIT_DCS_CMD(0xB0, 0x03),
- _INIT_DCS_CMD(0xBE, 0x03),
- _INIT_DCS_CMD(0xCC, 0x44),
- _INIT_DCS_CMD(0xC8, 0x07),
- _INIT_DCS_CMD(0xC9, 0x05),
- _INIT_DCS_CMD(0xCA, 0x42),
- _INIT_DCS_CMD(0xCD, 0x3E),
- _INIT_DCS_CMD(0xCF, 0x60),
- _INIT_DCS_CMD(0xD2, 0x04),
- _INIT_DCS_CMD(0xD3, 0x04),
- _INIT_DCS_CMD(0xD4, 0x01),
- _INIT_DCS_CMD(0xD5, 0x00),
- _INIT_DCS_CMD(0xD6, 0x03),
- _INIT_DCS_CMD(0xD7, 0x04),
- _INIT_DCS_CMD(0xD9, 0x01),
- _INIT_DCS_CMD(0xDB, 0x01),
- _INIT_DCS_CMD(0xE4, 0xF0),
- _INIT_DCS_CMD(0xE5, 0x0A),
- _INIT_DCS_CMD(0xB0, 0x00),
- _INIT_DCS_CMD(0xCC, 0x08),
- _INIT_DCS_CMD(0xC2, 0x08),
- _INIT_DCS_CMD(0xC4, 0x10),
- _INIT_DCS_CMD(0xB0, 0x02),
- _INIT_DCS_CMD(0xC0, 0x00),
- _INIT_DCS_CMD(0xC1, 0x0A),
- _INIT_DCS_CMD(0xC2, 0x20),
- _INIT_DCS_CMD(0xC3, 0x24),
- _INIT_DCS_CMD(0xC4, 0x23),
- _INIT_DCS_CMD(0xC5, 0x29),
- _INIT_DCS_CMD(0xC6, 0x23),
- _INIT_DCS_CMD(0xC7, 0x1C),
- _INIT_DCS_CMD(0xC8, 0x19),
- _INIT_DCS_CMD(0xC9, 0x17),
- _INIT_DCS_CMD(0xCA, 0x17),
- _INIT_DCS_CMD(0xCB, 0x18),
- _INIT_DCS_CMD(0xCC, 0x1A),
- _INIT_DCS_CMD(0xCD, 0x1E),
- _INIT_DCS_CMD(0xCE, 0x20),
- _INIT_DCS_CMD(0xCF, 0x23),
- _INIT_DCS_CMD(0xD0, 0x07),
- _INIT_DCS_CMD(0xD1, 0x00),
- _INIT_DCS_CMD(0xD2, 0x00),
- _INIT_DCS_CMD(0xD3, 0x0A),
- _INIT_DCS_CMD(0xD4, 0x13),
- _INIT_DCS_CMD(0xD5, 0x1C),
- _INIT_DCS_CMD(0xD6, 0x1A),
- _INIT_DCS_CMD(0xD7, 0x13),
- _INIT_DCS_CMD(0xD8, 0x17),
- _INIT_DCS_CMD(0xD9, 0x1C),
- _INIT_DCS_CMD(0xDA, 0x19),
- _INIT_DCS_CMD(0xDB, 0x17),
- _INIT_DCS_CMD(0xDC, 0x17),
- _INIT_DCS_CMD(0xDD, 0x18),
- _INIT_DCS_CMD(0xDE, 0x1A),
- _INIT_DCS_CMD(0xDF, 0x1E),
- _INIT_DCS_CMD(0xE0, 0x20),
- _INIT_DCS_CMD(0xE1, 0x23),
- _INIT_DCS_CMD(0xE2, 0x07),
- _INIT_DCS_CMD(0X11),
- _INIT_DELAY_CMD(120),
- _INIT_DCS_CMD(0X29),
- _INIT_DELAY_CMD(80),
- {},
-};
+static int boe_init(struct mipi_dsi_device *dsi)
+{
+ msleep(24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0xE5);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x88);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x8B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x09);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x09);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x33);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x31);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x3F);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x37);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x2E);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x43);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xC0);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0D);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x06);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0xA5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0xA5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x32);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x09);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x0F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x22);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA4);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2B);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x2F);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xA9);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x25);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x61);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x97);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB2);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xD9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE7);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF4);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x11);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x39);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x72);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x98);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xDC);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xA6);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x2C);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x30);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAA);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x62);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9B);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xCF);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDB);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF5);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x0C);
+ mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x3B);
+ mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x73);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x99);
+ mipi_dsi_dcs_write_seq(dsi, 0xB9, 0xE0);
+ mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x26);
+ mipi_dsi_dcs_write_seq(dsi, 0xBB, 0xAD);
+ mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x36);
+ mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x3A);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0xAE);
+ mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x2A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x9E);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0xB8);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0xD1);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0xDD);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0xE9);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0xF6);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0xFA);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0xFC);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x16);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0xAF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0xFF);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x68);
+ msleep(150);
-static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+ return 0;
+}
+
+static int auo_kd101n80_45na_init(struct mipi_dsi_device *dsi)
{
- return container_of(panel, struct boe_panel, base);
+ int ret;
+
+ msleep(24);
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(120);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(120);
+
+ return 0;
}
-static int boe_panel_init_dcs_cmd(struct boe_panel *boe)
+static int auo_b101uan08_3_init(struct mipi_dsi_device *dsi)
{
- struct mipi_dsi_device *dsi = boe->dsi;
- struct drm_panel *panel = &boe->base;
- int i, err = 0;
-
- if (boe->desc->init_cmds) {
- const struct panel_init_cmd *init_cmds = boe->desc->init_cmds;
-
- for (i = 0; init_cmds[i].len != 0; i++) {
- const struct panel_init_cmd *cmd = &init_cmds[i];
-
- switch (cmd->type) {
- case DELAY_CMD:
- msleep(cmd->data[0]);
- err = 0;
- break;
-
- case INIT_DCS_CMD:
- err = mipi_dsi_dcs_write(dsi, cmd->data[0],
- cmd->len <= 1 ? NULL :
- &cmd->data[1],
- cmd->len - 1);
- break;
-
- default:
- err = -EINVAL;
- }
-
- if (err < 0) {
- dev_err(panel->dev,
- "failed to write command %u\n", i);
- return err;
- }
- }
- }
+ msleep(24);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x64);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x66);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x41);
+ msleep(150);
+
+ return 0;
+}
+
+static int starry_qfh032011_53g_init(struct mipi_dsi_device *dsi)
+{
+ int ret;
+
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x4D);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x51);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x5D);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x5B);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x4B);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x49);
+ mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x47);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x45);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x41);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x50);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x40);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x4E);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x52);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x51);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x5E);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x5C);
+ mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x4C);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0x4A);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x48);
+ mipi_dsi_dcs_write_seq(dsi, 0xE6, 0x46);
+ mipi_dsi_dcs_write_seq(dsi, 0xE7, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x44);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x05);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x42);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x3E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x60);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x03);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x04);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x01);
+ mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xF0);
+ mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x08);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x10);
+ mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x02);
+ mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x24);
+ mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x29);
+ mipi_dsi_dcs_write_seq(dsi, 0xC6, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xC7, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x19);
+ mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0xCC, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xCD, 0x1E);
+ mipi_dsi_dcs_write_seq(dsi, 0xCE, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xCF, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xD0, 0x07);
+ mipi_dsi_dcs_write_seq(dsi, 0xD1, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD2, 0x00);
+ mipi_dsi_dcs_write_seq(dsi, 0xD3, 0x0A);
+ mipi_dsi_dcs_write_seq(dsi, 0xD4, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0xD5, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x13);
+ mipi_dsi_dcs_write_seq(dsi, 0xD8, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xD9, 0x1C);
+ mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x19);
+ mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xDC, 0x17);
+ mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x18);
+ mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x1A);
+ mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x1E);
+ mipi_dsi_dcs_write_seq(dsi, 0xE0, 0x20);
+ mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x23);
+ mipi_dsi_dcs_write_seq(dsi, 0xE2, 0x07);
+
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret)
+ return ret;
+ msleep(120);
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret)
+ return ret;
+ msleep(80);
+
return 0;
}
+static inline struct boe_panel *to_boe_panel(struct drm_panel *panel)
+{
+ return container_of(panel, struct boe_panel, base);
+}
+
static int boe_panel_enter_sleep_mode(struct boe_panel *boe)
{
struct mipi_dsi_device *dsi = boe->dsi;
@@ -1373,10 +1349,12 @@ static int boe_panel_prepare(struct drm_panel *panel)
gpiod_set_value(boe->enable_gpio, 1);
usleep_range(6000, 10000);
- ret = boe_panel_init_dcs_cmd(boe);
- if (ret < 0) {
- dev_err(panel->dev, "failed to init panel: %d\n", ret);
- goto poweroff;
+ if (boe->desc->init) {
+ ret = boe->desc->init(boe->dsi);
+ if (ret < 0) {
+ dev_err(panel->dev, "failed to init panel: %d\n", ret);
+ goto poweroff;
+ }
}
boe->prepared = true;
@@ -1427,7 +1405,7 @@ static const struct panel_desc boe_tv110c9m_desc = {
| MIPI_DSI_MODE_VIDEO_HSE
| MIPI_DSI_CLOCK_NON_CONTINUOUS
| MIPI_DSI_MODE_VIDEO_BURST,
- .init_cmds = boe_tv110c9m_init_cmd,
+ .init = boe_tv110c9m_init,
};
static const struct drm_display_mode inx_hj110iz_default_mode = {
@@ -1456,7 +1434,7 @@ static const struct panel_desc inx_hj110iz_desc = {
| MIPI_DSI_MODE_VIDEO_HSE
| MIPI_DSI_CLOCK_NON_CONTINUOUS
| MIPI_DSI_MODE_VIDEO_BURST,
- .init_cmds = inx_hj110iz_init_cmd,
+ .init = inx_hj110iz_init,
};
static const struct drm_display_mode boe_tv101wum_nl6_default_mode = {
@@ -1482,7 +1460,7 @@ static const struct panel_desc boe_tv101wum_nl6_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = boe_init_cmd,
+ .init = boe_init,
.discharge_on_disable = false,
};
@@ -1509,7 +1487,7 @@ static const struct panel_desc auo_kd101n80_45na_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = auo_kd101n80_45na_init_cmd,
+ .init = auo_kd101n80_45na_init,
.discharge_on_disable = true,
};
@@ -1537,7 +1515,7 @@ static const struct panel_desc boe_tv101wum_n53_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = boe_init_cmd,
+ .init = boe_init,
};
static const struct drm_display_mode auo_b101uan08_3_default_mode = {
@@ -1564,7 +1542,7 @@ static const struct panel_desc auo_b101uan08_3_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = auo_b101uan08_3_init_cmd,
+ .init = auo_b101uan08_3_init,
};
static const struct drm_display_mode boe_tv105wum_nw0_default_mode = {
@@ -1591,7 +1569,7 @@ static const struct panel_desc boe_tv105wum_nw0_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = boe_init_cmd,
+ .init = boe_init,
};
static const struct drm_display_mode starry_qfh032011_53g_default_mode = {
@@ -1617,7 +1595,7 @@ static const struct panel_desc starry_qfh032011_53g_desc = {
.format = MIPI_DSI_FMT_RGB888,
.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_LPM,
- .init_cmds = starry_qfh032011_53g_init_cmd,
+ .init = starry_qfh032011_53g_init,
};
static int boe_panel_get_modes(struct drm_panel *panel,
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/2] drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
2023-06-16 21:07 ` Linus Walleij
@ 2023-06-16 21:07 ` Linus Walleij
-1 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: dri-devel, linux-kernel, Linus Walleij
The DRM panel core already keeps track of if the panel is already
prepared so do not reimplement this.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index bc806d420ca7..24fbc1629e40 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -50,8 +50,6 @@ struct boe_panel {
struct regulator *avee;
struct regulator *avdd;
struct gpio_desc *enable_gpio;
-
- bool prepared;
};
static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
@@ -1286,9 +1284,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
{
struct boe_panel *boe = to_boe_panel(panel);
- if (!boe->prepared)
- return 0;
-
if (boe->desc->discharge_on_disable) {
regulator_disable(boe->avee);
regulator_disable(boe->avdd);
@@ -1307,8 +1302,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
regulator_disable(boe->pp3300);
}
- boe->prepared = false;
-
return 0;
}
@@ -1317,9 +1310,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
struct boe_panel *boe = to_boe_panel(panel);
int ret;
- if (boe->prepared)
- return 0;
-
gpiod_set_value(boe->enable_gpio, 0);
usleep_range(1000, 1500);
@@ -1357,8 +1347,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
}
}
- boe->prepared = true;
-
return 0;
poweroff:
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/2] drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
@ 2023-06-16 21:07 ` Linus Walleij
0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2023-06-16 21:07 UTC (permalink / raw)
To: Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi, Neil Armstrong,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: linux-kernel, dri-devel
The DRM panel core already keeps track of if the panel is already
prepared so do not reimplement this.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
index bc806d420ca7..24fbc1629e40 100644
--- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
+++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
@@ -50,8 +50,6 @@ struct boe_panel {
struct regulator *avee;
struct regulator *avdd;
struct gpio_desc *enable_gpio;
-
- bool prepared;
};
static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
@@ -1286,9 +1284,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
{
struct boe_panel *boe = to_boe_panel(panel);
- if (!boe->prepared)
- return 0;
-
if (boe->desc->discharge_on_disable) {
regulator_disable(boe->avee);
regulator_disable(boe->avdd);
@@ -1307,8 +1302,6 @@ static int boe_panel_unprepare(struct drm_panel *panel)
regulator_disable(boe->pp3300);
}
- boe->prepared = false;
-
return 0;
}
@@ -1317,9 +1310,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
struct boe_panel *boe = to_boe_panel(panel);
int ret;
- if (boe->prepared)
- return 0;
-
gpiod_set_value(boe->enable_gpio, 0);
usleep_range(1000, 1500);
@@ -1357,8 +1347,6 @@ static int boe_panel_prepare(struct drm_panel *panel)
}
}
- boe->prepared = true;
-
return 0;
poweroff:
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
2023-06-16 21:07 ` Linus Walleij
@ 2023-06-30 9:48 ` Neil Armstrong
-1 siblings, 0 replies; 9+ messages in thread
From: Neil Armstrong @ 2023-06-30 9:48 UTC (permalink / raw)
To: Linus Walleij, Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: linux-kernel, dri-devel
Hi Linus,
On 16/06/2023 23:07, Linus Walleij wrote:
> This is two patches fixing things I would normally complain about
> in reviews, but alas I missed this one, so I go in and fix it up
> myself.
The serie doesn't apply cleanly on drm-misc-next.
Thanks,
Neil
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Changes in v2:
> - Fix a missed static keyword
> - Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org
>
> ---
> Linus Walleij (2):
> drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
> drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
>
> drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
> 1 file changed, 1193 insertions(+), 1227 deletions(-)
> ---
> base-commit: ac9a78681b921877518763ba0e89202254349d1b
> change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44
>
> Best regards,
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver
@ 2023-06-30 9:48 ` Neil Armstrong
0 siblings, 0 replies; 9+ messages in thread
From: Neil Armstrong @ 2023-06-30 9:48 UTC (permalink / raw)
To: Linus Walleij, Ruihai Zhou, Stephen Boyd, yangcong, Jitao Shi,
Sam Ravnborg, David Airlie, Daniel Vetter
Cc: dri-devel, linux-kernel
Hi Linus,
On 16/06/2023 23:07, Linus Walleij wrote:
> This is two patches fixing things I would normally complain about
> in reviews, but alas I missed this one, so I go in and fix it up
> myself.
The serie doesn't apply cleanly on drm-misc-next.
Thanks,
Neil
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Changes in v2:
> - Fix a missed static keyword
> - Link to v1: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v1-0-8ac378405fb7@linaro.org
>
> ---
> Linus Walleij (2):
> drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
> drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking
>
> drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 2420 ++++++++++++------------
> 1 file changed, 1193 insertions(+), 1227 deletions(-)
> ---
> base-commit: ac9a78681b921877518763ba0e89202254349d1b
> change-id: 20230615-fix-boe-tv101wum-nl6-6aa3fab22b44
>
> Best regards,
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
@ 2023-06-17 15:43 kernel test robot
0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2023-06-17 15:43 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230615-fix-boe-tv101wum-nl6-v2-1-457d7ece4590@linaro.org>
References: <20230615-fix-boe-tv101wum-nl6-v2-1-457d7ece4590@linaro.org>
TO: Linus Walleij <linus.walleij@linaro.org>
TO: Ruihai Zhou <zhouruihai@huaqin.corp-partner.google.com>
TO: Stephen Boyd <swboyd@chromium.org>
TO: yangcong <yangcong5@huaqin.corp-partner.google.com>
TO: Jitao Shi <jitao.shi@mediatek.com>
TO: Neil Armstrong <neil.armstrong@linaro.org>
TO: Sam Ravnborg <sam@ravnborg.org>
TO: David Airlie <airlied@gmail.com>
TO: Daniel Vetter <daniel@ffwll.ch>
CC: linux-kernel@vger.kernel.org
CC: dri-devel@lists.freedesktop.org
Hi Linus,
kernel test robot noticed the following build warnings:
[auto build test WARNING on ac9a78681b921877518763ba0e89202254349d1b]
url: https://github.com/intel-lab-lkp/linux/commits/Linus-Walleij/drm-panel-boe-tv101wum-nl6-Drop-macros-and-open-code-sequences/20230617-050920
base: ac9a78681b921877518763ba0e89202254349d1b
patch link: https://lore.kernel.org/r/20230615-fix-boe-tv101wum-nl6-v2-1-457d7ece4590%40linaro.org
patch subject: [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences
:::::: branch date: 18 hours ago
:::::: commit date: 18 hours ago
config: x86_64-randconfig-m001-20230617 (https://download.01.org/0day-ci/archive/20230617/202306172300.HNeMG90x-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230617/202306172300.HNeMG90x-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202306172300.HNeMG90x-lkp@intel.com/
smatch warnings:
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:161 boe_tv110c9m_init() warn: Function too hairy. No more merges.
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:519 inx_hj110iz_init() warn: Function too hairy. No more merges.
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:857 boe_init() warn: Function too hairy. No more merges.
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c:1222 starry_qfh032011_53g_init() warn: Function too hairy. No more merges.
vim +161 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
a869b9db7adf3bd Jitao Shi 2020-01-16 56
f24d88dac9221ea Linus Walleij 2023-06-16 57 static int boe_tv110c9m_init(struct mipi_dsi_device *dsi)
f24d88dac9221ea Linus Walleij 2023-06-16 58 {
f24d88dac9221ea Linus Walleij 2023-06-16 59 int ret;
a869b9db7adf3bd Jitao Shi 2020-01-16 60
f24d88dac9221ea Linus Walleij 2023-06-16 61 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16 62 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 63 mipi_dsi_dcs_write_seq(dsi, 0x05, 0xD9);
f24d88dac9221ea Linus Walleij 2023-06-16 64 mipi_dsi_dcs_write_seq(dsi, 0x07, 0x78);
f24d88dac9221ea Linus Walleij 2023-06-16 65 mipi_dsi_dcs_write_seq(dsi, 0x08, 0x5A);
f24d88dac9221ea Linus Walleij 2023-06-16 66 mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x63);
f24d88dac9221ea Linus Walleij 2023-06-16 67 mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x91);
f24d88dac9221ea Linus Walleij 2023-06-16 68 mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16 69 mipi_dsi_dcs_write_seq(dsi, 0x95, 0xE6);
f24d88dac9221ea Linus Walleij 2023-06-16 70 mipi_dsi_dcs_write_seq(dsi, 0x96, 0xF0);
f24d88dac9221ea Linus Walleij 2023-06-16 71 mipi_dsi_dcs_write_seq(dsi, 0x30, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 72 mipi_dsi_dcs_write_seq(dsi, 0x6D, 0x66);
f24d88dac9221ea Linus Walleij 2023-06-16 73 mipi_dsi_dcs_write_seq(dsi, 0x75, 0xA2);
f24d88dac9221ea Linus Walleij 2023-06-16 74 mipi_dsi_dcs_write_seq(dsi, 0x77, 0x3B);
93ee1a2c0f08345 yangcong 2021-09-14 75
f24d88dac9221ea Linus Walleij 2023-06-16 76 mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
f24d88dac9221ea Linus Walleij 2023-06-16 77 mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16 78 mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
f24d88dac9221ea Linus Walleij 2023-06-16 79 mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
93ee1a2c0f08345 yangcong 2021-09-14 80
f24d88dac9221ea Linus Walleij 2023-06-16 81 mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
f24d88dac9221ea Linus Walleij 2023-06-16 82 mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16 83 mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
f24d88dac9221ea Linus Walleij 2023-06-16 84 mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16 85 mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x08, 0x00, 0x23, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x89, 0x00, 0xA1, 0x00, 0xB6, 0x00, 0xC9);
f24d88dac9221ea Linus Walleij 2023-06-16 86 mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xDA, 0x01, 0x13, 0x01, 0x3C, 0x01, 0x7E, 0x01, 0xAB, 0x01, 0xF7, 0x02, 0x2F, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16 87 mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x67, 0x02, 0xA6, 0x02, 0xD1, 0x03, 0x08, 0x03, 0x2E, 0x03, 0x5B, 0x03, 0x6B, 0x03, 0x7B);
f24d88dac9221ea Linus Walleij 2023-06-16 88 mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x8E, 0x03, 0xA2, 0x03, 0xB7, 0x03, 0xE7, 0x03, 0xFD, 0x03, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16 89
f24d88dac9221ea Linus Walleij 2023-06-16 90 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x21);
f24d88dac9221ea Linus Walleij 2023-06-16 91 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 92
f24d88dac9221ea Linus Walleij 2023-06-16 93 mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
f24d88dac9221ea Linus Walleij 2023-06-16 94 mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
f24d88dac9221ea Linus Walleij 2023-06-16 95 mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16 96
f24d88dac9221ea Linus Walleij 2023-06-16 97 mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16 98 mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
f24d88dac9221ea Linus Walleij 2023-06-16 99 mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
f24d88dac9221ea Linus Walleij 2023-06-16 100 mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16 101 mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16 102
f24d88dac9221ea Linus Walleij 2023-06-16 103 mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x45, 0x00, 0x65, 0x00, 0x81, 0x00, 0x99, 0x00, 0xAE, 0x00, 0xC1);
f24d88dac9221ea Linus Walleij 2023-06-16 104 mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x00, 0xD2, 0x01, 0x0B, 0x01, 0x34, 0x01, 0x76, 0x01, 0xA3, 0x01, 0xEF, 0x02, 0x27, 0x02, 0x29);
f24d88dac9221ea Linus Walleij 2023-06-16 105 mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x02, 0x5F, 0x02, 0x9E, 0x02, 0xC9, 0x03, 0x00, 0x03, 0x26, 0x03, 0x53, 0x03, 0x63, 0x03, 0x73);
f24d88dac9221ea Linus Walleij 2023-06-16 106
f24d88dac9221ea Linus Walleij 2023-06-16 107 mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x03, 0x86, 0x03, 0x9A, 0x03, 0xAF, 0x03, 0xDF, 0x03, 0xF5, 0x03, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16 108 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x24);
f24d88dac9221ea Linus Walleij 2023-06-16 109 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 110
f24d88dac9221ea Linus Walleij 2023-06-16 111 mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 112 mipi_dsi_dcs_write_seq(dsi, 0x01, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 113
f24d88dac9221ea Linus Walleij 2023-06-16 114 mipi_dsi_dcs_write_seq(dsi, 0x02, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16 115 mipi_dsi_dcs_write_seq(dsi, 0x03, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16 116
f24d88dac9221ea Linus Walleij 2023-06-16 117 mipi_dsi_dcs_write_seq(dsi, 0x04, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16 118 mipi_dsi_dcs_write_seq(dsi, 0x05, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16 119
f24d88dac9221ea Linus Walleij 2023-06-16 120 mipi_dsi_dcs_write_seq(dsi, 0x06, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 121 mipi_dsi_dcs_write_seq(dsi, 0x07, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 122
f24d88dac9221ea Linus Walleij 2023-06-16 123 mipi_dsi_dcs_write_seq(dsi, 0x08, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16 124 mipi_dsi_dcs_write_seq(dsi, 0x09, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16 125
f24d88dac9221ea Linus Walleij 2023-06-16 126 mipi_dsi_dcs_write_seq(dsi, 0x0A, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16 127 mipi_dsi_dcs_write_seq(dsi, 0x0B, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16 128
f24d88dac9221ea Linus Walleij 2023-06-16 129 mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16 130 mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16 131
f24d88dac9221ea Linus Walleij 2023-06-16 132 mipi_dsi_dcs_write_seq(dsi, 0x0E, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16 133 mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16 134
f24d88dac9221ea Linus Walleij 2023-06-16 135 mipi_dsi_dcs_write_seq(dsi, 0x10, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 136 mipi_dsi_dcs_write_seq(dsi, 0x11, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 137
f24d88dac9221ea Linus Walleij 2023-06-16 138 mipi_dsi_dcs_write_seq(dsi, 0x12, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 139 mipi_dsi_dcs_write_seq(dsi, 0x13, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 140 mipi_dsi_dcs_write_seq(dsi, 0x14, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 141 mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 142
f24d88dac9221ea Linus Walleij 2023-06-16 143 mipi_dsi_dcs_write_seq(dsi, 0x16, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 144 mipi_dsi_dcs_write_seq(dsi, 0x17, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 145
f24d88dac9221ea Linus Walleij 2023-06-16 146 mipi_dsi_dcs_write_seq(dsi, 0x18, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16 147 mipi_dsi_dcs_write_seq(dsi, 0x19, 0x1C);
f24d88dac9221ea Linus Walleij 2023-06-16 148
f24d88dac9221ea Linus Walleij 2023-06-16 149 mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16 150 mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x1D);
f24d88dac9221ea Linus Walleij 2023-06-16 151
f24d88dac9221ea Linus Walleij 2023-06-16 152 mipi_dsi_dcs_write_seq(dsi, 0x1C, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 153 mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 154
f24d88dac9221ea Linus Walleij 2023-06-16 155 mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16 156 mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x0F);
f24d88dac9221ea Linus Walleij 2023-06-16 157
f24d88dac9221ea Linus Walleij 2023-06-16 158 mipi_dsi_dcs_write_seq(dsi, 0x20, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16 159 mipi_dsi_dcs_write_seq(dsi, 0x21, 0x0E);
f24d88dac9221ea Linus Walleij 2023-06-16 160
f24d88dac9221ea Linus Walleij 2023-06-16 @161 mipi_dsi_dcs_write_seq(dsi, 0x22, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16 162 mipi_dsi_dcs_write_seq(dsi, 0x23, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16 163
f24d88dac9221ea Linus Walleij 2023-06-16 164 mipi_dsi_dcs_write_seq(dsi, 0x24, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16 165 mipi_dsi_dcs_write_seq(dsi, 0x25, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16 166
f24d88dac9221ea Linus Walleij 2023-06-16 167 mipi_dsi_dcs_write_seq(dsi, 0x26, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 168 mipi_dsi_dcs_write_seq(dsi, 0x27, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 169
f24d88dac9221ea Linus Walleij 2023-06-16 170 mipi_dsi_dcs_write_seq(dsi, 0x28, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 171 mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 172 mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 173 mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 174
f24d88dac9221ea Linus Walleij 2023-06-16 175 mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16 176 mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x0A);
f24d88dac9221ea Linus Walleij 2023-06-16 177 mipi_dsi_dcs_write_seq(dsi, 0x30, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16 178 mipi_dsi_dcs_write_seq(dsi, 0x33, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16 179 mipi_dsi_dcs_write_seq(dsi, 0x34, 0x32);
f24d88dac9221ea Linus Walleij 2023-06-16 180
f24d88dac9221ea Linus Walleij 2023-06-16 181 mipi_dsi_dcs_write_seq(dsi, 0x37, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16 182 mipi_dsi_dcs_write_seq(dsi, 0x38, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16 183 mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 184 mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x5D);
f24d88dac9221ea Linus Walleij 2023-06-16 185 mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 186 mipi_dsi_dcs_write_seq(dsi, 0x3D, 0x42);
f24d88dac9221ea Linus Walleij 2023-06-16 187 mipi_dsi_dcs_write_seq(dsi, 0x3F, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16 188 mipi_dsi_dcs_write_seq(dsi, 0x43, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16 189 mipi_dsi_dcs_write_seq(dsi, 0x47, 0x66);
f24d88dac9221ea Linus Walleij 2023-06-16 190 mipi_dsi_dcs_write_seq(dsi, 0x4A, 0x5D);
f24d88dac9221ea Linus Walleij 2023-06-16 191 mipi_dsi_dcs_write_seq(dsi, 0x4B, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 192 mipi_dsi_dcs_write_seq(dsi, 0x4C, 0x91);
f24d88dac9221ea Linus Walleij 2023-06-16 193 mipi_dsi_dcs_write_seq(dsi, 0x4D, 0x21);
f24d88dac9221ea Linus Walleij 2023-06-16 194 mipi_dsi_dcs_write_seq(dsi, 0x4E, 0x43);
f24d88dac9221ea Linus Walleij 2023-06-16 195 mipi_dsi_dcs_write_seq(dsi, 0x51, 0x12);
f24d88dac9221ea Linus Walleij 2023-06-16 196 mipi_dsi_dcs_write_seq(dsi, 0x52, 0x34);
f24d88dac9221ea Linus Walleij 2023-06-16 197 mipi_dsi_dcs_write_seq(dsi, 0x55, 0x82, 0x02);
f24d88dac9221ea Linus Walleij 2023-06-16 198 mipi_dsi_dcs_write_seq(dsi, 0x56, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 199 mipi_dsi_dcs_write_seq(dsi, 0x58, 0x21);
f24d88dac9221ea Linus Walleij 2023-06-16 200 mipi_dsi_dcs_write_seq(dsi, 0x59, 0x30);
f24d88dac9221ea Linus Walleij 2023-06-16 201 mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 202 mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 203 mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x00, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16 204 mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 205 mipi_dsi_dcs_write_seq(dsi, 0x65, 0x82);
f24d88dac9221ea Linus Walleij 2023-06-16 206 mipi_dsi_dcs_write_seq(dsi, 0x7E, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16 207 mipi_dsi_dcs_write_seq(dsi, 0x7F, 0x3C);
f24d88dac9221ea Linus Walleij 2023-06-16 208 mipi_dsi_dcs_write_seq(dsi, 0x82, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 209 mipi_dsi_dcs_write_seq(dsi, 0x97, 0xC0);
f24d88dac9221ea Linus Walleij 2023-06-16 210
f24d88dac9221ea Linus Walleij 2023-06-16 211 mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 212 mipi_dsi_dcs_write_seq(dsi, 0x91, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16 213 mipi_dsi_dcs_write_seq(dsi, 0x92, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16 214 mipi_dsi_dcs_write_seq(dsi, 0x93, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16 215 mipi_dsi_dcs_write_seq(dsi, 0x94, 0x96);
f24d88dac9221ea Linus Walleij 2023-06-16 216 mipi_dsi_dcs_write_seq(dsi, 0xD7, 0x55);
f24d88dac9221ea Linus Walleij 2023-06-16 217 mipi_dsi_dcs_write_seq(dsi, 0xDA, 0x0A);
f24d88dac9221ea Linus Walleij 2023-06-16 218 mipi_dsi_dcs_write_seq(dsi, 0xDE, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 219 mipi_dsi_dcs_write_seq(dsi, 0xDB, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16 220 mipi_dsi_dcs_write_seq(dsi, 0xDC, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16 221 mipi_dsi_dcs_write_seq(dsi, 0xDD, 0x22);
f24d88dac9221ea Linus Walleij 2023-06-16 222
f24d88dac9221ea Linus Walleij 2023-06-16 223 mipi_dsi_dcs_write_seq(dsi, 0xDF, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16 224 mipi_dsi_dcs_write_seq(dsi, 0xE0, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16 225 mipi_dsi_dcs_write_seq(dsi, 0xE1, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16 226 mipi_dsi_dcs_write_seq(dsi, 0xE2, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16 227 mipi_dsi_dcs_write_seq(dsi, 0xE3, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16 228 mipi_dsi_dcs_write_seq(dsi, 0xE4, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16 229 mipi_dsi_dcs_write_seq(dsi, 0xE5, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16 230 mipi_dsi_dcs_write_seq(dsi, 0xE6, 0xA9);
f24d88dac9221ea Linus Walleij 2023-06-16 231 mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 232 mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 233 mipi_dsi_dcs_write_seq(dsi, 0x8D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 234 mipi_dsi_dcs_write_seq(dsi, 0x8E, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 235 mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x90);
f24d88dac9221ea Linus Walleij 2023-06-16 236 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x25);
f24d88dac9221ea Linus Walleij 2023-06-16 237 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 238 mipi_dsi_dcs_write_seq(dsi, 0x05, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 239 mipi_dsi_dcs_write_seq(dsi, 0x19, 0x07);
f24d88dac9221ea Linus Walleij 2023-06-16 240 mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 241 mipi_dsi_dcs_write_seq(dsi, 0x20, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 242 mipi_dsi_dcs_write_seq(dsi, 0x26, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 243 mipi_dsi_dcs_write_seq(dsi, 0x27, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 244 mipi_dsi_dcs_write_seq(dsi, 0x33, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 245 mipi_dsi_dcs_write_seq(dsi, 0x34, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 246 mipi_dsi_dcs_write_seq(dsi, 0x3F, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16 247 mipi_dsi_dcs_write_seq(dsi, 0x40, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 248 mipi_dsi_dcs_write_seq(dsi, 0x44, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 249 mipi_dsi_dcs_write_seq(dsi, 0x45, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16 250 mipi_dsi_dcs_write_seq(dsi, 0x48, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 251 mipi_dsi_dcs_write_seq(dsi, 0x49, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 252 mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 253 mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 254 mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 255 mipi_dsi_dcs_write_seq(dsi, 0x5E, 0xD0);
f24d88dac9221ea Linus Walleij 2023-06-16 256 mipi_dsi_dcs_write_seq(dsi, 0x61, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 257 mipi_dsi_dcs_write_seq(dsi, 0x62, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 258 mipi_dsi_dcs_write_seq(dsi, 0xF1, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16 259 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
f24d88dac9221ea Linus Walleij 2023-06-16 260 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 261
f24d88dac9221ea Linus Walleij 2023-06-16 262 mipi_dsi_dcs_write_seq(dsi, 0x64, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16 263 mipi_dsi_dcs_write_seq(dsi, 0x67, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16 264 mipi_dsi_dcs_write_seq(dsi, 0x6A, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16 265
f24d88dac9221ea Linus Walleij 2023-06-16 266 mipi_dsi_dcs_write_seq(dsi, 0x70, 0x30);
f24d88dac9221ea Linus Walleij 2023-06-16 267
f24d88dac9221ea Linus Walleij 2023-06-16 268 mipi_dsi_dcs_write_seq(dsi, 0xA2, 0xF3);
f24d88dac9221ea Linus Walleij 2023-06-16 269 mipi_dsi_dcs_write_seq(dsi, 0xA3, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16 270 mipi_dsi_dcs_write_seq(dsi, 0xA4, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16 271 mipi_dsi_dcs_write_seq(dsi, 0xA5, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16 272
f24d88dac9221ea Linus Walleij 2023-06-16 273 mipi_dsi_dcs_write_seq(dsi, 0xD6, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 274
f24d88dac9221ea Linus Walleij 2023-06-16 275 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x26);
f24d88dac9221ea Linus Walleij 2023-06-16 276 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 277 mipi_dsi_dcs_write_seq(dsi, 0x00, 0xA1);
f24d88dac9221ea Linus Walleij 2023-06-16 278
f24d88dac9221ea Linus Walleij 2023-06-16 279 mipi_dsi_dcs_write_seq(dsi, 0x02, 0x31);
f24d88dac9221ea Linus Walleij 2023-06-16 280 mipi_dsi_dcs_write_seq(dsi, 0x04, 0x28);
f24d88dac9221ea Linus Walleij 2023-06-16 281 mipi_dsi_dcs_write_seq(dsi, 0x06, 0x30);
f24d88dac9221ea Linus Walleij 2023-06-16 282 mipi_dsi_dcs_write_seq(dsi, 0x0C, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16 283 mipi_dsi_dcs_write_seq(dsi, 0x0D, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16 284 mipi_dsi_dcs_write_seq(dsi, 0x0F, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 285 mipi_dsi_dcs_write_seq(dsi, 0x11, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 286 mipi_dsi_dcs_write_seq(dsi, 0x12, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 287 mipi_dsi_dcs_write_seq(dsi, 0x13, 0x56);
f24d88dac9221ea Linus Walleij 2023-06-16 288 mipi_dsi_dcs_write_seq(dsi, 0x14, 0x57);
f24d88dac9221ea Linus Walleij 2023-06-16 289 mipi_dsi_dcs_write_seq(dsi, 0x15, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 290 mipi_dsi_dcs_write_seq(dsi, 0x16, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16 291 mipi_dsi_dcs_write_seq(dsi, 0x17, 0xA0);
f24d88dac9221ea Linus Walleij 2023-06-16 292 mipi_dsi_dcs_write_seq(dsi, 0x18, 0x86);
f24d88dac9221ea Linus Walleij 2023-06-16 293 mipi_dsi_dcs_write_seq(dsi, 0x19, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16 294 mipi_dsi_dcs_write_seq(dsi, 0x1A, 0x7F);
f24d88dac9221ea Linus Walleij 2023-06-16 295 mipi_dsi_dcs_write_seq(dsi, 0x1B, 0x0C);
f24d88dac9221ea Linus Walleij 2023-06-16 296 mipi_dsi_dcs_write_seq(dsi, 0x1C, 0xBF);
f24d88dac9221ea Linus Walleij 2023-06-16 297 mipi_dsi_dcs_write_seq(dsi, 0x22, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 298 mipi_dsi_dcs_write_seq(dsi, 0x23, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 299 mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x0D);
f24d88dac9221ea Linus Walleij 2023-06-16 300 mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x7F);
f24d88dac9221ea Linus Walleij 2023-06-16 301
f24d88dac9221ea Linus Walleij 2023-06-16 302 mipi_dsi_dcs_write_seq(dsi, 0x1D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 303 mipi_dsi_dcs_write_seq(dsi, 0x1E, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16 304 mipi_dsi_dcs_write_seq(dsi, 0x1F, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16 305 mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 306 mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16 307 mipi_dsi_dcs_write_seq(dsi, 0x2F, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16 308 mipi_dsi_dcs_write_seq(dsi, 0x30, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16 309 mipi_dsi_dcs_write_seq(dsi, 0x31, 0x05);
f24d88dac9221ea Linus Walleij 2023-06-16 310 mipi_dsi_dcs_write_seq(dsi, 0x32, 0x7D);
f24d88dac9221ea Linus Walleij 2023-06-16 311 mipi_dsi_dcs_write_seq(dsi, 0x39, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 312 mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16 313 mipi_dsi_dcs_write_seq(dsi, 0x20, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 314 mipi_dsi_dcs_write_seq(dsi, 0x33, 0x11);
f24d88dac9221ea Linus Walleij 2023-06-16 315 mipi_dsi_dcs_write_seq(dsi, 0x34, 0x78);
f24d88dac9221ea Linus Walleij 2023-06-16 316 mipi_dsi_dcs_write_seq(dsi, 0x35, 0x16);
f24d88dac9221ea Linus Walleij 2023-06-16 317 mipi_dsi_dcs_write_seq(dsi, 0xC8, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 318 mipi_dsi_dcs_write_seq(dsi, 0xC9, 0x9E);
f24d88dac9221ea Linus Walleij 2023-06-16 319 mipi_dsi_dcs_write_seq(dsi, 0xCA, 0x4E);
f24d88dac9221ea Linus Walleij 2023-06-16 320 mipi_dsi_dcs_write_seq(dsi, 0xCB, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 321
f24d88dac9221ea Linus Walleij 2023-06-16 322 mipi_dsi_dcs_write_seq(dsi, 0xA9, 0x49);
f24d88dac9221ea Linus Walleij 2023-06-16 323 mipi_dsi_dcs_write_seq(dsi, 0xAA, 0x4B);
f24d88dac9221ea Linus Walleij 2023-06-16 324 mipi_dsi_dcs_write_seq(dsi, 0xAB, 0x48);
f24d88dac9221ea Linus Walleij 2023-06-16 325 mipi_dsi_dcs_write_seq(dsi, 0xAC, 0x43);
f24d88dac9221ea Linus Walleij 2023-06-16 326 mipi_dsi_dcs_write_seq(dsi, 0xAD, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16 327 mipi_dsi_dcs_write_seq(dsi, 0xAE, 0x50);
f24d88dac9221ea Linus Walleij 2023-06-16 328 mipi_dsi_dcs_write_seq(dsi, 0xAF, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16 329 mipi_dsi_dcs_write_seq(dsi, 0xB0, 0x54);
f24d88dac9221ea Linus Walleij 2023-06-16 330 mipi_dsi_dcs_write_seq(dsi, 0xB1, 0x4E);
f24d88dac9221ea Linus Walleij 2023-06-16 331 mipi_dsi_dcs_write_seq(dsi, 0xB2, 0x4D);
f24d88dac9221ea Linus Walleij 2023-06-16 332 mipi_dsi_dcs_write_seq(dsi, 0xB3, 0x4C);
f24d88dac9221ea Linus Walleij 2023-06-16 333 mipi_dsi_dcs_write_seq(dsi, 0xB4, 0x41);
f24d88dac9221ea Linus Walleij 2023-06-16 334 mipi_dsi_dcs_write_seq(dsi, 0xB5, 0x47);
f24d88dac9221ea Linus Walleij 2023-06-16 335 mipi_dsi_dcs_write_seq(dsi, 0xB6, 0x53);
f24d88dac9221ea Linus Walleij 2023-06-16 336 mipi_dsi_dcs_write_seq(dsi, 0xB7, 0x3E);
f24d88dac9221ea Linus Walleij 2023-06-16 337 mipi_dsi_dcs_write_seq(dsi, 0xB8, 0x51);
f24d88dac9221ea Linus Walleij 2023-06-16 338 mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x3C);
f24d88dac9221ea Linus Walleij 2023-06-16 339 mipi_dsi_dcs_write_seq(dsi, 0xBA, 0x3B);
f24d88dac9221ea Linus Walleij 2023-06-16 340 mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x46);
f24d88dac9221ea Linus Walleij 2023-06-16 341 mipi_dsi_dcs_write_seq(dsi, 0xBC, 0x45);
f24d88dac9221ea Linus Walleij 2023-06-16 342 mipi_dsi_dcs_write_seq(dsi, 0xBD, 0x55);
f24d88dac9221ea Linus Walleij 2023-06-16 343 mipi_dsi_dcs_write_seq(dsi, 0xBE, 0x3D);
f24d88dac9221ea Linus Walleij 2023-06-16 344 mipi_dsi_dcs_write_seq(dsi, 0xBF, 0x3F);
f24d88dac9221ea Linus Walleij 2023-06-16 345 mipi_dsi_dcs_write_seq(dsi, 0xC0, 0x52);
f24d88dac9221ea Linus Walleij 2023-06-16 346 mipi_dsi_dcs_write_seq(dsi, 0xC1, 0x4A);
f24d88dac9221ea Linus Walleij 2023-06-16 347 mipi_dsi_dcs_write_seq(dsi, 0xC2, 0x39);
f24d88dac9221ea Linus Walleij 2023-06-16 348 mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x4F);
f24d88dac9221ea Linus Walleij 2023-06-16 349 mipi_dsi_dcs_write_seq(dsi, 0xC4, 0x3A);
f24d88dac9221ea Linus Walleij 2023-06-16 350 mipi_dsi_dcs_write_seq(dsi, 0xC5, 0x42);
f24d88dac9221ea Linus Walleij 2023-06-16 351 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x27);
f24d88dac9221ea Linus Walleij 2023-06-16 352 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 353
f24d88dac9221ea Linus Walleij 2023-06-16 354 mipi_dsi_dcs_write_seq(dsi, 0x56, 0x06);
f24d88dac9221ea Linus Walleij 2023-06-16 355 mipi_dsi_dcs_write_seq(dsi, 0x58, 0x80);
f24d88dac9221ea Linus Walleij 2023-06-16 356 mipi_dsi_dcs_write_seq(dsi, 0x59, 0x75);
f24d88dac9221ea Linus Walleij 2023-06-16 357 mipi_dsi_dcs_write_seq(dsi, 0x5A, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 358 mipi_dsi_dcs_write_seq(dsi, 0x5B, 0x02);
f24d88dac9221ea Linus Walleij 2023-06-16 359 mipi_dsi_dcs_write_seq(dsi, 0x5C, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 360 mipi_dsi_dcs_write_seq(dsi, 0x5D, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 361 mipi_dsi_dcs_write_seq(dsi, 0x5E, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16 362 mipi_dsi_dcs_write_seq(dsi, 0x5F, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16 363 mipi_dsi_dcs_write_seq(dsi, 0x60, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 364 mipi_dsi_dcs_write_seq(dsi, 0x61, 0x2E);
f24d88dac9221ea Linus Walleij 2023-06-16 365 mipi_dsi_dcs_write_seq(dsi, 0x62, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 366 mipi_dsi_dcs_write_seq(dsi, 0x63, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 367 mipi_dsi_dcs_write_seq(dsi, 0x64, 0x43);
f24d88dac9221ea Linus Walleij 2023-06-16 368 mipi_dsi_dcs_write_seq(dsi, 0x65, 0x2D);
f24d88dac9221ea Linus Walleij 2023-06-16 369 mipi_dsi_dcs_write_seq(dsi, 0x66, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 370 mipi_dsi_dcs_write_seq(dsi, 0x67, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 371 mipi_dsi_dcs_write_seq(dsi, 0x68, 0x44);
f24d88dac9221ea Linus Walleij 2023-06-16 372
f24d88dac9221ea Linus Walleij 2023-06-16 373 mipi_dsi_dcs_write_seq(dsi, 0x00, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 374 mipi_dsi_dcs_write_seq(dsi, 0x78, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 375 mipi_dsi_dcs_write_seq(dsi, 0xC3, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 376
f24d88dac9221ea Linus Walleij 2023-06-16 377 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x2A);
f24d88dac9221ea Linus Walleij 2023-06-16 378 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 379
f24d88dac9221ea Linus Walleij 2023-06-16 380 mipi_dsi_dcs_write_seq(dsi, 0x22, 0x2F);
f24d88dac9221ea Linus Walleij 2023-06-16 381 mipi_dsi_dcs_write_seq(dsi, 0x23, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 382
f24d88dac9221ea Linus Walleij 2023-06-16 383 mipi_dsi_dcs_write_seq(dsi, 0x24, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 384 mipi_dsi_dcs_write_seq(dsi, 0x25, 0x65);
f24d88dac9221ea Linus Walleij 2023-06-16 385 mipi_dsi_dcs_write_seq(dsi, 0x26, 0xF8);
f24d88dac9221ea Linus Walleij 2023-06-16 386 mipi_dsi_dcs_write_seq(dsi, 0x27, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 387 mipi_dsi_dcs_write_seq(dsi, 0x28, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16 388 mipi_dsi_dcs_write_seq(dsi, 0x29, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 389 mipi_dsi_dcs_write_seq(dsi, 0x2A, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16 390 mipi_dsi_dcs_write_seq(dsi, 0x2B, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 391 mipi_dsi_dcs_write_seq(dsi, 0x2D, 0x1A);
f24d88dac9221ea Linus Walleij 2023-06-16 392
f24d88dac9221ea Linus Walleij 2023-06-16 393 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x23);
f24d88dac9221ea Linus Walleij 2023-06-16 394 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 395
f24d88dac9221ea Linus Walleij 2023-06-16 396 mipi_dsi_dcs_write_seq(dsi, 0x00, 0x80);
f24d88dac9221ea Linus Walleij 2023-06-16 397 mipi_dsi_dcs_write_seq(dsi, 0x07, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 398
f24d88dac9221ea Linus Walleij 2023-06-16 399 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xE0);
f24d88dac9221ea Linus Walleij 2023-06-16 400 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 401 mipi_dsi_dcs_write_seq(dsi, 0x14, 0x60);
f24d88dac9221ea Linus Walleij 2023-06-16 402 mipi_dsi_dcs_write_seq(dsi, 0x16, 0xC0);
f24d88dac9221ea Linus Walleij 2023-06-16 403
f24d88dac9221ea Linus Walleij 2023-06-16 404 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0xF0);
f24d88dac9221ea Linus Walleij 2023-06-16 405 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 406 mipi_dsi_dcs_write_seq(dsi, 0x3A, 0x08);
f24d88dac9221ea Linus Walleij 2023-06-16 407
f24d88dac9221ea Linus Walleij 2023-06-16 408 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16 409 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 410 mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 411 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x20);
f24d88dac9221ea Linus Walleij 2023-06-16 412 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 413 mipi_dsi_dcs_write_seq(dsi, 0x18, 0x40);
f24d88dac9221ea Linus Walleij 2023-06-16 414
f24d88dac9221ea Linus Walleij 2023-06-16 415 mipi_dsi_dcs_write_seq(dsi, 0xFF, 0x10);
f24d88dac9221ea Linus Walleij 2023-06-16 416 mipi_dsi_dcs_write_seq(dsi, 0xFB, 0x01);
f24d88dac9221ea Linus Walleij 2023-06-16 417 mipi_dsi_dcs_write_seq(dsi, 0xB9, 0x02);
f24d88dac9221ea Linus Walleij 2023-06-16 418 mipi_dsi_dcs_write_seq(dsi, 0x35, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 419 mipi_dsi_dcs_write_seq(dsi, 0x51, 0x00, 0xFF);
f24d88dac9221ea Linus Walleij 2023-06-16 420 mipi_dsi_dcs_write_seq(dsi, 0x53, 0x24);
f24d88dac9221ea Linus Walleij 2023-06-16 421 mipi_dsi_dcs_write_seq(dsi, 0x55, 0x00);
f24d88dac9221ea Linus Walleij 2023-06-16 422 mipi_dsi_dcs_write_seq(dsi, 0xBB, 0x13);
f24d88dac9221ea Linus Walleij 2023-06-16 423 mipi_dsi_dcs_write_seq(dsi, 0x3B, 0x03, 0x96, 0x1A, 0x04, 0x04);
f24d88dac9221ea Linus Walleij 2023-06-16 424 msleep(100);
f24d88dac9221ea Linus Walleij 2023-06-16 425 ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
f24d88dac9221ea Linus Walleij 2023-06-16 426 if (ret)
f24d88dac9221ea Linus Walleij 2023-06-16 427 return ret;
f24d88dac9221ea Linus Walleij 2023-06-16 428 msleep(200);
f24d88dac9221ea Linus Walleij 2023-06-16 429 ret = mipi_dsi_dcs_set_display_on(dsi);
f24d88dac9221ea Linus Walleij 2023-06-16 430 if (ret)
f24d88dac9221ea Linus Walleij 2023-06-16 431 return ret;
f24d88dac9221ea Linus Walleij 2023-06-16 432 msleep(100);
93ee1a2c0f08345 yangcong 2021-09-14 433
f24d88dac9221ea Linus Walleij 2023-06-16 434 return 0;
f24d88dac9221ea Linus Walleij 2023-06-16 435 }
a869b9db7adf3bd Jitao Shi 2020-01-16 436
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-06-30 9:49 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-16 21:07 [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver Linus Walleij
2023-06-16 21:07 ` Linus Walleij
2023-06-16 21:07 ` [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences Linus Walleij
2023-06-16 21:07 ` Linus Walleij
2023-06-16 21:07 ` [PATCH v2 2/2] drm/panel: boe-tv101wum-nl6: Drop surplus prepare tracking Linus Walleij
2023-06-16 21:07 ` Linus Walleij
2023-06-30 9:48 ` [PATCH v2 0/2] Fix up the boe-tv101wum-nl6 panel driver Neil Armstrong
2023-06-30 9:48 ` Neil Armstrong
2023-06-17 15:43 [PATCH v2 1/2] drm/panel: boe-tv101wum-nl6: Drop macros and open code sequences kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.