]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
video: exynos_fb: configure backlight GPIOs if specified in DT
authorAjay Kumar <ajaykumar.rs@samsung.com>
Wed, 4 Mar 2015 13:35:26 +0000 (19:05 +0530)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 1 Sep 2015 12:38:15 +0000 (14:38 +0200)
Add support to configure PWM_OUT(PWM output) GPIO and
BL_EN(backlight enable) GPIO, if provided in FIMD DT node.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
doc/device-tree-bindings/video/exynos-fb.txt
drivers/video/exynos_fb.c

index dc4e44fbc52b319f3480e00ea2e16c15121b4def..b022f6163f1a8c99e4fc132d3cdbef8b49d55c40 100644 (file)
@@ -61,6 +61,8 @@ Board(panel specific):
                                disabled with compatible string
                                "samsung,sysmmu-v3.3", with a "reg" property
                                holding the register address of FIMD sysmmu.
+       samsung,pwm-out-gpio: PWM output GPIO.
+       samsung,bl-en-gpio: backlight enable GPIO.
 
 Example:
 SOC specific part:
index c5d73308047fac83a9a663a136a6b3c1e3ed7a78..8f3b8263dab6e8a328e3056b413620ef7e3e241c 100644 (file)
@@ -19,6 +19,7 @@
 #include <asm/arch/mipi_dsim.h>
 #include <asm/arch/dp_info.h>
 #include <asm/arch/system.h>
+#include <asm/gpio.h>
 #include <asm-generic/errno.h>
 
 #include "exynos_fb.h"
@@ -102,6 +103,10 @@ __weak int exynos_lcd_misc_init(vidinfo_t *vid)
 
 static void lcd_panel_on(vidinfo_t *vid)
 {
+       struct gpio_desc pwm_out_gpio;
+       struct gpio_desc bl_en_gpio;
+       unsigned int node;
+
        udelay(vid->init_delay);
 
        exynos_backlight_reset();
@@ -121,6 +126,22 @@ static void lcd_panel_on(vidinfo_t *vid)
 
        exynos_backlight_on(1);
 
+#ifdef CONFIG_OF_CONTROL
+       node = fdtdec_next_compatible(gd->fdt_blob, 0,
+                                               COMPAT_SAMSUNG_EXYNOS_FIMD);
+       if (node <= 0) {
+               debug("FIMD: Can't get device node for FIMD\n");
+               return;
+       }
+       gpio_request_by_name_nodev(gd->fdt_blob, node, "samsung,pwm-out-gpio",
+                                  0, &pwm_out_gpio,
+                                  GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
+
+       gpio_request_by_name_nodev(gd->fdt_blob, node, "samsung,bl-en-gpio", 0,
+                                  &bl_en_gpio,
+                                  GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
+
+#endif
        exynos_cfg_ldo();
 
        exynos_enable_ldo(1);