Skip to content
Snippets Groups Projects
Commit 60e64ae9 authored by Gregory Nutt's avatar Gregory Nutt
Browse files

Don't have to set SDA high initially in I2C reset because that is done by the pin configuration

parent 981c1ebf
No related branches found
No related tags found
No related merge requests found
......@@ -1574,7 +1574,11 @@ int up_i2creset(FAR struct i2c_dev_s *dev)
up_disable_irq(priv->attr->irq);
/* Use PIO configuration to un-wedge the bus */
/* Use PIO configuration to un-wedge the bus.
*
* Reconfigure both pins as open drain outputs with initial output value
* "high" (i.e., floating since these are open-drain outputs).
*/
sclpin = MKI2C_OUTPUT(priv->attr->sclcfg);
sdapin = MKI2C_OUTPUT(priv->attr->sdacfg);
......@@ -1590,10 +1594,6 @@ int up_i2creset(FAR struct i2c_dev_s *dev)
sam_pio_forceclk(sclpin, true);
sam_pio_forceclk(sdapin, true);
/* Let SDA go high (i.e., floating since this is an open-drain output). */
sam_piowrite(sdapin, true);
/* Clock the bus until any slaves currently driving it low let it float.
* Reading from the output will return the actual sensed level on the
* SDA pin (not the level that we wrote).
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment