1 /* $NetBSD: r2025reg.h,v 1.1 2006/03/06 19:55:08 shige Exp $ */ 2 3 /*- 4 * Copyright (c) 2006 Shigeyuki Fukushima. 5 * All rights reserved. 6 * 7 * Written by Shigeyuki Fukushima. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above 15 * copyright notice, this list of conditions and the following 16 * disclaimer in the documentation and/or other materials provided 17 * with the distribution. 18 * 3. The name of the author may not be used to endorse or promote 19 * products derived from this software without specific prior 20 * written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 23 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 24 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 26 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 28 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 30 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 31 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 */ 34 35 #ifndef _DEV_I2C_R2025REG_H_ 36 #define _DEV_I2C_R2025REG_H_ 37 38 /* 39 * R2025S/D Real-Time Clock 40 */ 41 42 /* I2C Slave Address */ 43 #define R2025_ADDR 0x32 44 45 /* Register size */ 46 #define R2025_REG_SIZE 16 47 48 #define R2025_CLK_SIZE 7 /* 7bytes: 0x0-0x6 */ 49 50 /* Registers */ 51 #define R2025_REG_SEC 0x0 52 #define R2025_REG_MIN 0x1 53 #define R2025_REG_HOUR 0x2 54 #define R2025_REG_WDAY 0x3 55 #define R2025_REG_DAY 0x4 56 #define R2025_REG_MON 0x5 57 #define R2025_REG_YEAR 0x6 58 #define R2025_REG_CORRECTCLOCK 0x7 59 #define R2025_REG_ALARMW_MIN 0x8 60 #define R2025_REG_ALARMW_HOUR 0x9 61 #define R2025_REG_ALARMW_WDAY 0xa 62 #define R2025_REG_ALARMD_MIN 0xb 63 #define R2025_REG_ALARMD_HOUR 0xc 64 #define R2025_REG_RESERVED 0xd 65 #define R2025_REG_CTRL1 0xe 66 #define R2025_REG_CTRL2 0xf 67 68 69 /* Register mask */ 70 #define R2025_REG_SEC_MASK 0x7f 71 #define R2025_REG_MIN_MASK 0x7f 72 #define R2025_REG_HOUR_MASK 0x3f 73 #define R2025_REG_WDAY_MASK 0x07 74 #define R2025_REG_DAY_MASK 0x3f 75 #define R2025_REG_MON_MASK 0x1f 76 #define R2025_REG_YEAR_MASK 0xff 77 #define R2025_REG_CORRECTCLOCK_MASK 0x7f 78 #define R2025_REG_ALARMW_MIN_MASK 0x7f 79 #define R2025_REG_ALARMW_HOUR_MASK 0x3f 80 #define R2025_REG_ALARMW_WDAY_MASK 0x7f 81 #define R2025_REG_ALARMD_MIN_MASK 0x7f 82 #define R2025_REG_ALARMD_HOUR_MASK 0x3f 83 #define R2025_REG_CTRL1_MASK 0xff 84 #define R2025_REG_CTRL2_MASK 0xff 85 86 /* Register flag: R2025_MON */ 87 #define R2025_REG_MON_Y1920 (1u << 7) 88 89 /* Register flag: R2025_CTRL1 */ 90 #define R2025_REG_CTRL1_WALE (1u << 7) 91 #define R2025_REG_CTRL1_DALE (1u << 6) 92 #define R2025_REG_CTRL1_H1224 (1u << 5) 93 #define R2025_REG_CTRL1_CLEN2 (1u << 4) 94 #define R2025_REG_CTRL1_TEST (1u << 3) 95 #define R2025_REG_CTRL1_CT2 (1u << 2) 96 #define R2025_REG_CTRL1_CT1 (1u << 1) 97 #define R2025_REG_CTRL1_CT0 (1u << 0) 98 99 /* Register flag: R2025_CTRL2 */ 100 #define R2025_REG_CTRL2_VDSL (1u << 7) 101 #define R2025_REG_CTRL2_VDET (1u << 6) 102 #define R2025_REG_CTRL2_XST (1u << 5) 103 #define R2025_REG_CTRL2_PON (1u << 4) 104 #define R2025_REG_CTRL2_CLEN1 (1u << 3) 105 #define R2025_REG_CTRL2_CTFG (1u << 2) 106 #define R2025_REG_CTRL2_WAFG (1u << 1) 107 #define R2025_REG_CTRL2_DAFG (1u << 0) 108 109 #endif /* _DEV_I2C_R2025REG_H_ */ 110