Re: [PATCH v2 1/6] dt-bindings: mfd: Add Actions Semi ATC260x PMIC binding

From: Rob Herring
Date: Wed Sep 09 2020 - 13:23:07 EST


On Wed, Sep 9, 2020 at 10:03 AM Cristian Ciocaltea
<cristian.ciocaltea@xxxxxxxxx> wrote:
>
> Hi Rob,
>
> Thanks for reviewing!
>
> On Tue, Sep 08, 2020 at 03:47:24PM -0600, Rob Herring wrote:
> > On Sat, Aug 22, 2020 at 01:19:47AM +0300, Cristian Ciocaltea wrote:
> > > Add devicetree binding for Actions Semi ATC260x PMICs.
> > >
> > > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxx>
> > > ---
> > > .../bindings/mfd/actions,atc260x.yaml | 221 ++++++++++++++++++
> > > 1 file changed, 221 insertions(+)
> > > create mode 100644 Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/mfd/actions,atc260x.yaml b/Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
> > > new file mode 100644
> > > index 000000000000..4a55bbe1306e
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
> > > @@ -0,0 +1,221 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/mfd/actions,atc260x.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Actions Semi ATC260x Power Management IC bindings
> > > +
> > > +maintainers:
> > > + - Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>
> > > + - Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxx>
> > > +
> > > +description: |
> > > + ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
> > > + and GPIO controller blocks. Currently only the PM related functionalities
> > > + (i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
> > > + chip variants are supported.
> > > + ATC2603C includes 3 programmable DC-DC converters and 9 LDO regulators.
> > > + ATC2609A includes 5 programmable DC-DC converters and 10 LDO regulators.
> > > +
> > > +properties:
> > > + compatible:
> > > + enum:
> > > + - actions,atc2603c
> > > + - actions,atc2609a
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + interrupts:
> > > + maxItems: 1
> > > +
> > > + pwrc:
> > > + type: object
> > > + description: |
> > > + The power controller integrated in ATC260x provides system power-off
> > > + and reboot operations.
> >
> > No need for this node as there are no properties, just instantiate
> > what's needed in the MFD driver.
>
> My intention was to allow the user specify what functionality in the MFD
> shall be enabled. For this particular case, if the 'pwrc' node is not
> provided, the power-off/reboot functions will be disabled.

IIRC, there's a flag property for this already.

>
> > > +
> > > + properties:
> > > + compatible:
> > > + enum:
> > > + - actions,atc2603c-pwrc
> > > + - actions,atc2609a-pwrc
> > > +
> > > + required:
> > > + - compatible
> > > +
> > > + additionalProperties: false
> > > +
> > > + onkey:
> > > + type: object
> > > + description: |
> > > + Use the ONKEY built into ATC260x PMICs as an input device reporting
> > > + power button status. ONKEY can be used to wakeup from low power
> > > + modes and force a reset on long press.
> > > +
> > > + properties:
> > > + compatible:
> > > + enum:
> > > + - actions,atc2603c-onkey
> > > + - actions,atc2609a-onkey
> > > +
> > > + actions,reset-time-sec:
> > > + description: |
> > > + Duration in seconds which the key should be kept pressed for device
> > > + to reset automatically. The hardware default is 8. Use 0 to disable
> > > + this functionality.
> > > + enum: [0, 6, 8, 10, 12]
> >
> > We already have 'power-off-time-sec' in input.yaml. How about adding
> > 'reset-time-sec' there.
>
> Thanks for the suggestion, I was actually looking for this before
> choosing the custom property and just assumed this was not added for
> a particular reason.

Probably just because the usual behavior of holding the power button
is to power off rather than reset.

> So I'm going to handle it. Would you like me to send a separate patch
> (not part of this series)?

Separate patch yes, but it can be part of the series.

> > This could really just be a property in the parent node.
>
> This is similar with 'pwrc': if 'onkey' node is not present, the ONKEY
> functionality will not be enabled.

Would you really want/need to support wakeup, but disable long press
feature? Seems like a single property would be sufficient.

> Is there a better/recommended approach to manage this MFD feature
> selection?

But we have child nodes for this in other cases, so I guess it is fine.

Rob