Browse Source

Merge remote-tracking branch 'regulator/fix/pfuze100' into regulator-linus

Mark Brown 11 years ago
parent
commit
90ba0813db
1 changed files with 9 additions and 3 deletions
  1. 9 3
      drivers/regulator/pfuze100-regulator.c

+ 9 - 3
drivers/regulator/pfuze100-regulator.c

@@ -308,9 +308,15 @@ static int pfuze_identify(struct pfuze_chip *pfuze_chip)
 	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);