diff options
Diffstat (limited to 'target/linux/imx6/patches-3.12/0021-regulator-pfuze100-allow-misprogrammed-ID.patch')
-rw-r--r-- | target/linux/imx6/patches-3.12/0021-regulator-pfuze100-allow-misprogrammed-ID.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/imx6/patches-3.12/0021-regulator-pfuze100-allow-misprogrammed-ID.patch b/target/linux/imx6/patches-3.12/0021-regulator-pfuze100-allow-misprogrammed-ID.patch new file mode 100644 index 0000000000..8c0a92bb7a --- /dev/null +++ b/target/linux/imx6/patches-3.12/0021-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); |