i2cM41T81Clock.h
上传用户:dqzhongke1
上传日期:2022-06-26
资源大小:667k
文件大小:6k
源码类别:

VxWorks

开发平台:

C/C++

  1. /*
  2.  * $Id: i2cM41T81Clock.h,v 1.3 Broadcom SDK $
  3.  * $Copyright: Copyright 2008 Broadcom Corporation.
  4.  * This program is the proprietary software of Broadcom Corporation
  5.  * and/or its licensors, and may only be used, duplicated, modified
  6.  * or distributed pursuant to the terms and conditions of a separate,
  7.  * written license agreement executed between you and Broadcom
  8.  * (an "Authorized License").  Except as set forth in an Authorized
  9.  * License, Broadcom grants no license (express or implied), right
  10.  * to use, or waiver of any kind with respect to the Software, and
  11.  * Broadcom expressly reserves all rights in and to the Software
  12.  * and all intellectual property rights therein.  IF YOU HAVE
  13.  * NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE
  14.  * IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE
  15.  * ALL USE OF THE SOFTWARE.  
  16.  *  
  17.  * Except as expressly set forth in the Authorized License,
  18.  *  
  19.  * 1.     This program, including its structure, sequence and organization,
  20.  * constitutes the valuable trade secrets of Broadcom, and you shall use
  21.  * all reasonable efforts to protect the confidentiality thereof,
  22.  * and to use this information only in connection with your use of
  23.  * Broadcom integrated circuit products.
  24.  *  
  25.  * 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS
  26.  * PROVIDED "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
  27.  * REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY,
  28.  * OR OTHERWISE, WITH RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY
  29.  * DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
  30.  * NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
  31.  * ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
  32.  * CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING
  33.  * OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
  34.  * 
  35.  * 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL
  36.  * BROADCOM OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL,
  37.  * INCIDENTAL, SPECIAL, INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER
  38.  * ARISING OUT OF OR IN ANY WAY RELATING TO YOUR USE OF OR INABILITY
  39.  * TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF THE
  40.  * POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF
  41.  * THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1,
  42.  * WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING
  43.  * ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.$
  44.  */
  45. #ifndef _GTO_M41_T81_Y_H
  46. #define _GTO_M41_T81_Y_H
  47. /*
  48.  * The clock is connected to SMBus channel 1
  49.  */
  50. #define M41T81_SMBUS_CHAN       0
  51. #define M41T81_CCR_ADDRESS      0x68
  52. /*
  53.  * Register bits
  54.  */
  55. #define M41T81REG_SC_ST     0x80  /* stop bit */
  56. #define M41T81REG_HR_CB     0x40  /* century bit */
  57. #define M41T81REG_HR_CEB    0x80  /* century enable bit */
  58. #define M41T81REG_CTL_S     0x20  /* sign bit */
  59. #define M41T81REG_CTL_FT    0x40  /* frequency test bit */
  60. #define M41T81REG_CTL_OUT   0x80  /* output level */
  61. #define M41T81REG_WD_RB0    0x01  /* watchdog resolution bit 0 */
  62. #define M41T81REG_WD_RB1    0x02  /* watchdog resolution bit 1 */
  63. #define M41T81REG_WD_BMB0   0x04  /* watchdog multiplier bit 0 */
  64. #define M41T81REG_WD_BMB1   0x08  /* watchdog multiplier bit 1 */
  65. #define M41T81REG_WD_BMB2   0x10  /* watchdog multiplier bit 2 */
  66. #define M41T81REG_WD_BMB3   0x20  /* watchdog multiplier bit 3 */
  67. #define M41T81REG_WD_BMB4   0x40  /* watchdog multiplier bit 4 */
  68. #define M41T81REG_AMO_ABE   0x20  /* alarm in "battery back-up mode" enable bit */
  69. #define M41T81REG_AMO_SQWE  0x40  /* square wave enable */
  70. #define M41T81REG_AMO_AFE   0x80  /* alarm flag enable flag */
  71. #define M41T81REG_ADT_RPT5  0x40  /* alarm repeat mode bit 5 */
  72. #define M41T81REG_ADT_RPT4  0x80  /* alarm repeat mode bit 4 */
  73. #define M41T81REG_AHR_RPT3  0x80  /* alarm repeat mode bit 3 */
  74. #define M41T81REG_AHR_HT    0x40  /* halt update bit */
  75. #define M41T81REG_AMN_RPT2  0x80  /* alarm repeat mode bit 2 */
  76. #define M41T81REG_ASC_RPT1  0x80  /* alarm repeat mode bit 1 */
  77. #define M41T81REG_FLG_AF    0x40  /* alarm flag (read only) */
  78. #define M41T81REG_FLG_WDF   0x80  /* watchdog flag (read only) */
  79. #define M41T81REG_SQW_RS0   0x10  /* sqw frequency bit 0 */
  80. #define M41T81REG_SQW_RS1   0x20  /* sqw frequency bit 1 */
  81. #define M41T81REG_SQW_RS2   0x40  /* sqw frequency bit 2 */
  82. #define M41T81REG_SQW_RS3   0x80  /* sqw frequency bit 3 */
  83. /*
  84.  * Register numbers
  85.  */
  86. #define M41T81REG_TSC       0x00  /* tenths/hundredths of second */
  87. #define M41T81REG_SC        0x01  /* seconds */
  88. #define M41T81REG_MN        0x02  /* minute */
  89. #define M41T81REG_HR        0x03  /* hour/century */
  90. #define M41T81REG_DY        0x04  /* day of week */
  91. #define M41T81REG_DT        0x05  /* date of month */
  92. #define M41T81REG_MO        0x06  /* month */
  93. #define M41T81REG_YR        0x07  /* year */
  94. #define M41T81REG_CTL       0x08  /* control */
  95. #define M41T81REG_WD        0x09  /* watchdog */
  96. #define M41T81REG_AMO       0x0A  /* alarm: month */
  97. #define M41T81REG_ADT       0x0B  /* alarm: date */
  98. #define M41T81REG_AHR       0x0C  /* alarm: hour */
  99. #define M41T81REG_AMN       0x0D  /* alarm: minute */
  100. #define M41T81REG_ASC       0x0E  /* alarm: second */
  101. #define M41T81REG_FLG       0x0F  /* flags */
  102. #define M41T81REG_SQW       0x13  /* square wave register */
  103. #define TO_BCD(x) (((x) % 10) + (((x) / 10) << 4))
  104. #define FROM_BCD(x) ((x) / 16 * 10 + (x) % 16)
  105. STATUS m41t81_tod_init(void);
  106. STATUS m41t81_tod_set(int year, int month, int day,
  107.    int hour, int minute, int second);
  108. STATUS m41t81_tod_get(int *year, int *month, int *day,
  109.    int *hour, int *minute, int *second);
  110. STATUS m41t81_tod_get_second(void);
  111. #endif /* _GTO_M41_T81_Y_H */