summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorWoojung Min <wmin@nvidia.com>2013-08-20 03:17:03 +0900
committerGabby Lee <galee@nvidia.com>2013-09-01 18:11:19 -0700
commit9386e7c3d7a5324053ca9f41c3d932e076c3b4ce (patch)
treecacff8cc2b93de8f9513db038e03c9283e62a2a0 /arch
parentbef7010189b9b8778fb4b5f0df9b9b637e2687f7 (diff)
ARM: tegra: nct: add serial number entries for LBH
Bugi 1346871 Change-Id: I20e523a89d214f1265009abc10e183f4dcce67cf Signed-off-by: Woojung Min <wmin@nvidia.com> Reviewed-on: http://git-master/r/265928 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Joshua Cha <joshuac@nvidia.com> Reviewed-by: Gabby Lee <galee@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/include/mach/nct.h10
-rw-r--r--arch/arm/mach-tegra/nct_sysfs.c39
2 files changed, 40 insertions, 9 deletions
diff --git a/arch/arm/mach-tegra/include/mach/nct.h b/arch/arm/mach-tegra/include/mach/nct.h
index 5df9ef423840..7a8100f88766 100644
--- a/arch/arm/mach-tegra/include/mach/nct.h
+++ b/arch/arm/mach-tegra/include/mach/nct.h
@@ -33,13 +33,16 @@
enum nct_id_type {
NCT_ID_START = 0,
- NCT_ID_SERIAL_NUMBER = NCT_ID_START,
+ NCT_ID_SERIAL_NUMBER_0 = NCT_ID_START,
NCT_ID_WIFI_MAC_ADDR,
NCT_ID_BT_ADDR,
NCT_ID_CM_ID,
NCT_ID_LBH_ID,
NCT_ID_FACTORY_MODE,
NCT_ID_RAMDUMP,
+ NCT_ID_SERIAL_NUMBER_1,
+ NCT_ID_SERIAL_NUMBER_2,
+ NCT_ID_SERIAL_NUMBER_3,
NCT_ID_TEST,
NCT_ID_END = NCT_ID_TEST,
NCT_ID_DISABLED = 0xEEEE,
@@ -75,13 +78,16 @@ struct nct_ramdump_type {
};
union nct_item_type {
- struct nct_serial_number_type serial_number;
+ struct nct_serial_number_type serial_number_0;
struct nct_wifi_mac_addr_type wifi_mac_addr;
struct nct_bt_addr_type bt_addr;
struct nct_cm_id_type cm_id;
struct nct_lbh_id_type lbh_id;
struct nct_factory_mode_type factory_mode;
struct nct_ramdump_type ramdump;
+ struct nct_serial_number_type serial_number_1;
+ struct nct_serial_number_type serial_number_2;
+ struct nct_serial_number_type serial_number_3;
u8 u8[MAX_NCT_DATA_SIZE];
u16 u16[MAX_NCT_DATA_SIZE/2];
u32 u32[MAX_NCT_DATA_SIZE/4];
diff --git a/arch/arm/mach-tegra/nct_sysfs.c b/arch/arm/mach-tegra/nct_sysfs.c
index 1f719617da51..d7dba12b3280 100644
--- a/arch/arm/mach-tegra/nct_sysfs.c
+++ b/arch/arm/mach-tegra/nct_sysfs.c
@@ -41,8 +41,8 @@ static ssize_t nct_item_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf);
-static const struct kobj_attribute serial_number_attr =
- __ATTR(serial_number, 0444, nct_item_show, 0);
+static const struct kobj_attribute serial_number_0_attr =
+ __ATTR(serial_number_0, 0444, nct_item_show, 0);
static const struct kobj_attribute wifi_mac_addr_attr =
__ATTR(wifi_mac_addr, 0444, nct_item_show, 0);
static const struct kobj_attribute bt_addr_attr =
@@ -51,13 +51,22 @@ static const struct kobj_attribute cm_id_attr =
__ATTR(cm_id, 0444, nct_item_show, 0);
static const struct kobj_attribute lbh_id_attr =
__ATTR(lbh_id, 0444, nct_item_show, 0);
+static const struct kobj_attribute serial_number_1_attr =
+ __ATTR(serial_number_1, 0444, nct_item_show, 0);
+static const struct kobj_attribute serial_number_2_attr =
+ __ATTR(serial_number_2, 0444, nct_item_show, 0);
+static const struct kobj_attribute serial_number_3_attr =
+ __ATTR(serial_number_3, 0444, nct_item_show, 0);
static const struct attribute *nct_item_attrs[] = {
- &serial_number_attr.attr,
+ &serial_number_0_attr.attr,
&wifi_mac_addr_attr.attr,
&bt_addr_attr.attr,
&cm_id_attr.attr,
&lbh_id_attr.attr,
+ &serial_number_1_attr.attr,
+ &serial_number_2_attr.attr,
+ &serial_number_3_attr.attr,
NULL
};
@@ -68,11 +77,11 @@ static ssize_t nct_item_show(struct kobject *kobj,
union nct_item_type item;
int err;
- if (attr == &serial_number_attr) {
- err = tegra_nct_read_item(NCT_ID_SERIAL_NUMBER, &item);
+ if (attr == &serial_number_0_attr) {
+ err = tegra_nct_read_item(NCT_ID_SERIAL_NUMBER_0, &item);
if (err < 0)
return 0;
- rval = sprintf(buf, "%s\n", item.serial_number.sn);
+ rval = sprintf(buf, "%s\n", item.serial_number_0.sn);
} else if (attr == &wifi_mac_addr_attr) {
err = tegra_nct_read_item(NCT_ID_WIFI_MAC_ADDR, &item);
if (err < 0)
@@ -105,8 +114,24 @@ static ssize_t nct_item_show(struct kobject *kobj,
if (err < 0)
return 0;
rval = sprintf(buf, "%04d\n", item.lbh_id.id);
+ } else if (attr == &serial_number_1_attr) {
+ err = tegra_nct_read_item(NCT_ID_SERIAL_NUMBER_1, &item);
+ if (err < 0)
+ return 0;
+ rval = sprintf(buf, "%s\n", item.serial_number_1.sn);
+ } else if (attr == &serial_number_2_attr) {
+ err = tegra_nct_read_item(NCT_ID_SERIAL_NUMBER_2, &item);
+ if (err < 0)
+ return 0;
+ rval = sprintf(buf, "%s\n", item.serial_number_2.sn);
+ } else if (attr == &serial_number_3_attr) {
+ err = tegra_nct_read_item(NCT_ID_SERIAL_NUMBER_3, &item);
+ if (err < 0)
+ return 0;
+ rval = sprintf(buf, "%s\n", item.serial_number_3.sn);
+ } else {
+ pr_err("tegra_nct: not supported entry\n");
}
-
return rval;
}