jz4780-nemc.h 976 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * JZ4780 NAND/external memory controller (NEMC)
  4. *
  5. * Copyright (c) 2015 Imagination Technologies
  6. * Author: Alex Smith <[email protected]>
  7. */
  8. #ifndef __LINUX_JZ4780_NEMC_H__
  9. #define __LINUX_JZ4780_NEMC_H__
  10. #include <linux/types.h>
  11. struct device;
  12. /*
  13. * Number of NEMC banks. Note that there are actually 6, but they are numbered
  14. * from 1.
  15. */
  16. #define JZ4780_NEMC_NUM_BANKS 7
  17. /**
  18. * enum jz4780_nemc_bank_type - device types which can be connected to a bank
  19. * @JZ4780_NEMC_BANK_SRAM: SRAM
  20. * @JZ4780_NEMC_BANK_NAND: NAND
  21. */
  22. enum jz4780_nemc_bank_type {
  23. JZ4780_NEMC_BANK_SRAM,
  24. JZ4780_NEMC_BANK_NAND,
  25. };
  26. extern unsigned int jz4780_nemc_num_banks(struct device *dev);
  27. extern void jz4780_nemc_set_type(struct device *dev, unsigned int bank,
  28. enum jz4780_nemc_bank_type type);
  29. extern void jz4780_nemc_assert(struct device *dev, unsigned int bank,
  30. bool assert);
  31. #endif /* __LINUX_JZ4780_NEMC_H__ */