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