summaryrefslogtreecommitdiffstats
path: root/drivers/nvmem
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-08-12 13:19:13 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2019-08-14 10:37:34 +0200
commite015a29fc9804afc0ce7baae4654dc1eee0c63a2 (patch)
tree20d07640af01c090f066817718848a603a3993f2 /drivers/nvmem
parentf3a5f5cdf7d9bfe98e4d97d9f73ac986bb21cd6a (diff)
downloadbarebox-e015a29fc9804afc0ce7baae4654dc1eee0c63a2.tar.gz
barebox-e015a29fc9804afc0ce7baae4654dc1eee0c63a2.tar.xz
nvmem: Parse partitions information
Add code to parse partition information that might be specified as a part of the DT config. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/nvmem')
-rw-r--r--drivers/nvmem/core.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 122aac5990..25924872ef 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -92,6 +92,7 @@ static int nvmem_register_cdev(struct nvmem_device *nvmem, const char *name)
struct device_d *dev = &nvmem->dev;
struct cdev *cdev = &nvmem->cdev;
const char *alias;
+ int ret;
alias = of_alias_get(dev->device_node);
@@ -100,7 +101,14 @@ static int nvmem_register_cdev(struct nvmem_device *nvmem, const char *name)
cdev->dev = dev;
cdev->size = nvmem->size;
- return devfs_create(cdev);
+ ret = devfs_create(cdev);
+ if (ret)
+ return ret;
+
+ of_parse_partitions(cdev, dev->device_node);
+ of_partitions_register_fixup(cdev);
+
+ return 0;
}
static struct nvmem_device *of_nvmem_find(struct device_node *nvmem_np)