Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * JZ4780 NAND/external memory controller (NEMC)
0004  *
0005  * Copyright (c) 2015 Imagination Technologies
0006  * Author: Alex Smith <alex@alex-smith.me.uk>
0007  */
0008 
0009 #ifndef __LINUX_JZ4780_NEMC_H__
0010 #define __LINUX_JZ4780_NEMC_H__
0011 
0012 #include <linux/types.h>
0013 
0014 struct device;
0015 
0016 /*
0017  * Number of NEMC banks. Note that there are actually 6, but they are numbered
0018  * from 1.
0019  */
0020 #define JZ4780_NEMC_NUM_BANKS   7
0021 
0022 /**
0023  * enum jz4780_nemc_bank_type - device types which can be connected to a bank
0024  * @JZ4780_NEMC_BANK_SRAM: SRAM
0025  * @JZ4780_NEMC_BANK_NAND: NAND
0026  */
0027 enum jz4780_nemc_bank_type {
0028     JZ4780_NEMC_BANK_SRAM,
0029     JZ4780_NEMC_BANK_NAND,
0030 };
0031 
0032 extern unsigned int jz4780_nemc_num_banks(struct device *dev);
0033 
0034 extern void jz4780_nemc_set_type(struct device *dev, unsigned int bank,
0035                  enum jz4780_nemc_bank_type type);
0036 extern void jz4780_nemc_assert(struct device *dev, unsigned int bank,
0037                    bool assert);
0038 
0039 #endif /* __LINUX_JZ4780_NEMC_H__ */