Re: [PATCH v3 1/2] dt-bindings: i2c: add binding for i2c-hotplug-gpio

Michał Mirosław
2023-08-12T21:46:42Z

On Fri, Aug 11, 2023 at 11:37:52AM -0600, Rob Herring wrote:
> On Sat, Jul 29, 2023 at 07:08:56PM +0300, Svyatoslav Ryhel wrote:
[...]
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml
[...]
> > + - |
> > + /*
> > + * Asus Transformers use I2C hotplug for attachable dock keyboard
> > + */
> > + #include <dt-bindings/gpio/gpio.h>
> > + #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > + i2c-dock {
> > + compatible = "i2c-hotplug-gpio";
> > +
> > + #address-cells = <1>;
> > + #size-cells = <0>;
[...]
> > + i2c-parent = <&gen2_i2c>;
>
> Couldn't you just add 'detect-gpios' to the existing bus node? It's
> really part of that bus and there's not a separate bus. That would be a
> lot simpler. I suppose you want to instantiate a driver, but that's not
> DT's problem.

Not a driver but a group of devices (possibly discovered dynamically)
behind a passive gate (like e.g. PCA9517A with EN tied to a connector pin).
It's not much different to a I2C gate or mux with a single child bus
(i2c-mux-gpio that has only a single child). For ASUS Transformers with
only the dock plugged-in it could work with a 'detect-gpios' extension
(I'll take a look at how this way would work). I think there were also
different attachments made you could connect instead of the dock.

Best Regards
Michał Mirosław