Re: [PATCH v1 3/6] mfd: core: Propagate software node group to the sub devices
From: Lee Jones
Date: Wed Jun 17 2020 - 08:51:34 EST
On Tue, 09 Jun 2020, Andy Shevchenko wrote:
> On Mon, Jun 08, 2020 at 08:25:24PM +0100, Lee Jones wrote:
> > On Mon, 08 Jun 2020, Andy Shevchenko wrote:
> >
> > > From: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>
> > >
> > > When ever device properties are supplied for a sub device, a software node
> > > (fwnode) is actually created and then associated with that device. By allowing
> > > the drivers to supply the complete software node group instead of just the
> > > properties in it, the drivers can take advantage of the other features the
> > > software nodes have on top of supplying the device properties.
> > >
> > > Signed-off-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> > > ---
> > > drivers/mfd/mfd-core.c | 31 +++++++++++++++++++++++++++----
> > > include/linux/mfd/core.h | 3 +++
> > > 2 files changed, 30 insertions(+), 4 deletions(-)
> >
> > I'm not sure a change to the API is justified presently (same does go
> > for 'properties' really, but as it was only a couple of lines, it
> > didn't seem too intrusive).
>
> This is better and comprehensive API, but I heard you.
>
> > My recommendation is to handle this in-house (i.e. locally in-driver)
> > for now.
>
> I think you understand that this is not gonna work (we need to attach fwnode
> to the child device before it's registration.
>
> > When (if) more users adopt the practice, then we should
> > consider to draw down on line numbers and repetition and make it part
> > of the API.
>
> I briefly looked at the current state of affairs and found that properties are
> used only for MFD LPSS driver. Would the conversion of that driver to swnodes
> work for you?
>
> Note, the long prospective is to get rid of platform_add_properties() API
> completely.
That's a shame. Do you plan on replacing it with something else?
MFD tends to only interact with the platform_device API, and even
platform_device_add_properties() doesn't get involved in the nitty
gritty of fwnodes. Instead it acts as a pass-through straight to
device_add_properties() which is where the magic happens.
For this to be acceptable you would need to add support into
platform_device i.e. platform_device_add_property_group() or some
such. I really do not want the MFD API to have knowledge about
regarding the particulars i.e. software node registration, secondary
fwnodes and the like.
--
Lee Jones [æçæ]
Senior Technical Lead - Developer Services
Linaro.org â Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog