On Thu, Mar 07, 2013 at 03:02:46AM +0000, Arnd Bergmann wrote: > On Wednesday 06 March 2013, Thierry Reding wrote: > > > Option 2 would probably come down to having a trivial MFD driver exposing > > > a regmap. You can probably reuse drivers/mfd/syscon.c for this and make > > > the node compatible with "syscon" to designate the clock registers as > > > a system-wide resource, making the other device nodes register-less. > > > > I think option 2 is the standard method if one hardware block provides > > several logical devices. I find it to be a pretty nice solution to this > > problem. We also have precedent in the PWM subsystem. The TWL chips for > > instance use it to create a platform device which is later driven by a > > PWM driver. > > One difference though is that the TWL chip is a heterogenous MFD that has > a lot of different sub-devices, where in case of Exynos the timer device > has a set of identical units, each of which can be used either as a PWM or > as a clocksource or other timer. I didn't know that. However I still making this an MFD driver is a good fit because it'll move the logic of defining the mode of each unit is kept in a parent driver which can instantiate the proper child devices for the corresponding subsystems. One big disadvantage of this approach is that if this is continued there is a risk that MFD will turn into a dump for all kinds of devices that provide more than a single service. So if people prefer option 3 I'm fine with it as well. Thierry
Attachment:
pgpaGY9irdepJ.pgp
Description: PGP signature