Re: [PATCH] AB3100 regulator support v1

From: Mark Brown
Date: Sun Aug 30 2009 - 09:03:33 EST

On Sun, Aug 30, 2009 at 02:51:57PM +0200, Linus Walleij wrote:
> 2009/8/30 Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx>:

> > On the face of it (and without having actually looked at a running
> > system or anything yet) I'm rather surprised that platform based MFD
> > drivers aren't running into this issue more often. ?CCing in Alan who
> > made the change.

> I think it hasn't happened a lot because most MFD:s spawn their
> platform device children at subsystem_init and then register drivers
> for them at driver_init. E.g. all the wm8350 children have their
> drivers at higher init levels, except for the regulators which are by
> chance saved by having the i2c device as parent.

The WM8350 isn't a platform device, it's an I2C device as are most if
not all of the other MFDs using subsys_initcall() - it's most being done
for the regulators (so they can be available for other drivers during
init) and regulators tend to be on buses like I2C with low pin counts.
There are other MFDs which are memory mapped and therefore based on
platform devices. These are the devices I'm talking about above.

The bodges with initcall levels will only work when drivers are built in
- as soon as things move into modules things crop up again with these
memory mapped devices since the subdevices tend not to need to link into
the core so often like those on other buses do.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at