memset(&props, 0, sizeof(struct backlight_properties));
        props.type = BACKLIGHT_RAW;
        props.max_brightness = MAX_BRIGHTNESS;
-       bl = backlight_device_register("max8925-backlight", &pdev->dev, data,
+       bl = devm_backlight_device_register(&pdev->dev, "max8925-backlight",
+                                       &pdev->dev, data,
                                        &max8925_backlight_ops, &props);
        if (IS_ERR(bl)) {
                dev_err(&pdev->dev, "failed to register backlight\n");
        }
        ret = max8925_set_bits(chip->i2c, data->reg_mode_cntl, 0xfe, value);
        if (ret < 0)
-               goto out_brt;
+               return ret;
        backlight_update_status(bl);
        return 0;
-out_brt:
-       backlight_device_unregister(bl);
-       return ret;
-}
-
-static int max8925_backlight_remove(struct platform_device *pdev)
-{
-       struct backlight_device *bl = platform_get_drvdata(pdev);
-
-       backlight_device_unregister(bl);
-       return 0;
 }
 
 static struct platform_driver max8925_backlight_driver = {
                .owner  = THIS_MODULE,
        },
        .probe          = max8925_backlight_probe,
-       .remove         = max8925_backlight_remove,
 };
 
 module_platform_driver(max8925_backlight_driver);