diff options
Diffstat (limited to 'c/src/libchip/i2c/i2c-ds1621.c')
-rw-r--r-- | c/src/libchip/i2c/i2c-ds1621.c | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/c/src/libchip/i2c/i2c-ds1621.c b/c/src/libchip/i2c/i2c-ds1621.c deleted file mode 100644 index 51f64de679..0000000000 --- a/c/src/libchip/i2c/i2c-ds1621.c +++ /dev/null @@ -1,128 +0,0 @@ -/* Trivial i2c driver for the maxim DS1621 temperature sensor; - * just implements reading constant conversions with 8-bit - * resolution. - * Demonstrates the implementation of a i2c high-level driver. - */ - -/* - * Authorship - * ---------- - * This software was created by - * Till Straumann <strauman@slac.stanford.edu>, 2005, - * Stanford Linear Accelerator Center, Stanford University. - * - * Acknowledgement of sponsorship - * ------------------------------ - * This 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 <rtems.h> -#include <rtems/libi2c.h> - -#include <libchip/i2c-ds1621.h> - -#include <rtems/libio.h> - - -static rtems_status_code -ds1621_init (rtems_device_major_number major, rtems_device_minor_number minor, - void *arg) -{ - int sc; - unsigned char csr[2] = { DS1621_CMD_CSR_ACCESS, 0 }, cmd; - - /* First start command acquires a lock for the bus */ - - /* Initialize; switch continuous conversion on */ - sc = rtems_libi2c_start_write_bytes (minor, csr, 1); - if (sc < 0) - return -sc; - - sc = rtems_libi2c_start_read_bytes (minor, csr + 1, 1); - if (sc < 0) - return -sc; - - csr[1] &= ~DS1621_CSR_1SHOT; - - sc = rtems_libi2c_start_write_bytes (minor, csr, 2); - if (sc < 0) - return -sc; - - /* Start conversion */ - cmd = DS1621_CMD_START_CONV; - - sc = rtems_libi2c_start_write_bytes (minor, &cmd, 1); - if (sc < 0) - return -sc; - - /* sending 'stop' relinquishes the bus mutex -- don't hold it - * across system calls! - */ - return rtems_libi2c_send_stop (minor); -} - -static rtems_status_code -ds1621_read (rtems_device_major_number major, rtems_device_minor_number minor, - void *arg) -{ - int sc; - rtems_libio_rw_args_t *rwargs = arg; - unsigned char cmd = DS1621_CMD_READ_TEMP; - - sc = rtems_libi2c_start_write_bytes (minor, &cmd, 1); - if (sc < 0) - return -sc; - if (sc < 1) - return RTEMS_IO_ERROR; - sc = rtems_libi2c_start_read_bytes(minor, (unsigned char *)rwargs->buffer, 1); - if (sc < 0) { - rwargs->bytes_moved = 0; - return -sc; - } - rwargs->bytes_moved = 1; - return rtems_libi2c_send_stop (minor); -} - -static rtems_driver_address_table myops = { - .initialization_entry = ds1621_init, - .read_entry = ds1621_read, -}; - -static rtems_libi2c_drv_t my_drv_tbl = { - .ops = &myops, - .size = sizeof (my_drv_tbl), -}; - -rtems_libi2c_drv_t *i2c_ds1621_driver_descriptor = &my_drv_tbl; |