drm: mipi: disable Elvss dim of HBM for MIPI DSI

Added 3 MIPI commands to set/get the ELVSS setting information from
the MIPI DSI panel.

Port from a5b269d7.

Change-Id: I3aa1612c7afc35247f0db86ee1dd8484bae8d7b4
Signed-off-by: daiss1 <daiss1@motorola.com>
Reviewed-on: https://gerrit.mot.com/1469340
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Guobin Zhang <zhanggb@motorola.com>
Submit-Approved: Jira Key
Reviewed-by: Bang Nguyen <bangnguyen@motorola.com>
Reviewed-by: Dezhen Hou <houdz1@motorola.com>
Reviewed-on: https://gerrit.mot.com/1509787
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
This commit is contained in:
houdz1 authored and Gilberto Gambugge committed 2023-06-01 00:47:06 -03:00
1 parent 722167830b
commit 58c6b1a5eb
2 files changed
+57

No files matched your search

+53
View File
@@ -1176,6 +1176,59 @@ int mipi_dsi_driver_register_full(struct mipi_dsi_driver *drv,
}
EXPORT_SYMBOL(mipi_dsi_driver_register_full);
int mipi_dsi_dcs_get_elvss_data(struct mipi_dsi_device *dsi)
{
u8 payload_f0[2] = { 0x5A, 0x5A };
u8 payload_b0 = 0x07;
ssize_t err;
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0, sizeof(payload_f0));
err = mipi_dsi_dcs_write(dsi, 0xB0, &payload_b0, sizeof(payload_b0));
if (err < 0)
return err;
return 0;
}
EXPORT_SYMBOL(mipi_dsi_dcs_get_elvss_data);
int mipi_dsi_dcs_get_elvss_data_1(struct mipi_dsi_device *dsi)
{
u8 payload_f0_1[2] = { 0xA5, 0xA5 };
ssize_t err;
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0_1, sizeof(payload_f0_1));
if (err < 0)
return err;
return 0;
}
EXPORT_SYMBOL(mipi_dsi_dcs_get_elvss_data_1);
int mipi_dsi_dcs_set_elvss_dim_off(struct mipi_dsi_device *dsi,
u8 val)
{
u8 payload_f0[2] = { 0x5A, 0x5A };
u8 payload_f0_1[2] = { 0xA5, 0xA5 };
u8 payload_b7[2] = { 0x01, 0x5B };
u8 payload_b0 = 0x07;
ssize_t err;
pr_info("set elvss data:%d\n", val);
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0, sizeof(payload_f0));
err = mipi_dsi_dcs_write(dsi, 0xB7, payload_b7, sizeof(payload_b7));
err = mipi_dsi_dcs_write(dsi, 0xB0, &payload_b0, sizeof(payload_b0));
err = mipi_dsi_dcs_write(dsi, 0xB7, &val, sizeof(val));
err = mipi_dsi_dcs_write(dsi, 0xF0, payload_f0_1, sizeof(payload_f0_1));
if (err < 0)
return err;
return 0;
}
EXPORT_SYMBOL(mipi_dsi_dcs_set_elvss_dim_off);
/**
* mipi_dsi_driver_unregister() - unregister a driver for DSI devices
* @drv: DSI driver structure
+4
View File
@@ -322,6 +322,10 @@ static inline void mipi_dsi_set_drvdata(struct mipi_dsi_device *dsi, void *data)
dev_set_drvdata(&dsi->dev, data);
}
int mipi_dsi_dcs_get_elvss_data(struct mipi_dsi_device *dsi);
int mipi_dsi_dcs_get_elvss_data_1(struct mipi_dsi_device *dsi);
int mipi_dsi_dcs_set_elvss_dim_off(struct mipi_dsi_device *dsi, u8 val);
int mipi_dsi_driver_register_full(struct mipi_dsi_driver *driver,
struct module *owner);
void mipi_dsi_driver_unregister(struct mipi_dsi_driver *driver);