summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Lai <b04597@freescale.com>2010-10-11 21:04:48 +0800
committerWilliam Lai <b04597@freescale.com>2010-10-14 09:42:39 +0800
commit6b0f3a58488964cbce3d96d5083c7c342ea86c14 (patch)
treeb5e89cb90bab8b1d36b88d185e49225b43540fc4
parent0cb66bfe09ca41821c96f220020fb79805383bb2 (diff)
ENGR00132459-3 MX5: Support 2 PWM based backlights
Support 2 PWM based backlights, and add PWMO invertion option on i.MX53 ARD. Signed-off-by: William Lai<b04597@freescale.com>
-rw-r--r--arch/arm/mach-mx5/devices.c9
-rw-r--r--arch/arm/mach-mx5/devices.h3
-rw-r--r--arch/arm/mach-mx5/mx51_3stack.c3
-rw-r--r--arch/arm/mach-mx5/mx51_babbage.c3
-rw-r--r--arch/arm/mach-mx5/mx53_ard.c29
-rw-r--r--arch/arm/mach-mx5/mx53_evk.c3
6 files changed, 40 insertions, 10 deletions
diff --git a/arch/arm/mach-mx5/devices.c b/arch/arm/mach-mx5/devices.c
index cba86e51af1d..5a4106c634aa 100644
--- a/arch/arm/mach-mx5/devices.c
+++ b/arch/arm/mach-mx5/devices.c
@@ -281,9 +281,14 @@ struct platform_device mxc_pwm2_device = {
.resource = pwm2_resources,
};
-struct platform_device mxc_pwm_backlight_device = {
+struct platform_device mxc_pwm1_backlight_device = {
.name = "pwm-backlight",
- .id = -1,
+ .id = 0,
+};
+
+struct platform_device mxc_pwm2_backlight_device = {
+ .name = "pwm-backlight",
+ .id = 1,
};
static struct resource flexcan0_resources[] = {
diff --git a/arch/arm/mach-mx5/devices.h b/arch/arm/mach-mx5/devices.h
index 0d955ad8f7fa..e3a73b0bd732 100644
--- a/arch/arm/mach-mx5/devices.h
+++ b/arch/arm/mach-mx5/devices.h
@@ -33,7 +33,8 @@ extern struct platform_device imx_nfc_device;
extern struct platform_device mxc_wdt_device;
extern struct platform_device mxc_pwm1_device;
extern struct platform_device mxc_pwm2_device;
-extern struct platform_device mxc_pwm_backlight_device;
+extern struct platform_device mxc_pwm1_backlight_device;
+extern struct platform_device mxc_pwm2_backlight_device;
extern struct platform_device mxc_flexcan0_device;
extern struct platform_device mxc_flexcan1_device;
extern struct platform_device mxc_ipu_device;
diff --git a/arch/arm/mach-mx5/mx51_3stack.c b/arch/arm/mach-mx5/mx51_3stack.c
index 61fd7b00dfc1..d79883e2697c 100644
--- a/arch/arm/mach-mx5/mx51_3stack.c
+++ b/arch/arm/mach-mx5/mx51_3stack.c
@@ -981,7 +981,8 @@ static void __init mxc_board_init(void)
mxc_register_device(&mxc_dvfs_per_device, &dvfs_per_data);
mxc_register_device(&mxc_iim_device, NULL);
mxc_register_device(&mxc_pwm1_device, NULL);
- mxc_register_device(&mxc_pwm_backlight_device, &mxc_pwm_backlight_data);
+ mxc_register_device(&mxc_pwm1_backlight_device,
+ &mxc_pwm_backlight_data);
mxc_register_device(&mxc_keypad_device, &keypad_plat_data);
mxcsdhc1_device.resource[2].start = IOMUX_TO_IRQ(MX51_PIN_GPIO1_0);
mxcsdhc1_device.resource[2].end = IOMUX_TO_IRQ(MX51_PIN_GPIO1_0);
diff --git a/arch/arm/mach-mx5/mx51_babbage.c b/arch/arm/mach-mx5/mx51_babbage.c
index 2b378e506fb8..f7eae32a4988 100644
--- a/arch/arm/mach-mx5/mx51_babbage.c
+++ b/arch/arm/mach-mx5/mx51_babbage.c
@@ -1203,7 +1203,8 @@ static void __init mxc_board_init(void)
mxc_register_device(&mxc_dvfs_per_device, &dvfs_per_data);
mxc_register_device(&mxc_iim_device, NULL);
mxc_register_device(&mxc_pwm1_device, NULL);
- mxc_register_device(&mxc_pwm_backlight_device, &mxc_pwm_backlight_data);
+ mxc_register_device(&mxc_pwm1_backlight_device,
+ &mxc_pwm_backlight_data);
mxc_register_device(&mxc_keypad_device, &keypad_plat_data);
mxc_register_device(&mxcsdhc1_device, &mmc1_data);
mxc_register_device(&mxcsdhc2_device, &mmc2_data);
diff --git a/arch/arm/mach-mx5/mx53_ard.c b/arch/arm/mach-mx5/mx53_ard.c
index 03d0e4c8aabd..d58015db3e66 100644
--- a/arch/arm/mach-mx5/mx53_ard.c
+++ b/arch/arm/mach-mx5/mx53_ard.c
@@ -465,11 +465,26 @@ void mx53_ard_set_num_cpu_wp(int num)
return;
}
-static struct platform_pwm_backlight_data mxc_pwm_backlight_data = {
+static struct mxc_pwm_platform_data mxc_pwm1_platform_data = {
+ .pwmo_invert = 1,
+};
+
+static struct platform_pwm_backlight_data mxc_pwm1_backlight_data = {
+ .pwm_id = 0,
+ .max_brightness = 255,
+ .dft_brightness = 128,
+ .pwm_period_ns = 5000000,
+};
+
+static struct mxc_pwm_platform_data mxc_pwm2_platform_data = {
+ .pwmo_invert = 1,
+};
+
+static struct platform_pwm_backlight_data mxc_pwm2_backlight_data = {
.pwm_id = 1,
.max_brightness = 255,
.dft_brightness = 128,
- .pwm_period_ns = 78770,
+ .pwm_period_ns = 5000000,
};
static void flexcan_xcvr_enable(int id, int en)
@@ -1349,8 +1364,14 @@ static void __init mxc_board_init(void)
mxc_register_device(&busfreq_device, NULL);
mxc_register_device(&mxc_iim_device, NULL);
- mxc_register_device(&mxc_pwm2_device, NULL);
- mxc_register_device(&mxc_pwm_backlight_device, &mxc_pwm_backlight_data);
+
+ mxc_register_device(&mxc_pwm1_device, &mxc_pwm1_platform_data);
+ mxc_register_device(&mxc_pwm1_backlight_device,
+ &mxc_pwm1_backlight_data);
+
+ mxc_register_device(&mxc_pwm2_device, &mxc_pwm2_platform_data);
+ mxc_register_device(&mxc_pwm2_backlight_device,
+ &mxc_pwm2_backlight_data);
mxc_register_device(&mxc_flexcan0_device, &flexcan0_data);
mxc_register_device(&mxc_flexcan1_device, &flexcan1_data);
diff --git a/arch/arm/mach-mx5/mx53_evk.c b/arch/arm/mach-mx5/mx53_evk.c
index 107973e8b84c..d7ecaeef583a 100644
--- a/arch/arm/mach-mx5/mx53_evk.c
+++ b/arch/arm/mach-mx5/mx53_evk.c
@@ -1643,7 +1643,8 @@ static void __init mxc_board_init(void)
mxc_register_device(&mxc_iim_device, NULL);
if (!board_is_mx53_arm2()) {
mxc_register_device(&mxc_pwm2_device, NULL);
- mxc_register_device(&mxc_pwm_backlight_device, &mxc_pwm_backlight_data);
+ mxc_register_device(&mxc_pwm1_backlight_device,
+ &mxc_pwm_backlight_data);
}
mxc_register_device(&mxc_flexcan0_device, &flexcan0_data);
mxc_register_device(&mxc_flexcan1_device, &flexcan1_data);