|
|
|
@ -6,14 +6,14 @@ |
|
|
|
|
* SPDX-License-Identifier: GPL-2.0+ |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#include <common.h> |
|
|
|
|
#include <malloc.h> |
|
|
|
|
#include <nand.h> |
|
|
|
|
#include <dm.h> |
|
|
|
|
#include <nand.h> |
|
|
|
|
#include <linux/bitfield.h> |
|
|
|
|
#include <linux/dma-direction.h> |
|
|
|
|
#include <linux/errno.h> |
|
|
|
|
#include <linux/io.h> |
|
|
|
|
#include <linux/mtd/mtd.h> |
|
|
|
|
#include <linux/mtd/rawnand.h> |
|
|
|
|
|
|
|
|
|
#include "denali.h" |
|
|
|
|
|
|
|
|
@ -938,7 +938,7 @@ static int denali_erase(struct mtd_info *mtd, int page) |
|
|
|
|
return irq_status & INTR__ERASE_COMP ? 0 : NAND_STATUS_FAIL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int __maybe_unused denali_setup_data_interface(struct mtd_info *mtd, int chipnr, |
|
|
|
|
static int denali_setup_data_interface(struct mtd_info *mtd, int chipnr, |
|
|
|
|
const struct nand_data_interface *conf) |
|
|
|
|
{ |
|
|
|
|
struct denali_nand_info *denali = mtd_to_denali(mtd); |
|
|
|
@ -1366,29 +1366,3 @@ free_buf: |
|
|
|
|
|
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef CONFIG_NAND_DENALI_DT |
|
|
|
|
static int __board_nand_init(void) |
|
|
|
|
{ |
|
|
|
|
struct denali_nand_info *denali; |
|
|
|
|
|
|
|
|
|
denali = kzalloc(sizeof(*denali), GFP_KERNEL); |
|
|
|
|
if (!denali) |
|
|
|
|
return -ENOMEM; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* In the future, these base addresses should be taken from |
|
|
|
|
* Device Tree or platform data. |
|
|
|
|
*/ |
|
|
|
|
denali->reg = (void __iomem *)CONFIG_SYS_NAND_REGS_BASE; |
|
|
|
|
denali->host = (void __iomem *)CONFIG_SYS_NAND_DATA_BASE; |
|
|
|
|
|
|
|
|
|
return denali_init(denali); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void board_nand_init(void) |
|
|
|
|
{ |
|
|
|
|
if (__board_nand_init() < 0) |
|
|
|
|
pr_warn("Failed to initialize Denali NAND controller.\n"); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|