summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/fuse.c
diff options
context:
space:
mode:
authorHoang Pham <hopham@nvidia.com>2011-06-07 19:19:57 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:42:46 -0800
commit3aa4f3d3c377899d5e2cdc793f2d0de7532b6e32 (patch)
tree1e0ebb7bb45c85bfe537ca975517eb34999d5496 /arch/arm/mach-tegra/fuse.c
parentb93af641f221c23a5f665d9bd414fe22e3d5ae5d (diff)
arm: tegra: Add sysfs tegra chip id/revision
Original-Change-Id: Ia4437fd1374fd38b0cfaf9869012e9553ea1a156 Reviewed-on: http://git-master/r/35602 Tested-by: Hoang Pham <hopham@nvidia.com> Reviewed-by: Jonathan Mayo <jmayo@nvidia.com> Reviewed-by: Hoang Pham <hopham@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Rebase-Id: Rd744a3c83776e1b70f34a3312f323ed534e321ad
Diffstat (limited to 'arch/arm/mach-tegra/fuse.c')
-rw-r--r--arch/arm/mach-tegra/fuse.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/fuse.c b/arch/arm/mach-tegra/fuse.c
index 80050665c2cc..eb2ba152c526 100644
--- a/arch/arm/mach-tegra/fuse.c
+++ b/arch/arm/mach-tegra/fuse.c
@@ -22,6 +22,8 @@
#include <linux/io.h>
#include <linux/init.h>
#include <linux/string.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <mach/iomap.h>
@@ -50,13 +52,15 @@
#endif
struct tegra_id {
- enum tegra_revision chipid;
+ enum tegra_chipid chipid;
unsigned int major, minor, netlist, patch;
enum tegra_revision revision;
char *priv;
};
static struct tegra_id tegra_id;
+static unsigned int tegra_chip_id;
+static unsigned int tegra_chip_rev;
static const char *tegra_revision_name[TEGRA_REVISION_MAX] = {
[TEGRA_REVISION_UNKNOWN] = "unknown",
@@ -332,5 +336,21 @@ static int __init tegra_bootloader_tegraid(char *str)
return 0;
}
+static unsigned int get_chip_id(const char *val, struct kernel_param *kp)
+{
+ tegra_chip_id = (unsigned int)tegra_get_chipid();
+ return param_get_uint(val, kp);
+}
+static unsigned int get_chip_rev(const char *val, struct kernel_param *kp)
+{
+ tegra_chip_rev = (unsigned int)tegra_get_revision();
+ return param_get_uint(val, kp);
+}
+
+module_param_call(tegra_chip_id, NULL, get_chip_id, &tegra_chip_id, 0444);
+__MODULE_PARM_TYPE(tegra_chip_id, "uint");
+module_param_call(tegra_chip_rev, NULL, get_chip_rev, &tegra_chip_rev, 0444);
+__MODULE_PARM_TYPE(tegra_chip_rev, "uint");
+
/* tegraid=chipid.major.minor.netlist.patch[.priv] */
early_param("tegraid", tegra_bootloader_tegraid);