Add support for the marvell,armada8040-puzzle-m801 compatible string
in the board/Marvell/mvebu_armada-8k/board.c file to initialize the
networking on iEi Puzzle-M801 board (2x CP1 1 Gb ports).

Signed-off-by: Luka Kovacic <[email protected]>
Cc: Luka Perkov <[email protected]>
---
 board/Marvell/mvebu_armada-8k/board.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/board/Marvell/mvebu_armada-8k/board.c 
b/board/Marvell/mvebu_armada-8k/board.c
index 60b0024630..bf8a929ec1 100644
--- a/board/Marvell/mvebu_armada-8k/board.c
+++ b/board/Marvell/mvebu_armada-8k/board.c
@@ -34,6 +34,17 @@ DECLARE_GLOBAL_DATA_PTR;
 #define I2C_IO_REG_CL          ((1 << I2C_IO_REG_0_USB_H0_CL) | \
                                 (1 << I2C_IO_REG_0_USB_H1_CL))
 
+/*
+ * Information specific to the iEi Puzzle-M801 board.
+ */
+
+/* Internal configuration registers */
+#define CP1_CONF_REG_BASE 0xf4440000
+#define CONF_REG_MPP0 0x0
+#define CONF_REG_MPP1 0x4
+#define CONF_REG_MPP2 0x8
+#define CONF_REG_MPP3 0xC
+
 static int usb_enabled = 0;
 
 /* Board specific xHCI dis-/enable code */
@@ -141,7 +152,14 @@ int board_xhci_enable(fdt_addr_t base)
 
 int board_early_init_f(void)
 {
-       /* Nothing to do (yet), perhaps later some pin-muxing etc */
+       /* Initialize some platform specific memory locations */
+       if (of_machine_is_compatible("marvell,armada8040-puzzle-m801")) {
+               /* MPP setup */
+               writel(0x00444444, CP1_CONF_REG_BASE + CONF_REG_MPP0);
+               writel(0x00000000, CP1_CONF_REG_BASE + CONF_REG_MPP1);
+               writel(0x00000000, CP1_CONF_REG_BASE + CONF_REG_MPP2);
+               writel(0x08888000, CP1_CONF_REG_BASE + CONF_REG_MPP3);
+       }
 
        return 0;
 }
-- 
2.26.2

Reply via email to