1 /*
2  * JZ4780 NAND/external memory controller (NEMC)
3  *
4  * Copyright (c) 2015 Imagination Technologies
5  * Author: Alex Smith <alex@alex-smith.me.uk>
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the
9  * Free Software Foundation;  either version 2 of the  License, or (at your
10  * option) any later version.
11  */
12 
13 #ifndef __LINUX_JZ4780_NEMC_H__
14 #define __LINUX_JZ4780_NEMC_H__
15 
16 #include <linux/types.h>
17 
18 struct device;
19 
20 /*
21  * Number of NEMC banks. Note that there are actually 6, but they are numbered
22  * from 1.
23  */
24 #define JZ4780_NEMC_NUM_BANKS	7
25 
26 /**
27  * enum jz4780_nemc_bank_type - device types which can be connected to a bank
28  * @JZ4780_NEMC_BANK_SRAM: SRAM
29  * @JZ4780_NEMC_BANK_NAND: NAND
30  */
31 enum jz4780_nemc_bank_type {
32 	JZ4780_NEMC_BANK_SRAM,
33 	JZ4780_NEMC_BANK_NAND,
34 };
35 
36 extern unsigned int jz4780_nemc_num_banks(struct device *dev);
37 
38 extern void jz4780_nemc_set_type(struct device *dev, unsigned int bank,
39 				 enum jz4780_nemc_bank_type type);
40 extern void jz4780_nemc_assert(struct device *dev, unsigned int bank,
41 			       bool assert);
42 
43 #endif /* __LINUX_JZ4780_NEMC_H__ */
44