From: lw@rock-chips.com Date: Wed, 25 Apr 2012 02:40:31 +0000 (+0800) Subject: rk30_phone:add suspend and resume for discrete regulator X-Git-Tag: firefly_0821_release~9321 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0b5f75565ed917059b394ad3dc9dd1f218d042e4;p=firefly-linux-kernel-4.4.55.git rk30_phone:add suspend and resume for discrete regulator --- diff --git a/drivers/regulator/rk30-pwm-regulator.c b/drivers/regulator/rk30-pwm-regulator.c index 62356b88e52e..7a89527b0b06 100755 --- a/drivers/regulator/rk30-pwm-regulator.c +++ b/drivers/regulator/rk30-pwm-regulator.c @@ -313,6 +313,22 @@ err: return ret; } + +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 + DBG("%s,pwm_id=%d\n",__func__,pdata->pwm_id); + return 0; +} + +static int pwm_regulator_resume(struct platform_device *pdev) +{ + struct pwm_platform_data *pdata = pdev->dev.platform_data; + DBG("%s,pwm_id=%d\n",__func__,pdata->pwm_id); + return 0; +} + static int __devexit pwm_regulator_remove(struct platform_device *pdev) { struct pwm_platform_data *pdata = pdev->dev.platform_data; @@ -328,6 +344,8 @@ static struct platform_driver pwm_regulator_driver = { .driver = { .name = "pwm-voltage-regulator", }, + .suspend = pwm_regulator_suspend, + .resume = pwm_regulator_resume, .remove = __devexit_p(pwm_regulator_remove), };