phonepad:modify rk30 pwm regulator suspend

This commit is contained in:
lw@rock-chips.com
2012-08-02 17:27:45 +08:00
committed by lw
parent f10c99c972
commit 8fa1cf2ff7

View File

@@ -101,9 +101,9 @@ static int pwm_set_rate(struct pwm_platform_data *pdata,int nHz,u32 rate)
//disable pull up or down
gpio_pull_updown(pdata->pwm_gpio,PullDisable);
// set gpio to low level
gpio_set_value(pdata->pwm_gpio,GPIO_LOW);
gpio_direction_output(pdata->pwm_gpio,GPIO_LOW);
}
else if (rate <= 100)
else if (rate < 100)
{
// iomux pwm
rk29_mux_api_set(pdata->pwm_iomux_name, pdata->pwm_iomux_pwm);
@@ -119,6 +119,16 @@ static int pwm_set_rate(struct pwm_platform_data *pdata,int nHz,u32 rate)
pwm_write_reg(id,PWM_REG_CNTR,0);
pwm_write_reg(id, PWM_REG_CTRL,pwm_read_reg(id,PWM_REG_CTRL)|PWM_DIV|PWM_ENABLE|PWM_TimeEN);
}
else if (rate == 100)
{
// iomux pwm to gpio
rk29_mux_api_set(pdata->pwm_iomux_name, pdata->pwm_iomux_gpio);
//disable pull up or down
gpio_pull_updown(pdata->pwm_gpio,PullDisable);
// set gpio to low level
gpio_direction_output(pdata->pwm_gpio,GPIO_HIGH);
}
else
{
printk("%s:rate error\n",__func__);
@@ -324,7 +334,7 @@ err:
static int pwm_regulator_suspend(struct platform_device *pdev, pm_message_t state)
{
struct pwm_platform_data *pdata = pdev->dev.platform_data;
pwm_set_rate(pdata,1000*1000,0);//pwm clk will change to 24M after suspend
pwm_set_rate(pdata,1000*1000,100);//pwm clk will change to 24M after suspend
DBG("%s,pwm_id=%d\n",__func__,pdata->pwm_id);
return 0;
}