Lines Matching refs:subdev
37 struct sa_subdev_info subdev[];
44 struct sa_subdev_info *subdev = container_of(map, struct sa_subdev_info, map);
50 subdev->plat->set_vpp(1);
53 subdev->plat->set_vpp(0);
58 static void sa1100_destroy_subdev(struct sa_subdev_info *subdev)
60 if (subdev->mtd)
61 map_destroy(subdev->mtd);
62 if (subdev->map.virt)
63 iounmap(subdev->map.virt);
64 release_mem_region(subdev->map.phys, subdev->map.size);
67 static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *res)
86 subdev->map.bankwidth = (MSC0 & MSC_RBW) ? 2 : 4;
90 subdev->map.bankwidth = ((MSC0 >> 16) & MSC_RBW) ? 2 : 4;
94 if (!request_mem_region(phys, size, subdev->name)) {
99 if (subdev->plat->set_vpp)
100 subdev->map.set_vpp = sa1100_set_vpp;
102 subdev->map.phys = phys;
103 subdev->map.size = size;
104 subdev->map.virt = ioremap(phys, size);
105 if (!subdev->map.virt) {
110 simple_map_init(&subdev->map);
116 subdev->mtd = do_map_probe(subdev->plat->map_name, &subdev->map);
117 if (subdev->mtd == NULL) {
123 phys, (unsigned)(subdev->mtd->size >> 20),
124 subdev->map.bankwidth * 8);
129 sa1100_destroy_subdev(subdev);
140 if (info->mtd != info->subdev[0].mtd)
145 sa1100_destroy_subdev(&info->subdev[i]);
191 struct sa_subdev_info *subdev = &info->subdev[i];
198 subdev->map.name = subdev->name;
199 sprintf(subdev->name, "%s-%d", plat->name, i);
200 subdev->plat = plat;
202 ret = sa1100_probe_subdev(subdev, res);
221 strcpy(info->subdev[0].name, plat->name);
222 info->mtd = info->subdev[0].mtd;
237 cdev[i] = info->subdev[i].mtd;