1 /* 2 * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef RTC_H 8 #define RTC_H 9 10 /* RTC registers */ 11 enum { 12 RTC_BBPU = 0xE000, 13 RTC_IRQ_STA = 0xE002, 14 RTC_IRQ_EN = 0xE004, 15 RTC_CII_EN = 0xE006 16 }; 17 18 enum { 19 RTC_OSC32CON = 0xE026, 20 RTC_CON = 0xE03E, 21 RTC_WRTGR = 0xE03C 22 }; 23 24 enum { 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 34 enum { 35 RTC_PROT_UNLOCK1 = 0x586A, 36 RTC_PROT_UNLOCK2 = 0x9136 37 }; 38 39 enum { 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 48 enum { 49 RTC_BBPU_KEY = 0x43 << 8 50 }; 51 52 /* external API */ 53 uint16_t RTC_Read(uint32_t addr); 54 void RTC_Write(uint32_t addr, uint16_t data); 55 int32_t rtc_busy_wait(void); 56 int32_t RTC_Write_Trigger(void); 57 int32_t Writeif_unlock(void); 58 void rtc_bbpu_power_down(void); 59 60 #endif /* RTC_H */ 61