struct as3711_bl_data {
        bool powered;
-       const char *fb_name;
-       struct device *fb_dev;
        enum as3711_bl_type type;
        int brightness;
        struct backlight_device *bl;
 
        fb = of_parse_phandle(bl, "su1-dev", 0);
        if (fb) {
-               pdata->su1_fb = fb->full_name;
+               of_node_put(fb);
+
+               pdata->su1_fb = true;
 
                ret = of_property_read_u32(bl, "su1-max-uA", &pdata->su1_max_uA);
                if (pdata->su1_max_uA <= 0)
        if (fb) {
                int count = 0;
 
-               pdata->su2_fb = fb->full_name;
+               of_node_put(fb);
+
+               pdata->su2_fb = true;
 
                ret = of_property_read_u32(bl, "su2-max-uA", &pdata->su2_max_uA);
                if (pdata->su2_max_uA <= 0)
 
        if (pdata->su1_fb) {
                su = &supply->su1;
-               su->fb_name = pdata->su1_fb;
                su->type = AS3711_BL_SU1;
 
                max_brightness = min(pdata->su1_max_uA, 31);
 
        if (pdata->su2_fb) {
                su = &supply->su2;
-               su->fb_name = pdata->su2_fb;
                su->type = AS3711_BL_SU2;
 
                switch (pdata->su2_fbprot) {