This patch exports the smartreflex efuse values for all 5 OPPs via
sysfs. This can be useful to track down silicon specific problems.

Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrij...@nokia.com>
---
 arch/arm/mach-omap2/smartreflex.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/smartreflex.c 
b/arch/arm/mach-omap2/smartreflex.c
index 9fa033d..3c506d1 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -759,7 +759,24 @@ static struct kobj_attribute sr_vdd2_autocomp = {
        .store = omap_sr_vdd2_autocomp_store,
 };
 
+static ssize_t omap_sr_opp1_efuse_show(struct kobject *kobj,
+                                       struct kobj_attribute *attr,
+                                       char *buf)
+{
+       return sprintf(buf, "%08x\n%08x\n%08x\n%08x\n%08x\n", sr1.opp1_nvalue,
+                                                       sr1.opp2_nvalue,
+                                                       sr1.opp3_nvalue,
+                                                       sr1.opp4_nvalue,
+                                                       sr1.opp5_nvalue);
+}
 
+static struct kobj_attribute sr_efuse = {
+       .attr = {
+       .name = "Efuse",
+       .mode = 0444,
+       },
+       .show = omap_sr_opp1_efuse_show,
+};
 
 static int __init omap3_sr_init(void)
 {
@@ -807,6 +824,11 @@ static int __init omap3_sr_init(void)
        if (ret)
                printk(KERN_ERR "sysfs_create_file failed: %d\n", ret);
 
+       ret = sysfs_create_file(power_kobj, &sr_efuse.attr);
+       if (ret)
+               printk(KERN_ERR "sysfs_create_file failed for OPP data: %d\n",
+                       ret);
+
        return 0;
 }
 
-- 
1.6.2.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to