Re: [PATCH 1/6] dt-bindings: mfd: add max77759 binding

André Draszik
2025-02-26T17:56:47Z

On Mon, 2025-02-24 at 16:05 +0000, André Draszik wrote:
> Hi Rob,
>
> Thanks for the review!
>
> On Mon, 2025-02-24 at 09:37 -0600, Rob Herring wrote:
> > On Mon, Feb 24, 2025 at 10:28:49AM +0000, André Draszik wrote:
> > > Add device tree binding for the Maxim MAX77759 companion PMIC for USB
> > > Type-C applications.
> > >
> > > The MAX77759 includes Battery Charger, Fuel Gauge, temperature sensors,
> > > USB Type-C Port Controller (TCPC), NVMEM, and a GPIO expander.
> > >
> > > This describes the core mfd device.
> > >
> > > Signed-off-by: André Draszik <andre.draszik@linaro.org>
> > > ---
> > >  .../devicetree/bindings/mfd/maxim,max77759.yaml    | 104 +++++++++++++++++++++
> > >  MAINTAINERS                                        |   6 ++
> > >  2 files changed, 110 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/mfd/maxim,max77759.yaml
> > > b/Documentation/devicetree/bindings/mfd/maxim,max77759.yaml
> > > new file mode 100644
> > > index 000000000000..1efb841289fb
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/mfd/maxim,max77759.yaml
> > > @@ -0,0 +1,104 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/mfd/maxim,max77759.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Maxim Integrated MAX77759 PMIC for USB Type-C applications
> > > +
> > > +maintainers:
> > > +  - André Draszik <andre.draszik@linaro.org>
> > > +
> > > +description: |
> > > +  This is a part of device tree bindings for the MAX77759 companion Power
> > > +  Management IC for USB Type-C applications.
> > > +
> > > +  The MAX77759 includes Battery Charger, Fuel Gauge, temperature sensors, USB
> > > +  Type-C Port Controller (TCPC), NVMEM, and a GPIO expander.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: maxim,max77759
> > > +
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> > > +  interrupt-controller: true
> > > +
> > > +  "#interrupt-cells":
> > > +    const: 2
> > > +
> > > +  gpio-controller: true
> > > +
> > > +  "#gpio-cells":
> > > +    const: 2
> > > +
> > > +  gpio:
> > > +    $ref: /schemas/gpio/maxim,max77759-gpio.yaml
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  pmic-nvmem:
> >
> > Just 'nvmem'
>
> TBH, I'd prefer that as well, and I had just 'nvmem' initially,
> but that doesn't work:
>
> .../maxim,max77759.example.dtb: pmic@66: nvmem: {'compatible': ['maxim,max77759-nvmem'], 'nvmem-layout': {'compatible': ['fixed-
> layout'], '#address-cells': 1, '#size-cells': 1, 'reboot-mode@0': {'reg': [[0, 4]]}, 'boot-reason@4': {'reg': [[4, 4]]},
> 'shutdown-user-flag@8': {'reg': [[8, 1]]}, 'rsoc@10': {'reg': [[10, 2]]}}} is not of type 'array'
> from schema $id: http://devicetree.org/schemas/nvmem/nvmem-consumer.yaml#
>
> I don't know if this can be made to work, i.e. can you have both
> in yaml? Can a type be declared as a oneOf or something like that?

I wasn't able to get this to work with a node name of just
'nvmem'.

If anybody has any suggestions, I'll gladly try them.

I've renamed the node from pmic-nvmem to nvmem-0 in v2, though.

https://lore.kernel.org/all/20250226-max77759-mfd-v2-3-a65ebe2bc0a9@linaro.org/

Cheers,
Andre