Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / asm-ppc / m48t35.h
blobf3c5e5dfa986021c70b4c8faadeeb4f300af11c0
1 /*
2 * Registers for the SGS-Thomson M48T35 Timekeeper RAM chip
3 * and
4 * Registers for the SGS-Thomson M48T37 Timekeeper RAM chip
5 * The 37 is the 35 plus alarm and century thus the offsets
6 * are shifted by the extra registers.
7 */
9 #ifndef __PPC_M48T35_H
10 #define __PPC_M48T35_H
12 /* RTC offsets */
13 #define M48T35_RTC_FLAGS (-8) /* the negative regs are really T37 only */
14 #define M48T35_RTC_CENTURY (-7)
15 #define M48T35_RTC_AL_SEC (-6)
16 #define M48T35_RTC_AL_MIN (-5)
17 #define M48T35_RTC_AL_HRS (-4)
18 #define M48T35_RTC_AL_DOM (-3)
19 #define M48T35_RTC_INTERRUPT (-2)
20 #define M48T35_RTC_WATCHDOG (-1)
21 #define M48T35_RTC_CONTROL 0 /* T35 starts here */
22 #define M48T35_RTC_SECONDS 1
23 #define M48T35_RTC_MINUTES 2
24 #define M48T35_RTC_HOURS 3
25 #define M48T35_RTC_DAY 4
26 #define M48T35_RTC_DOM 5
27 #define M48T35_RTC_MONTH 6
28 #define M48T35_RTC_YEAR 7
30 /* this way help us know which bits go with which regs */
31 #define M48T35_RTC_FLAGS_BL 0x10
32 #define M48T35_RTC_FLAGS_AF 0x40
33 #define M48T35_RTC_FLAGS_WDF 0x80
35 #define M48T35_RTC_INTERRUPT_AFE 0x80
36 #define M48T35_RTC_INTERRUPT_ABE 0x20
37 #define M48T35_RTC_INTERRUPT_ALL (M48T35_RTC_INTERRUPT_AFE|M48T35_RTC_INTERRUPT_ABE)
39 #define M48T35_RTC_WATCHDOG_RB 0x03
40 #define M48T35_RTC_WATCHDOG_BMB 0x7c
41 #define M48T35_RTC_WATCHDOG_WDS 0x80
42 #define M48T35_RTC_WATCHDOG_ALL (M48T35_RTC_WATCHDOG_RB|M48T35_RTC_WATCHDOG_BMB|M48T35_RTC_W
44 #define M48T35_RTC_CONTROL_WRITE 0x80
45 #define M48T35_RTC_CONTROL_READ 0x40
46 #define M48T35_RTC_CONTROL_CAL_SIGN 0x20
47 #define M48T35_RTC_CONTROL_CAL_VALUE 0x1f
48 #define M48T35_RTC_CONTROL_LOCKED (M48T35_RTC_WRITE|M48T35_RTC_READ)
49 #define M48T35_RTC_CONTROL_CALIBRATION (M48T35_RTC_CONTROL_CAL_SIGN|M48T35_RTC_CONTROL_CAL_VALUE)
51 #define M48T35_RTC_SECONDS_SEC_1 0x0f
52 #define M48T35_RTC_SECONDS_SEC_10 0x70
53 #define M48T35_RTC_SECONDS_ST 0x80
54 #define M48T35_RTC_SECONDS_SEC_ALL (M48T35_RTC_SECONDS_SEC_1|M48T35_RTC_SECONDS_SEC_10)
56 #define M48T35_RTC_MINUTES_MIN_1 0x0f
57 #define M48T35_RTC_MINUTES_MIN_10 0x70
58 #define M48T35_RTC_MINUTES_MIN_ALL (M48T35_RTC_MINUTES_MIN_1|M48T35_RTC_MINUTES_MIN_10)
60 #define M48T35_RTC_HOURS_HRS_1 0x0f
61 #define M48T35_RTC_HOURS_HRS_10 0x30
62 #define M48T35_RTC_HOURS_HRS_ALL (M48T35_RTC_HOURS_HRS_1|M48T35_RTC_HOURS_HRS_10)
64 #define M48T35_RTC_DAY_DAY_1 0x03
65 #define M48T35_RTC_DAY_FT 0x40
67 #define M48T35_RTC_ALARM_OFF 0x00
68 #define M48T35_RTC_WATCHDOG_OFF 0x00
71 /* legacy */
72 #define M48T35_RTC_SET 0x80
73 #define M48T35_RTC_STOPPED 0x80
74 #define M48T35_RTC_READ 0x40
77 #endif