Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7281ca2 authored by Marc Zyngier's avatar Marc Zyngier Committed by Russell King
Browse files

ARM: 6904/1: MTD: Add integrator-flash feature to physmap



In the process of moving platforms away from integrator-flash
(aka armflash), add to physmap the few features that make
armflash unique:

- optionnal probing for the AFS partition type
- init() and exit() methods, used by Integrator to control
  write access to the various onboard programmable components

Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Acked-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Acked-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent c1d10d18
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -67,6 +67,10 @@ static int physmap_flash_remove(struct platform_device *dev)
		if (info->mtd[i] != NULL)
			map_destroy(info->mtd[i]);
	}

	if (physmap_data->exit)
		physmap_data->exit(dev);

	return 0;
}

@@ -77,7 +81,11 @@ static const char *rom_probe_types[] = {
					"map_rom",
					NULL };
#ifdef CONFIG_MTD_PARTITIONS
static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
static const char *part_probe_types[] = { "cmdlinepart", "RedBoot",
#ifdef CONFIG_MTD_AFS_PARTS
					  "afs",
#endif
					  NULL };
#endif

static int physmap_flash_probe(struct platform_device *dev)
@@ -100,6 +108,12 @@ static int physmap_flash_probe(struct platform_device *dev)
		goto err_out;
	}

	if (physmap_data->init) {
		err = physmap_data->init(dev);
		if (err)
			goto err_out;
	}

	platform_set_drvdata(dev, info);

	for (i = 0; i < dev->num_resources; i++) {
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ struct map_info;

struct physmap_flash_data {
	unsigned int		width;
	int			(*init)(struct platform_device *);
	void			(*exit)(struct platform_device *);
	void			(*set_vpp)(struct map_info *, int);
	unsigned int		nr_parts;
	unsigned int		pfow_base;