Re: [PATCH v4 2/5] dt-bindings: pinctrl: pinctrl-max77620: convert to DT schema

From: Svyatoslav Ryhel

Date: Thu Mar 12 2026 - 11:42:43 EST


чт, 12 бер. 2026 р. о 17:20 Rob Herring <robh@xxxxxxxxxx> пише:
>
> On Thu, Mar 12, 2026 at 10:52:55AM +0200, Svyatoslav Ryhel wrote:
> > Convert pinctrl-max77620 devicetree bindings for the MAX77620 PMIC from
> > TXT to YAML format. This patch does not change any functionality; the
> > bindings remain the same.
> >
> > Signed-off-by: Svyatoslav Ryhel <clamor95@xxxxxxxxx>
> > ---
> > .../pinctrl/maxim,max77620-pinctrl.yaml | 97 +++++++++++++
> > .../bindings/pinctrl/pinctrl-max77620.txt | 127 ------------------
> > 2 files changed, 97 insertions(+), 127 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/pinctrl/maxim,max77620-pinctrl.yaml
> > delete mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt
> >
> > diff --git a/Documentation/devicetree/bindings/pinctrl/maxim,max77620-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/maxim,max77620-pinctrl.yaml
> > new file mode 100644
> > index 000000000000..4e5f997317ca
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pinctrl/maxim,max77620-pinctrl.yaml
> > @@ -0,0 +1,97 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/pinctrl/maxim,max77620-pinctrl.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Pinmux controller function for Maxim MAX77620 Power management IC
> > +
> > +maintainers:
> > + - Svyatoslav Ryhel <clamor95@xxxxxxxxx>
> > +
> > +description:
> > + Device has 8 GPIO pins which can be configured as GPIO as well as the
> > + special IO functions.
> > +
> > +allOf:
> > + - $ref: /schemas/pinctrl/pincfg-node.yaml
> > + - $ref: /schemas/pinctrl/pinmux-node.yaml
>
> Don't these properties apply to the child nodes?
>

They do, but not all properties defined in those schema files are
applicable for this binding. I have marked those which can be applied
in the node patterns.

> > +
> > +patternProperties:
> > + "^(pin|gpio).":
> > + type: object
>
> additionalProperties: false

I will move additionalProperties here then.


>
> Or unevaluatedProperties with the $refs moved here.
>
> > +
> > + properties:
> > + pins:
> > + items:
> > + enum: [ gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7 ]
> > +
> > + function:
> > + items:
> > + enum: [ gpio, lpm-control-in, fps-out, 32k-out1, sd0-dvs-in, sd1-dvs-in,
> > + reference-out ]
> > +
> > + drive-push-pull: true
> > + drive-open-drain: true
> > + bias-pull-up: true
> > + bias-pull-down: true
> > +
> > + maxim,active-fps-source:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description: |
> > + FPS source for the GPIOs to get enabled/disabled when system is in
> > + active state. Valid values are:
> > + - MAX77620_FPS_SRC_0: FPS source is FPS0.
> > + - MAX77620_FPS_SRC_1: FPS source is FPS1
> > + - MAX77620_FPS_SRC_2: FPS source is FPS2
> > + - MAX77620_FPS_SRC_NONE: GPIO is not controlled by FPS events and
> > + it gets enabled/disabled by register access.
> > + Absence of this property will leave the FPS configuration register
> > + for that GPIO to default configuration.
> > +
> > + maxim,active-fps-power-up-slot:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description:
> > + Sequencing event slot number on which the GPIO get enabled when
> > + master FPS input event set to HIGH. This is applicable if FPS source
> > + is selected as FPS0, FPS1 or FPS2.
> > + enum: [0, 1, 2, 3, 4, 5, 6, 7]
> > +
> > + maxim,active-fps-power-down-slot:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description:
> > + Sequencing event slot number on which the GPIO get disabled when
> > + master FPS input event set to LOW. This is applicable if FPS source
> > + is selected as FPS0, FPS1 or FPS2.
> > + enum: [0, 1, 2, 3, 4, 5, 6, 7]
> > +
> > + maxim,suspend-fps-source:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description:
> > + This is same as property "maxim,active-fps-source" but value get
> > + configured when system enters in to suspend state.
> > +
> > + maxim,suspend-fps-power-up-slot:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description:
> > + This is same as property "maxim,active-fps-power-up-slot" but this
> > + value get configured into FPS configuration register when system
> > + enters into suspend. This is applicable if suspend state FPS source
> > + is selected as FPS0, FPS1 or FPS2.
> > + enum: [0, 1, 2, 3, 4, 5, 6, 7]
> > +
> > + maxim,suspend-fps-power-down-slot:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description:
> > + This is same as property "maxim,active-fps-power-down-slot" but this
> > + value get configured into FPS configuration register when system
> > + enters into suspend. This is applicable if suspend state FPS source
> > + is selected as FPS0, FPS1 or FPS2.
> > + enum: [0, 1, 2, 3, 4, 5, 6, 7]
> > +
> > + required:
> > + - pins
> > +
> > +additionalProperties: false
> > +
> > +# see maxim,max77620.yaml for an example
> > diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt
> > deleted file mode 100644
> > index 28fbca180068..000000000000
> > --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt
> > +++ /dev/null
> > @@ -1,127 +0,0 @@
> > -Pincontrol driver for MAX77620 Power management IC from Maxim Semiconductor.
> > -
> > -Device has 8 GPIO pins which can be configured as GPIO as well as the
> > -special IO functions.
> > -
> > -Please refer file <devicetree/bindings/pinctrl/pinctrl-bindings.txt>
> > -for details of the common pinctrl bindings used by client devices,
> > -including the meaning of the phrase "pin configuration node".
> > -
> > -Optional Pinmux properties:
> > ---------------------------
> > -Following properties are required if default setting of pins are required
> > -at boot.
> > -- pinctrl-names: A pinctrl state named per <pinctrl-bindings.txt>.
> > -- pinctrl[0...n]: Properties to contain the phandle for pinctrl states per
> > - <pinctrl-bindings.txt>.
> > -
> > -The pin configurations are defined as child of the pinctrl states node. Each
> > -sub-node have following properties:
> > -
> > -Required properties:
> > -------------------
> > -- pins: List of pins. Valid values of pins properties are:
> > - gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7.
> > -
> > -Optional properties:
> > --------------------
> > -Following are optional properties defined as pinmux DT binding document
> > -<pinctrl-bindings.txt>. Absence of properties will leave the configuration
> > -on default.
> > - function,
> > - drive-push-pull,
> > - drive-open-drain,
> > - bias-pull-up,
> > - bias-pull-down.
> > -
> > -Valid values for function properties are:
> > - gpio, lpm-control-in, fps-out, 32k-out, sd0-dvs-in, sd1-dvs-in,
> > - reference-out
> > -
> > -There are also customised properties for the GPIO1, GPIO2 and GPIO3. These
> > -customised properties are required to configure FPS configuration parameters
> > -of these GPIOs. Please refer <devicetree/bindings/mfd/max77620.txt> for more
> > -detail of Flexible Power Sequence (FPS).
> > -
> > -- maxim,active-fps-source: FPS source for the GPIOs to get
> > - enabled/disabled when system is in
> > - active state. Valid values are:
> > - - MAX77620_FPS_SRC_0,
> > - FPS source is FPS0.
> > - - MAX77620_FPS_SRC_1,
> > - FPS source is FPS1
> > - - MAX77620_FPS_SRC_2 and
> > - FPS source is FPS2
> > - - MAX77620_FPS_SRC_NONE.
> > - GPIO is not controlled
> > - by FPS events and it gets
> > - enabled/disabled by register
> > - access.
> > - Absence of this property will leave
> > - the FPS configuration register for that
> > - GPIO to default configuration.
> > -
> > -- maxim,active-fps-power-up-slot: Sequencing event slot number on which
> > - the GPIO get enabled when
> > - master FPS input event set to HIGH.
> > - Valid values are 0 to 7.
> > - This is applicable if FPS source is
> > - selected as FPS0, FPS1 or FPS2.
> > -
> > -- maxim,active-fps-power-down-slot: Sequencing event slot number on which
> > - the GPIO get disabled when master
> > - FPS input event set to LOW.
> > - Valid values are 0 to 7.
> > - This is applicable if FPS source is
> > - selected as FPS0, FPS1 or FPS2.
> > -
> > -- maxim,suspend-fps-source: This is same as property
> > - "maxim,active-fps-source" but value
> > - get configured when system enters in
> > - to suspend state.
> > -
> > -- maxim,suspend-fps-power-up-slot: This is same as property
> > - "maxim,active-fps-power-up-slot" but
> > - this value get configured into FPS
> > - configuration register when system
> > - enters into suspend.
> > - This is applicable if suspend state
> > - FPS source is selected as FPS0, FPS1 or
> > -
> > -- maxim,suspend-fps-power-down-slot: This is same as property
> > - "maxim,active-fps-power-down-slot" but
> > - this value get configured into FPS
> > - configuration register when system
> > - enters into suspend.
> > - This is applicable if suspend state
> > - FPS source is selected as FPS0, FPS1 or
> > - FPS2.
> > -
> > -Example:
> > ---------
> > -#include <dt-bindings/mfd/max77620.h>
> > -...
> > -max77620@3c {
> > -
> > - pinctrl-names = "default";
> > - pinctrl-0 = <&spmic_default>;
> > -
> > - spmic_default: pinmux@0 {
> > - pin_gpio0 {
> > - pins = "gpio0";
> > - function = "gpio";
> > - };
> > -
> > - pin_gpio1 {
> > - pins = "gpio1";
> > - function = "fps-out";
> > - maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
> > - };
> > -
> > - pin_gpio2 {
> > - pins = "gpio2";
> > - function = "fps-out";
> > - maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
> > - };
> > - };
> > -};
> > --
> > 2.51.0
> >