davinci: Put the I2C pins into GPIO mode

The GPIOs need to be configured in output mode and switched from
the I2C config to GPIO. Force it by knowing about the davinci
dm644x here.

Signed-off-by: Jan Luebbe <jluebbe@debian.org>
master
Holger Hans Peter Freyther 9 years ago committed by Harald Welte
parent ffa0e04704
commit f03ffafdfe

@ -35,6 +35,9 @@
#include <linux/cpufreq.h>
#include <linux/gpio.h>
#include <linux/of_device.h>
#include <mach/mux.h>
#include <mach/cputype.h>
#include <linux/platform_data/i2c-davinci.h>
/* ----- global defines ----------------------------------------------- */
@ -279,7 +282,6 @@ static int i2c_davinci_init(struct davinci_i2c_dev *dev)
dev_dbg(dev->dev, "bus_freq = %dkHz, bus_delay = %d\n",
pdata->bus_freq, pdata->bus_delay);
/* Take the I2C module out of reset: */
davinci_i2c_reset_ctrl(dev, 1);
@ -302,12 +304,20 @@ static void davinci_i2c_prepare_recovery(struct i2c_adapter *adap)
/* put I2C into reset */
davinci_i2c_reset_ctrl(dev, 0);
/* Set pin in GPIO mode */
if (cpu_is_davinci_dm644x())
davinci_cfg_reg(DM644X_GPIO43_44);
}
static void davinci_i2c_unprepare_recovery(struct i2c_adapter *adap)
{
struct davinci_i2c_dev *dev = i2c_get_adapdata(adap);
/* Set pin back to I2C mode */
if (cpu_is_davinci_dm644x())
davinci_cfg_reg(DM644X_I2C);
i2c_davinci_init(dev);
}

Loading…
Cancel
Save