drm/bridge: ti-tfp410: Add support for the powerdown GPIO
The TFP410 has a powerdown pin that can be connected to a GPIO to control power saving. The DT bindings define a corresponding property, but the driver doesn't implement support for it. Fix that. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Jyri Sarha <jsarha@ti.com> Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
Родитель
60b903c3e6
Коммит
38c02db7e6
|
@ -32,6 +32,7 @@ struct tfp410 {
|
|||
struct i2c_adapter *ddc;
|
||||
struct gpio_desc *hpd;
|
||||
struct delayed_work hpd_work;
|
||||
struct gpio_desc *powerdown;
|
||||
|
||||
struct device *dev;
|
||||
};
|
||||
|
@ -139,8 +140,24 @@ static int tfp410_attach(struct drm_bridge *bridge)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void tfp410_enable(struct drm_bridge *bridge)
|
||||
{
|
||||
struct tfp410 *dvi = drm_bridge_to_tfp410(bridge);
|
||||
|
||||
gpiod_set_value_cansleep(dvi->powerdown, 0);
|
||||
}
|
||||
|
||||
static void tfp410_disable(struct drm_bridge *bridge)
|
||||
{
|
||||
struct tfp410 *dvi = drm_bridge_to_tfp410(bridge);
|
||||
|
||||
gpiod_set_value_cansleep(dvi->powerdown, 1);
|
||||
}
|
||||
|
||||
static const struct drm_bridge_funcs tfp410_bridge_funcs = {
|
||||
.attach = tfp410_attach,
|
||||
.enable = tfp410_enable,
|
||||
.disable = tfp410_disable,
|
||||
};
|
||||
|
||||
static void tfp410_hpd_work_func(struct work_struct *work)
|
||||
|
@ -229,6 +246,13 @@ static int tfp410_init(struct device *dev)
|
|||
if (ret)
|
||||
goto fail;
|
||||
|
||||
dvi->powerdown = devm_gpiod_get_optional(dev, "powerdown",
|
||||
GPIOD_OUT_HIGH);
|
||||
if (IS_ERR(dvi->powerdown)) {
|
||||
dev_err(dev, "failed to parse powerdown gpio\n");
|
||||
return PTR_ERR(dvi->powerdown);
|
||||
}
|
||||
|
||||
if (dvi->hpd) {
|
||||
INIT_DELAYED_WORK(&dvi->hpd_work, tfp410_hpd_work_func);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче