regulator: rk29-pwm: make set/get equal
author黄涛 <huangtao@rock-chips.com>
Wed, 26 Jan 2011 13:17:29 +0000 (21:17 +0800)
committer黄涛 <huangtao@rock-chips.com>
Wed, 26 Jan 2011 13:17:29 +0000 (21:17 +0800)
drivers/regulator/rk29-pwm-regulator.c

index 4091dc3f92a7836752fab656da210d806bfe4b48..016ceada24a59d8ddc1ce82dbe09aa77babbb60c 100644 (file)
@@ -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);\r
         // set gpio to low level        \r
         gpio_set_value(pdata->pwm_gpio,GPIO_LOW);\r
-\r
-        pdata->pwm_voltage = 1400;\r
-        \r
        }\r
     else if (rate <= 100)\r
        {\r
@@ -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);\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
-        pdata->pwm_voltage = 1400 - 476*rate/100;\r
-        \r
        }\r
      else\r
        {\r
@@ -209,6 +203,12 @@ static int __devinit pwm_regulator_probe(struct platform_device *pdev)
        struct regulator_dev *rdev;\r
        int ret ;\r
 
+       if (!pdata)
+               return -ENODEV;
+
+       if (!pdata->pwm_voltage)
+               pdata->pwm_voltage = 1200;      // default 1.2v
+
        rdev = regulator_register(&pwm_regulator, &pdev->dev,\r
                                pdata->init_data, pdata);\r
        if (IS_ERR(rdev)) {\r