dra7xx_iodelay.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * (C) Copyright 2015
  3. * Texas Instruments Incorporated
  4. *
  5. * Lokesh Vutla <lokeshvutla@ti.com>
  6. *
  7. * SPDX-License-Identifier: GPL-2.0+
  8. */
  9. #ifndef _DRA7_IODELAY_H_
  10. #define _DRA7_IODELAY_H_
  11. #include <common.h>
  12. #include <asm/arch/sys_proto.h>
  13. /* CONFIG_REG_0 */
  14. #define CFG_REG_0_OFFSET 0xC
  15. #define CFG_REG_ROM_READ_SHIFT 1
  16. #define CFG_REG_ROM_READ_MASK (1 << 1)
  17. #define CFG_REG_CALIB_STRT_SHIFT 0
  18. #define CFG_REG_CALIB_STRT_MASK (1 << 0)
  19. #define CFG_REG_CALIB_STRT 1
  20. #define CFG_REG_CALIB_END 0
  21. #define CFG_REG_ROM_READ_START (1 << 1)
  22. #define CFG_REG_ROM_READ_END (0 << 1)
  23. /* CONFIG_REG_2 */
  24. #define CFG_REG_2_OFFSET 0x14
  25. #define CFG_REG_REFCLK_PERIOD_SHIFT 0
  26. #define CFG_REG_REFCLK_PERIOD_MASK (0xFFFF << 0)
  27. #define CFG_REG_REFCLK_PERIOD 0x2EF
  28. /* CONFIG_REG_8 */
  29. #define CFG_REG_8_OFFSET 0x2C
  30. #define CFG_IODELAY_UNLOCK_KEY 0x0000AAAA
  31. #define CFG_IODELAY_LOCK_KEY 0x0000AAAB
  32. /* CONFIG_REG_3/4 */
  33. #define CFG_REG_3_OFFSET 0x18
  34. #define CFG_REG_4_OFFSET 0x1C
  35. #define CFG_REG_DLY_CNT_SHIFT 16
  36. #define CFG_REG_DLY_CNT_MASK (0xFFFF << 16)
  37. #define CFG_REG_REF_CNT_SHIFT 0
  38. #define CFG_REG_REF_CNT_MASK (0xFFFF << 0)
  39. /* CTRL_CORE_SMA_SW_0 */
  40. #define CTRL_ISOLATE_SHIFT 2
  41. #define CTRL_ISOLATE_MASK (1 << 2)
  42. #define ISOLATE_IO 1
  43. #define DEISOLATE_IO 0
  44. /* CTRL_CORE_SMA_SW_1 */
  45. #define RGMII2_ID_MODE_N_MASK (1 << 26)
  46. #define RGMII1_ID_MODE_N_MASK (1 << 25)
  47. /* PRM_IO_PMCTRL */
  48. #define PMCTRL_ISOCLK_OVERRIDE_SHIFT 0
  49. #define PMCTRL_ISOCLK_OVERRIDE_MASK (1 << 0)
  50. #define PMCTRL_ISOCLK_STATUS_SHIFT 1
  51. #define PMCTRL_ISOCLK_STATUS_MASK (1 << 1)
  52. #define PMCTRL_ISOCLK_OVERRIDE_CTRL 1
  53. #define PMCTRL_ISOCLK_NOT_OVERRIDE_CTRL 0
  54. #define ERR_CALIBRATE_IODELAY 0x1
  55. #define ERR_DEISOLATE_IO 0x2
  56. #define ERR_ISOLATE_IO 0x4
  57. #define ERR_UPDATE_DELAY 0x8
  58. #define ERR_CPDE 0x3
  59. #define ERR_FPDE 0x5
  60. /* CFG_XXX */
  61. #define CFG_X_SIGNATURE_SHIFT 12
  62. #define CFG_X_SIGNATURE_MASK (0x3F << 12)
  63. #define CFG_X_LOCK_SHIFT 10
  64. #define CFG_X_LOCK_MASK (0x1 << 10)
  65. #define CFG_X_COARSE_DLY_SHIFT 5
  66. #define CFG_X_COARSE_DLY_MASK (0x1F << 5)
  67. #define CFG_X_FINE_DLY_SHIFT 0
  68. #define CFG_X_FINE_DLY_MASK (0x1F << 0)
  69. #define CFG_X_SIGNATURE 0x29
  70. #define CFG_X_LOCK 1
  71. void __recalibrate_iodelay(struct pad_conf_entry const *pad, int npads,
  72. struct iodelay_cfg_entry const *iodelay,
  73. int niodelays);
  74. #endif