Преглед на файлове

Merge "disp: msm: dsi: Set the panel test gpio to input"

qctecmdr преди 6 години
родител
ревизия
6db1b4cad1
променени са 2 файла, в които са добавени 30 реда и са изтрити 0 реда
  1. 28 0
      msm/dsi/dsi_panel.c
  2. 2 0
      msm/dsi/dsi_panel.h

+ 28 - 0
msm/dsi/dsi_panel.c

@@ -283,6 +283,16 @@ static int dsi_panel_gpio_request(struct dsi_panel *panel)
 		}
 	}
 
+	if (gpio_is_valid(panel->panel_test_gpio)) {
+		rc = gpio_request(panel->panel_test_gpio, "panel_test_gpio");
+		if (rc) {
+			pr_warn("request for panel_test_gpio failed, rc=%d\n",
+				 rc);
+			panel->panel_test_gpio = -1;
+			rc = 0;
+		}
+	}
+
 	goto error;
 error_release_mode_sel:
 	if (gpio_is_valid(panel->bl_config.en_gpio))
@@ -314,6 +324,9 @@ static int dsi_panel_gpio_release(struct dsi_panel *panel)
 	if (gpio_is_valid(panel->reset_config.lcd_mode_sel_gpio))
 		gpio_free(panel->reset_config.lcd_mode_sel_gpio);
 
+	if (gpio_is_valid(panel->panel_test_gpio))
+		gpio_free(panel->panel_test_gpio);
+
 	return rc;
 }
 
@@ -398,6 +411,14 @@ static int dsi_panel_reset(struct dsi_panel *panel)
 		if (rc)
 			pr_err("unable to set dir for mode gpio rc=%d\n", rc);
 	}
+
+	if (gpio_is_valid(panel->panel_test_gpio)) {
+		rc = gpio_direction_input(panel->panel_test_gpio);
+		if (rc)
+			pr_warn("unable to set dir for panel test gpio rc=%d\n",
+			       rc);
+	}
+
 exit:
 	return rc;
 }
@@ -2135,6 +2156,13 @@ static int dsi_panel_parse_gpios(struct dsi_panel *panel)
 		goto error;
 	}
 
+	panel->panel_test_gpio = utils->get_named_gpio(utils->data,
+					"qcom,mdss-dsi-panel-test-pin",
+					0);
+	if (!gpio_is_valid(panel->panel_test_gpio))
+		pr_debug("%s:%d panel test gpio not specified\n", __func__,
+			 __LINE__);
+
 error:
 	return rc;
 }

+ 2 - 0
msm/dsi/dsi_panel.h

@@ -195,6 +195,8 @@ struct dsi_panel {
 	enum dsi_dms_mode dms_mode;
 
 	bool sync_broadcast_en;
+
+	int panel_test_gpio;
 };
 
 static inline bool dsi_panel_ulps_feature_enabled(struct dsi_panel *panel)