Re: [PATCH 3/3] i2c-s3c2410: Add HDMIPHY quirk for S3C2440

From: Tomasz Stanislawski
Date: Tue Mar 13 2012 - 13:27:40 EST


Hi Karol,
Please refer to comments below,

Regards,
Tomasz Stanislawski

On 03/13/2012 05:54 PM, Karol Lewandowski wrote:
> This patch adds support for s3c2440 I2C bus controller dedicated HDMIPHY device on
> Exynos4 platform. Some quirks are introduced due to differences between HDMIPHY
> and other I2C controllers on Exynos4. These differences are:
> - no GPIOs, HDMIPHY is inside the SoC and the controller is connected
> internally
> - due to unknown reason (probably HW bug in HDMIPHY and/or the controller) a
> transfer fails to finish. The controller hangs after sending the last byte,
> the workaround for this bug is resetting the controller after each transfer
>
> Signed-off-by: Tomasz Stanislawski <t.stanislaws@xxxxxxxxxxx>
> Signed-off-by: Karol Lewandowski <k.lewandowsk@xxxxxxxxxxx>
> Tested-by: Tomasz Stanislawski <t.stanislaws@xxxxxxxxxxx>
> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
> ---
> .../devicetree/bindings/i2c/samsung-i2c.txt | 10 ++++-
> drivers/i2c/busses/i2c-s3c2410.c | 36 ++++++++++++++++++++
> 2 files changed, 44 insertions(+), 2 deletions(-)
>
[snip]
> @@ -871,6 +896,14 @@ s3c24xx_i2c_parse_dt(struct device_node *np, struct s3c24xx_i2c *i2c)
> return;
>
> pdata->bus_num = -1; /* i2c bus number is dynamically assigned */
> +
> + if (s3c24xx_i2c_is_type(i2c, TYPE_S3C2440) &&

I think that type checking should be removed because hdmiphy quirk is something
orthogonal to the controller type.

> + of_get_property(np, "samsung,i2c-quirk-hdmiphy", NULL))
> + i2c->type |= FLAG_HDMIPHY;
> +
> + if (of_get_property(np, "samsung,i2c-no-gpio", NULL))
> + i2c->type |= FLAG_NO_GPIO;
> +
> of_property_read_u32(np, "samsung,i2c-sda-delay", &pdata->sda_delay);
> of_property_read_u32(np, "samsung,i2c-slave-addr", &pdata->slave_addr);
> of_property_read_u32(np, "samsung,i2c-max-bus-freq",
> @@ -1128,6 +1161,9 @@ static struct platform_device_id s3c24xx_driver_ids[] = {
> }, {
> .name = "s3c2440-i2c",
> .driver_data = TYPE_S3C2440,
> + }, {
> + .name = "s3c2440-hdmiphy-i2c",
> + .driver_data = TYPE_S3C2440 | FLAG_HDMIPHY | FLAG_NO_GPIO,
> }, { },
> };
> MODULE_DEVICE_TABLE(platform, s3c24xx_driver_ids);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/