static int bfin_probe(struct platform_device *pdev)
 {
+       struct resource musb_resources[2];
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
        struct platform_device          *musb;
        struct bfin_glue                *glue;
 
        platform_set_drvdata(pdev, glue);
 
-       ret = platform_device_add_resources(musb, pdev->resource,
-                       pdev->num_resources);
+       memset(musb_resources, 0x00, sizeof(*musb_resources) *
+                       ARRAY_SIZE(musb_resources));
+
+       musb_resources[0].name = pdev->resource[0].name;
+       musb_resources[0].start = pdev->resource[0].start;
+       musb_resources[0].end = pdev->resource[0].end;
+       musb_resources[0].flags = pdev->resource[0].flags;
+
+       musb_resources[1].name = pdev->resource[1].name;
+       musb_resources[1].start = pdev->resource[1].start;
+       musb_resources[1].end = pdev->resource[1].end;
+       musb_resources[1].flags = pdev->resource[1].flags;
+
+       ret = platform_device_add_resources(musb, musb_resources,
+                       ARRAY_SIZE(musb_resources));
        if (ret) {
                dev_err(&pdev->dev, "failed to add resources\n");
                goto err3;
 
 
 static int da8xx_probe(struct platform_device *pdev)
 {
+       struct resource musb_resources[2];
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
        struct platform_device          *musb;
        struct da8xx_glue               *glue;
 
        platform_set_drvdata(pdev, glue);
 
-       ret = platform_device_add_resources(musb, pdev->resource,
-                       pdev->num_resources);
+       memset(musb_resources, 0x00, sizeof(*musb_resources) *
+                       ARRAY_SIZE(musb_resources));
+
+       musb_resources[0].name = pdev->resource[0].name;
+       musb_resources[0].start = pdev->resource[0].start;
+       musb_resources[0].end = pdev->resource[0].end;
+       musb_resources[0].flags = pdev->resource[0].flags;
+
+       musb_resources[1].name = pdev->resource[1].name;
+       musb_resources[1].start = pdev->resource[1].start;
+       musb_resources[1].end = pdev->resource[1].end;
+       musb_resources[1].flags = pdev->resource[1].flags;
+
+       ret = platform_device_add_resources(musb, musb_resources,
+                       ARRAY_SIZE(musb_resources));
        if (ret) {
                dev_err(&pdev->dev, "failed to add resources\n");
                goto err5;
 
 
 static int davinci_probe(struct platform_device *pdev)
 {
+       struct resource musb_resources[2];
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
        struct platform_device          *musb;
        struct davinci_glue             *glue;
 
        platform_set_drvdata(pdev, glue);
 
-       ret = platform_device_add_resources(musb, pdev->resource,
-                       pdev->num_resources);
+       memset(musb_resources, 0x00, sizeof(*musb_resources) *
+                       ARRAY_SIZE(musb_resources));
+
+       musb_resources[0].name = pdev->resource[0].name;
+       musb_resources[0].start = pdev->resource[0].start;
+       musb_resources[0].end = pdev->resource[0].end;
+       musb_resources[0].flags = pdev->resource[0].flags;
+
+       musb_resources[1].name = pdev->resource[1].name;
+       musb_resources[1].start = pdev->resource[1].start;
+       musb_resources[1].end = pdev->resource[1].end;
+       musb_resources[1].flags = pdev->resource[1].flags;
+
+       ret = platform_device_add_resources(musb, musb_resources,
+                       ARRAY_SIZE(musb_resources));
        if (ret) {
                dev_err(&pdev->dev, "failed to add resources\n");
                goto err5;
 
 
 static int omap2430_probe(struct platform_device *pdev)
 {
+       struct resource musb_resouces[2];
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
        struct omap_musb_board_data     *data;
        struct platform_device          *musb;
 
        INIT_WORK(&glue->omap_musb_mailbox_work, omap_musb_mailbox_work);
 
-       ret = platform_device_add_resources(musb, pdev->resource,
-                       pdev->num_resources);
+       memset(musb_resouces, 0x00, sizeof(*musb_resources) *
+                       ARRAY_SIZE(musb_resources));
+
+       musb_resources[0].name = pdev->resource[0].name;
+       musb_resources[0].start = pdev->resource[0].start;
+       musb_resources[0].end = pdev->resource[0].end;
+       musb_resources[0].flags = pdev->resource[0].flags;
+
+       musb_resources[1].name = pdev->resource[1].name;
+       musb_resources[1].start = pdev->resource[1].start;
+       musb_resources[1].end = pdev->resource[1].end;
+       musb_resources[1].flags = pdev->resource[1].flags;
+
+       ret = platform_device_add_resources(musb, musb_resources,
+                       ARRAY_SIZE(musb_resources));
        if (ret) {
                dev_err(&pdev->dev, "failed to add resources\n");
                goto err2;
 
 
 static int tusb_probe(struct platform_device *pdev)
 {
+       struct resource musb_resources[2];
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
        struct platform_device          *musb;
        struct tusb6010_glue            *glue;
 
        platform_set_drvdata(pdev, glue);
 
-       ret = platform_device_add_resources(musb, pdev->resource,
-                       pdev->num_resources);
+       memset(musb_resources, 0x00, sizeof(*musb_resources) *
+                       ARRAY_SIZE(musb_resources));
+
+       musb_resources[0].name = pdev->resource[0].name;
+       musb_resources[0].start = pdev->resource[0].start;
+       musb_resources[0].end = pdev->resource[0].end;
+       musb_resources[0].flags = pdev->resource[0].flags;
+
+       musb_resources[1].name = pdev->resource[1].name;
+       musb_resources[1].start = pdev->resource[1].start;
+       musb_resources[1].end = pdev->resource[1].end;
+       musb_resources[1].flags = pdev->resource[1].flags;
+
+       ret = platform_device_add_resources(musb, musb_resources,
+                       ARRAY_SIZE(musb_resources));
        if (ret) {
                dev_err(&pdev->dev, "failed to add resources\n");
                goto err3;
 
 
 static int ux500_probe(struct platform_device *pdev)
 {
+       struct resource musb_resources[2];
        struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
        struct platform_device          *musb;
        struct ux500_glue               *glue;
 
        platform_set_drvdata(pdev, glue);
 
-       ret = platform_device_add_resources(musb, pdev->resource,
-                       pdev->num_resources);
+       memset(musb_resources, 0x00, sizeof(*musb_resources) *
+                       ARRAY_SIZE(musb_resources));
+
+       musb_resources[0].name = pdev->resource[0].name;
+       musb_resources[0].start = pdev->resource[0].start;
+       musb_resources[0].end = pdev->resource[0].end;
+       musb_resources[0].flags = pdev->resource[0].flags;
+
+       musb_resources[1].name = pdev->resource[1].name;
+       musb_resources[1].start = pdev->resource[1].start;
+       musb_resources[1].end = pdev->resource[1].end;
+       musb_resources[1].flags = pdev->resource[1].flags;
+
+       ret = platform_device_add_resources(musb, musb_resources,
+                       ARRAY_SIZE(musb_resources));
        if (ret) {
                dev_err(&pdev->dev, "failed to add resources\n");
                goto err5;