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 >