Skip to content

Commit 539d0f6

Browse files
thenguyenyfkartben
authored andcommitted
driver: display: use LP mode for ilitek,ili9806e-dsi
Update driver code to use LPM Signed-off-by: The Nguyen <[email protected]>
1 parent 652c5f4 commit 539d0f6

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

drivers/display/display_ili9806e_dsi.c

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,28 @@ static int ili9806e_write_reg(const struct device *dev, uint8_t reg, const uint8
212212
int ret;
213213
const struct ili9806e_config *cfg = dev->config;
214214

215-
ret = mipi_dsi_dcs_write(cfg->mipi_dsi, cfg->channel, reg, buf, len);
215+
struct mipi_dsi_msg msg = {
216+
.cmd = reg,
217+
.tx_buf = buf,
218+
.tx_len = len,
219+
.flags = MIPI_DSI_MSG_USE_LPM,
220+
};
221+
222+
switch (len) {
223+
case 0U:
224+
msg.type = MIPI_DSI_DCS_SHORT_WRITE;
225+
break;
226+
227+
case 1U:
228+
msg.type = MIPI_DSI_DCS_SHORT_WRITE_PARAM;
229+
break;
230+
231+
default:
232+
msg.type = MIPI_DSI_DCS_LONG_WRITE;
233+
break;
234+
}
235+
236+
ret = mipi_dsi_transfer(cfg->mipi_dsi, cfg->channel, &msg);
216237
if (ret < 0) {
217238
LOG_ERR("Failed writing reg: 0x%x result: (%d)", reg, ret);
218239
return ret;
@@ -384,7 +405,7 @@ static int ili9806e_init(const struct device *dev)
384405
mdev.pixfmt = MIPI_DSI_PIXFMT_RGB888;
385406
}
386407
mdev.data_lanes = cfg->data_lanes;
387-
mdev.mode_flags = MIPI_DSI_MODE_VIDEO;
408+
mdev.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_LPM;
388409
mdev.timings.hactive = cfg->width;
389410
mdev.timings.hbp = ILITEK_ILI9806E_HBP;
390411
mdev.timings.hfp = ILITEK_ILI9806E_HFP;

0 commit comments

Comments
 (0)