2016-09-15 14:41 GMT+02:00 Linus Walleij <linus.walleij@xxxxxxxxxx>: > On Thu, Sep 15, 2016 at 9:51 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: >> On Tue, Sep 13, 2016 at 02:29:24PM +0200, Linus Walleij wrote: >>> On Mon, Sep 12, 2016 at 5:33 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: >>> > On Mon, Sep 12, 2016 at 05:16:14PM +0200, Bartosz Golaszewski wrote: >>> >>> >> AFAIK there is no clean way to tell that a GPIO is used by an I2C >>> >> multiplexer at probe time. Linus, Alexandre could you confirm? >>> >>> Nominally, the GPIO descriptors are just abstract resources such >>> as regulators or clocks, they can be used for a lot but just like >>> a clock, regulator, dma channel etc does not know who is using >>> it and for what, it does not know this, no. >>> >>> > You cannot inspect the device tree while probing? >>> >>> Of course it *can* but we would end up encoding a special >>> case every time something like this happens, tied to just >>> device tree, then another bolt-on for ACPI etc. >>> >>> I have a hard time following the problem really, I'm >>> afraid I'm simply just not smart enough :( >> >> Why would this be DT or ACPI specific? Linux itself has a tree/graph of >> all busses and devices right? That's what all this drivers/base/ stuff >> is on about. >> >> So can't you walk up that and see if you encounter the exact same driver >> again? >> >> Something like: >> >> for (nr = 0, parent = dev->parent; parent; parent = parent->parent) { >> if (parent->device_driver == &pca953x_driver.driver) >> nr++; >> } > > Oh clever. Of course. > > Bartosz can you try out this approach? > I think it may be more complicated than that, depending on the hw topology, but the general idea seems reasonable. I'll try this. Thanks, Bartosz Golaszewski -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html