From owner-svn-src-head@FreeBSD.ORG Mon Dec 13 17:53:39 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2347D106566B; Mon, 13 Dec 2010 17:53:39 +0000 (UTC) (envelope-from jchandra@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1158A8FC16; Mon, 13 Dec 2010 17:53:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id oBDHrcpK089436; Mon, 13 Dec 2010 17:53:38 GMT (envelope-from jchandra@svn.freebsd.org) Received: (from jchandra@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oBDHrcCZ089432; Mon, 13 Dec 2010 17:53:38 GMT (envelope-from jchandra@svn.freebsd.org) Message-Id: <201012131753.oBDHrcCZ089432@svn.freebsd.org> From: "Jayachandran C." Date: Mon, 13 Dec 2010 17:53:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r216410 - head/sys/mips/rmi/dev/iic X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Dec 2010 17:53:39 -0000 Author: jchandra Date: Mon Dec 13 17:53:38 2010 New Revision: 216410 URL: http://svn.freebsd.org/changeset/base/216410 Log: Updates for I2C devices on XLR engg boards. - ds1374u : use multi-byte write. - at24co2n, max6657: remove mutex, iicbus has the necessary locking. Submitted by: Sreekanth M. S. (kanthms at netlogicmicro com) Modified: head/sys/mips/rmi/dev/iic/at24co2n.c head/sys/mips/rmi/dev/iic/ds1374u.c head/sys/mips/rmi/dev/iic/max6657.c Modified: head/sys/mips/rmi/dev/iic/at24co2n.c ============================================================================== --- head/sys/mips/rmi/dev/iic/at24co2n.c Mon Dec 13 16:23:02 2010 (r216409) +++ head/sys/mips/rmi/dev/iic/at24co2n.c Mon Dec 13 17:53:38 2010 (r216410) @@ -60,7 +60,6 @@ __FBSDID("$FreeBSD$"); struct at24co2n_softc { uint32_t sc_addr; device_t sc_dev; - struct mtx sc_mtx; uint8_t sc_mac_addr[6]; }; @@ -103,8 +102,6 @@ at24co2n_attach(device_t dev) sc->sc_dev = dev; sc->sc_addr = iicbus_get_addr(dev); - mtx_init(&sc->sc_mtx, "eeprom", "eeprom", MTX_DEF); - SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "eeprom-mac", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, at24co2n_mac_sysctl, "A", "mac address"); @@ -121,9 +118,7 @@ at24co2n_read_mac(struct at24co2n_softc { sc->sc_addr, IIC_M_RD, 6, sc->sc_mac_addr}, }; - mtx_lock(&sc->sc_mtx); iicbus_transfer(sc->sc_dev, msgs, 2); - mtx_unlock(&sc->sc_mtx); } static device_method_t at24co2n_methods[] = { Modified: head/sys/mips/rmi/dev/iic/ds1374u.c ============================================================================== --- head/sys/mips/rmi/dev/iic/ds1374u.c Mon Dec 13 16:23:02 2010 (r216409) +++ head/sys/mips/rmi/dev/iic/ds1374u.c Mon Dec 13 17:53:38 2010 (r216410) @@ -85,36 +85,22 @@ ds1374u_attach(device_t dev) return (0); } - -static int -ds1374u_write(device_t dev, int reg, uint8_t val) +static int +ds1374u_settime(device_t dev, struct timespec *ts) { - uint8_t data[2]; + /* NB: register pointer precedes actual data */ + uint8_t data[5] = { DS1374_RTC_COUNTER }; struct ds1374u_softc *sc = device_get_softc(dev); struct iic_msg msgs[1] = { - { sc->sc_addr, IIC_M_WR, 2, data }, + { sc->sc_addr, IIC_M_WR, 5, data }, }; - data[0] = reg; - data[1] = val; - if (iicbus_transfer(dev, msgs, 1) == 0) - return (0); - else - return (-1); -} - -static int -ds1374u_settime(device_t dev, struct timespec *ts) -{ - int i; - int temp = 0; + data[1] = (ts->tv_sec >> 0) & 0xff; + data[2] = (ts->tv_sec >> 8) & 0xff; + data[3] = (ts->tv_sec >> 16) & 0xff; + data[4] = (ts->tv_sec >> 24) & 0xff; - for (i = 0; i < 4; i++) { - temp = (ts->tv_sec >> (8*i)) & 0xff; - if (ds1374u_write(dev, DS1374_RTC_COUNTER+i, temp)!=0) - return (-1); - } - return 0; + return iicbus_transfer(dev, msgs, 1); } static int @@ -137,7 +123,6 @@ ds1374u_gettime(device_t dev, struct tim ts->tv_nsec = 0; } return error; - return 0; } static device_method_t ds1374u_methods[] = { Modified: head/sys/mips/rmi/dev/iic/max6657.c ============================================================================== --- head/sys/mips/rmi/dev/iic/max6657.c Mon Dec 13 16:23:02 2010 (r216409) +++ head/sys/mips/rmi/dev/iic/max6657.c Mon Dec 13 17:53:38 2010 (r216410) @@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$"); struct max6657_softc { uint32_t sc_addr; device_t sc_dev; - struct mtx sc_mtx; int sc_curtemp; int sc_lastupdate; /* in ticks */ }; @@ -101,7 +100,6 @@ max6657_attach(device_t dev) } sc->sc_dev = dev; sc->sc_addr = iicbus_get_addr(dev); - mtx_init(&sc->sc_mtx, "max6657", "max6657", MTX_DEF); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "temp", CTLTYPE_INT | CTLFLAG_RD, sc, 0, @@ -132,7 +130,6 @@ max6657_update(struct max6657_softc *sc) { int v; - mtx_lock(&sc->sc_mtx); /* NB: no point in updating any faster than the chip */ if (ticks - sc->sc_lastupdate > hz) { v = max6657_read(sc->sc_dev, sc->sc_addr, MAX6657_EXT_TEMP); @@ -140,7 +137,6 @@ max6657_update(struct max6657_softc *sc) sc->sc_curtemp = v; sc->sc_lastupdate = ticks; } - mtx_unlock(&sc->sc_mtx); } static device_method_t max6657_methods[] = {