#ifndef DS1375_I2C_RTC_H #define DS1375_I2C_RTC_H /* Driver for the Maxim 1375 i2c RTC (TOD only; very simple...) */ /* * Authorship * ---------- * This software was created by * * Till Straumann , 2005-2007, * Stanford Linear Accelerator Center, Stanford University. * * Acknowledgement of sponsorship * ------------------------------ * The software was produced by * the Stanford Linear Accelerator Center, Stanford University, * under Contract DE-AC03-76SFO0515 with the Department of Energy. * * Government disclaimer of liability * ---------------------------------- * Neither the United States nor the United States Department of Energy, * nor any of their employees, makes any warranty, express or implied, or * assumes any legal liability or responsibility for the accuracy, * completeness, or usefulness of any data, apparatus, product, or process * disclosed, or represents that its use would not infringe privately owned * rights. * * Stanford disclaimer of liability * -------------------------------- * Stanford University makes no representations or warranties, express or * implied, nor assumes any liability for the use of this software. * * Stanford disclaimer of copyright * -------------------------------- * Stanford University, owner of the copyright, hereby disclaims its * copyright and all other rights in this software. Hence, anyone may * freely use it for any purpose without restriction. * * Maintenance of notices * ---------------------- * In the interest of clarity regarding the origin and status of this * SLAC software, this and all the preceding Stanford University notices * are to remain affixed to any copy or derivative of this software made * or distributed by the recipient and are to be affixed to any copy of * software made or distributed by the recipient that contains a copy or * derivative of this software. * * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03 */ #include #include #include #ifdef __cplusplus extern "C" { #endif extern rtc_fns rtc_ds1375_fns; bool rtc_ds1375_device_probe( int minor ); uint32_t rtc_ds1375_get_register( uintptr_t port, uint8_t reg ); void rtc_ds1375_set_register( uintptr_t port, uint8_t reg, uint32_t value ); /* * BSP must supply string constant argument 'i2cname' which matches * the registered device name of the raw i2c device (created with mknod). * E.g., "/dev/i2c.ds1375-raw" * * NOTE: The i2c bus driver must already be up and 'i2cname' already * be available when this ENTRY is registered or initialized. * * If you want to allow applications to add the RTC driver to * the configuration table then the i2c subsystem must be * initialized by the BSP from the predriver_hook. */ #define DS1375_RTC_TBL_ENTRY(i2cname) \ { \ sDeviceName: "/dev/rtc", \ deviceType: RTC_CUSTOM, \ pDeviceFns: &rtc_ds1375_fns, \ deviceProbe: rtc_ds1375_device_probe, \ ulCtrlPort1: (uintptr_t)(i2cname), \ ulDataPort: 0, \ getRegister: rtc_ds1375_get_register, \ setRegister: rtc_ds1375_set_register, \ } #ifdef __cplusplus } #endif #endif