aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/imx6/patches-3.12/0021-pfuze100-allow-misprogrammed-id.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/imx6/patches-3.12/0021-pfuze100-allow-misprogrammed-id.patch')
-rw-r--r--target/linux/imx6/patches-3.12/0021-pfuze100-allow-misprogrammed-id.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/target/linux/imx6/patches-3.12/0021-pfuze100-allow-misprogrammed-id.patch b/target/linux/imx6/patches-3.12/0021-pfuze100-allow-misprogrammed-id.patch
new file mode 100644
index 0000000000..a9399a9297
--- /dev/null
+++ b/target/linux/imx6/patches-3.12/0021-pfuze100-allow-misprogrammed-id.patch
@@ -0,0 +1,20 @@
+--- a/drivers/regulator/pfuze100-regulator.c
++++ b/drivers/regulator/pfuze100-regulator.c
+@@ -308,9 +308,14 @@ 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 & 0xf) {
++ case 0x0:
++ /* Freescale misprogrammed 1-3% of parts prior to week 8 of 2013 as ID=8 */
++ case 0x8:
++ break;
++ default:
++ dev_warn(pfuze_chip->dev, "Illegal ID: %x\n", value);
++ return -ENODEV;
+ }
+
+ ret = regmap_read(pfuze_chip->regmap, PFUZE100_REVID, &value);