Re: [PATCH v6 2/8] regulator: dt-bindings: Document max8997-pmic nodes

From: Krzysztof Kozlowski
Date: Mon Jan 04 2021 - 13:39:23 EST


On Mon, Jan 04, 2021 at 06:27:34PM +0000, Mark Brown wrote:
> On Mon, Jan 04, 2021 at 07:18:25PM +0100, Krzysztof Kozlowski wrote:
> > On Mon, Jan 04, 2021 at 01:51:56PM +0000, Mark Brown wrote:
>
> > > > +- charger: Node for configuring the charger driver.
> > > > + Required properties:
> > > > + - compatible: "maxim,max8997-battery"
>
> > > > + Optional properties:
> > > > + - extcon: extcon specifier for charging events
> > > > + - charger-supply: regulator node for charging current
>
> > > > +- muic: Node used only by extcon consumers.
> > > > + Required properties:
> > > > + - compatible: "maxim,max8997-muic"
>
> > > Why do these need to appear in the DT binding? We know these features
> > > are there simply from knowing this is a max8997.
>
> > If you refer to children nodes, then we do not know these entirely
> > because the features could be disabled (pins not connected). In such
> > case these subnodes can be disabled and MFD framework will not
> > instantiate children devices.
>
> We can indicate the presence of features without adding new compatible
> strings, that's just encoding the way Linux currently divides things up
> into the bindings. For example having an extcon property seems like it
> should be enough to figure out if we're using extcon.

It won't be enough because MFD will create device for extcon and bind
the driver. The same for the charger. We have a board where max8997 is
used only as PMIC (providing regulators) without battery and USB
connectivity.

Another point, is that this reflects the real hardware. The same as we
model entire SoC as multiple children of soc node (with their own
properties), here we represent smaller chip which also has
sub-components.

Best regards,
Krzysztof