[PATCH 1/2 V3] MXS: Set I2C timing registers for mxs-i2c
Shawn Guo
shawn.guo at linaro.org
Mon Jun 11 02:39:05 EDT 2012
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.
> +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;
> +}
> +
--
Regards,
Shawn
More information about the linux-arm-kernel
mailing list