Re: [PATCH v3 0/3] i2c: mux: gpio: Add 'settle-time-us' property

From: Andi Shyti
Date: Tue Jul 09 2024 - 17:45:43 EST


Hi Peter,

any thoughts on this. Do you want me to go ahead and pick this
series up?

Andi

On Mon, Jun 17, 2024 at 02:08:15PM GMT, Bastien Curutchet wrote:
> Hi all,
>
> The i2c-gpio-mux can be used to describe a multiplexer built upon
> several i2c isolators having an enable pin (such as LTC4310):
>
> +---------------+ +------+ +------+
> | +-----------+ | | dev | | dev |
> | | GPIO_EN_A |-|-----------| +------+ +------+
> | +-----------+ | +-----+---+ | |
> | | |--| isol. A |---------+---------+
> | +-----+ | | +---------+
> | SOC | I2C |---|--|
> | +-----+ | | +---------+
> | | |--| isol. B |------+---------+---------+
> | +-----------+ | +-----+---+ | | |
> | | GPIO_EN_B |-|-----------| +------+ +------+ +------+
> | +-----------+ | | dev | | dev | | dev |
> +---------------+ +------+ +------+ +------+
>
> These isolators often need some time between their enable pin's
> assertion and the first i2c transfer. If the first i2c transfer
> happens before this enabling time is reached, transfer fails.
>
> There is no available option to configure such a time in the
> i2c-gpio-mux driver.
>
> Add a optional property in the bindings called 'transition-delay-us'.
> If present, driver waits for this delay every time a new bus is
> selected, i.e. before returning from the bus_select() callback.
>
> Changes in v2:
> * Rewrite bindings' commit log
> * Express the 'transition delay' in us instead of ms
>
> Changes in v3:
> * Rename DT property to 'settle-time-us'
> * Use fsleep instead of udelay
>
> [v1] : https://lore.kernel.org/all/20240527113908.127893-1-bastien.curutchet@xxxxxxxxxxx/
> [v2] : https://lore.kernel.org/all/20240529091739.10808-1-bastien.curutchet@xxxxxxxxxxx/
>
> Bastien Curutchet (3):
> dt-bindings: i2c: gpio: Add 'settle-time-us' property
> i2c: mux: gpio: Re-order #include to match alphabetic order
> i2c: mux: gpio: Add support for the 'settle-time-us' property
>
> .../devicetree/bindings/i2c/i2c-mux-gpio.yaml | 3 +++
> drivers/i2c/muxes/i2c-mux-gpio.c | 14 ++++++++++----
> include/linux/platform_data/i2c-mux-gpio.h | 2 ++
> 3 files changed, 15 insertions(+), 4 deletions(-)
>
> --
> 2.45.0
>