imx: imx6: perform gpr_init only on suitable cpu types
authorChristoph Niedermaier <cniedermaier@dh-electronics.de>
Fri, 19 Oct 2018 15:40:54 +0000 (17:40 +0200)
committerStefano Babic <sbabic@denx.de>
Thu, 8 Nov 2018 13:35:40 +0000 (14:35 +0100)
If the function gpr_init is used in a common MX6 spl
implementation we have to ensure that it is only called for
suitable cpu types, otherwise it breaks hardware parts like
enet1, can1, can2, etc.

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.de>
arch/arm/mach-imx/mx6/soc.c

index 31c9a6e..e80f1d4 100644 (file)
@@ -660,6 +660,14 @@ void gpr_init(void)
 {
        struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR;
 
+       /*
+        * If this function is used in a common MX6 spl implementation
+        * we have to ensure that it is only called for suitable cpu types,
+        * otherwise it breaks hardware parts like enet1, can1, can2, etc.
+        */
+       if (!is_mx6dqp() && !is_mx6dq() && !is_mx6sdl())
+               return;
+
        /* enable AXI cache for VDOA/VPU/IPU */
        writel(0xF00000CF, &iomux->gpr[4]);
        if (is_mx6dqp()) {