Re: [PATCH] dt-bindings: pinctrl: qcom,pmic-mpp: Fix schema for "qcom,paired"

From: Rob Herring
Date: Fri Apr 21 2023 - 15:49:05 EST


On Wed, Apr 19, 2023 at 2:56 PM Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> On 18/04/2023 17:06, Rob Herring wrote:
> > The "qcom,paired" schema is all wrong. First, it's a list rather than an
> > object(dictionary). Second, it is missing a required type. The meta-schema
> > normally catches this, but schemas under "$defs" was not getting checked.
> > A fix for that is pending.
> >
> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> > ---
> > Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
> > index 9412b9362328..4c3e9ff82105 100644
> > --- a/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
> > +++ b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
> > @@ -144,8 +144,9 @@ $defs:
> > enum: [0, 1, 2, 3, 4, 5, 6, 7]
> >
> > qcom,paired:
> > - - description:
> > - Indicates that the pin should be operating in paired mode.
> > + type: boolean
> > + description:
> > + Indicates that the pin should be operating in paired mode.
>
> Current Linux implementation uses it as a generic pinconf param
> pinconf_generic_params which is parsed by:
>
> pinconf_generic_parse_dt_config() -> parse_dt_cfg() ->
> of_property_read_u32()
>
>
> The pinctrl-spmi-mpp.c driver, using this schema, treat it as a bool,
> but I still wonder how the code will parse bool with
> of_property_read_u32(). Maybe it should be uint32 with value of 0 and 1?

That should be an error because the length is too short so it should
go with some default from the code.

Looks like there is no user, though no property could mean keep the
default/bootloader setting. Can you sort out which type is really
desired here and hopefully we can get rid of the other type. It's not
the first case of pinctrl properties with multiple types, but we don't
really need more.

Rob