static int imxfb_init_fbinfo(struct platform_device *pdev)
 {
-       struct imx_fb_platform_data *pdata = dev_get_platdata(&pdev->dev);
        struct fb_info *info = platform_get_drvdata(pdev);
        struct imxfb_info *fbi = info->par;
        struct device_node *np;
        info->fbops                     = &imxfb_ops;
        info->flags                     = FBINFO_FLAG_DEFAULT |
                                          FBINFO_READS_FAST;
-       if (pdata) {
-               fbi->lscr1                      = pdata->lscr1;
-               fbi->dmacr                      = pdata->dmacr;
-               fbi->pwmr                       = pdata->pwmr;
-       } else {
-               np = pdev->dev.of_node;
-               info->var.grayscale = of_property_read_bool(np,
-                                               "cmap-greyscale");
-               fbi->cmap_inverse = of_property_read_bool(np, "cmap-inverse");
-               fbi->cmap_static = of_property_read_bool(np, "cmap-static");
 
-               fbi->lscr1 = IMXFB_LSCR1_DEFAULT;
+       np = pdev->dev.of_node;
+       info->var.grayscale = of_property_read_bool(np,
+                                       "cmap-greyscale");
+       fbi->cmap_inverse = of_property_read_bool(np, "cmap-inverse");
+       fbi->cmap_static = of_property_read_bool(np, "cmap-static");
 
-               of_property_read_u32(np, "fsl,lpccr", &fbi->pwmr);
+       fbi->lscr1 = IMXFB_LSCR1_DEFAULT;
 
-               of_property_read_u32(np, "fsl,lscr1", &fbi->lscr1);
+       of_property_read_u32(np, "fsl,lpccr", &fbi->pwmr);
 
-               of_property_read_u32(np, "fsl,dmacr", &fbi->dmacr);
-       }
+       of_property_read_u32(np, "fsl,lscr1", &fbi->lscr1);
+
+       of_property_read_u32(np, "fsl,dmacr", &fbi->dmacr);
 
        return 0;
 }
        struct imxfb_info *fbi;
        struct lcd_device *lcd;
        struct fb_info *info;
-       struct imx_fb_platform_data *pdata;
        struct resource *res;
        struct imx_fb_videomode *m;
        const struct of_device_id *of_id;
+       struct device_node *display_np;
        int ret, i;
        int bytes_per_pixel;
 
        if (!res)
                return -ENODEV;
 
-       pdata = dev_get_platdata(&pdev->dev);
-
        info = framebuffer_alloc(sizeof(struct imxfb_info), &pdev->dev);
        if (!info)
                return -ENOMEM;
        if (ret < 0)
                goto failed_init;
 
-       if (pdata) {
-               if (!fb_mode)
-                       fb_mode = pdata->mode[0].mode.name;
-
-               fbi->mode = pdata->mode;
-               fbi->num_modes = pdata->num_modes;
-       } else {
-               struct device_node *display_np;
-               fb_mode = NULL;
-
-               display_np = of_parse_phandle(pdev->dev.of_node, "display", 0);
-               if (!display_np) {
-                       dev_err(&pdev->dev, "No display defined in devicetree\n");
-                       ret = -EINVAL;
-                       goto failed_of_parse;
-               }
+       fb_mode = NULL;
 
-               /*
-                * imxfb does not support more modes, we choose only the native
-                * mode.
-                */
-               fbi->num_modes = 1;
-
-               fbi->mode = devm_kzalloc(&pdev->dev,
-                               sizeof(struct imx_fb_videomode), GFP_KERNEL);
-               if (!fbi->mode) {
-                       ret = -ENOMEM;
-                       of_node_put(display_np);
-                       goto failed_of_parse;
-               }
+       display_np = of_parse_phandle(pdev->dev.of_node, "display", 0);
+       if (!display_np) {
+               dev_err(&pdev->dev, "No display defined in devicetree\n");
+               ret = -EINVAL;
+               goto failed_of_parse;
+       }
 
-               ret = imxfb_of_read_mode(&pdev->dev, display_np, fbi->mode);
+       /*
+        * imxfb does not support more modes, we choose only the native
+        * mode.
+        */
+       fbi->num_modes = 1;
+
+       fbi->mode = devm_kzalloc(&pdev->dev,
+                       sizeof(struct imx_fb_videomode), GFP_KERNEL);
+       if (!fbi->mode) {
+               ret = -ENOMEM;
                of_node_put(display_np);
-               if (ret)
-                       goto failed_of_parse;
+               goto failed_of_parse;
        }
 
+       ret = imxfb_of_read_mode(&pdev->dev, display_np, fbi->mode);
+       of_node_put(display_np);
+       if (ret)
+               goto failed_of_parse;
+
        /* Calculate maximum bytes used per pixel. In most cases this should
         * be the same as m->bpp/8 */
        m = &fbi->mode[0];
 
        info->fix.smem_start = fbi->map_dma;
 
-       if (pdata && pdata->init) {
-               ret = pdata->init(fbi->pdev);
-               if (ret)
-                       goto failed_platform_init;
-       }
-
-
        INIT_LIST_HEAD(&info->modelist);
        for (i = 0; i < fbi->num_modes; i++)
                fb_add_videomode(&fbi->mode[i].mode, &info->modelist);
 failed_register:
        fb_dealloc_cmap(&info->cmap);
 failed_cmap:
-       if (pdata && pdata->exit)
-               pdata->exit(fbi->pdev);
-failed_platform_init:
        dma_free_wc(&pdev->dev, fbi->map_size, info->screen_buffer,
                    fbi->map_dma);
 failed_map:
 
 static int imxfb_remove(struct platform_device *pdev)
 {
-       struct imx_fb_platform_data *pdata;
        struct fb_info *info = platform_get_drvdata(pdev);
        struct imxfb_info *fbi = info->par;
        struct resource *res;
 
        unregister_framebuffer(info);
        fb_dealloc_cmap(&info->cmap);
-       pdata = dev_get_platdata(&pdev->dev);
-       if (pdata && pdata->exit)
-               pdata->exit(fbi->pdev);
        dma_free_wc(&pdev->dev, fbi->map_size, info->screen_buffer,
                    fbi->map_dma);
        iounmap(fbi->regs);