[PATCH 1/2 V3] MXS: Set I2C timing registers for mxs-i2c
Marek Vasut
marex at denx.de
Mon Jun 11 06:54:21 EDT 2012
Dear Shawn Guo,
> On Sat, Jun 09, 2012 at 01:45:50PM +0200, Marek Vasut wrote:
> > This patch configures the I2C bus timing registers according
> > to information passed via DT. Currently, 100kHz and 400kHz
> > modes are supported.
> >
> > Signed-off-by: Marek Vasut <marex at denx.de>
>
> I gave it a test on imx28-evk board with audio playback. It seems
> the patch makes the first time playback non-functional, but the later
> playback is still working.
Any hints what can be the source of this issue? I tested it with i2c eeprom, saw
no issues in there. I'll poke into it later.
> > +static int mxs_i2c_get_ofdata(struct mxs_i2c_dev *i2c)
> > +{
> > + uint32_t speed;
> > + struct device *dev = i2c->dev;
> > + struct device_node *node = dev->of_node;
> > +
> > + if (!node)
> > + return -EINVAL;
> > +
> > + i2c->speed = &mxs_i2c_95kHz_config;
> > + ret = of_property_read_u32(node, "clock-frequency", &speed);
>
> "ret" is undeclared.
>
> > + if (ret)
> > + dev_warn(dev, "No I2C speed selected, using 100kHz\n");
> > + else if (speed == 400000)
> > + i2c->speed = &mxs_i2c_400kHz_config;
> > + else if (speed != 100000)
> > + dev_warn(dev, "Invalid I2C speed selected, using 100kHz\n");
> > +
> > + return 0;
> > +}
> > +
Best regards,
Marek Vasut
More information about the linux-arm-kernel
mailing list