From 94bba9fc51b5e50ceb572860a5d35f09bae6bb26 Mon Sep 17 00:00:00 2001 From: tnchangj Date: Tue, 7 Sep 2021 16:11:31 +0800 Subject: [PATCH] driver/display: add set backlight register function For FT8006S HLT LCD because the FT8006S IC spec backlight register, we add the mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit the function. Change-Id: Ib77bf0981ace8c4f9cf77c69a70696ec2075fcae Reviewed-on: https://gerrit.mot.com/2061265 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Suting Xie Submit-Approved: Suting Xie --- drivers/gpu/drm/drm_mipi_dsi.c | 23 +++++++++++++++++++++++ include/drm/drm_mipi_dsi.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c index 3d0aebf9fefa..6f11627e5f8b 100644 --- a/drivers/gpu/drm/drm_mipi_dsi.c +++ b/drivers/gpu/drm/drm_mipi_dsi.c @@ -1133,6 +1133,29 @@ int mipi_dsi_dcs_set_display_brightness_2bytes(struct mipi_dsi_device *dsi, } EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness_2bytes); +/** + * mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit() - sets the brightness value of + * the display with 2bytes and low 4bit at 2th byte value + * @dsi: DSI peripheral device + * @brightness: brightness value + * + * Return: 0 on success or a negative error code on failure. + */ +int mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit(struct mipi_dsi_device *dsi, + u16 brightness) +{ + u8 payload[2] = { brightness >> 0x04, brightness & 0x0f }; + ssize_t err; + + err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_DISPLAY_BRIGHTNESS, + payload, sizeof(payload)); + if (err < 0) + return err; + + return 0; +} +EXPORT_SYMBOL(mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit); + /** * mipi_dsi_dcs_set_display_brightness_large() - sets the 16-bit brightness value * of the display diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h index 008e4bb28762..138f5932bda2 100644 --- a/include/drm/drm_mipi_dsi.h +++ b/include/drm/drm_mipi_dsi.h @@ -292,6 +292,8 @@ int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi, u16 *brightness); int mipi_dsi_dcs_set_display_brightness_2bytes(struct mipi_dsi_device *dsi, u16 brightness); +int mipi_dsi_dcs_set_display_brightness_2bytes_2th_low4bit(struct mipi_dsi_device *dsi, + u16 brightness); int mipi_dsi_dcs_set_display_brightness_large(struct mipi_dsi_device *dsi, u16 brightness); int mipi_dsi_dcs_get_display_brightness_large(struct mipi_dsi_device *dsi,