|
@@ -415,11 +415,19 @@ int __devinit arizona_dev_init(struct arizona *arizona)
|
|
|
|
|
|
/* If we have a /RESET GPIO we'll already be reset */
|
|
|
if (!arizona->pdata.reset) {
|
|
|
+ regcache_mark_dirty(arizona->regmap);
|
|
|
+
|
|
|
ret = regmap_write(arizona->regmap, ARIZONA_SOFTWARE_RESET, 0);
|
|
|
if (ret != 0) {
|
|
|
dev_err(dev, "Failed to reset device: %d\n", ret);
|
|
|
goto err_reset;
|
|
|
}
|
|
|
+
|
|
|
+ ret = regcache_sync(arizona->regmap);
|
|
|
+ if (ret != 0) {
|
|
|
+ dev_err(dev, "Failed to sync device: %d\n", ret);
|
|
|
+ goto err_reset;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
ret = arizona_wait_for_boot(arizona);
|