diff options
author | Enrico Scholz <enrico.scholz@sigma-chemnitz.de> | 2016-08-03 16:14:56 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-04-12 09:20:27 +0200 |
commit | 7d7e5be85f713789481c0d74e0207086ab914e34 (patch) | |
tree | 6fe05409696d3a91ecba6a3d93804b1aced84e4b | |
parent | 6c9a8b5d7f6a7d5d46d58707f1aa9c16db4a14b1 (diff) | |
download | barebox-7d7e5be85f713789481c0d74e0207086ab914e34.tar.gz barebox-7d7e5be85f713789481c0d74e0207086ab914e34.tar.xz |
mfd: da9063: read out and report device id
just some kind of debugging atm...
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Tested-by: Stefan Christ <s.christ@phytec.de>
Signed-off-by: Christian Hemp <c.hemp@phytec.de>
-rw-r--r-- | drivers/mfd/da9063.c | 13 |
1 files changed, 13 insertions, 0 deletions
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); |