diff options
Diffstat (limited to 'drivers/gpu/drm/bridge/display-connector.c')
| -rw-r--r-- | drivers/gpu/drm/bridge/display-connector.c | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c index d24f5b90feab..e4d52a7e31b7 100644 --- a/drivers/gpu/drm/bridge/display-connector.c +++ b/drivers/gpu/drm/bridge/display-connector.c @@ -24,6 +24,7 @@ struct display_connector {  	int			hpd_irq;  	struct regulator	*dp_pwr; +	struct gpio_desc	*ddc_en;  };  static inline struct display_connector * @@ -345,6 +346,17 @@ static int display_connector_probe(struct platform_device *pdev)  		}  	} +	/* enable DDC */ +	if (type == DRM_MODE_CONNECTOR_HDMIA) { +		conn->ddc_en = devm_gpiod_get_optional(&pdev->dev, "ddc-en", +						       GPIOD_OUT_HIGH); + +		if (IS_ERR(conn->ddc_en)) { +			dev_err(&pdev->dev, "Couldn't get ddc-en gpio\n"); +			return PTR_ERR(conn->ddc_en); +		} +	} +  	conn->bridge.funcs = &display_connector_bridge_funcs;  	conn->bridge.of_node = pdev->dev.of_node; @@ -373,6 +385,9 @@ static int display_connector_remove(struct platform_device *pdev)  {  	struct display_connector *conn = platform_get_drvdata(pdev); +	if (conn->ddc_en) +		gpiod_set_value(conn->ddc_en, 0); +  	if (conn->dp_pwr)  		regulator_disable(conn->dp_pwr); | 
