Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[linux-2.6-microblaze.git] / include / linux / jz4780-nemc.h
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__ */