On Tue, 26 Jul 2016 14:11:47 +0800, Caesar Wang wrote: > SARADC controller needs to be reset before programming it, otherwise > it will not function properly. > > Signed-off-by: Caesar Wang <wxt at rock-chips.com> > Cc: Jonathan Cameron <jic23 at kernel.org> > Cc: Heiko Stuebner <heiko at sntech.de> > Cc: Rob Herring <robh+dt at kernel.org> > Cc: linux-iio at vger.kernel.org > Cc: linux-rockchip at lists.infradead.org > --- > > diff --git a/drivers/iio/adc/rockchip_saradc.c b/drivers/iio/adc/rockchip_saradc.c > index f9ad6c2..2f0e110 100644 > --- a/drivers/iio/adc/rockchip_saradc.c > +++ b/drivers/iio/adc/rockchip_saradc.c > @@ -218,6 +231,13 @@ static int rockchip_saradc_probe(struct platform_device *pdev) > if (IS_ERR(info->regs)) > return PTR_ERR(info->regs); > > + info->reset = devm_reset_control_get(&pdev->dev, "saradc-apb"); > + if (IS_ERR(info->reset)) { > + ret = PTR_ERR(info->reset); > + dev_err(&pdev->dev, "failed to get saradc reset: %d\n", ret); > + return ret; > + } Does this need to handle ENOENT so as to avoid failing with old device tree blobs?