From: 黄涛 Date: Wed, 26 Jan 2011 13:17:29 +0000 (+0800) Subject: regulator: rk29-pwm: make set/get equal X-Git-Tag: firefly_0821_release~10789^2~7 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=daac15c7bc27af2ecc50146544bbc444583458cb;p=firefly-linux-kernel-4.4.55.git regulator: rk29-pwm: make set/get equal --- diff --git a/drivers/regulator/rk29-pwm-regulator.c b/drivers/regulator/rk29-pwm-regulator.c index 4091dc3f92a7..016ceada24a5 100644 --- a/drivers/regulator/rk29-pwm-regulator.c +++ b/drivers/regulator/rk29-pwm-regulator.c @@ -79,9 +79,6 @@ static int pwm_set_rate(struct pwm_platform_data *pdata,int nHz,u32 rate) rk29_mux_api_set(pdata->pwm_iomux_name, pdata->pwm_iomux_gpio); // set gpio to low level gpio_set_value(pdata->pwm_gpio,GPIO_LOW); - - pdata->pwm_voltage = 1400; - } else if (rate <= 100) { @@ -98,9 +95,6 @@ static int pwm_set_rate(struct pwm_platform_data *pdata,int nHz,u32 rate) pwm_write_reg(id, PWM_REG_HRC, divh?divh:1); 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); - - pdata->pwm_voltage = 1400 - 476*rate/100; - } else { @@ -209,6 +203,12 @@ static int __devinit pwm_regulator_probe(struct platform_device *pdev) struct regulator_dev *rdev; int ret ; + if (!pdata) + return -ENODEV; + + if (!pdata->pwm_voltage) + pdata->pwm_voltage = 1200; // default 1.2v + rdev = regulator_register(&pwm_regulator, &pdev->dev, pdata->init_data, pdata); if (IS_ERR(rdev)) {