diff options
author | Sumit Sharma <sumsharma@nvidia.com> | 2013-02-06 16:19:12 +0530 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2013-02-08 16:58:34 -0800 |
commit | a71cd7b2d7b3bead924f075ed3ec0ecaf706d11f (patch) | |
tree | 70267abac68056ea06cc3351e22561a4f471eebc /drivers/mfd | |
parent | 50d23244aaa4df6a2dee83cc7f9457d9f4aeb164 (diff) |
mfd: max77663: Added chip version reading support
Added support for reading chip version
Bug 1220546
Change-Id: I5a5a223ae2f027c9e1423b5c087c28b0fabb2645
Signed-off-by: Sumit Sharma <sumsharma@nvidia.com>
Reviewed-on: http://git-master/r/197931
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/max77663-core.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/mfd/max77663-core.c b/drivers/mfd/max77663-core.c index c06c72108333..3b107243a4cc 100644 --- a/drivers/mfd/max77663-core.c +++ b/drivers/mfd/max77663-core.c @@ -59,6 +59,7 @@ #define MAX77663_REG_GPIO_ALT 0x40 #define MAX77663_REG_ONOFF_CFG1 0x41 #define MAX77663_REG_ONOFF_CFG2 0x42 +#define MAX77663_REG_CID4 0x5C #define MAX77663_REG_CID5 0x5D #define IRQ_TOP_GLBL_MASK (1 << 7) @@ -827,6 +828,21 @@ static bool rd_wr_reg_rtc(struct device *dev, unsigned int reg) return false; } +int max77663_read_chip_version(struct device *dev, u8 *val) +{ + int ret, version; + + version = MAX77663_DRV_NOT_DEFINED; + ret = max77663_read(dev, MAX77663_REG_CID4, val, 1, 0); + + if (!ret) { + if (*val == 0x24) + version = MAX77663_DRV_24; + return version; + } + return ret; +} + static const struct regmap_config max77663_regmap_config_power = { .reg_bits = 8, .val_bits = 8, @@ -910,6 +926,13 @@ static int max77663_probe(struct i2c_client *client, return ret; } + /* Reading chip version */ + ret = max77663_read_chip_version(chip->dev, &val); + if (ret < 0) + dev_err(chip->dev, "Failed to read chip version\n"); + else + dev_dbg(chip->dev, "Chip version - 0x%x\n", val); + max77663_irq_init(chip); max77663_debugfs_init(chip); ret = max77663_sleep(chip, false); |