[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1273487857-32281-3-git-send-email-eduardo.valentin@nokia.com>
Date: Mon, 10 May 2010 13:37:35 +0300
From: Eduardo Valentin <eduardo.valentin@...ia.com>
To: LKML <linux-kernel@...r.kernel.org>,
linux-arm-kernel@...ts.infradead.org,
Linux-OMAP <linux-omap@...r.kernel.org>
Cc: Russell King <linux@....linux.org.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
ext Tony Lindgren <tony@...mide.com>,
ext Kevin Hilman <khilman@...prootsystems.com>,
Peter De-Schrijver <Peter.De-Schrijver@...ia.com>,
santosh.shilimkar@...com, Ambresh <a0393775@...com>,
felipe.balbi@...ia.com,
Eduardo Valentin <eduardo.valentin@...ia.com>
Subject: [PATCHv4 2/4] mach-omap2: export omap2 info under /proc/socinfo
From: Eduardo Valentin <eduardo.valentin@...ia.com>
Report OMAP name and rev under /proc/socinfo node.
Signed-off-by: Eduardo Valentin <eduardo.valentin@...ia.com>
---
arch/arm/Kconfig | 1 +
arch/arm/mach-omap2/id.c | 48 ++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 43 insertions(+), 6 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c5408bf..7456967 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -798,6 +798,7 @@ config ARCH_OMAP
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
select ARCH_HAS_HOLES_MEMORYMODEL
+ select PROC_SOC_INFO
help
Support for TI's OMAP platform (OMAP1 and OMAP2).
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 37b8a1a..8ecd8e2 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -18,6 +18,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/io.h>
+#include <linux/seq_file.h>
#include <asm/cputype.h>
@@ -101,10 +102,12 @@ static struct omap_id omap_ids[] __initdata = {
static void __iomem *tap_base;
static u16 tap_prod_id;
+#define SOCINFO_SZ 128
+static char socinfo[SOCINFO_SZ];
void __init omap24xx_check_revision(void)
{
- int i, j;
+ int i, j, sz;
u32 idcode, prod_id;
u16 hawkeye;
u8 dev_type, rev;
@@ -152,10 +155,11 @@ void __init omap24xx_check_revision(void)
j = i;
}
- pr_info("OMAP%04x", omap_rev() >> 16);
+ sz = snprintf(socinfo, SOCINFO_SZ, "OMAP%04x", omap_rev() >> 16);
if ((omap_rev() >> 8) & 0x0f)
- pr_info("ES%x", (omap_rev() >> 12) & 0xf);
- pr_info("\n");
+ snprintf(socinfo + sz, SOCINFO_SZ - sz, "ES%x",
+ (omap_rev() >> 12) & 0xf);
+ pr_info("%s\n", socinfo);
}
#define OMAP3_CHECK_FEATURE(status,feat) \
@@ -286,7 +290,9 @@ void __init omap4_check_revision(void)
if ((hawkeye == 0xb852) && (rev == 0x0)) {
omap_revision = OMAP4430_REV_ES1_0;
omap_chip.oc |= CHIP_IS_OMAP4430ES1;
- pr_info("OMAP%04x %s\n", omap_rev() >> 16, rev_name);
+ snprintf(socinfo, SOCINFO_SZ, "OMAP%04x %s\n",
+ omap_rev() >> 16, rev_name);
+ pr_info("%s\n", socinfo);
return;
}
@@ -356,7 +362,8 @@ void __init omap3_cpuinfo(void)
}
/* Print verbose information */
- pr_info("%s ES%s (", cpu_name, cpu_rev);
+ snprintf(socinfo, SOCINFO_SZ, "%s ES%s", cpu_name, cpu_rev);
+ pr_info("%s (", socinfo);
OMAP3_SHOW_FEATURE(l2cache);
OMAP3_SHOW_FEATURE(iva);
@@ -425,3 +432,32 @@ void __init omap2_set_globals_tap(struct omap_globals *omap2_globals)
else
tap_prod_id = 0x0208;
}
+
+static int c_show(struct seq_file *m, void *v)
+{
+ seq_printf(m, "SoC\t: %s\n", socinfo);
+
+ return 0;
+}
+
+static void *c_start(struct seq_file *m, loff_t *pos)
+{
+ return *pos < 1 ? (void *)1 : NULL;
+}
+
+static void *c_next(struct seq_file *m, void *v, loff_t *pos)
+{
+ ++*pos;
+ return NULL;
+}
+
+static void c_stop(struct seq_file *m, void *v)
+{
+}
+
+const struct seq_operations socinfo_op = {
+ .start = c_start,
+ .next = c_next,
+ .stop = c_stop,
+ .show = c_show
+};
--
1.7.0.4.361.g8b5fe.dirty
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists