From 7d7e5be85f713789481c0d74e0207086ab914e34 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 3 Aug 2016 16:14:56 +0200 Subject: mfd: da9063: read out and report device id just some kind of debugging atm... Signed-off-by: Enrico Scholz Tested-by: Stefan Christ Signed-off-by: Christian Hemp --- drivers/mfd/da9063.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/mfd/da9063.c b/drivers/mfd/da9063.c index 00a61279f3..0c27bf495f 100644 --- a/drivers/mfd/da9063.c +++ b/drivers/mfd/da9063.c @@ -45,6 +45,8 @@ struct da9063 { /* bank1: control register I */ #define DA9063_REG1_CONFIG_I 0x10e +#define DA9062AA_DEVICE_ID 0x181 + /* DA9063_REG_FAULT_LOG (addr=0x05) */ #define DA9063_TWD_ERROR 0x01 #define DA9063_POR 0x02 @@ -196,6 +198,7 @@ static void da9063_restart(struct restart_handler *rst) static int da9062_device_init(struct da9063 *priv) { int ret; + uint8_t id[4]; priv->client1 = i2c_new_dummy(priv->client->adapter, priv->client->addr + 1); @@ -206,6 +209,16 @@ static int da9062_device_init(struct da9063 *priv) return -EINVAL; } + ret = i2c_read_reg(priv->client1, DA9062AA_DEVICE_ID & 0xffu, + id, sizeof id); + if (ret < 0) { + dev_warn(priv->dev, "failed to read ID: %d\n", ret); + return ret; + } + + dev_info(priv->dev, "da9062 with id %02x.%02x.%02x.%02x detected\n", + id[0], id[1], id[2], id[3]); + /* clear CONFIG_I[WATCHDOG_SD] */ ret = da906x_reg_update(priv, DA9063_REG1_CONFIG_I, DA9062_WATCHDOG_SD, DA9062_WATCHDOG_SD); -- cgit v1.2.3