if (!res)
                        break;
 
-               dev_notice(&dev->dev, "physmap platform flash device: %pR\n",
-                          res);
-
-               if (!devm_request_mem_region(&dev->dev, res->start,
-                                            resource_size(res),
-                                            dev_name(&dev->dev))) {
-                       dev_err(&dev->dev, "Could not reserve memory region\n");
-                       err = -ENOMEM;
+               info->maps[i].virt = devm_ioremap_resource(&dev->dev, res);
+               if (IS_ERR(info->maps[i].virt)) {
+                       err = PTR_ERR(info->maps[i].virt);
                        goto err_out;
                }
 
+               dev_notice(&dev->dev, "physmap platform flash device: %pR\n",
+                          res);
+
                info->maps[i].name = dev_name(&dev->dev);
                info->maps[i].phys = res->start;
                info->maps[i].size = resource_size(res);
                info->maps[i].pfow_base = physmap_data->pfow_base;
                info->maps[i].map_priv_1 = (unsigned long)dev;
 
-               info->maps[i].virt = devm_ioremap(&dev->dev,
-                                                 info->maps[i].phys,
-                                                 info->maps[i].size);
-               if (info->maps[i].virt == NULL) {
-                       dev_err(&dev->dev, "Failed to ioremap flash region\n");
-                       err = -EIO;
-                       goto err_out;
-               }
-
                simple_map_init(&info->maps[i]);
 
                probe_type = rom_probe_types;