diff options
author | Liu Ying <b17645@freescale.com> | 2010-10-25 17:31:30 +0800 |
---|---|---|
committer | Lily Zhang <r58066@freescale.com> | 2010-10-27 15:55:04 +0800 |
commit | d052048b6b271dbe7103adb7868565405f11e3d6 (patch) | |
tree | 47c2183ceba114c73dfb33daad06274e06f5eadf | |
parent | fbd6f731540921508be0fe3955109c5bf7a4bf96 (diff) |
ENGR00132935-2 MX53 ARD:Add pwm enable/disable pad functions
This patch adds pwm enable/disable pad functions to pwm platform
data.
Signed-off-by: Liu Ying <b17645@freescale.com>
-rw-r--r-- | arch/arm/mach-mx5/mx53_ard.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/arch/arm/mach-mx5/mx53_ard.c b/arch/arm/mach-mx5/mx53_ard.c index 6a38f2bb7ad2..c91e10a8eadf 100644 --- a/arch/arm/mach-mx5/mx53_ard.c +++ b/arch/arm/mach-mx5/mx53_ard.c @@ -92,6 +92,8 @@ #define ARD_FPGA_INT_B (3*32 + 5) /* GPIO_4_5 */ #define ARD_USBH2_PHYRST_B (3*32 + 14) /* GPIO_4_14 */ #define ARD_CAN_STBY (3*32 + 15) /* GPIO_4_15 */ +#define ARD_PWM1_OFF (3*32 + 29) /* GPIO_4_29 */ +#define ARD_PWM2_OFF (3*32 + 30) /* GPIO_4_30 */ #define ARD_USBOTG_PWR (4*32 + 2) /* GPIO_5_2 */ #define ARD_USBOTG_OC (4*32 + 4) /* GPIO_5_4 */ @@ -465,8 +467,31 @@ void mx53_ard_set_num_cpu_wp(int num) return; } +static struct pad_desc mx53_ard_pwm_pads[] = { + MX53_PAD_DISP0_DAT8__PWM1, + MX53_PAD_DISP0_DAT9__PWM2, + MX53_PAD_DISP0_DAT8__GPIO_4_29, + MX53_PAD_DISP0_DAT9__GPIO_4_30, +}; + +static void enable_pwm1_pad(void) +{ + mxc_iomux_v3_setup_pad(&mx53_ard_pwm_pads[0]); +} + +static void disable_pwm1_pad(void) +{ + mxc_iomux_v3_setup_pad(&mx53_ard_pwm_pads[2]); + + gpio_request(ARD_PWM2_OFF, "pwm2-off"); + gpio_direction_output(ARD_PWM2_OFF, 1); + gpio_free(ARD_PWM2_OFF); +} + static struct mxc_pwm_platform_data mxc_pwm1_platform_data = { .pwmo_invert = 1, + .enable_pwm_pad = enable_pwm1_pad, + .disable_pwm_pad = disable_pwm1_pad, }; static struct platform_pwm_backlight_data mxc_pwm1_backlight_data = { @@ -476,8 +501,24 @@ static struct platform_pwm_backlight_data mxc_pwm1_backlight_data = { .pwm_period_ns = 5000000, }; +static void enable_pwm2_pad(void) +{ + mxc_iomux_v3_setup_pad(&mx53_ard_pwm_pads[1]); +} + +static void disable_pwm2_pad(void) +{ + mxc_iomux_v3_setup_pad(&mx53_ard_pwm_pads[3]); + + gpio_request(ARD_PWM2_OFF, "pwm2-off"); + gpio_direction_output(ARD_PWM2_OFF, 1); + gpio_free(ARD_PWM2_OFF); +} + static struct mxc_pwm_platform_data mxc_pwm2_platform_data = { .pwmo_invert = 1, + .enable_pwm_pad = enable_pwm2_pad, + .disable_pwm_pad = disable_pwm2_pad, }; static struct platform_pwm_backlight_data mxc_pwm2_backlight_data = { |