struct twl4030_madc_battery *twl4030_madc_bat;
        struct twl4030_madc_bat_platform_data *pdata = pdev->dev.platform_data;
        struct power_supply_config psy_cfg = {};
-       int ret = 0;
 
        twl4030_madc_bat = devm_kzalloc(&pdev->dev, sizeof(*twl4030_madc_bat),
                                GFP_KERNEL);
        if (!twl4030_madc_bat)
                return -ENOMEM;
 
-       twl4030_madc_bat->channel_temp = iio_channel_get(&pdev->dev, "temp");
-       if (IS_ERR(twl4030_madc_bat->channel_temp)) {
-               ret = PTR_ERR(twl4030_madc_bat->channel_temp);
-               goto err;
-       }
+       twl4030_madc_bat->channel_temp = devm_iio_channel_get(&pdev->dev, "temp");
+       if (IS_ERR(twl4030_madc_bat->channel_temp))
+               return PTR_ERR(twl4030_madc_bat->channel_temp);
 
-       twl4030_madc_bat->channel_ichg = iio_channel_get(&pdev->dev, "ichg");
-       if (IS_ERR(twl4030_madc_bat->channel_ichg)) {
-               ret = PTR_ERR(twl4030_madc_bat->channel_ichg);
-               goto err_temp;
-       }
+       twl4030_madc_bat->channel_ichg = devm_iio_channel_get(&pdev->dev, "ichg");
+       if (IS_ERR(twl4030_madc_bat->channel_ichg))
+               return PTR_ERR(twl4030_madc_bat->channel_ichg);
 
-       twl4030_madc_bat->channel_vbat = iio_channel_get(&pdev->dev, "vbat");
-       if (IS_ERR(twl4030_madc_bat->channel_vbat)) {
-               ret = PTR_ERR(twl4030_madc_bat->channel_vbat);
-               goto err_ichg;
-       }
+       twl4030_madc_bat->channel_vbat = devm_iio_channel_get(&pdev->dev, "vbat");
+       if (IS_ERR(twl4030_madc_bat->channel_vbat))
+               return PTR_ERR(twl4030_madc_bat->channel_vbat);
 
        /* sort charging and discharging calibration data */
        sort(pdata->charging, pdata->charging_size,
        twl4030_madc_bat->psy = power_supply_register(&pdev->dev,
                                                      &twl4030_madc_bat_desc,
                                                      &psy_cfg);
-       if (IS_ERR(twl4030_madc_bat->psy)) {
-               ret = PTR_ERR(twl4030_madc_bat->psy);
-               goto err_vbat;
-       }
+       if (IS_ERR(twl4030_madc_bat->psy))
+               return PTR_ERR(twl4030_madc_bat->psy);
 
        return 0;
-
-err_vbat:
-       iio_channel_release(twl4030_madc_bat->channel_vbat);
-err_ichg:
-       iio_channel_release(twl4030_madc_bat->channel_ichg);
-err_temp:
-       iio_channel_release(twl4030_madc_bat->channel_temp);
-err:
-       return ret;
 }
 
 static void twl4030_madc_battery_remove(struct platform_device *pdev)
        struct twl4030_madc_battery *bat = platform_get_drvdata(pdev);
 
        power_supply_unregister(bat->psy);
-
-       iio_channel_release(bat->channel_vbat);
-       iio_channel_release(bat->channel_ichg);
-       iio_channel_release(bat->channel_temp);
 }
 
 static struct platform_driver twl4030_madc_battery_driver = {