summaryrefslogtreecommitdiff
path: root/target/linux/imx6/patches-3.10/0029-regulator-pfuze100-allow-misprogrammed-ID.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/imx6/patches-3.10/0029-regulator-pfuze100-allow-misprogrammed-ID.patch')
-rw-r--r--target/linux/imx6/patches-3.10/0029-regulator-pfuze100-allow-misprogrammed-ID.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/imx6/patches-3.10/0029-regulator-pfuze100-allow-misprogrammed-ID.patch b/target/linux/imx6/patches-3.10/0029-regulator-pfuze100-allow-misprogrammed-ID.patch
new file mode 100644
index 0000000..8c0a92b
--- /dev/null
+++ b/target/linux/imx6/patches-3.10/0029-regulator-pfuze100-allow-misprogrammed-ID.patch
@@ -0,0 +1,32 @@
+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);