diff options
-rw-r--r-- | arch/arm/boot/dts/imx7d-sdb.dts | 2 | ||||
-rw-r--r-- | drivers/video/fbdev/mxsfb.c | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts index 3fe9998e4f70..6d896bdd5b82 100644 --- a/arch/arm/boot/dts/imx7d-sdb.dts +++ b/arch/arm/boot/dts/imx7d-sdb.dts @@ -972,7 +972,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lcdif_dat &pinctrl_lcdif_ctrl>; - pinctrl-assert-gpios = <&gpio_spi 7 GPIO_ACTIVE_LOW>; + enable-gpio = <&gpio_spi 7 GPIO_ACTIVE_LOW>; display = <&display0>; status = "okay"; diff --git a/drivers/video/fbdev/mxsfb.c b/drivers/video/fbdev/mxsfb.c index 8cbecbf31da8..deec998cd394 100644 --- a/drivers/video/fbdev/mxsfb.c +++ b/drivers/video/fbdev/mxsfb.c @@ -44,6 +44,7 @@ #include <linux/module.h> #include <linux/kernel.h> #include <linux/of_device.h> +#include <linux/of_gpio.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/interrupt.h> @@ -1375,11 +1376,23 @@ static int mxsfb_probe(struct platform_device *pdev) struct fb_info *fb_info; struct pinctrl *pinctrl; int irq = platform_get_irq(pdev, 0); - int ret; + int gpio, ret; if (of_id) pdev->id_entry = of_id->data; + gpio = of_get_named_gpio(pdev->dev.of_node, "enable-gpio", 0); + if (gpio == -EPROBE_DEFER) + return -EPROBE_DEFER; + + if (gpio_is_valid(gpio)) { + ret = devm_gpio_request_one(&pdev->dev, gpio, GPIOF_OUT_INIT_LOW, "lcd_pwr_en"); + if (ret) { + dev_err(&pdev->dev, "faild to request gpio %d, ret = %d\n", gpio, ret); + return ret; + } + } + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { dev_err(&pdev->dev, "Cannot get memory IO resource\n"); |