From e0977bd76c4799bb70a3242efcf29dfcdc97d5e6 Mon Sep 17 00:00:00 2001 From: houdz1 Date: Thu, 22 Jul 2021 13:43:00 +0800 Subject: [PATCH] dsi_panel: remove avdd_enable and avee_enable gpios. hange the default output voltage through I2C bus at XBL. And store the default value to EEPROM. So we can nod make I2C operation at kernel. Only pull up/down gpio to enable/disable regulator. So use gpio regulator to control avee and avdd. Change-Id: I5c9381c8304f0928ff215ac109c72eeda286cb00 Signed-off-by: houdz1 Reviewed-on: https://gerrit.mot.com/2020983 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- msm/dsi/dsi_panel.c | 67 ++++++--------------------------------------- msm/dsi/dsi_panel.h | 3 -- 2 files changed, 9 insertions(+), 61 deletions(-) diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index 27123a911a10..5c78b3e60114 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -204,7 +204,7 @@ static int dsi_panel_gpio_request(struct dsi_panel *panel) rc = gpio_request(r_config->lcd_mode_sel_gpio, "mode_gpio"); if (rc) { DSI_ERR("request for mode_gpio failed, rc=%d\n", rc); - goto error_release_mode_sel; + goto error_release_bl_en; } } @@ -215,29 +215,7 @@ static int dsi_panel_gpio_request(struct dsi_panel *panel) rc); panel->panel_test_gpio = -1; rc = 0; - goto error_release_panel_test; - } - } - - if (gpio_is_valid(panel->avee_enable_gpio)) { - rc = gpio_request(panel->avee_enable_gpio, "avee_enable_gpio"); - if (rc) { - DSI_WARN("request for avee_enable_gpio failed, rc=%d\n", - rc); - panel->avee_enable_gpio = -1; - rc = 0; - goto error_release_avee_enable; - } - } - - if (gpio_is_valid(panel->avdd_enable_gpio)) { - rc = gpio_request(panel->avdd_enable_gpio, "avdd_enable_gpio"); - if (rc) { - DSI_WARN("request for avdd_enable_gpio failed, rc=%d\n", - rc); - panel->avdd_enable_gpio = -1; - rc = 0; - goto error_release_avdd_enable; + goto error_release_lcd_mode_sel; } } @@ -248,20 +226,18 @@ static int dsi_panel_gpio_request(struct dsi_panel *panel) rc); panel->hbm_en_gpio = -1; rc = 0; + goto error_release_panel_test; } } goto error; -error_release_avdd_enable: - if (gpio_is_valid(panel->avdd_enable_gpio)) - gpio_free(panel->avdd_enable_gpio); -error_release_avee_enable: - if (gpio_is_valid(panel->avee_enable_gpio)) - gpio_free(panel->avee_enable_gpio); error_release_panel_test: if (gpio_is_valid(panel->panel_test_gpio)) gpio_free(panel->panel_test_gpio); -error_release_mode_sel: +error_release_lcd_mode_sel: + if (gpio_is_valid(r_config->lcd_mode_sel_gpio)) + gpio_free(r_config->lcd_mode_sel_gpio); +error_release_bl_en: if (gpio_is_valid(panel->bl_config.en_gpio)) gpio_free(panel->bl_config.en_gpio); error_release_disp_en: @@ -493,18 +469,6 @@ static int dsi_panel_power_on(struct dsi_panel *panel) DSI_INFO("(%s)+\n", panel->name); - if (gpio_is_valid(panel->avdd_enable_gpio)) { - rc = gpio_direction_output(panel->avdd_enable_gpio, 1); - if (rc) - DSI_ERR("unable to set AVDD Enable gpio rc=%d\n", rc); - } - - if (gpio_is_valid(panel->avee_enable_gpio)) { - rc = gpio_direction_output(panel->avee_enable_gpio, 1); - if (rc) - DSI_ERR("unable to set AVEE Enable gpio rc=%d\n", rc); - } - if ((panel->tp_state_check_enable) && (panel->tp_state)) { pr_info("%s: (%s)+power is alway on \n", __func__, panel->name); goto exit; @@ -1031,7 +995,8 @@ static int dsi_panel_set_hbm(struct dsi_panel *panel, if (gpio_is_valid(panel->hbm_en_gpio)) { struct panel_param *panel_param = &dsi_panel_param[0][PARAM_HBM_ID]; - panel_param->value = param_info->value; if (param_info->value) { + panel_param->value = param_info->value; + if (param_info->value) { gpio_direction_output(panel->hbm_en_gpio, 1); pr_info("Set HBM to (%d) with GPIO%d\n", param_info->value, panel->hbm_en_gpio); } @@ -2801,20 +2766,6 @@ static int dsi_panel_parse_gpios(struct dsi_panel *panel) DSI_DEBUG("%s:%d panel test gpio not specified\n", __func__, __LINE__); - panel->avee_enable_gpio = utils->get_named_gpio(utils->data, - "qcom,avee-enable-gpio", - 0); - if (!gpio_is_valid(panel->avee_enable_gpio)) - DSI_DEBUG("%s:%d qcom,avee-enable-gpio not specified\n", __func__, - __LINE__); - - panel->avdd_enable_gpio = utils->get_named_gpio(utils->data, - "qcom,avdd-enable-gpio", - 0); - if (!gpio_is_valid(panel->avdd_enable_gpio)) - DSI_DEBUG("%s:%d qcom,add-enable-gpio not specified\n", __func__, - __LINE__); - panel->hbm_en_gpio = utils->get_named_gpio(utils->data, "qcom,platform-hbm-en-gpio", 0); diff --git a/msm/dsi/dsi_panel.h b/msm/dsi/dsi_panel.h index 2c582bacdfd1..a28a6ad7b6af 100644 --- a/msm/dsi/dsi_panel.h +++ b/msm/dsi/dsi_panel.h @@ -373,9 +373,6 @@ struct dsi_panel { int panel_recovery_retry; bool is_panel_dead; - int avee_enable_gpio; - int avdd_enable_gpio; - int hbm_en_gpio; };