Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[linux-2.6-microblaze.git] / drivers / iio / dac / ad5624r_spi.c
index 9bde869..530529f 100644 (file)
@@ -229,7 +229,7 @@ static int ad5624r_probe(struct spi_device *spi)
        if (!indio_dev)
                return -ENOMEM;
        st = iio_priv(indio_dev);
-       st->reg = devm_regulator_get(&spi->dev, "vcc");
+       st->reg = devm_regulator_get_optional(&spi->dev, "vref");
        if (!IS_ERR(st->reg)) {
                ret = regulator_enable(st->reg);
                if (ret)
@@ -240,6 +240,22 @@ static int ad5624r_probe(struct spi_device *spi)
                        goto error_disable_reg;
 
                voltage_uv = ret;
+       } else {
+               if (PTR_ERR(st->reg) != -ENODEV)
+                       return PTR_ERR(st->reg);
+               /* Backwards compatibility. This naming is not correct */
+               st->reg = devm_regulator_get_optional(&spi->dev, "vcc");
+               if (!IS_ERR(st->reg)) {
+                       ret = regulator_enable(st->reg);
+                       if (ret)
+                               return ret;
+
+                       ret = regulator_get_voltage(st->reg);
+                       if (ret < 0)
+                               goto error_disable_reg;
+
+                       voltage_uv = ret;
+               }
        }
 
        spi_set_drvdata(spi, indio_dev);