static int panel_simple_platform_probe(struct platform_device *pdev)
 {
-       const struct of_device_id *id;
+       const struct panel_desc *desc;
 
-       id = of_match_node(platform_of_match, pdev->dev.of_node);
-       if (!id)
+       desc = of_device_get_match_data(&pdev->dev);
+       if (!desc)
                return -ENODEV;
 
-       return panel_simple_probe(&pdev->dev, id->data);
+       return panel_simple_probe(&pdev->dev, desc);
 }
 
 static void panel_simple_platform_remove(struct platform_device *pdev)
 static int panel_simple_dsi_probe(struct mipi_dsi_device *dsi)
 {
        const struct panel_desc_dsi *desc;
-       const struct of_device_id *id;
        int err;
 
-       id = of_match_node(dsi_of_match, dsi->dev.of_node);
-       if (!id)
+       desc = of_device_get_match_data(&dsi->dev);
+       if (!desc)
                return -ENODEV;
 
-       desc = id->data;
-
        err = panel_simple_probe(&dsi->dev, &desc->desc);
        if (err < 0)
                return err;