From 60975ca7fed0e2960bced2fe72239422f8376068 Mon Sep 17 00:00:00 2001 From: barthess Date: Fri, 6 May 2011 15:16:15 +0000 Subject: I2C. Some fixes. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/i2c_dev@2922 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/src/i2c.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'os/hal/src') diff --git a/os/hal/src/i2c.c b/os/hal/src/i2c.c index 50767b3a9..1a2873a29 100644 --- a/os/hal/src/i2c.c +++ b/os/hal/src/i2c.c @@ -140,11 +140,14 @@ void i2cMasterTransmit(I2CDriver *i2cp, I2CSlaveConfig *i2cscfg) { size_t n; i2cblock_t *txbuf; + uint8_t nbit_addr; txbuf = i2cscfg->txbuf; + nbit_addr = i2cscfg->nbit_address; n = i2cscfg->tx_remaining_bytes; - chDbgCheck((i2cp != NULL) && (i2cscfg != NULL) && (n > 0) && (txbuf != NULL), + chDbgCheck((i2cp != NULL) && (i2cscfg != NULL) && \ + ((nbit_addr == 7) || (nbit_addr == 10)) && (n > 0) && (txbuf != NULL), "i2cMasterTransmit"); // init slave config field in driver @@ -186,11 +189,14 @@ void i2cMasterReceive(I2CDriver *i2cp, I2CSlaveConfig *i2cscfg){ size_t n; i2cblock_t *rxbuf; + uint8_t nbit_addr; rxbuf = i2cscfg->rxbuf; n = i2cscfg->rx_remaining_bytes; + nbit_addr = i2cscfg->nbit_address; - chDbgCheck((i2cp != NULL) && (n > 0) && (rxbuf != NULL), + chDbgCheck((i2cp != NULL) && (i2cscfg != NULL) && (n > 0) && \ + ((nbit_addr == 7) || (nbit_addr == 10)) && (rxbuf != NULL), "i2cMasterReceive"); // init slave config field in driver @@ -221,6 +227,7 @@ void i2cMasterReceive(I2CDriver *i2cp, I2CSlaveConfig *i2cscfg){ chSysUnlock(); } + uint16_t i2cSMBusAlertResponse(I2CDriver *i2cp, I2CSlaveConfig *i2cscfg) { i2cMasterReceive(i2cp, i2cscfg); -- cgit v1.2.3