sdram_common.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2017 Rockchip Electronics Co., Ltd.
  4. */
  5. #ifndef _ASM_ARCH_SDRAM_COMMON_H
  6. #define _ASM_ARCH_SDRAM_COMMON_H
  7. /*
  8. * sys_reg bitfield struct
  9. * [31] row_3_4_ch1
  10. * [30] row_3_4_ch0
  11. * [29:28] chinfo
  12. * [27] rank_ch1
  13. * [26:25] col_ch1
  14. * [24] bk_ch1
  15. * [23:22] cs0_row_ch1
  16. * [21:20] cs1_row_ch1
  17. * [19:18] bw_ch1
  18. * [17:16] dbw_ch1;
  19. * [15:13] ddrtype
  20. * [12] channelnum
  21. * [11] rank_ch0
  22. * [10:9] col_ch0
  23. * [8] bk_ch0
  24. * [7:6] cs0_row_ch0
  25. * [5:4] cs1_row_ch0
  26. * [3:2] bw_ch0
  27. * [1:0] dbw_ch0
  28. */
  29. #define SYS_REG_DDRTYPE_SHIFT 13
  30. #define SYS_REG_DDRTYPE_MASK 7
  31. #define SYS_REG_NUM_CH_SHIFT 12
  32. #define SYS_REG_NUM_CH_MASK 1
  33. #define SYS_REG_ROW_3_4_SHIFT(ch) (30 + (ch))
  34. #define SYS_REG_ROW_3_4_MASK 1
  35. #define SYS_REG_CHINFO_SHIFT(ch) (28 + (ch))
  36. #define SYS_REG_RANK_SHIFT(ch) (11 + (ch) * 16)
  37. #define SYS_REG_RANK_MASK 1
  38. #define SYS_REG_COL_SHIFT(ch) (9 + (ch) * 16)
  39. #define SYS_REG_COL_MASK 3
  40. #define SYS_REG_BK_SHIFT(ch) (8 + (ch) * 16)
  41. #define SYS_REG_BK_MASK 1
  42. #define SYS_REG_CS0_ROW_SHIFT(ch) (6 + (ch) * 16)
  43. #define SYS_REG_CS0_ROW_MASK 3
  44. #define SYS_REG_CS1_ROW_SHIFT(ch) (4 + (ch) * 16)
  45. #define SYS_REG_CS1_ROW_MASK 3
  46. #define SYS_REG_BW_SHIFT(ch) (2 + (ch) * 16)
  47. #define SYS_REG_BW_MASK 3
  48. #define SYS_REG_DBW_SHIFT(ch) ((ch) * 16)
  49. #define SYS_REG_DBW_MASK 3
  50. /* Get sdram size decode from reg */
  51. size_t rockchip_sdram_size(phys_addr_t reg);
  52. /* Called by U-Boot board_init_r for Rockchip SoCs */
  53. int dram_init(void);
  54. #endif