The Product Register of R-Car M3-W ES1.1 incorrectly identifies the SoC
revision as ES2.0.  Add a workaround to fix this.

Signed-off-by: Geert Uytterhoeven <[email protected]>
---
Is it already known how future revisions will be identified?
---
 drivers/soc/renesas/renesas-soc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/soc/renesas/renesas-soc.c 
b/drivers/soc/renesas/renesas-soc.c
index f8389ed2249f9816..5c7f920ff060957a 100644
--- a/drivers/soc/renesas/renesas-soc.c
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -293,6 +293,9 @@ static int __init renesas_soc_init(void)
        if (chipid) {
                product = readl(chipid);
                iounmap(chipid);
+               /* R-Car M3-W ES1.1 incorrectly identifies as ES2.0 */
+               if ((product & 0x7fff) == 0x5210)
+                       product ^= 0x11;
                if (soc->id && ((product >> 8) & 0xff) != soc->id) {
                        pr_warn("SoC mismatch (product = 0x%x)\n", product);
                        return -ENODEV;
-- 
2.7.4

Reply via email to