forked from leaflabs/libmaple
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert "I2C slave support cleanups."
This reverts commit 39cd07a. Reverting pull request leaflabs#54, which breaks examples/i2c-mcp4725-dac.cpp. Signed-off-by: Marti Bolivar <[email protected]>
- Loading branch information
Marti Bolivar
committed
Jan 10, 2014
1 parent
32df297
commit 219a980
Showing
3 changed files
with
9 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,11 +28,9 @@ | |
/** | ||
* @file libmaple/i2c.c | ||
* @author Perry Hung <[email protected]> | ||
* @author Barry Carter <[email protected]> | ||
* @brief Inter-Integrated Circuit (I2C) support. | ||
* | ||
* Master and Slave supported | ||
* Slave code added Barry Carter 2012 | ||
* Currently, only master mode is supported. | ||
*/ | ||
|
||
#include "i2c_private.h" | ||
|
@@ -220,26 +218,6 @@ void i2c_master_enable(i2c_dev *dev, uint32 flags) { | |
dev->state = I2C_STATE_IDLE; | ||
} | ||
|
||
/** | ||
* @brief Initialize an I2C device as slave (and master) | ||
* @param dev Device to enable | ||
* @param flags Bitwise or of the following I2C options: | ||
* I2C_FAST_MODE: 400 khz operation, | ||
* I2C_DUTY_16_9: 16/9 Tlow/Thigh duty cycle (only applicable for | ||
* fast mode), | ||
* I2C_BUS_RESET: Reset the bus and clock out any hung slaves on | ||
* initialization, | ||
* I2C_10BIT_ADDRESSING: Enable 10-bit addressing, | ||
* I2C_REMAP: (deprecated, STM32F1 only) Remap I2C1 to SCL/PB8 | ||
* SDA/PB9. | ||
* I2C_SLAVE_DUAL_ADDRESS: Slave can respond on 2 i2C addresses | ||
* I2C_SLAVE_GENERAL_CALL: SLA+W broadcast to all general call | ||
* listeners on bus. Addr 0x00 | ||
* I2C_SLAVE_USE_RX_BUFFER: Use a buffer to receive the incoming | ||
* data. Callback at end of recv | ||
* I2C_SLAVE_USE_TX_BUFFER: Use a buffer to transmit data. | ||
* Callback will be called before tx | ||
*/ | ||
void i2c_slave_enable(i2c_dev *dev, uint32 flags) { | ||
i2c_disable(dev); | ||
i2c_master_enable(dev, dev->config_flags | flags); | ||
|
@@ -344,10 +322,11 @@ void _i2c_irq_handler(i2c_dev *dev) { | |
*/ | ||
dev->timestamp = systick_uptime(); | ||
|
||
/* | ||
* Add Slave support | ||
/* Add Slave support | ||
* Barry Carter 2012 | ||
* [email protected] | ||
*/ | ||
|
||
/* Check to see if MSL master slave bit is set */ | ||
if ((sr2 & I2C_SR2_MSL) != I2C_SR2_MSL) { /* 0 = slave mode 1 = master */ | ||
|
||
|
@@ -480,15 +459,6 @@ void _i2c_irq_handler(i2c_dev *dev) { | |
/* The callback with the data will happen on a NACK of the last data byte. | ||
* This is handled in the error IRQ (AF bit) | ||
*/ | ||
/* Handle the case where the master misbehaves by sending no NACK */ | ||
if (dev->state != I2C_STATE_IDLE) { | ||
if (dev->state == I2C_STATE_SL_RX) { | ||
if (dev->i2c_slave_recv_callback != NULL) (*(dev->i2c_slave_recv_callback))(dev->i2c_slave_msg); | ||
} | ||
else { | ||
if (dev->i2c_slave_transmit_callback != NULL) (*(dev->i2c_slave_transmit_callback))(dev->i2c_slave_msg); | ||
} | ||
} | ||
} | ||
|
||
sr1 = sr2 = 0; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters