@ -18,6 +18,9 @@ int pwm_init(int pwm_id, int div, int invert)
{
{
struct pwm_regs * pwm = ( struct pwm_regs * ) pwm_id_to_reg ( pwm_id ) ;
struct pwm_regs * pwm = ( struct pwm_regs * ) pwm_id_to_reg ( pwm_id ) ;
if ( ! pwm )
return - 1 ;
writel ( 0 , & pwm - > ir ) ;
writel ( 0 , & pwm - > ir ) ;
return 0 ;
return 0 ;
}
}
@ -28,6 +31,9 @@ int pwm_config(int pwm_id, int duty_ns, int period_ns)
unsigned long period_cycles , duty_cycles , prescale ;
unsigned long period_cycles , duty_cycles , prescale ;
u32 cr ;
u32 cr ;
if ( ! pwm )
return - 1 ;
pwm_imx_get_parms ( period_ns , duty_ns , & period_cycles , & duty_cycles ,
pwm_imx_get_parms ( period_ns , duty_ns , & period_cycles , & duty_cycles ,
& prescale ) ;
& prescale ) ;
@ -47,6 +53,9 @@ int pwm_enable(int pwm_id)
{
{
struct pwm_regs * pwm = ( struct pwm_regs * ) pwm_id_to_reg ( pwm_id ) ;
struct pwm_regs * pwm = ( struct pwm_regs * ) pwm_id_to_reg ( pwm_id ) ;
if ( ! pwm )
return - 1 ;
setbits_le32 ( & pwm - > cr , PWMCR_EN ) ;
setbits_le32 ( & pwm - > cr , PWMCR_EN ) ;
return 0 ;
return 0 ;
}
}
@ -55,5 +64,8 @@ void pwm_disable(int pwm_id)
{
{
struct pwm_regs * pwm = ( struct pwm_regs * ) pwm_id_to_reg ( pwm_id ) ;
struct pwm_regs * pwm = ( struct pwm_regs * ) pwm_id_to_reg ( pwm_id ) ;
if ( ! pwm )
return ;
clrbits_le32 ( & pwm - > cr , PWMCR_EN ) ;
clrbits_le32 ( & pwm - > cr , PWMCR_EN ) ;
}
}