On Thu, Oct 20, 2022 at 07:07:10PM +0100, Mark Brown wrote: > On Thu, Oct 20, 2022 at 08:55:02PM +0300, Andy Shevchenko wrote: > > On Thu, Oct 20, 2022 at 06:45:19PM +0100, Mark Brown wrote: > > > > Not sure I quite get what you're proposing here but I *think* so, > > > assuming you mean checking the values if the property is present (and > > > error out if the property isn't there at all and you're instantiating > > > via a MFD rather than direct PCI/DT binding I guess)? > > > When we instantiate via MFD, we (semi-)manually create resources for each of > > the children. These resources may or may not have a dedicated names. Those > > names can be given _only_ inside the source code in the kernel, so it means > > it is _explicit_ telling, that we are know where the device in question comes > > from. > > > if (resource_with_name_present()) { > > ret = device_property_... > > > Like you said, checking property only when we have resource present _by name_ > > and bail out if there is none. > > Remember that device_property backs onto fwnode so properties can come > from _DSD properties too since fwnode will query any source of > properties (and further remember that things will be going through > multiple trees so even with stuff purely in the kernel things could get > out of sync). > I think the code would have to also check that it was a > MFD child at least, That's exactly what I'm talking about when said "named resource check". > you couldn't get _DSD on a child node so that should > be fine. So, I guess we settled down this. I'll prepare v4 with the discussed changes. -- With Best Regards, Andy Shevchenko