props.brightness = pdata->init_brt_led;
        props.max_brightness = pdata->max_brt_led;
        pchip->bled =
-           backlight_device_register("lm3639_bled", pchip->dev, pchip,
-                                     &lm3639_bled_ops, &props);
+           devm_backlight_device_register(pchip->dev, "lm3639_bled",
+                                          pchip->dev, pchip, &lm3639_bled_ops,
+                                          &props);
        if (IS_ERR(pchip->bled)) {
                dev_err(&client->dev, "fail : backlight register\n");
                ret = PTR_ERR(pchip->bled);
        ret = device_create_file(&(pchip->bled->dev), &dev_attr_bled_mode);
        if (ret < 0) {
                dev_err(&client->dev, "failed : add sysfs entries\n");
-               goto err_bled_mode;
+               goto err_out;
        }
 
        /* flash */
        led_classdev_unregister(&pchip->cdev_flash);
 err_flash:
        device_remove_file(&(pchip->bled->dev), &dev_attr_bled_mode);
-err_bled_mode:
-       backlight_device_unregister(pchip->bled);
 err_out:
        return ret;
 }
                led_classdev_unregister(&pchip->cdev_torch);
        if (&pchip->cdev_flash)
                led_classdev_unregister(&pchip->cdev_flash);
-       if (pchip->bled) {
+       if (pchip->bled)
                device_remove_file(&(pchip->bled->dev), &dev_attr_bled_mode);
-               backlight_device_unregister(pchip->bled);
-       }
        return 0;
 }
 
 module_i2c_driver(lm3639_i2c_driver);
 
 MODULE_DESCRIPTION("Texas Instruments Backlight+Flash LED driver for LM3639");
-MODULE_AUTHOR("Daniel Jeong <daniel.jeong@ti.com>");
-MODULE_AUTHOR("G.Shark Jeong <gshark.jeong@gmail.com>");
+MODULE_AUTHOR("Daniel Jeong <gshark.jeong@gmail.com>");
+MODULE_AUTHOR("Ldd Mlp <ldd-mlp@list.ti.com>");
 MODULE_LICENSE("GPL v2");