summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-colibri_t20-panel.c
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2012-10-01 15:23:37 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2012-10-01 15:23:37 +0200
commit7bcbe1b93b10ad0b1e0f731f9c90d2caaccef163 (patch)
tree0af8c66516cd9b8252d7f8b8ede1e42eec84b2fd /arch/arm/mach-tegra/board-colibri_t20-panel.c
parentef8bcc1feb274d2f3a7a0ec68fd995f10832896a (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.c20
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 */
};