Skip to contentSkip to conversation

board: ge: bx50v3: Use pwm for display backlight

PATCH New Akshay Bhat 2 participants 3 messages Mar 15, 2016 – Apr 6, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 board: ge: bx50v3: Use pwm for display backlight

Setup the LCD backlight brightness control pin to use PWM

---
 board/ge/bx50v3/bx50v3.c    | 11 +++++++++++
 include/configs/ge_bx50v3.h |  3 +++
 2 files changed, 14 insertions(+)
board/ge/bx50v3/bx50v3.c +11 -0
index cf2cd1a..8e55acf 100644
@@ -25,6 +25,7 @@
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
 #include <i2c.h>
+#include <pwm.h>
 DECLARE_GLOBAL_DATA_PTR;
 
 #define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
@@ -324,6 +325,8 @@ static iomux_v3_cfg_t const backlight_pads[] = {
 	/* Backlight enable for LVDS display */
 	MX6_PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL),
 #define LVDS_BACKLIGHT_GP IMX_GPIO_NR(1, 0)
+	/* backlight PWM brightness control */
+	MX6_PAD_SD1_DAT3__PWM1_OUT | MUX_PAD_CTRL(NO_PAD_CTRL),
 };
 
 static void do_enable_hdmi(struct display_info_t const *dev)
@@ -676,9 +679,17 @@ int board_late_init(void)
 	 * as per specifications from CHI MEI */
 	mdelay(250);
 
+	/* enable backlight PWM 1 */
+	pwm_init(0, 0, 0);
+
+	/* duty cycle 5000000ns, period: 5000000ns */
+	pwm_config(0, 5000000, 5000000);
+
 	/* Backlight Power */
 	gpio_direction_output(LVDS_BACKLIGHT_GP, 1);
 
+	pwm_enable(0);
+
 	return 0;
 }
 
include/configs/ge_bx50v3.h +3 -0
index 6fa4a9a..e37cd33 100644
@@ -327,6 +327,9 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 
+#define CONFIG_PWM_IMX
+#define CONFIG_IMX6_PWM_PER_CLK	66000000
+
 #undef CONFIG_CMD_PCI
 #ifdef CONFIG_CMD_PCI
 #define CONFIG_PCI
Signature · 1 line
2.7.3
#1 lore raw

PATCH 1/1 board: ge: bx50v3: Use pwm for display backlight

Quoted 6 lines · Akshay Bhat

Setup the LCD backlight brightness control pin to use PWM

---

Hi Stefano,

Can this be applied if there are no review comments?

Thanks,
Akshay

Quoted 61 lines
 board/ge/bx50v3/bx50v3.c    | 11 +++++++++++
 include/configs/ge_bx50v3.h |  3 +++
 2 files changed, 14 insertions(+)
board/ge/bx50v3/bx50v3.c +11 -0
index cf2cd1a..8e55acf 100644
@@ -25,6 +25,7 @@
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
 #include <i2c.h>
+#include <pwm.h>
 DECLARE_GLOBAL_DATA_PTR;
 
 #define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                  \
@@ -324,6 +325,8 @@ static iomux_v3_cfg_t const backlight_pads[] = {
        /* Backlight enable for LVDS display */
        MX6_PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL),
 #define LVDS_BACKLIGHT_GP IMX_GPIO_NR(1, 0)
+       /* backlight PWM brightness control */
+       MX6_PAD_SD1_DAT3__PWM1_OUT | MUX_PAD_CTRL(NO_PAD_CTRL),
 };
 
 static void do_enable_hdmi(struct display_info_t const *dev)
@@ -676,9 +679,17 @@ int board_late_init(void)
         * as per specifications from CHI MEI */
        mdelay(250);
 
+       /* enable backlight PWM 1 */
+       pwm_init(0, 0, 0);
+
+       /* duty cycle 5000000ns, period: 5000000ns */
+       pwm_config(0, 5000000, 5000000);
+
        /* Backlight Power */
        gpio_direction_output(LVDS_BACKLIGHT_GP, 1);
 
+       pwm_enable(0);
+
        return 0;
 }
 
include/configs/ge_bx50v3.h +3 -1
index 6fa4a9a..e37cd33 100644
@@ -327,6 +327,9 @@
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 
+#define CONFIG_PWM_IMX
+#define CONFIG_IMX6_PWM_PER_CLK        66000000
+
 #undef CONFIG_CMD_PCI
 #ifdef CONFIG_CMD_PCI
 #define CONFIG_PCI
--

2.7.3

#2 lore raw

PATCH 1/1 board: ge: bx50v3: Use pwm for display backlight

Hi Akshay,

Quoted 7 lines · Akshay Bhat

On Tue, Mar 15, 2016 at 2:24 PM, Akshay Bhat <[email protected] <mailto:[email protected]>> wrote:

Setup the LCD backlight brightness control pin to use PWM

Quoted 9 lines

<mailto:[email protected]>>
Cc: Stefano Babic <sbabic at denx.de <mailto:[email protected]>>
---

Hi Stefano,

Can this be applied if there are no review comments?

This is straightforward and can be applied - but I am afraid you need this just if "Update display setup" is applied.

I have some minor changes to ask for that, I am sending my review.

Best regards,
Stefano

Quoted 65 lines

Thanks,
Akshay

     board/ge/bx50v3/bx50v3.c    | 11 +++++++++++
     include/configs/ge_bx50v3.h |  3 +++
     2 files changed, 14 insertions(+)
    diff --git a/board/ge/bx50v3/bx50v3.c b/board/ge/bx50v3/bx50v3.c
    index cf2cd1a..8e55acf 100644
    --- a/board/ge/bx50v3/bx50v3.c
    +++ b/board/ge/bx50v3/bx50v3.c
    @@ -25,6 +25,7 @@
     #include <asm/io.h>
     #include <asm/arch/sys_proto.h>
     #include <i2c.h>
    +#include <pwm.h>
     DECLARE_GLOBAL_DATA_PTR;

     #define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                  \
    @@ -324,6 +325,8 @@ static iomux_v3_cfg_t const backlight_pads[] = {
            /* Backlight enable for LVDS display */
            MX6_PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL),
     #define LVDS_BACKLIGHT_GP IMX_GPIO_NR(1, 0)
    +       /* backlight PWM brightness control */
    +       MX6_PAD_SD1_DAT3__PWM1_OUT | MUX_PAD_CTRL(NO_PAD_CTRL),
     };

     static void do_enable_hdmi(struct display_info_t const *dev)
    @@ -676,9 +679,17 @@ int board_late_init(void)
             * as per specifications from CHI MEI */
            mdelay(250);

    +       /* enable backlight PWM 1 */
    +       pwm_init(0, 0, 0);
    +
    +       /* duty cycle 5000000ns, period: 5000000ns */
    +       pwm_config(0, 5000000, 5000000);
    +
            /* Backlight Power */
            gpio_direction_output(LVDS_BACKLIGHT_GP, 1);

    +       pwm_enable(0);
    +
            return 0;
     }

    diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
    index 6fa4a9a..e37cd33 100644
    --- a/include/configs/ge_bx50v3.h
    +++ b/include/configs/ge_bx50v3.h
    @@ -327,6 +327,9 @@
     #define CONFIG_IMX_HDMI
     #define CONFIG_IMX_VIDEO_SKIP

    +#define CONFIG_PWM_IMX
    +#define CONFIG_IMX6_PWM_PER_CLK        66000000
    +
     #undef CONFIG_CMD_PCI
     #ifdef CONFIG_CMD_PCI
     #define CONFIG_PCI
    --
    2.7.3
Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================