rtc.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (c) 2011-2014 Samsung Electronics Co., Ltd
  4. * http://www.samsung.com
  5. */
  6. #ifndef __LINUX_MFD_SEC_RTC_H
  7. #define __LINUX_MFD_SEC_RTC_H
  8. enum s5m_rtc_reg {
  9. S5M_RTC_SEC,
  10. S5M_RTC_MIN,
  11. S5M_RTC_HOUR,
  12. S5M_RTC_WEEKDAY,
  13. S5M_RTC_DATE,
  14. S5M_RTC_MONTH,
  15. S5M_RTC_YEAR1,
  16. S5M_RTC_YEAR2,
  17. S5M_ALARM0_SEC,
  18. S5M_ALARM0_MIN,
  19. S5M_ALARM0_HOUR,
  20. S5M_ALARM0_WEEKDAY,
  21. S5M_ALARM0_DATE,
  22. S5M_ALARM0_MONTH,
  23. S5M_ALARM0_YEAR1,
  24. S5M_ALARM0_YEAR2,
  25. S5M_ALARM1_SEC,
  26. S5M_ALARM1_MIN,
  27. S5M_ALARM1_HOUR,
  28. S5M_ALARM1_WEEKDAY,
  29. S5M_ALARM1_DATE,
  30. S5M_ALARM1_MONTH,
  31. S5M_ALARM1_YEAR1,
  32. S5M_ALARM1_YEAR2,
  33. S5M_ALARM0_CONF,
  34. S5M_ALARM1_CONF,
  35. S5M_RTC_STATUS,
  36. S5M_WTSR_SMPL_CNTL,
  37. S5M_RTC_UDR_CON,
  38. S5M_RTC_REG_MAX,
  39. };
  40. enum s2mps_rtc_reg {
  41. S2MPS_RTC_CTRL,
  42. S2MPS_WTSR_SMPL_CNTL,
  43. S2MPS_RTC_UDR_CON,
  44. S2MPS_RSVD,
  45. S2MPS_RTC_SEC,
  46. S2MPS_RTC_MIN,
  47. S2MPS_RTC_HOUR,
  48. S2MPS_RTC_WEEKDAY,
  49. S2MPS_RTC_DATE,
  50. S2MPS_RTC_MONTH,
  51. S2MPS_RTC_YEAR,
  52. S2MPS_ALARM0_SEC,
  53. S2MPS_ALARM0_MIN,
  54. S2MPS_ALARM0_HOUR,
  55. S2MPS_ALARM0_WEEKDAY,
  56. S2MPS_ALARM0_DATE,
  57. S2MPS_ALARM0_MONTH,
  58. S2MPS_ALARM0_YEAR,
  59. S2MPS_ALARM1_SEC,
  60. S2MPS_ALARM1_MIN,
  61. S2MPS_ALARM1_HOUR,
  62. S2MPS_ALARM1_WEEKDAY,
  63. S2MPS_ALARM1_DATE,
  64. S2MPS_ALARM1_MONTH,
  65. S2MPS_ALARM1_YEAR,
  66. S2MPS_OFFSRC,
  67. S2MPS_RTC_REG_MAX,
  68. };
  69. #define RTC_I2C_ADDR (0x0C >> 1)
  70. #define HOUR_12 (1 << 7)
  71. #define HOUR_AMPM (1 << 6)
  72. #define HOUR_PM (1 << 5)
  73. #define S5M_ALARM0_STATUS (1 << 1)
  74. #define S5M_ALARM1_STATUS (1 << 2)
  75. #define S5M_UPDATE_AD (1 << 0)
  76. #define S2MPS_ALARM0_STATUS (1 << 2)
  77. #define S2MPS_ALARM1_STATUS (1 << 1)
  78. /* RTC Control Register */
  79. #define BCD_EN_SHIFT 0
  80. #define BCD_EN_MASK (1 << BCD_EN_SHIFT)
  81. #define MODEL24_SHIFT 1
  82. #define MODEL24_MASK (1 << MODEL24_SHIFT)
  83. /* RTC Update Register1 */
  84. #define S5M_RTC_UDR_SHIFT 0
  85. #define S5M_RTC_UDR_MASK (1 << S5M_RTC_UDR_SHIFT)
  86. #define S2MPS_RTC_WUDR_SHIFT 4
  87. #define S2MPS_RTC_WUDR_MASK (1 << S2MPS_RTC_WUDR_SHIFT)
  88. #define S2MPS15_RTC_AUDR_SHIFT 4
  89. #define S2MPS15_RTC_AUDR_MASK (1 << S2MPS15_RTC_AUDR_SHIFT)
  90. #define S2MPS13_RTC_AUDR_SHIFT 1
  91. #define S2MPS13_RTC_AUDR_MASK (1 << S2MPS13_RTC_AUDR_SHIFT)
  92. #define S2MPS15_RTC_WUDR_SHIFT 1
  93. #define S2MPS15_RTC_WUDR_MASK (1 << S2MPS15_RTC_WUDR_SHIFT)
  94. #define S2MPS_RTC_RUDR_SHIFT 0
  95. #define S2MPS_RTC_RUDR_MASK (1 << S2MPS_RTC_RUDR_SHIFT)
  96. #define RTC_TCON_SHIFT 1
  97. #define RTC_TCON_MASK (1 << RTC_TCON_SHIFT)
  98. #define S5M_RTC_TIME_EN_SHIFT 3
  99. #define S5M_RTC_TIME_EN_MASK (1 << S5M_RTC_TIME_EN_SHIFT)
  100. /*
  101. * UDR_T field in S5M_RTC_UDR_CON register determines the time needed
  102. * for updating alarm and time registers. Default is 7.32 ms.
  103. */
  104. #define S5M_RTC_UDR_T_SHIFT 6
  105. #define S5M_RTC_UDR_T_MASK (0x3 << S5M_RTC_UDR_T_SHIFT)
  106. #define S5M_RTC_UDR_T_7320_US (0x0 << S5M_RTC_UDR_T_SHIFT)
  107. #define S5M_RTC_UDR_T_1830_US (0x1 << S5M_RTC_UDR_T_SHIFT)
  108. #define S5M_RTC_UDR_T_3660_US (0x2 << S5M_RTC_UDR_T_SHIFT)
  109. #define S5M_RTC_UDR_T_450_US (0x3 << S5M_RTC_UDR_T_SHIFT)
  110. /* RTC Hour register */
  111. #define HOUR_PM_SHIFT 6
  112. #define HOUR_PM_MASK (1 << HOUR_PM_SHIFT)
  113. /* RTC Alarm Enable */
  114. #define ALARM_ENABLE_SHIFT 7
  115. #define ALARM_ENABLE_MASK (1 << ALARM_ENABLE_SHIFT)
  116. #define SMPL_ENABLE_SHIFT 7
  117. #define SMPL_ENABLE_MASK (1 << SMPL_ENABLE_SHIFT)
  118. #define WTSR_ENABLE_SHIFT 6
  119. #define WTSR_ENABLE_MASK (1 << WTSR_ENABLE_SHIFT)
  120. #endif /* __LINUX_MFD_SEC_RTC_H */