mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 21:22:09 -04:00
madera: Add boot delay for Moon
Moon also requires a delay before reading the boot done bit and clearing the boot done interrupt. Otherwise the interrupt line gets pulled low forever. Change-Id: Ie4fbdd36d13e5ac2c75bf2171fbd44690773c1f4 Signed-off-by: Ravi Vembu <raviv@motorola.com> Mot-CRs-Fixed: (CR) Change-Id: Ie4fbdd36d13e5ac2c75bf2171fbd44690773c1f4 Reviewed-on: https://gerrit.mot.com/1209117 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Rav(CR) Vembu <raviv@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
8b1391eb4e
commit
6896ea4fc2
1 changed files with 11 additions and 13 deletions
|
|
@ -227,21 +227,19 @@ static int madera_wait_for_boot(struct madera *madera)
|
|||
unsigned int val;
|
||||
|
||||
/* ensure chid can read correctly, then check boot done bit */
|
||||
if (madera->type == CS47L35) {
|
||||
for (i = 0; i < timeout; i++) {
|
||||
ret = regmap_read(madera->regmap, MADERA_SOFTWARE_RESET, &val);
|
||||
if (ret != 0) {
|
||||
dev_err(madera->dev, "Failed to read chip id, ret %d\n", ret);
|
||||
continue;
|
||||
}
|
||||
if (val == CS47L35_SILICON_ID)
|
||||
break;
|
||||
|
||||
usleep_range(1000, 1010);
|
||||
for (i = 0; i < timeout; i++) {
|
||||
ret = regmap_read(madera->regmap, MADERA_SOFTWARE_RESET, &val);
|
||||
if (ret != 0) {
|
||||
dev_err(madera->dev, "Failed to read chip id, ret %d\n", ret);
|
||||
continue;
|
||||
}
|
||||
if (i >= timeout)
|
||||
return -ETIMEDOUT;
|
||||
if (val == CS47L35_SILICON_ID || val == CS47L90_SILICON_ID)
|
||||
break;
|
||||
|
||||
usleep_range(1000, 1010);
|
||||
}
|
||||
if (i >= timeout)
|
||||
return -ETIMEDOUT;
|
||||
/*
|
||||
* We can't use an interrupt as we need to runtime resume to do so,
|
||||
* we won't race with the interrupt handler as it'll be blocked on
|
||||
|
|
|
|||
Loading…
Reference in a new issue