33 lines
1.0 KiB
Diff
33 lines
1.0 KiB
Diff
|
From: Tim Harvey <tharvey@gateworks.com>
|
||
|
Subject: [PATCH] regulator: pfuze100: allow misprogrammed ID
|
||
|
|
||
|
prior to week 08 of 2013 Freescale misprogrammed between 1 and 3% of
|
||
|
PFUZE1000 parts with a ID=0x8 instead of the expected ID=0x0
|
||
|
|
||
|
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
||
|
---
|
||
|
drivers/regulator/pfuze100-regulator.c | 12 +++++++++---
|
||
|
1 file changed, 9 insertions(+), 3 deletions(-)
|
||
|
|
||
|
--- a/drivers/regulator/pfuze100-regulator.c
|
||
|
+++ b/drivers/regulator/pfuze100-regulator.c
|
||
|
@@ -308,9 +308,15 @@ static int pfuze_identify(struct pfuze_c
|
||
|
if (ret)
|
||
|
return ret;
|
||
|
|
||
|
- if (value & 0x0f) {
|
||
|
- dev_warn(pfuze_chip->dev, "Illegal ID: %x\n", value);
|
||
|
- return -ENODEV;
|
||
|
+ switch (value & 0x0f) {
|
||
|
+ /* Freescale misprogrammed 1-3% of parts prior to week 8 of 2013 as ID=8 */
|
||
|
+ case 0x8:
|
||
|
+ dev_info(pfuze_chip->dev, "Assuming misprogrammed ID=0x8");
|
||
|
+ case 0x0:
|
||
|
+ break;
|
||
|
+ default:
|
||
|
+ dev_warn(pfuze_chip->dev, "Illegal ID: %x\n", value);
|
||
|
+ return -ENODEV;
|
||
|
}
|
||
|
|
||
|
ret = regmap_read(pfuze_chip->regmap, PFUZE100_REVID, &value);
|