xref: /minix3/minix/include/arch/i386/include/cmos.h (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1 /*
2 ibm/cmos.h
3 
4 Created:	Dec 1998 by Philip Homburg <philip@cs.vu.nl>
5 
6 Definitions for the CMOS/realtime clock. Based on the datasheet for the
7 Dallas DS12887, compatible with the Motorola MC146818
8 */
9 
10 #define RTC_INDEX	0x70	/* Bit 7 = NMI enable (1) / disable (0)
11 				 * bits 0..6 index
12 				 */
13 #define RTC_IO		0x71	/* Data register,
14 				 * Note: the operation following a write to
15 				 * RTC_INDEX should an access (read or write)
16 				 * to RTC_IO
17 				 */
18 
19 #define RTC_SEC		0x0	/* Seconds register */
20 #define RTC_SEC_ALRM	0x1	/* Seconds register for alarm */
21 #define RTC_MIN		0x2	/* Minutes register */
22 #define RTC_MIN_ALRM	0x3	/* Minutes register for alarm */
23 #define RTC_HOUR	0x4	/* Hours register */
24 #define RTC_HOUR_ALRM	0x5	/* Hours register for alarm */
25 #define RTC_WDAY	0x6	/* Day of the week, 1..7, Sunday = 1 */
26 #define RTC_MDAY	0x7	/* Day of the month, 1..31 */
27 #define RTC_MONTH	0x8	/* Month, 1..12 */
28 #define RTC_YEAR	0x9	/* Year, 0..99 */
29 #define RTC_REG_A	0xA
30 #define		RTC_A_UIP	0x80	/* Update in progress. When clear,
31 					 * no update will occur for 244
32 					 * micro seconds.
33 					 */
34 #define		RTC_A_DV	0x70	/* Divider bits, valid values are: */
35 #define		    RTC_A_DV_OK	    0x20	/* Normal */
36 #define		    RTC_A_DV_STOP   0x70	/* Stop, a re-start starts
37 						 * halfway through a cycle,
38 						 * i.e. the update occurs after
39 						 * 500ms.
40 						 */
41 #define		RTC_A_RS	0x0F	/* Int. freq */
42 				    /*  0	None
43 				     *  1	 256 Hz
44 				     *  2	 128 Hz
45 				     *  3	8192 Hz
46 				     *  4	4096 Hz
47 				     *  5	2048 Hz
48 				     *  6	1024 Hz
49 				     *  7	 512 Hz
50 				     *  8	 256 Hz
51 				     *  9	 128 Hz
52 				     * 10	  64 Hz
53 				     * 11	  32 Hz
54 				     * 12	  16 Hz
55 				     * 13	   8 Hz
56 				     * 14	   4 Hz
57 				     * 15	   2 Hz
58 				     */
59 #define		    RTC_A_RS_DEF    6	/* Default freq. */
60 #define RTC_REG_B	0xB
61 #define		RTC_B_SET	0x80	/* Inhibit updates */
62 #define		RTC_B_PIE	0x40	/* Enable periodic interrupts */
63 #define		RTC_B_AIE	0x20	/* Enable alarm interrupts */
64 #define		RTC_B_UIE	0x10	/* Enable update ended interrupts */
65 #define		RTC_B_SQWE	0x08	/* Enable square wave output */
66 #define		RTC_B_DM_BCD	0x04	/* Data is in BCD (otherwise binary) */
67 #define		RTC_B_24	0x02	/* Count hours in 24-hour mode */
68 #define		RTC_B_DSE	0x01	/* Automatic (wrong) daylight savings
69 					 * updates
70 					 */
71 #define RTC_REG_C	0xC
72 
73 /* Contents of the general purpose CMOS RAM (source IBM reference manual) */
74 #define CMOS_STATUS	0xE
75 #define		CS_LOST_POWER	0x80	/* Chip lost power */
76 #define		CS_BAD_CHKSUM	0x40	/* Checksum is incorrect */
77 #define		CS_BAD_CONFIG	0x20	/* Bad configuration info */
78 #define		CS_BAD_MEMSIZE	0x10	/* Wrong memory size of CMOS */
79 #define		CS_BAD_HD	0x08	/* Harddisk failed */
80 #define		CS_BAD_TIME	0x04	/* CMOS time is invalid */
81 					/* bits 0 and 1 are reserved */
82 
83 /*
84  * $PchId: cmos.h,v 1.1 1998/12/16 09:14:21 philip Exp $
85  */
86