Home | History | Annotate | Line # | Download | only in i2c
      1 /*	$NetBSD: pcf8583reg.h,v 1.3 2013/08/07 19:38:45 soren Exp $	*/
      2 
      3 /*
      4  * Ben Harris, 2000
      5  *
      6  * This file is in the public domain
      7  */
      8 
      9 /*
     10  * Philips PCF8583 RTC registers
     11  */
     12 
     13 /* We only have clock mode registers here */
     14 
     15 #ifndef _PCF8583REG_H
     16 #define _PCF8583REG_H
     17 
     18 /*
     19  * PCF8583 RTC I2C address:
     20  *
     21  *	101 0000
     22  */
     23 #define PCF8583_ADDRMASK	0x3ff
     24 #define PCF8583_ADDR		0x50
     25 
     26 #define PCF8583_REG_CSR		0x00
     27 #define PCF8583_REG_CENTI	0x01
     28 #define PCF8583_REG_SEC		0x02
     29 #define PCF8583_REG_MIN		0x03
     30 #define PCF8583_REG_HOUR	0x04
     31 #define PCF8583_REG_YEARDATE	0x05
     32 #define PCF8583_REG_WKDYMON	0x06
     33 #define PCF8583_REG_TIMER	0x07
     34 #define PCF8583_REG_ALMCTL	0x08
     35 #define PCF8583_REG_ALMCENTI	0x09
     36 #define PCF8583_REG_ALMSEC	0x0a
     37 #define PCF8583_REG_ALMMIN	0x0b
     38 #define PCF8583_REG_ALMHOUR	0x0c
     39 #define PCF8583_REG_ALMDAY	0x0d
     40 #define PCF8583_REG_ALMMON	0x0e
     41 #define PCF8583_REG_ALMTIMER	0x0f
     42 
     43 #define	PCF8583_NVRAM_START	0x10
     44 #define	PCF8583_NVRAM_SIZE	240
     45 
     46 #define PCF8583_CSR_TIMER	0x01
     47 #define PCF8583_CSR_SECTICK	0x01
     48 #define PCF8583_CSR_ALARM	0x02
     49 #define PCF8583_CSR_MINTICK	0x02
     50 #define PCF8583_CSR_ALARMENABLE	0x04
     51 #define PCF8583_CSR_MASK	0x08
     52 #define PCF8583_CSR_FN_MASK	0x30
     53 #define PCF8583_CSR_FN_32768HZ	0x00
     54 #define PCF8583_CSR_FN_50HZ	0x10
     55 #define PCF8583_CSR_FN_EVENT	0x20
     56 #define PCF8583_CSR_FN_TEST	0x30
     57 #define PCF8583_CSR_HOLD	0x40
     58 #define PCF8583_CSR_STOP	0x80
     59 
     60 #define PCF8583_HOUR_MASK	0x3f
     61 #define PCF8583_HOUR_PM		0x40
     62 #define PCF8583_HOUR_12H	0x80
     63 
     64 #define PCF8583_DATE_MASK	0x3f
     65 #define PCF8583_YEAR_MASK	0xc0
     66 #define PCF8583_YEAR_SHIFT	6
     67 
     68 #define PCF8583_MON_MASK	0x1f
     69 #define PCF8583_WKDY_MASK	0xe0
     70 #define PCF8583_WKDY_SHIFT	5
     71 
     72 #define PCF8583_ALMCTL_TIMER_MASK	0x07
     73 #define PCF8583_ALMCTL_TIMER_OFF	0x00
     74 #define PCF8583_ALMCTL_TIMER_CENTI	0x01
     75 #define PCF8583_ALMCTL_TIMER_SEC	0x02
     76 #define PCF8583_ALMCTL_TIMER_MIN	0x03
     77 #define PCF8583_ALMCTL_TIMER_HOUR	0x04
     78 #define PCF8583_ALMCTL_TIMER_DAY	0x05
     79 #define PCF8583_ALMCTL_TIMER_TEST	0x07
     80 #define PCF8583_ALMCTL_TIMERINT		0x08
     81 #define PCF8583_ALMCTL_CLKALM_MASK	0x30
     82 #define PCF8583_ALMCTL_CLKALM_NONE	0x00
     83 #define PCF8583_ALMCTL_CLKALM_DAILY	0x10
     84 #define PCF8583_ALMCTL_CLKALM_WKDY	0x20
     85 #define PCF8583_ALMCTL_CLKALM_DATED	0x30
     86 #define PCF8583_ALMCTL_TIMERALM		0x40
     87 #define PCF8583_ALMCTL_ALMINT		0x80
     88 
     89 #endif	/* _PCF8583REG_H */
     90