diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index fe34da0..40a656e 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -25,6 +25,16 @@
 	  it understands the standard device tree
 	  (leds/backlight/pwm-backlight.txt)
 
+config BACKLIGHT_GPIO
+	bool "Generic GPIO based Backlight Driver"
+	depends on DM_VIDEO
+	help
+	  If you have a LCD backlight adjustable by GPIO, say Y to enable
+	  this driver.
+	  This driver can be used with "simple-panel" and
+	  it understands the standard device tree
+	  (leds/backlight/gpio-backlight.txt)
+
 config VIDEO_BPP8
 	bool "Support 8-bit-per-pixel displays"
 	depends on DM_VIDEO
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index fc1cd14..e73bc93 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -12,6 +12,7 @@
 obj-$(CONFIG_DM_VIDEO) += video-uclass.o vidconsole-uclass.o
 obj-$(CONFIG_DM_VIDEO) += video_bmp.o
 obj-$(CONFIG_BACKLIGHT_PWM) += pwm_backlight.o
+obj-$(CONFIG_BACKLIGHT_GPIO) += backlight_gpio.o
 obj-$(CONFIG_CONSOLE_NORMAL) += console_normal.o
 obj-$(CONFIG_CONSOLE_ROTATION) += console_rotate.o
 obj-$(CONFIG_CONSOLE_TRUETYPE) += console_truetype.o fonts/
diff --git a/drivers/video/backlight_gpio.c b/drivers/video/backlight_gpio.c
new file mode 100644
index 0000000..772df5d
--- /dev/null
+++ b/drivers/video/backlight_gpio.c
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2017, STMicroelectronics - All Rights Reserved
+ * Author: Patrick Delaunay <patrick.delaunay@st.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <backlight.h>
+#include <asm/gpio.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+struct gpio_backlight_priv {
+	struct gpio_desc gpio;
+	bool def_value;
+};
+
+static int gpio_backlight_enable(struct udevice *dev)
+{
+	struct gpio_backlight_priv *priv = dev_get_priv(dev);
+
+	dm_gpio_set_value(&priv->gpio, 1);
+
+	return 0;
+}
+
+static int gpio_backlight_ofdata_to_platdata(struct udevice *dev)
+{
+	struct gpio_backlight_priv *priv = dev_get_priv(dev);
+	int ret;
+
+	ret = gpio_request_by_name(dev, "gpios", 0, &priv->gpio,
+				   GPIOD_IS_OUT);
+	if (ret) {
+		debug("%s: Warning: cannot get GPIO: ret=%d\n",
+		      __func__, ret);
+		return ret;
+	}
+
+	priv->def_value = dev_read_bool(dev, "default-on");
+
+	return 0;
+}
+
+static int gpio_backlight_probe(struct udevice *dev)
+{
+	struct gpio_backlight_priv *priv = dev_get_priv(dev);
+
+	if (priv->def_value)
+		gpio_backlight_enable(dev);
+
+	return 0;
+}
+
+static const struct backlight_ops gpio_backlight_ops = {
+	.enable	= gpio_backlight_enable,
+};
+
+static const struct udevice_id gpio_backlight_ids[] = {
+	{ .compatible = "gpio-backlight" },
+	{ }
+};
+
+U_BOOT_DRIVER(gpio_backlight) = {
+	.name	= "gpio_backlight",
+	.id	= UCLASS_PANEL_BACKLIGHT,
+	.of_match = gpio_backlight_ids,
+	.ops	= &gpio_backlight_ops,
+	.ofdata_to_platdata	= gpio_backlight_ofdata_to_platdata,
+	.probe		= gpio_backlight_probe,
+	.priv_auto_alloc_size	= sizeof(struct gpio_backlight_priv),
+};
