From 35330506157ae3809fe5f502fa15e35661eea060 Mon Sep 17 00:00:00 2001 From: Boojin Kim Date: Wed, 5 Sep 2018 10:58:26 +0900 Subject: [PATCH] drivers: soc: add memsize to soc info This patch adds memsize to soc info to support mptool Change-Id: I57ee267a8ee029e684fa655254a51a06c12446db Signed-off-by: Boojin Kim --- drivers/soc/samsung/exynos-chipid.c | 17 +++++++++++++++++ include/linux/soc/samsung/exynos-soc.h | 1 + 2 files changed, 18 insertions(+) diff --git a/drivers/soc/samsung/exynos-chipid.c b/drivers/soc/samsung/exynos-chipid.c index 8cc354fc929c..c89ecd569e92 100644 --- a/drivers/soc/samsung/exynos-chipid.c +++ b/drivers/soc/samsung/exynos-chipid.c @@ -178,6 +178,7 @@ void __init exynos_chipid_early_init(void) { struct device_node *np; const struct of_device_id *match; + void __iomem *reg; if (exynos_soc_info.reg) return; @@ -191,6 +192,12 @@ void __init exynos_chipid_early_init(void) if (!exynos_soc_info.reg) panic("%s: failed to map registers\n", __func__); + reg = of_iomap(np, 1); + if (!reg) + pr_err("%s: can't get base of memsize\n", __func__); + else + exynos_soc_info.memsize = __raw_readq(reg); + exynos_chipid_get_chipid_info(); } @@ -295,6 +302,12 @@ static ssize_t chipid_evt_ver_show(struct kobject *kobj, exynos_soc_info.sub_rev); } +static ssize_t chipid_memsize_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + return snprintf(buf, 20, "%llu bytes\n", exynos_soc_info.memsize); +} + static struct kobj_attribute chipid_product_id_attr = __ATTR(product_id, 0644, chipid_product_id_show, NULL); @@ -310,12 +323,16 @@ static struct kobj_attribute chipid_revision_attr = static struct kobj_attribute chipid_evt_ver_attr = __ATTR(evt_ver, 0644, chipid_evt_ver_show, NULL); +static struct kobj_attribute chipid_memsize_attr = + __ATTR(memsize, 0440, chipid_memsize_show, NULL); + static struct attribute *chipid_sysfs_attrs[] = { &chipid_product_id_attr.attr, &chipid_unique_id_attr.attr, &chipid_lot_id_attr.attr, &chipid_revision_attr.attr, &chipid_evt_ver_attr.attr, + &chipid_memsize_attr.attr, NULL, }; diff --git a/include/linux/soc/samsung/exynos-soc.h b/include/linux/soc/samsung/exynos-soc.h index 9c057155bcb3..4148810f2789 100644 --- a/include/linux/soc/samsung/exynos-soc.h +++ b/include/linux/soc/samsung/exynos-soc.h @@ -61,6 +61,7 @@ struct exynos_chipid_info { u32 sub_rev; u32 lot_id; u64 unique_id; + u64 memsize; struct exynos_chipid_variant *drv_data; }; -- 2.20.1