iio: mxs-lradc: Check the return value from stmp_reset_block()
stmp_reset_block() may fail, so let's check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Marek Vasut <marex@denx.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
70ea35fba2
commit
947123d53f
1 changed files with 9 additions and 3 deletions
|
@ -841,14 +841,16 @@ static const struct iio_chan_spec mxs_lradc_chan_spec[] = {
|
|||
MXS_ADC_CHAN(15, IIO_VOLTAGE), /* VDD5V */
|
||||
};
|
||||
|
||||
static void mxs_lradc_hw_init(struct mxs_lradc *lradc)
|
||||
static int mxs_lradc_hw_init(struct mxs_lradc *lradc)
|
||||
{
|
||||
/* The ADC always uses DELAY CHANNEL 0. */
|
||||
const uint32_t adc_cfg =
|
||||
(1 << (LRADC_DELAY_TRIGGER_DELAYS_OFFSET + 0)) |
|
||||
(LRADC_DELAY_TIMER_PER << LRADC_DELAY_DELAY_OFFSET);
|
||||
|
||||
stmp_reset_block(lradc->base);
|
||||
int ret = stmp_reset_block(lradc->base);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Configure DELAY CHANNEL 0 for generic ADC sampling. */
|
||||
writel(adc_cfg, lradc->base + LRADC_DELAY(0));
|
||||
|
@ -869,6 +871,8 @@ static void mxs_lradc_hw_init(struct mxs_lradc *lradc)
|
|||
|
||||
/* Start internal temperature sensing. */
|
||||
writel(0, lradc->base + LRADC_CTRL2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void mxs_lradc_hw_stop(struct mxs_lradc *lradc)
|
||||
|
@ -976,7 +980,9 @@ static int mxs_lradc_probe(struct platform_device *pdev)
|
|||
goto err_trig;
|
||||
|
||||
/* Configure the hardware. */
|
||||
mxs_lradc_hw_init(lradc);
|
||||
ret = mxs_lradc_hw_init(lradc);
|
||||
if (ret)
|
||||
goto err_dev;
|
||||
|
||||
/* Register the touchscreen input device. */
|
||||
ret = mxs_lradc_ts_register(lradc);
|
||||
|
|
Loading…
Add table
Reference in a new issue