mtd: denali: set some registers after nand_scan_ident()
[oweals/u-boot.git] / drivers / mtd / nand / denali.c
index 24bc0ab4a57cf4c8ab340b6ac122cb3227f95243..9e0429aa198949903a6ddc0dbb32fa4e2125a247 100644 (file)
@@ -1209,6 +1209,17 @@ static int denali_init(struct denali_nand_info *denali)
        nand_oob.eccbytes = denali->nand.ecc.bytes;
        denali->nand.ecc.layout = &nand_oob;
 
+       writel(denali->mtd->erasesize / denali->mtd->writesize,
+              denali->flash_reg + PAGES_PER_BLOCK);
+       writel(denali->nand.options & NAND_BUSWIDTH_16 ? 1 : 0,
+              denali->flash_reg + DEVICE_WIDTH);
+       writel(denali->mtd->writesize,
+              denali->flash_reg + DEVICE_MAIN_AREA_SIZE);
+       writel(denali->mtd->oobsize,
+              denali->flash_reg + DEVICE_SPARE_AREA_SIZE);
+       if (readl(denali->flash_reg + DEVICES_CONNECTED) == 0)
+               writel(1, denali->flash_reg + DEVICES_CONNECTED);
+
        /* override the default operations */
        denali->nand.ecc.read_page = denali_read_page;
        denali->nand.ecc.read_page_raw = denali_read_page_raw;