xref: /openbmc/u-boot/include/linux/mtd/fsl_upm.h (revision fabbeb33)
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