From eb5cba4889bd623555db924af4386efc5a924bed Mon Sep 17 00:00:00 2001 From: "lw@rock-chips.com" Date: Fri, 24 Aug 2012 17:57:55 +0800 Subject: [PATCH] backlight:add pre_div parameter --- arch/arm/plat-rk/include/plat/board.h | 1 + drivers/video/backlight/rk29_backlight.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm/plat-rk/include/plat/board.h b/arch/arm/plat-rk/include/plat/board.h index b232873ed3dc..30a43455e1d5 100755 --- a/arch/arm/plat-rk/include/plat/board.h +++ b/arch/arm/plat-rk/include/plat/board.h @@ -50,6 +50,7 @@ struct rk29_bl_info { int (*pwm_resume)(void); int min_brightness; /* 0 ~ 255 */ unsigned int delay_ms; /* in milliseconds */ + int pre_div; }; struct rk29_io_t { diff --git a/drivers/video/backlight/rk29_backlight.c b/drivers/video/backlight/rk29_backlight.c index 4244e385340c..49a78e3df766 100755 --- a/drivers/video/backlight/rk29_backlight.c +++ b/drivers/video/backlight/rk29_backlight.c @@ -219,6 +219,7 @@ static int rk29_backlight_probe(struct platform_device *pdev) u32 divh, div_total; unsigned long pwm_clk_rate; struct backlight_properties props; + int pre_div = PWM_APB_PRE_DIV; if (rk29_bl) { printk(KERN_CRIT "%s: backlight device register has existed \n", @@ -236,6 +237,9 @@ static int rk29_backlight_probe(struct platform_device *pdev) rk29_bl_info->io_init(); } + if(rk29_bl_info->pre_div > 0) + pre_div = rk29_bl_info->pre_div; + memset(&props, 0, sizeof(struct backlight_properties)); props.type = BACKLIGHT_RAW; props.max_brightness = BL_STEP; @@ -259,7 +263,7 @@ static int rk29_backlight_probe(struct platform_device *pdev) return -ENODEV; } pwm_clk_rate = clk_get_rate(pwm_clk); - div_total = pwm_clk_rate / PWM_APB_PRE_DIV; + div_total = pwm_clk_rate / pre_div; div_total >>= (1 + (PWM_DIV >> 9)); div_total = (div_total) ? div_total : 1; -- 2.34.1