rk30_phone:add suspend and resume for discrete regulator
authorlw@rock-chips.com <lw@rock-chips.com>
Wed, 25 Apr 2012 02:40:31 +0000 (10:40 +0800)
committerlw <lw@rock-chips.com>
Wed, 25 Apr 2012 02:40:51 +0000 (10:40 +0800)
drivers/regulator/rk30-pwm-regulator.c

index 62356b88e52e083267268e683cfdec2ab44ee443..7a89527b0b06719dd30bf1fa5591f122501b4a14 100755 (executable)
@@ -313,6 +313,22 @@ err:
        return ret;\r
 \r
 }\r
+\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
+       DBG("%s,pwm_id=%d\n",__func__,pdata->pwm_id);\r
+       return 0;\r
+}\r
+\r
+static int pwm_regulator_resume(struct platform_device *pdev)\r
+{\r
+       struct pwm_platform_data *pdata = pdev->dev.platform_data;\r
+       DBG("%s,pwm_id=%d\n",__func__,pdata->pwm_id);\r
+       return 0;\r
+}\r
+\r
 static int __devexit pwm_regulator_remove(struct platform_device *pdev)\r
 {\r
        struct pwm_platform_data *pdata = pdev->dev.platform_data;\r
@@ -328,6 +344,8 @@ static struct platform_driver pwm_regulator_driver = {
        .driver = {\r
                .name = "pwm-voltage-regulator",\r
        },\r
+       .suspend = pwm_regulator_suspend,\r
+       .resume = pwm_regulator_resume,\r
        .remove = __devexit_p(pwm_regulator_remove),\r
 };\r
 \r