blob: f60a4c18f5547846b3bbf4fd4834c0b9ec61eccc [file] [log] [blame]
developer65014b82015-04-13 14:47:57 +08001/*
2 * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
3 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
developer65014b82015-04-13 14:47:57 +08005 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef RTC_H
8#define RTC_H
developer65014b82015-04-13 14:47:57 +08009
10/* RTC registers */
11enum {
12 RTC_BBPU = 0xE000,
13 RTC_IRQ_STA = 0xE002,
14 RTC_IRQ_EN = 0xE004,
15 RTC_CII_EN = 0xE006
16};
17
18enum {
19 RTC_OSC32CON = 0xE026,
20 RTC_CON = 0xE03E,
21 RTC_WRTGR = 0xE03C
22};
23
24enum {
25 RTC_PDN1 = 0xE02C,
26 RTC_PDN2 = 0xE02E,
27 RTC_SPAR0 = 0xE030,
28 RTC_SPAR1 = 0xE032,
29 RTC_PROT = 0xE036,
30 RTC_DIFF = 0xE038,
31 RTC_CALI = 0xE03A
32};
33
34enum {
35 RTC_PROT_UNLOCK1 = 0x586A,
36 RTC_PROT_UNLOCK2 = 0x9136
37};
38
39enum {
40 RTC_BBPU_PWREN = 1U << 0,
41 RTC_BBPU_BBPU = 1U << 2,
42 RTC_BBPU_AUTO = 1U << 3,
43 RTC_BBPU_CLRPKY = 1U << 4,
44 RTC_BBPU_RELOAD = 1U << 5,
45 RTC_BBPU_CBUSY = 1U << 6
46};
47
48enum {
49 RTC_BBPU_KEY = 0x43 << 8
50};
51
developer037da992019-05-02 21:06:05 +080052/* external API */
53uint16_t RTC_Read(uint32_t addr);
54void RTC_Write(uint32_t addr, uint16_t data);
55int32_t rtc_busy_wait(void);
56int32_t RTC_Write_Trigger(void);
57int32_t Writeif_unlock(void);
developer65014b82015-04-13 14:47:57 +080058void rtc_bbpu_power_down(void);
59
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000060#endif /* RTC_H */