pl353-smc.h 739 B

123456789101112131415161718192021222324252627282930
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * ARM PL353 SMC Driver Header
  4. *
  5. * Copyright (C) 2012 - 2018 Xilinx, Inc
  6. */
  7. #ifndef __LINUX_PL353_SMC_H
  8. #define __LINUX_PL353_SMC_H
  9. enum pl353_smc_ecc_mode {
  10. PL353_SMC_ECCMODE_BYPASS = 0,
  11. PL353_SMC_ECCMODE_APB = 1,
  12. PL353_SMC_ECCMODE_MEM = 2
  13. };
  14. enum pl353_smc_mem_width {
  15. PL353_SMC_MEM_WIDTH_8 = 0,
  16. PL353_SMC_MEM_WIDTH_16 = 1
  17. };
  18. u32 pl353_smc_get_ecc_val(int ecc_reg);
  19. bool pl353_smc_ecc_is_busy(void);
  20. int pl353_smc_get_nand_int_status_raw(void);
  21. void pl353_smc_clr_nand_int(void);
  22. int pl353_smc_set_ecc_mode(enum pl353_smc_ecc_mode mode);
  23. int pl353_smc_set_ecc_pg_size(unsigned int pg_sz);
  24. int pl353_smc_set_buswidth(unsigned int bw);
  25. void pl353_smc_set_cycles(u32 timings[]);
  26. #endif