ASoC: wm8991: Verify device ID during probe()
Just in case. Signed-off-by: Mark Brown <broonie@linaro.org> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
This commit is contained in:
parent
e4634804ca
commit
a0a05916cf
|
@ -1335,6 +1335,7 @@ static int wm8991_i2c_probe(struct i2c_client *i2c,
|
||||||
const struct i2c_device_id *id)
|
const struct i2c_device_id *id)
|
||||||
{
|
{
|
||||||
struct wm8991_priv *wm8991;
|
struct wm8991_priv *wm8991;
|
||||||
|
unsigned int val;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
wm8991 = devm_kzalloc(&i2c->dev, sizeof(*wm8991), GFP_KERNEL);
|
wm8991 = devm_kzalloc(&i2c->dev, sizeof(*wm8991), GFP_KERNEL);
|
||||||
|
@ -1347,6 +1348,16 @@ static int wm8991_i2c_probe(struct i2c_client *i2c,
|
||||||
|
|
||||||
i2c_set_clientdata(i2c, wm8991);
|
i2c_set_clientdata(i2c, wm8991);
|
||||||
|
|
||||||
|
ret = regmap_read(wm8991->regmap, WM8991_RESET, &val);
|
||||||
|
if (ret != 0) {
|
||||||
|
dev_err(&i2c->dev, "Failed to read device ID: %d\n", ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
if (val != 0x8991) {
|
||||||
|
dev_err(&i2c->dev, "Device with ID %x is not a WM8991\n", val);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
ret = regmap_write(wm8991->regmap, WM8991_RESET, 0);
|
ret = regmap_write(wm8991->regmap, WM8991_RESET, 0);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(&i2c->dev, "Failed to issue reset: %d\n", ret);
|
dev_err(&i2c->dev, "Failed to issue reset: %d\n", ret);
|
||||||
|
|
Loading…
Reference in New Issue