staging: iio: spear_adc: Use devm_iio_device_alloc
Using devm_iio_device_alloc makes code simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: Stefan Roese <sr@denx.de> Cc: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
073c33d552
commit
8c7f6d562e
|
@ -300,11 +300,10 @@ static int spear_adc_probe(struct platform_device *pdev)
|
||||||
int ret = -ENODEV;
|
int ret = -ENODEV;
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
iodev = iio_device_alloc(sizeof(struct spear_adc_info));
|
iodev = devm_iio_device_alloc(dev, sizeof(struct spear_adc_info));
|
||||||
if (!iodev) {
|
if (!iodev) {
|
||||||
dev_err(dev, "failed allocating iio device\n");
|
dev_err(dev, "failed allocating iio device\n");
|
||||||
ret = -ENOMEM;
|
return -ENOMEM;
|
||||||
goto errout1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
info = iio_priv(iodev);
|
info = iio_priv(iodev);
|
||||||
|
@ -318,8 +317,7 @@ static int spear_adc_probe(struct platform_device *pdev)
|
||||||
info->adc_base_spear6xx = of_iomap(np, 0);
|
info->adc_base_spear6xx = of_iomap(np, 0);
|
||||||
if (!info->adc_base_spear6xx) {
|
if (!info->adc_base_spear6xx) {
|
||||||
dev_err(dev, "failed mapping memory\n");
|
dev_err(dev, "failed mapping memory\n");
|
||||||
ret = -ENOMEM;
|
return -ENOMEM;
|
||||||
goto errout2;
|
|
||||||
}
|
}
|
||||||
info->adc_base_spear3xx =
|
info->adc_base_spear3xx =
|
||||||
(struct adc_regs_spear3xx *)info->adc_base_spear6xx;
|
(struct adc_regs_spear3xx *)info->adc_base_spear6xx;
|
||||||
|
@ -327,33 +325,33 @@ static int spear_adc_probe(struct platform_device *pdev)
|
||||||
info->clk = clk_get(dev, NULL);
|
info->clk = clk_get(dev, NULL);
|
||||||
if (IS_ERR(info->clk)) {
|
if (IS_ERR(info->clk)) {
|
||||||
dev_err(dev, "failed getting clock\n");
|
dev_err(dev, "failed getting clock\n");
|
||||||
goto errout3;
|
goto errout1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = clk_prepare_enable(info->clk);
|
ret = clk_prepare_enable(info->clk);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed enabling clock\n");
|
dev_err(dev, "failed enabling clock\n");
|
||||||
goto errout4;
|
goto errout2;
|
||||||
}
|
}
|
||||||
|
|
||||||
irq = platform_get_irq(pdev, 0);
|
irq = platform_get_irq(pdev, 0);
|
||||||
if ((irq < 0) || (irq >= NR_IRQS)) {
|
if ((irq < 0) || (irq >= NR_IRQS)) {
|
||||||
dev_err(dev, "failed getting interrupt resource\n");
|
dev_err(dev, "failed getting interrupt resource\n");
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto errout5;
|
goto errout3;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = devm_request_irq(dev, irq, spear_adc_isr, 0, MOD_NAME, info);
|
ret = devm_request_irq(dev, irq, spear_adc_isr, 0, MOD_NAME, info);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed requesting interrupt\n");
|
dev_err(dev, "failed requesting interrupt\n");
|
||||||
goto errout5;
|
goto errout3;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (of_property_read_u32(np, "sampling-frequency",
|
if (of_property_read_u32(np, "sampling-frequency",
|
||||||
&info->sampling_freq)) {
|
&info->sampling_freq)) {
|
||||||
dev_err(dev, "sampling-frequency missing in DT\n");
|
dev_err(dev, "sampling-frequency missing in DT\n");
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto errout5;
|
goto errout3;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -383,21 +381,18 @@ static int spear_adc_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
ret = iio_device_register(iodev);
|
ret = iio_device_register(iodev);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto errout5;
|
goto errout3;
|
||||||
|
|
||||||
dev_info(dev, "SPEAR ADC driver loaded, IRQ %d\n", irq);
|
dev_info(dev, "SPEAR ADC driver loaded, IRQ %d\n", irq);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
errout5:
|
|
||||||
clk_disable_unprepare(info->clk);
|
|
||||||
errout4:
|
|
||||||
clk_put(info->clk);
|
|
||||||
errout3:
|
errout3:
|
||||||
iounmap(info->adc_base_spear6xx);
|
clk_disable_unprepare(info->clk);
|
||||||
errout2:
|
errout2:
|
||||||
iio_device_free(iodev);
|
clk_put(info->clk);
|
||||||
errout1:
|
errout1:
|
||||||
|
iounmap(info->adc_base_spear6xx);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,7 +405,6 @@ static int spear_adc_remove(struct platform_device *pdev)
|
||||||
clk_disable_unprepare(info->clk);
|
clk_disable_unprepare(info->clk);
|
||||||
clk_put(info->clk);
|
clk_put(info->clk);
|
||||||
iounmap(info->adc_base_spear6xx);
|
iounmap(info->adc_base_spear6xx);
|
||||||
iio_device_free(iodev);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue