Re: [RESEND PATCH 1/2] i2c: enable buses to save their clock frequency in adapter

From: Ludovic Desroches
Date: Mon Oct 29 2018 - 10:49:14 EST


On Tue, Oct 23, 2018 at 11:20:39AM +0200, Tudor Ambarus - M18064 wrote:
> The clock-frequency property is not mandatory for the i2c buses. If it's
> not present in the device tree, the buses __usually__ assume it's 100kHZ
> (see altera, at91, axxia, etc.). Broadcom uses a 375kHZ default
> clock-frequency, so the default clock frequency varies from bus to bus.
>
> There are i2c clients that need to know the bus clock frequency in order to
> compute their wake token (see atecc508a i2c client).
>
> The clock-frequency value has to be propagated to the i2c clients, otherwise,
> if they will not find the i2c bus clock frequency in the device tree, they
> will have to make their own assumption of the clock frequency.
>
> Spare the i2c clients of making wrong assumptions of the i2c bus clock
> frequency and enable the buses to save their clock frequency in adapter.
>
> Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxxxxx>
Reviwed-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxxxxxx>

> ---
> include/linux/i2c.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/i2c.h b/include/linux/i2c.h
> index 65b4eaed1d96..f238da204c49 100644
> --- a/include/linux/i2c.h
> +++ b/include/linux/i2c.h
> @@ -677,6 +677,7 @@ struct i2c_adapter {
> struct rt_mutex bus_lock;
> struct rt_mutex mux_lock;
>
> + u32 bus_freq_hz;
> int timeout; /* in jiffies */
> int retries;
> struct device dev; /* the adapter device */
> --
> 2.9.4
>