static int panel_probe(struct platform_device *pdev)
 {
-       struct device_node *bl_node, *node = pdev->dev.of_node;
+       struct device_node *node = pdev->dev.of_node;
+       struct backlight_device *backlight;
        struct panel_module *panel_mod;
        struct tilcdc_module *mod;
        struct pinctrl *pinctrl;
        if (!panel_mod)
                return -ENOMEM;
 
-       bl_node = of_parse_phandle(node, "backlight", 0);
-       if (bl_node) {
-               panel_mod->backlight = of_find_backlight_by_node(bl_node);
-               of_node_put(bl_node);
-
-               if (!panel_mod->backlight)
-                       return -EPROBE_DEFER;
-
-               dev_info(&pdev->dev, "found backlight\n");
-       }
+       backlight = devm_of_find_backlight(&pdev->dev);
+       if (IS_ERR(backlight))
+               return PTR_ERR(backlight);
+       panel_mod->backlight = backlight;
 
        panel_mod->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
                                                         GPIOD_OUT_LOW);