Re: Supporting new features in I2C

From: Ben Dooks
Date: Fri Sep 12 2008 - 12:39:33 EST


On Fri, Sep 12, 2008 at 06:35:43AM -0700, vidhumouli hunsigida wrote:
> The I2C host controller chip has two features named
> HOLD and Slave Monitor.
>
> HOLD is the typical feature of holding the clock low to support for the slow devices.
> It can be enabled or disabled through software control by writing a bit in the registor.

This should be normal behaviour for an i2c bus, some controllers
can support it, but there is no need to add any extra functionality
to the i2c layer for this. The driver is free to do it or not do it.

If you want to driver to do either, then you can either have it as a
module parameter and/or have some configuration file in sysfs to change
the state.

> I am writing a bus driver for this core.
> I am not sure where and how this provision is to be added in the I2C adapter code.
>
> I could not find any such provision in the exising bus drivers.
> I could not find any related information in the Linux kernel documentation.
>
> Can any one give me how can this be done?
>
> Similarly for Slave Monitor, where a host monitors for the ack received from the slave device.
> This can also be enabled/disabled by setting a bit in the register. How is this to be handled in the current i2c adapter code?

I suggest you have a look at the drivers in drivers/i2c/busses and
also include/linux/i2c.h (pay particual attention to 'struct i2c_algorithm'
which can be used to add new bus drivers).

--
Ben (ben@xxxxxxxxx, http://www.fluff.org/)

'a smiley only costs 4 bytes'
--
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/