[PATCH V3 1/3] dt-bindings: imx: Add pinctrl binding doc for i.MX8MP

Rob Herring robh at kernel.org
Wed Jan 8 05:32:08 PST 2020


On Tue, Jan 7, 2020 at 12:01 AM Anson Huang <anson.huang at nxp.com> wrote:
>
> Hi, Rob
>
> > Subject: Re: [PATCH V3 1/3] dt-bindings: imx: Add pinctrl binding doc for
> > i.MX8MP
> >
> > On Mon, Jan 06, 2020 at 05:29:50PM +0800, Anson Huang wrote:
> > > Add binding doc for i.MX8MP pinctrl driver.
> > >
> > > Signed-off-by: Anson Huang <Anson.Huang at nxp.com>
> > > Reviewed-by: Abel Vesa <abel.vesa at nxp.com>
> > > ---
> > > Changes since V2:
> > >     - use DT schema instead of txt for binding doc.
> > > ---
> > >  .../bindings/pinctrl/fsl,imx8mp-pinctrl.yaml       |  65 ++
> > >  arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h     | 931
> > +++++++++++++++++++++
> > >  2 files changed, 996 insertions(+)
> > >  create mode 100644
> > > Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
> > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h
> > >
> > > diff --git
> > > a/Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
> > > b/Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
> > > new file mode 100644
> > > index 0000000..cdb6c21
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yam
> > > +++ l
> > > @@ -0,0 +1,65 @@
> > > +# SPDX-License-Identifier: GPL-2.0-or-later %YAML 1.2
> > > +---
> > > +$id:
> > > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> > > +cetree.org%2Fschemas%2Fpinctrl%2Ffsl%2Cimx8mp-
> > pinctrl.yaml%23&dat
> > >
> > +a=02%7C01%7Canson.huang%40nxp.com%7Cfacd4426e6e54bc5416b08d79
> > 2f59319%
> > >
> > +7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63713945576195750
> > 5&s
> > >
> > +data=0O3w1U6vs9xVq6B%2BhyT4Nz5HdKuk6XDymPUg7wQy0lM%3D&
> > reserved=0
> > > +$schema:
> > > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> > > +cetree.org%2Fmeta-
> > schemas%2Fcore.yaml%23&data=02%7C01%7Canson.hua
> > >
> > +ng%40nxp.com%7Cfacd4426e6e54bc5416b08d792f59319%7C686ea1d3bc2b
> > 4c6fa92
> > >
> > +cd99c5c301635%7C0%7C0%7C637139455761957505&sdata=XUN%2BG
> > zMOqpVNRj
> > > +UM1CO6CXPOMT72DtdefLs%2Bs%2BGPaGI%3D&reserved=0
> > > +
> > > +title: Freescale IMX8MP IOMUX Controller
> > > +
> > > +maintainers:
> > > +  - Anson Huang <Anson.Huang at nxp.com>
> > > +
> > > +description:
> > > +  Please refer to fsl,imx-pinctrl.txt and pinctrl-bindings.txt in
> > > +this directory
> > > +  for common binding part and usage.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: fsl,imx8mp-iomuxc
> > > +
> > > +# Client device subnode's properties
> > > +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:
> > > +        $ref: /schemas/types.yaml#/definitions/string
> >
> > string or...
> >
> > > +        description:
> > > +          each entry consists of 6 integers and represents the mux
> > > + and config
> >
> > integers?
>
> I think it should be uint32-array
>
> >
> > > +          setting for one pin. The first 5 integers <mux_reg conf_reg input_reg
> > > +          mux_val input_val> are specified using a PIN_FUNC_ID macro, which
> > can
> > > +          be found in <arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h>.
> > The last
> > > +          integer CONFIG is the pad setting value like pull-up on this pin.
> > Please
> > > +          refer to i.MX8M Plus Reference Manual for detailed CONFIG settings.
> > > +
> > > +    required:
> > > +      - fsl,pins
> > > +
> > > +    additionalProperties: false
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  # Pinmux controller node
> > > +  - |
> > > +    iomuxc: pinctrl at 30330000 {
> > > +        compatible = "fsl,imx8mp-iomuxc";
> > > +        reg = <0x30330000 0x10000>;
> > > +
> > > +        pinctrl_uart2: uart2grp {
> > > +            fsl,pins = <
> > > +                MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX       0x49
> > > +                MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX       0x49
> >
> > Run 'make dt_binding_check'. Doesn't build:
> >
> > Error: Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-
> > pinctrl.example.dts:23.21-22 syntax error FATAL ERROR: Unable to parse
> > input tree
>
> I fix it by NOT using Macro Definition as below, but still have some build error which looks like
> my environment issue, please help review V4, thanks.
>
>              fsl,pins = <
>                  0x228 0x488 0x5F0 0x0 0x6       0x49
>                  0x228 0x488 0x000 0x0 0x0       0x49
>              >;
>
>
>   CHKDT   Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.yaml
>   SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
>   DTC     Documentation/devicetree/bindings/pinctrl/fsl,imx8mp-pinctrl.example.dt.yaml
> FATAL ERROR: Unknown output format "yaml"

You need dtc built with yaml enabled. Make sure you have libyaml,
libyaml-dev and pkg-config.

Rob



More information about the linux-arm-kernel mailing list