1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * FSL UPM NAND driver 4 * 5 * Copyright (C) 2007 MontaVista Software, Inc. 6 * Anton Vorontsov <avorontsov@ru.mvista.com> 7 */ 8 9 #ifndef __LINUX_MTD_NAND_FSL_UPM 10 #define __LINUX_MTD_NAND_FSL_UPM 11 12 #include <linux/mtd/rawnand.h> 13 14 #define FSL_UPM_WAIT_RUN_PATTERN 0x1 15 #define FSL_UPM_WAIT_WRITE_BYTE 0x2 16 #define FSL_UPM_WAIT_WRITE_BUFFER 0x4 17 18 struct fsl_upm { 19 void __iomem *mdr; 20 void __iomem *mxmr; 21 void __iomem *mar; 22 void __iomem *io_addr; 23 }; 24 25 struct fsl_upm_nand { 26 struct fsl_upm upm; 27 28 int width; 29 int upm_cmd_offset; 30 int upm_addr_offset; 31 int upm_mar_chip_offset; 32 int wait_flags; 33 int (*dev_ready)(int chip_nr); 34 int chip_delay; 35 int chip_offset; 36 int chip_nr; 37 38 /* no need to fill */ 39 int last_ctrl; 40 }; 41 42 extern int fsl_upm_nand_init(struct nand_chip *chip, struct fsl_upm_nand *fun); 43 44 #endif 45