boards: fsl: lx2160ardb: enable flexcan
authorPankaj Bansal <pankaj.bansal@nxp.com>
Wed, 17 Jul 2019 09:34:34 +0000 (09:34 +0000)
committerPrabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Thu, 22 Aug 2019 03:37:36 +0000 (09:07 +0530)
Flexcan in LX2160ARDB is controlled by FPGA register boardcfg4
bit 5. enable this bit so that flexcan is enabled in LX2160ARDB.

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
board/freescale/lx2160a/lx2160a.c

index 163b42dda4b755365935575203e1ab5bc2eaf66d..7f19a1a1458dcfa4dc1ed5d2a18cfc07407528d8 100644 (file)
@@ -410,6 +410,26 @@ int config_board_mux(void)
 
        return 0;
 }
+#elif defined(CONFIG_TARGET_LX2160ARDB)
+int config_board_mux(void)
+{
+       u8 brdcfg;
+
+       brdcfg = QIXIS_READ(brdcfg[4]);
+       /* The BRDCFG4 register controls general board configuration.
+        *|-------------------------------------------|
+        *|Field  | Function                          |
+        *|-------------------------------------------|
+        *|5      | CAN I/O Enable (net CFG_CAN_EN_B):|
+        *|CAN_EN | 0= CAN transceivers are disabled. |
+        *|       | 1= CAN transceivers are enabled.  |
+        *|-------------------------------------------|
+        */
+       brdcfg |= BIT_MASK(5);
+       QIXIS_WRITE(brdcfg[4], brdcfg);
+
+       return 0;
+}
 #else
 int config_board_mux(void)
 {