[PATCH 02/10] drivers/nor/m25p80: add MEMGETINFO ioctl
Jan Luebbe
jlu at pengutronix.de
Mon Sep 3 07:45:57 EDT 2012
Signed-off-by: Jan Luebbe <jlu at pengutronix.de>
---
drivers/nor/m25p80.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/nor/m25p80.c b/drivers/nor/m25p80.c
index 61f2195..1722e0a 100644
--- a/drivers/nor/m25p80.c
+++ b/drivers/nor/m25p80.c
@@ -20,6 +20,7 @@
#include <common.h>
#include <init.h>
#include <driver.h>
+#include <ioctl.h>
#include <spi/spi.h>
#include <spi/flash.h>
#include <xfuncs.h>
@@ -690,9 +691,34 @@ static const struct spi_device_id *jedec_probe(struct spi_device *spi)
return NULL;
}
+static int m25p80_ioctl(struct cdev *cdev, int request, void *buf)
+{
+ struct m25p *flash = cdev->priv;
+ struct flash_info *info = flash->info;
+ struct mtd_info_user *user = buf;
+
+ switch (request) {
+ case MEMGETINFO:
+ memset(user, 0, sizeof(*user));
+ user->type = MTD_NORFLASH;
+ user->flags = MTD_CAP_NORFLASH;
+ user->size = flash->size;
+ user->erasesize = info->sector_size;
+ user->writesize = 1;
+ user->oobsize = 0;
+ /* The below fields are obsolete */
+ user->ecctype = -1;
+ user->eccsize = 0;
+ return 0;
+ }
+
+ return -EINVAL;
+}
+
static struct file_operations m25p80_ops = {
.read = m25p80_read,
.write = m25p80_write,
+ .ioctl = m25p80_ioctl,
.erase = m25p80_erase,
.lseek = dev_lseek_default,
};
--
1.7.10.4
More information about the barebox
mailing list