diff mbox series

[v6,02/14] dt-bindings: pinctrl: imx: Add fsl,scu-iomux yaml file

Message ID 20220629164414.301813-3-viorel.suman@oss.nxp.com (mailing list archive)
State Handled Elsewhere, archived
Headers show
Series dt-bindings: arm: freescale: Switch fsl,scu from txt to yaml | expand

Commit Message

Viorel Suman (OSS) June 29, 2022, 4:44 p.m. UTC
From: Abel Vesa <abel.vesa@nxp.com>

In order to replace the fsl,scu txt file from bindings/arm/freescale,
we need to split it between the right subsystems. This patch documents
separately the 'iomux/pinctrl' child node of the SCU main node.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
---
 .../bindings/pinctrl/fsl,scu-pinctrl.yaml     | 68 +++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml

Comments

Krzysztof Kozlowski June 29, 2022, 5:53 p.m. UTC | #1
On 29/06/2022 18:44, Viorel Suman (OSS) wrote:
> From: Abel Vesa <abel.vesa@nxp.com>
> 
> In order to replace the fsl,scu txt file from bindings/arm/freescale,
> we need to split it between the right subsystems. This patch documents
> separately the 'iomux/pinctrl' child node of the SCU main node.
> 
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
> ---
>  .../bindings/pinctrl/fsl,scu-pinctrl.yaml     | 68 +++++++++++++++++++
>  1 file changed, 68 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> new file mode 100644
> index 000000000000..76a2e7b28172
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/fsl,scu-pinctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: i.MX SCU Client Device Node - Pinctrl bindings based on SCU Message Protocol
> +
> +maintainers:
> +  - Dong Aisheng <aisheng.dong@nxp.com>
> +
> +description: i.MX SCU Client Device Node
> +  Client nodes are maintained as children of the relevant IMX-SCU device node.
> +  This binding uses the i.MX common pinctrl binding.
> +  (Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt)
> +
> +allOf:
> +  - $ref: "pinctrl.yaml#"

Don't mix the quotes. You changed them to ', so stick with it.

> +
> +properties:
> +  compatible:
> +    enum:
> +      - fsl,imx8qm-iomuxc
> +      - fsl,imx8qxp-iomuxc
> +      - fsl,imx8dxl-iomuxc
> +
> +patternProperties:
> +  'grp$':
> +    type: object
> +    description:
> +      Pinctrl node's client devices use subnodes for desired pin configuration.
> +      Client device subnodes use below standard properties.
> +
> +    properties:
> +      fsl,pins:
> +        description:
> +          each entry consists of 3 integers and represents the pin ID, the mux value
> +          and config setting for the pin. The first 2 integers - pin_id and mux_val - are
> +          specified using a PIN_FUNC_ID macro, which can be found in
> +          <include/dt-bindings/pinctrl/pads-imx8qxp.h>. The last integer CONFIG is
> +          the pad setting value like pull-up on this pin. Please refer to the
> +          appropriate i.MX8 Reference Manual for detailed CONFIG settings.
> +        $ref: /schemas/types.yaml#/definitions/uint32-matrix

Look at fsl,imx8mq-pinctrl.yaml. Each item is described (items under items).

> +
> +    required:
> +      - fsl,pins
> +
> +    additionalProperties: false
> +
> +required:
> +  - compatible
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/pinctrl/pads-imx8qxp.h>
> +
> +    pinctrl {
> +        compatible = "fsl,imx8qxp-iomuxc";
> +
> +        pinctrl_lpuart0: lpuart0grp {
> +            fsl,pins = <
> +                111 0 0x06000020
> +                112 0 0x06000020
> +            >;
> +        };
> +    };


Best regards,
Krzysztof
Viorel Suman (OSS) June 30, 2022, 12:37 p.m. UTC | #2
On 22-06-29 19:53:51, Krzysztof Kozlowski wrote:
> On 29/06/2022 18:44, Viorel Suman (OSS) wrote:
> > From: Abel Vesa <abel.vesa@nxp.com>
> > 
> > In order to replace the fsl,scu txt file from bindings/arm/freescale,
> > we need to split it between the right subsystems. This patch documents
> > separately the 'iomux/pinctrl' child node of the SCU main node.
> > 
> > Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> > Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
> > ---
> >  .../bindings/pinctrl/fsl,scu-pinctrl.yaml     | 68 +++++++++++++++++++
> >  1 file changed, 68 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> > new file mode 100644
> > index 000000000000..76a2e7b28172
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
[...]
> > +      fsl,pins:
> > +        description:
> > +          each entry consists of 3 integers and represents the pin ID, the mux value
> > +          and config setting for the pin. The first 2 integers - pin_id and mux_val - are
> > +          specified using a PIN_FUNC_ID macro, which can be found in
> > +          <include/dt-bindings/pinctrl/pads-imx8qxp.h>. The last integer CONFIG is
> > +          the pad setting value like pull-up on this pin. Please refer to the
> > +          appropriate i.MX8 Reference Manual for detailed CONFIG settings.
> > +        $ref: /schemas/types.yaml#/definitions/uint32-matrix
> 
> Look at fsl,imx8mq-pinctrl.yaml. Each item is described (items under items).

Added them initially, but later dropped because of some logs like
"pinctrl@xxxxxxx: usdhc1grp:fsl,pins:0: [...] is too long" shown by
"make dt_binding_check dtbs_check DT_SCHEMA_FILES=[...]/fsl,scu-pinctrl.yaml"

Same logs are shown for "fsl,imx8mq-pinctrl.yaml". Will add the items description in the next
version.

Thank you,
Viorel
Rob Herring (Arm) June 30, 2022, 1:44 p.m. UTC | #3
On Wed, 29 Jun 2022 19:44:02 +0300, Viorel Suman (OSS) wrote:
> From: Abel Vesa <abel.vesa@nxp.com>
> 
> In order to replace the fsl,scu txt file from bindings/arm/freescale,
> we need to split it between the right subsystems. This patch documents
> separately the 'iomux/pinctrl' child node of the SCU main node.
> 
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
> ---
>  .../bindings/pinctrl/fsl,scu-pinctrl.yaml     | 68 +++++++++++++++++++
>  1 file changed, 68 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8ulp-pinctrl.example.dtb: pinctrl@298c0000: lpuart5grp:fsl,pins:0: [312, 2288, 4, 3, 3, 316, 2284, 4, 3, 3] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8ulp-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mn-pinctrl.example.dtb: pinctrl@30330000: uart2grp:fsl,pins:0: [572, 1188, 1276, 0, 0, 320, 576, 1192, 0, 0, 0, 320] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mn-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx93-pinctrl.example.dtb: pinctrl@443c0000: uart3grp:fsl,pins:0: [72, 504, 1052, 1, 0, 73, 76, 508, 1048, 1, 0, 73] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx93-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mm-pinctrl.example.dtb: pinctrl@30330000: uart2grp:fsl,pins:0: [572, 1188, 1276, 0, 0, 320, 576, 1192, 0, 0, 0, 320] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mm-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.example.dtb: pinctrl@30330000: uart5grp:fsl,pins:0: [352, 976, 1812, 1, 0, 126, 356, 980, 0, 1, 0, 118] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.example.dtb: pinctrl@302c0000: gpio1-grp:fsl,pins:0: [8, 56, 0, 0, 0, 89, 12, 60, 0, 0, 0, 89] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mq-pinctrl.example.dtb: pinctrl@30330000: uart1grp:fsl,pins:0: [564, 1180, 1268, 0, 0, 73, 568, 1184, 1268, 0, 0, 73] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mq-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imxrt1050.example.dtb: iomuxc@401f8000: lpuart1grp:fsl,pins:0: [236, 732, 0, 2, 0, 241, 240, 736, 0, 2, 0, 241] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imxrt1050.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.example.dtb: pinctrl@30330000: uart2grp:fsl,pins:0: [552, 1160, 1520, 0, 6, 73, 552, 1160, 0, 0, 0, 73] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imxrt1170.example.dtb: iomuxc@400e8000: lpuart1grp:fsl,pins:0: [364, 944, 1568, 0, 0, 241, 368, 948, 1564, 0, 0, 241] is too long
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pinctrl/fsl,imxrt1170.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Krzysztof Kozlowski June 30, 2022, 6:33 p.m. UTC | #4
On 30/06/2022 14:37, Viorel Suman (OSS) wrote:
> On 22-06-29 19:53:51, Krzysztof Kozlowski wrote:
>> On 29/06/2022 18:44, Viorel Suman (OSS) wrote:
>>> From: Abel Vesa <abel.vesa@nxp.com>
>>>
>>> In order to replace the fsl,scu txt file from bindings/arm/freescale,
>>> we need to split it between the right subsystems. This patch documents
>>> separately the 'iomux/pinctrl' child node of the SCU main node.
>>>
>>> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
>>> Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
>>> ---
>>>  .../bindings/pinctrl/fsl,scu-pinctrl.yaml     | 68 +++++++++++++++++++
>>>  1 file changed, 68 insertions(+)
>>>  create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
>>> new file mode 100644
>>> index 000000000000..76a2e7b28172
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> [...]
>>> +      fsl,pins:
>>> +        description:
>>> +          each entry consists of 3 integers and represents the pin ID, the mux value
>>> +          and config setting for the pin. The first 2 integers - pin_id and mux_val - are
>>> +          specified using a PIN_FUNC_ID macro, which can be found in
>>> +          <include/dt-bindings/pinctrl/pads-imx8qxp.h>. The last integer CONFIG is
>>> +          the pad setting value like pull-up on this pin. Please refer to the
>>> +          appropriate i.MX8 Reference Manual for detailed CONFIG settings.
>>> +        $ref: /schemas/types.yaml#/definitions/uint32-matrix
>>
>> Look at fsl,imx8mq-pinctrl.yaml. Each item is described (items under items).
> 
> Added them initially, but later dropped because of some logs like
> "pinctrl@xxxxxxx: usdhc1grp:fsl,pins:0: [...] is too long" shown by
> "make dt_binding_check dtbs_check DT_SCHEMA_FILES=[...]/fsl,scu-pinctrl.yaml"
> 
> Same logs are shown for "fsl,imx8mq-pinctrl.yaml". Will add the items description in the next
> version.
>

The fsl,imx8mq-pinctrl.yaml should be correct and I don't see the reason
why dtschema complains in some of the entries. It's like one define was
not correct... I'll take a look at this later, but anyway keep the same
as fsl,imx8mq-pinctrl.yaml even if it complains.


Best regards,
Krzysztof
Rob Herring July 5, 2022, 6:33 p.m. UTC | #5
On Thu, Jun 30, 2022 at 12:33 PM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 30/06/2022 14:37, Viorel Suman (OSS) wrote:
> > On 22-06-29 19:53:51, Krzysztof Kozlowski wrote:
> >> On 29/06/2022 18:44, Viorel Suman (OSS) wrote:
> >>> From: Abel Vesa <abel.vesa@nxp.com>
> >>>
> >>> In order to replace the fsl,scu txt file from bindings/arm/freescale,
> >>> we need to split it between the right subsystems. This patch documents
> >>> separately the 'iomux/pinctrl' child node of the SCU main node.
> >>>
> >>> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> >>> Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
> >>> ---
> >>>  .../bindings/pinctrl/fsl,scu-pinctrl.yaml     | 68 +++++++++++++++++++
> >>>  1 file changed, 68 insertions(+)
> >>>  create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> >>> new file mode 100644
> >>> index 000000000000..76a2e7b28172
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> > [...]
> >>> +      fsl,pins:
> >>> +        description:
> >>> +          each entry consists of 3 integers and represents the pin ID, the mux value
> >>> +          and config setting for the pin. The first 2 integers - pin_id and mux_val - are
> >>> +          specified using a PIN_FUNC_ID macro, which can be found in
> >>> +          <include/dt-bindings/pinctrl/pads-imx8qxp.h>. The last integer CONFIG is
> >>> +          the pad setting value like pull-up on this pin. Please refer to the
> >>> +          appropriate i.MX8 Reference Manual for detailed CONFIG settings.
> >>> +        $ref: /schemas/types.yaml#/definitions/uint32-matrix
> >>
> >> Look at fsl,imx8mq-pinctrl.yaml. Each item is described (items under items).
> >
> > Added them initially, but later dropped because of some logs like
> > "pinctrl@xxxxxxx: usdhc1grp:fsl,pins:0: [...] is too long" shown by
> > "make dt_binding_check dtbs_check DT_SCHEMA_FILES=[...]/fsl,scu-pinctrl.yaml"
> >
> > Same logs are shown for "fsl,imx8mq-pinctrl.yaml". Will add the items description in the next
> > version.
> >
>
> The fsl,imx8mq-pinctrl.yaml should be correct and I don't see the reason
> why dtschema complains in some of the entries. It's like one define was
> not correct... I'll take a look at this later, but anyway keep the same
> as fsl,imx8mq-pinctrl.yaml even if it complains.

The issue is that 'fsl,pins' is problematic for the new dtb decoding
because it has a variable definition in terms of matrix bounds as each
i.MX platform has its own length (typ 5 or 6). The tools try to work
around it by figuring out which size fits. That works until there are
multiple answers which seems to be what's happening here.

The easiest solution I think is to just strip the constraints in
occurances of this property. I'll look into that.

Rob
Rob Herring July 6, 2022, 2:11 p.m. UTC | #6
On Tue, Jul 5, 2022 at 12:33 PM Rob Herring <robh+dt@kernel.org> wrote:
>
> On Thu, Jun 30, 2022 at 12:33 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
> >
> > On 30/06/2022 14:37, Viorel Suman (OSS) wrote:
> > > On 22-06-29 19:53:51, Krzysztof Kozlowski wrote:
> > >> On 29/06/2022 18:44, Viorel Suman (OSS) wrote:
> > >>> From: Abel Vesa <abel.vesa@nxp.com>
> > >>>
> > >>> In order to replace the fsl,scu txt file from bindings/arm/freescale,
> > >>> we need to split it between the right subsystems. This patch documents
> > >>> separately the 'iomux/pinctrl' child node of the SCU main node.
> > >>>
> > >>> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> > >>> Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
> > >>> ---
> > >>>  .../bindings/pinctrl/fsl,scu-pinctrl.yaml     | 68 +++++++++++++++++++
> > >>>  1 file changed, 68 insertions(+)
> > >>>  create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> > >>>
> > >>> diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> > >>> new file mode 100644
> > >>> index 000000000000..76a2e7b28172
> > >>> --- /dev/null
> > >>> +++ b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
> > > [...]
> > >>> +      fsl,pins:
> > >>> +        description:
> > >>> +          each entry consists of 3 integers and represents the pin ID, the mux value
> > >>> +          and config setting for the pin. The first 2 integers - pin_id and mux_val - are
> > >>> +          specified using a PIN_FUNC_ID macro, which can be found in
> > >>> +          <include/dt-bindings/pinctrl/pads-imx8qxp.h>. The last integer CONFIG is
> > >>> +          the pad setting value like pull-up on this pin. Please refer to the
> > >>> +          appropriate i.MX8 Reference Manual for detailed CONFIG settings.
> > >>> +        $ref: /schemas/types.yaml#/definitions/uint32-matrix
> > >>
> > >> Look at fsl,imx8mq-pinctrl.yaml. Each item is described (items under items).
> > >
> > > Added them initially, but later dropped because of some logs like
> > > "pinctrl@xxxxxxx: usdhc1grp:fsl,pins:0: [...] is too long" shown by
> > > "make dt_binding_check dtbs_check DT_SCHEMA_FILES=[...]/fsl,scu-pinctrl.yaml"
> > >
> > > Same logs are shown for "fsl,imx8mq-pinctrl.yaml". Will add the items description in the next
> > > version.
> > >
> >
> > The fsl,imx8mq-pinctrl.yaml should be correct and I don't see the reason
> > why dtschema complains in some of the entries. It's like one define was
> > not correct... I'll take a look at this later, but anyway keep the same
> > as fsl,imx8mq-pinctrl.yaml even if it complains.
>
> The issue is that 'fsl,pins' is problematic for the new dtb decoding
> because it has a variable definition in terms of matrix bounds as each
> i.MX platform has its own length (typ 5 or 6). The tools try to work
> around it by figuring out which size fits. That works until there are
> multiple answers which seems to be what's happening here.
>
> The easiest solution I think is to just strip the constraints in
> occurances of this property. I'll look into that.

This is now fixed in the dt-schema main branch.

Rob
Krzysztof Kozlowski July 6, 2022, 2:29 p.m. UTC | #7
On 06/07/2022 16:11, Rob Herring wrote:
>>> The fsl,imx8mq-pinctrl.yaml should be correct and I don't see the reason
>>> why dtschema complains in some of the entries. It's like one define was
>>> not correct... I'll take a look at this later, but anyway keep the same
>>> as fsl,imx8mq-pinctrl.yaml even if it complains.
>>
>> The issue is that 'fsl,pins' is problematic for the new dtb decoding
>> because it has a variable definition in terms of matrix bounds as each
>> i.MX platform has its own length (typ 5 or 6). The tools try to work
>> around it by figuring out which size fits. That works until there are
>> multiple answers which seems to be what's happening here.
>>
>> The easiest solution I think is to just strip the constraints in
>> occurances of this property. I'll look into that.
> 
> This is now fixed in the dt-schema main branch.

Great, thanks!


Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
new file mode 100644
index 000000000000..76a2e7b28172
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
@@ -0,0 +1,68 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/fsl,scu-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: i.MX SCU Client Device Node - Pinctrl bindings based on SCU Message Protocol
+
+maintainers:
+  - Dong Aisheng <aisheng.dong@nxp.com>
+
+description: i.MX SCU Client Device Node
+  Client nodes are maintained as children of the relevant IMX-SCU device node.
+  This binding uses the i.MX common pinctrl binding.
+  (Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt)
+
+allOf:
+  - $ref: "pinctrl.yaml#"
+
+properties:
+  compatible:
+    enum:
+      - fsl,imx8qm-iomuxc
+      - fsl,imx8qxp-iomuxc
+      - fsl,imx8dxl-iomuxc
+
+patternProperties:
+  'grp$':
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+
+    properties:
+      fsl,pins:
+        description:
+          each entry consists of 3 integers and represents the pin ID, the mux value
+          and config setting for the pin. The first 2 integers - pin_id and mux_val - are
+          specified using a PIN_FUNC_ID macro, which can be found in
+          <include/dt-bindings/pinctrl/pads-imx8qxp.h>. The last integer CONFIG is
+          the pad setting value like pull-up on this pin. Please refer to the
+          appropriate i.MX8 Reference Manual for detailed CONFIG settings.
+        $ref: /schemas/types.yaml#/definitions/uint32-matrix
+
+    required:
+      - fsl,pins
+
+    additionalProperties: false
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/pinctrl/pads-imx8qxp.h>
+
+    pinctrl {
+        compatible = "fsl,imx8qxp-iomuxc";
+
+        pinctrl_lpuart0: lpuart0grp {
+            fsl,pins = <
+                111 0 0x06000020
+                112 0 0x06000020
+            >;
+        };
+    };