]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - board/synopsys/axs101/nand.c
Merge branch 'master' of git://git.denx.de/u-boot-uniphier
[people/ms/u-boot.git] / board / synopsys / axs101 / nand.c
index c7f90c4400d48a3e5e3a4a08d4a139becb5b4016..4be52e22c0bad6596d3e0309293988dba59fd17a 100644 (file)
@@ -9,6 +9,9 @@
 #include <malloc.h>
 #include <nand.h>
 #include <asm/io.h>
+#include "axs10x.h"
+
+DECLARE_GLOBAL_DATA_PTR;
 
 #define BUS_WIDTH      8               /* AXI data bus width in bytes  */
 
@@ -62,8 +65,10 @@ struct nand_bd {
        uint32_t buffer_ptr1;   /* DES3 */
 };
 
-#define NAND_REG_WRITE(r, v)   writel(v, CONFIG_SYS_NAND_BASE + r)
-#define NAND_REG_READ(r)       readl(CONFIG_SYS_NAND_BASE + r)
+#define NAND_REG_WRITE(r, v)   \
+       writel(v, (volatile void __iomem *)(CONFIG_SYS_NAND_BASE + r))
+#define NAND_REG_READ(r)               \
+       readl((const volatile void __iomem *)(CONFIG_SYS_NAND_BASE + r))
 
 static struct nand_bd *bd;     /* DMA buffer descriptors       */
 
@@ -230,5 +235,9 @@ int board_nand_init(struct nand_chip *nand)
        nand->write_buf = axs101_nand_write_buf;
        nand->read_buf = axs101_nand_read_buf;
 
+       /* MBv3 has NAND IC with 16-bit data bus */
+       if (gd->board_type == AXS_MB_V3)
+               nand->options |= NAND_BUSWIDTH_16;
+
        return 0;
 }