Ralf Baechle | 443bf32 | 2005-11-17 16:23:42 +0000 | [diff] [blame] | 1 | /* |
| 2 | * ds17287rtc.h - register definitions for the ds1728[57] RTC / CMOS RAM |
| 3 | * |
| 4 | * This file is subject to the terms and conditions of the GNU General Public |
| 5 | * License. See the file "COPYING" in the main directory of this archive |
| 6 | * for more details. |
| 7 | * |
| 8 | * (C) 2003 Guido Guenther <agx@sigxcpu.org> |
| 9 | */ |
| 10 | #ifndef __LINUX_DS17287RTC_H |
| 11 | #define __LINUX_DS17287RTC_H |
| 12 | |
| 13 | #include <linux/rtc.h> /* get the user-level API */ |
| 14 | #include <linux/spinlock.h> /* spinlock_t */ |
| 15 | #include <linux/mc146818rtc.h> |
| 16 | |
| 17 | /* Register A */ |
| 18 | #define DS_REGA_DV2 0x40 /* countdown chain */ |
| 19 | #define DS_REGA_DV1 0x20 /* oscillator enable */ |
| 20 | #define DS_REGA_DV0 0x10 /* bank select */ |
| 21 | |
| 22 | /* bank 1 registers */ |
| 23 | #define DS_B1_MODEL 0x40 /* model number byte */ |
| 24 | #define DS_B1_SN1 0x41 /* serial number byte 1 */ |
| 25 | #define DS_B1_SN2 0x42 /* serial number byte 2 */ |
| 26 | #define DS_B1_SN3 0x43 /* serial number byte 3 */ |
| 27 | #define DS_B1_SN4 0x44 /* serial number byte 4 */ |
| 28 | #define DS_B1_SN5 0x45 /* serial number byte 5 */ |
| 29 | #define DS_B1_SN6 0x46 /* serial number byte 6 */ |
| 30 | #define DS_B1_CRC 0x47 /* CRC byte */ |
| 31 | #define DS_B1_CENTURY 0x48 /* Century byte */ |
| 32 | #define DS_B1_DALARM 0x49 /* date alarm */ |
| 33 | #define DS_B1_XCTRL4A 0x4a /* extendec control register 4a */ |
| 34 | #define DS_B1_XCTRL4B 0x4b /* extendec control register 4b */ |
| 35 | #define DS_B1_RTCADDR2 0x4e /* rtc address 2 */ |
| 36 | #define DS_B1_RTCADDR3 0x4f /* rtc address 3 */ |
| 37 | #define DS_B1_RAMLSB 0x50 /* extended ram LSB */ |
| 38 | #define DS_B1_RAMMSB 0x51 /* extended ram MSB */ |
| 39 | #define DS_B1_RAMDPORT 0x53 /* extended ram data port */ |
| 40 | |
| 41 | /* register details */ |
| 42 | /* extended control register 4a */ |
| 43 | #define DS_XCTRL4A_VRT2 0x80 /* valid ram and time */ |
| 44 | #define DS_XCTRL4A_INCR 0x40 /* increment progress status */ |
| 45 | #define DS_XCTRL4A_BME 0x20 /* burst mode enable */ |
| 46 | #define DS_XCTRL4A_PAB 0x08 /* power active bar ctrl */ |
| 47 | #define DS_XCTRL4A_RF 0x04 /* ram clear flag */ |
| 48 | #define DS_XCTRL4A_WF 0x02 /* wake up alarm flag */ |
| 49 | #define DS_XCTRL4A_KF 0x01 /* kickstart flag */ |
| 50 | |
| 51 | /* interrupt causes */ |
| 52 | #define DS_XCTRL4A_IFS (DS_XCTRL4A_RF|DS_XCTRL4A_WF|DS_XCTRL4A_KF) |
| 53 | |
| 54 | /* extended control register 4b */ |
| 55 | #define DS_XCTRL4B_ABE 0x80 /* auxiliary battery enable */ |
| 56 | #define DS_XCTRL4B_E32K 0x40 /* enable 32.768 kHz Output */ |
| 57 | #define DS_XCTRL4B_CS 0x20 /* crystal select */ |
| 58 | #define DS_XCTRL4B_RCE 0x10 /* ram clear enable */ |
| 59 | #define DS_XCTRL4B_PRS 0x08 /* PAB resec select */ |
| 60 | #define DS_XCTRL4B_RIE 0x04 /* ram clear interrupt enable */ |
| 61 | #define DS_XCTRL4B_WFE 0x02 /* wake up alarm interrupt enable */ |
| 62 | #define DS_XCTRL4B_KFE 0x01 /* kickstart interrupt enable */ |
| 63 | |
| 64 | /* interrupt enable bits */ |
| 65 | #define DS_XCTRL4B_IFES (DS_XCTRL4B_RIE|DS_XCTRL4B_WFE|DS_XCTRL4B_KFE) |
| 66 | |
| 67 | #endif /* __LINUX_DS17287RTC_H */ |