pca954x devices sharing reset-gpios

From: Chris Packham
Date: Thu Dec 02 2021 - 15:18:48 EST


Hi All,

I've run into a problem trying to accurately model some hardware.

In this particular design there are a bunch of pca9548 i2c muxes and
some of them share the same reset pins coming out of a custom FPGA
(we've written a gpio driver to represent that part of the FPGA).
Initially we had this working by using a gpio-hog for the reset lines
and pretty much forgetting they were there.

If I start building the fpga-gpio driver as a module I run into a
situation where there is an implicit dependency between the fpga-gpio
driver and the pca954x i2c muxes. Because it's implicit the
pca954x_probe runs early and fails for these devices. I can make that
dependency explicit by using the reset-gpios property which correctly
defers the probe until the fpga-gpio driver is loaded. But as some of
these pca9548 share reset lines they ones that get probed second get
-EBUSY when they request the GPIO.

Is there any way I can represent these pca9548 devices as a group with a
single reset-gpio property for the group?

Thanks,
Chris