diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2012-10-01 15:23:37 +0200 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2012-10-01 15:23:37 +0200 |
commit | 7bcbe1b93b10ad0b1e0f731f9c90d2caaccef163 (patch) | |
tree | 0af8c66516cd9b8252d7f8b8ede1e42eec84b2fd /arch/arm/mach-tegra/board-colibri_t20-panel.c | |
parent | ef8bcc1feb274d2f3a7a0ec68fd995f10832896a (diff) |
tegra: colibri_t20: fix pwm backlight
Fix PWM backlight by using PWM<A> rather than PWM<C> by default.
Invert brightness value due to unified TFT interface displays (e.g. EDT
ET070080DH6) inverted LEDCTRL pin behaviour (e.g. 0V brightest vs. 3.3V
darkest) and use PWM frequency of 1 kHz as recommended.
Add comment about PWM pin muxing.
While at it do some ifdef and indentation clean-up.
Diffstat (limited to 'arch/arm/mach-tegra/board-colibri_t20-panel.c')
-rw-r--r-- | arch/arm/mach-tegra/board-colibri_t20-panel.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/board-colibri_t20-panel.c b/arch/arm/mach-tegra/board-colibri_t20-panel.c index 94879b558f0d..1887a66a2695 100644 --- a/arch/arm/mach-tegra/board-colibri_t20-panel.c +++ b/arch/arm/mach-tegra/board-colibri_t20-panel.c @@ -70,19 +70,29 @@ static void colibri_t20_backlight_exit(struct device *dev) { gpio_free(colibri_t20_bl_enb); } -static int colibri_t20_backlight_notify(struct device *unused, int brightness) +static int colibri_t20_backlight_notify(struct device *dev, int brightness) { + struct platform_pwm_backlight_data *pdata = dev->platform_data; + gpio_set_value(colibri_t20_bl_enb, !!brightness); - return brightness; + + /* unified TFT interface displays (e.g. EDT ET070080DH6) LEDCTRL pin + with inverted behaviour (e.g. 0V brightest vs. 3.3V darkest) */ + if (brightness) return pdata->max_brightness - brightness; + else return brightness; } static int colibri_t20_disp1_check_fb(struct device *dev, struct fb_info *info); static struct platform_pwm_backlight_data colibri_t20_backlight_data = { +#ifndef MECS_TELLURIUM + .pwm_id = 0, /* PWM<A> (PMFM_PWM0) */ +#else .pwm_id = 2, /* PWM<C> (PMFM_PWM2) */ +#endif .max_brightness = 255, .dft_brightness = 127, - .pwm_period_ns = 5000000, + .pwm_period_ns = 1000000, /* 1 kHz */ .init = colibri_t20_backlight_init, .exit = colibri_t20_backlight_exit, .notify = colibri_t20_backlight_notify, @@ -368,7 +378,11 @@ static struct platform_device *colibri_t20_gfx_devices[] __initdata = { &colibri_t20_nvmap_device, #endif #ifndef CAMERA_INTERFACE +#ifndef MECS_TELLURIUM + &tegra_pwfm0_device, +#else &tegra_pwfm2_device, +#endif &colibri_t20_backlight_device, #endif /* !CAMERA_INTERFACE */ }; |