|
@@ -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;
|
|
goto error;
|
|
error_release_mode_sel:
|
|
error_release_mode_sel:
|
|
if (gpio_is_valid(panel->bl_config.en_gpio))
|
|
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))
|
|
if (gpio_is_valid(panel->reset_config.lcd_mode_sel_gpio))
|
|
gpio_free(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;
|
|
return rc;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -398,6 +411,14 @@ static int dsi_panel_reset(struct dsi_panel *panel)
|
|
if (rc)
|
|
if (rc)
|
|
pr_err("unable to set dir for mode gpio rc=%d\n", 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:
|
|
exit:
|
|
return rc;
|
|
return rc;
|
|
}
|
|
}
|