diff options
author | Woojung Min <wmin@nvidia.com> | 2013-08-20 03:17:03 +0900 |
---|---|---|
committer | Gabby Lee <galee@nvidia.com> | 2013-09-01 18:11:19 -0700 |
commit | 9386e7c3d7a5324053ca9f41c3d932e076c3b4ce (patch) | |
tree | cacff8cc2b93de8f9513db038e03c9283e62a2a0 /arch | |
parent | bef7010189b9b8778fb4b5f0df9b9b637e2687f7 (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.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-tegra/nct_sysfs.c | 39 |
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; } |