]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - drivers/rtc/rtc-at91rm9200.h
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[mirror_ubuntu-jammy-kernel.git] / drivers / rtc / rtc-at91rm9200.h
CommitLineData
2874c5fd 1/* SPDX-License-Identifier: GPL-2.0-or-later */
6171de8f 2/*
a09e64fb 3 * arch/arm/mach-at91/include/mach/at91_rtc.h
6171de8f
AV
4 *
5 * Copyright (C) 2005 Ivan Kokshaysky
6 * Copyright (C) SAN People
7 *
8 * Real Time Clock (RTC) - System peripheral registers.
9 * Based on AT91RM9200 datasheet revision E.
6171de8f
AV
10 */
11
12#ifndef AT91_RTC_H
13#define AT91_RTC_H
14
d28bdfc5 15#define AT91_RTC_CR 0x00 /* Control Register */
6171de8f
AV
16#define AT91_RTC_UPDTIM (1 << 0) /* Update Request Time Register */
17#define AT91_RTC_UPDCAL (1 << 1) /* Update Request Calendar Register */
18#define AT91_RTC_TIMEVSEL (3 << 8) /* Time Event Selection */
19#define AT91_RTC_TIMEVSEL_MINUTE (0 << 8)
a14d5273
AV
20#define AT91_RTC_TIMEVSEL_HOUR (1 << 8)
21#define AT91_RTC_TIMEVSEL_DAY24 (2 << 8)
22#define AT91_RTC_TIMEVSEL_DAY12 (3 << 8)
6171de8f 23#define AT91_RTC_CALEVSEL (3 << 16) /* Calendar Event Selection */
a14d5273
AV
24#define AT91_RTC_CALEVSEL_WEEK (0 << 16)
25#define AT91_RTC_CALEVSEL_MONTH (1 << 16)
26#define AT91_RTC_CALEVSEL_YEAR (2 << 16)
6171de8f 27
d28bdfc5 28#define AT91_RTC_MR 0x04 /* Mode Register */
a14d5273 29#define AT91_RTC_HRMOD (1 << 0) /* 12/24 Hour Mode */
6171de8f 30
d28bdfc5 31#define AT91_RTC_TIMR 0x08 /* Time Register */
6171de8f
AV
32#define AT91_RTC_SEC (0x7f << 0) /* Current Second */
33#define AT91_RTC_MIN (0x7f << 8) /* Current Minute */
a14d5273 34#define AT91_RTC_HOUR (0x3f << 16) /* Current Hour */
6171de8f
AV
35#define AT91_RTC_AMPM (1 << 22) /* Ante Meridiem Post Meridiem Indicator */
36
d28bdfc5 37#define AT91_RTC_CALR 0x0c /* Calendar Register */
6171de8f
AV
38#define AT91_RTC_CENT (0x7f << 0) /* Current Century */
39#define AT91_RTC_YEAR (0xff << 8) /* Current Year */
40#define AT91_RTC_MONTH (0x1f << 16) /* Current Month */
41#define AT91_RTC_DAY (7 << 21) /* Current Day */
42#define AT91_RTC_DATE (0x3f << 24) /* Current Date */
43
d28bdfc5 44#define AT91_RTC_TIMALR 0x10 /* Time Alarm Register */
6171de8f
AV
45#define AT91_RTC_SECEN (1 << 7) /* Second Alarm Enable */
46#define AT91_RTC_MINEN (1 << 15) /* Minute Alarm Enable */
47#define AT91_RTC_HOUREN (1 << 23) /* Hour Alarm Enable */
48
d28bdfc5 49#define AT91_RTC_CALALR 0x14 /* Calendar Alarm Register */
6171de8f
AV
50#define AT91_RTC_MTHEN (1 << 23) /* Month Alarm Enable */
51#define AT91_RTC_DATEEN (1 << 31) /* Date Alarm Enable */
52
d28bdfc5 53#define AT91_RTC_SR 0x18 /* Status Register */
6171de8f
AV
54#define AT91_RTC_ACKUPD (1 << 0) /* Acknowledge for Update */
55#define AT91_RTC_ALARM (1 << 1) /* Alarm Flag */
56#define AT91_RTC_SECEV (1 << 2) /* Second Event */
57#define AT91_RTC_TIMEV (1 << 3) /* Time Event */
58#define AT91_RTC_CALEV (1 << 4) /* Calendar Event */
59
d28bdfc5
JCPV
60#define AT91_RTC_SCCR 0x1c /* Status Clear Command Register */
61#define AT91_RTC_IER 0x20 /* Interrupt Enable Register */
62#define AT91_RTC_IDR 0x24 /* Interrupt Disable Register */
e24b0bfa 63#define AT91_RTC_IMR 0x28 /* Interrupt Mask Register */
6171de8f 64
d28bdfc5 65#define AT91_RTC_VER 0x2c /* Valid Entry Register */
6171de8f
AV
66#define AT91_RTC_NVTIM (1 << 0) /* Non valid Time */
67#define AT91_RTC_NVCAL (1 << 1) /* Non valid Calendar */
68#define AT91_RTC_NVTIMALR (1 << 2) /* Non valid Time Alarm */
69#define AT91_RTC_NVCALALR (1 << 3) /* Non valid Calendar Alarm */
70
71#endif