MXS_ADC_CHAN(15, IIO_VOLTAGE, "VDD5V"),
 };
 
-static int mxs_lradc_hw_init(struct mxs_lradc *lradc)
+static void mxs_lradc_hw_init(struct mxs_lradc *lradc)
 {
        /* The ADC always uses DELAY CHANNEL 0. */
        const u32 adc_cfg =
                (1 << (LRADC_DELAY_TRIGGER_DELAYS_OFFSET + 0)) |
                (LRADC_DELAY_TIMER_PER << LRADC_DELAY_DELAY_OFFSET);
 
-       int ret = stmp_reset_block(lradc->base);
-
-       if (ret)
-               return ret;
-
        /* Configure DELAY CHANNEL 0 for generic ADC sampling. */
        mxs_lradc_reg_wrt(lradc, adc_cfg, LRADC_DELAY(0));
 
 
        /* Start internal temperature sensing. */
        mxs_lradc_reg_wrt(lradc, 0, LRADC_CTRL2);
-
-       return 0;
 }
 
 static void mxs_lradc_hw_stop(struct mxs_lradc *lradc)
                }
        }
 
-       /* Configure the hardware. */
-       ret = mxs_lradc_hw_init(lradc);
+       ret = stmp_reset_block(lradc->base);
        if (ret)
                goto err_dev;
 
+       /* Configure the hardware. */
+       mxs_lradc_hw_init(lradc);
+
        /* Register the touchscreen input device. */
        if (touch_ret == 0) {
                ret = mxs_lradc_ts_register(lradc);