[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <AS8PR04MB8676B52C150023E895393D1A8CDA9@AS8PR04MB8676.eurprd04.prod.outlook.com>
Date: Mon, 6 Feb 2023 07:31:52 +0000
From: Hongxing Zhu <hongxing.zhu@....com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
"robh+dt@...nel.org" <robh+dt@...nel.org>,
"krzysztof.kozlowski+dt@...aro.org"
<krzysztof.kozlowski+dt@...aro.org>,
"l.stach@...gutronix.de" <l.stach@...gutronix.de>,
"shawnguo@...nel.org" <shawnguo@...nel.org>,
"lorenzo.pieralisi@....com" <lorenzo.pieralisi@....com>,
Peng Fan <peng.fan@....com>, "marex@...x.de" <marex@...x.de>,
Marcel Ziswiler <marcel.ziswiler@...adex.com>,
"tharvey@...eworks.com" <tharvey@...eworks.com>,
Frank Li <frank.li@....com>
CC: "devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"kernel@...gutronix.de" <kernel@...gutronix.de>,
dl-linux-imx <linux-imx@....com>
Subject: RE: [PATCH v9 1/4] dt-bindings: imx6q-pcie: Restruct i.MX PCIe schema
Hi Krzysztof:
Thanks for your review comments.
> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
> Sent: 2023年2月3日 4:31
> To: Hongxing Zhu <hongxing.zhu@....com>; robh+dt@...nel.org;
> krzysztof.kozlowski+dt@...aro.org; l.stach@...gutronix.de;
> shawnguo@...nel.org; lorenzo.pieralisi@....com; Peng Fan
> <peng.fan@....com>; marex@...x.de; Marcel Ziswiler
> <marcel.ziswiler@...adex.com>; tharvey@...eworks.com; Frank Li
> <frank.li@....com>
> Cc: devicetree@...r.kernel.org; linux-arm-kernel@...ts.infradead.org;
> linux-kernel@...r.kernel.org; kernel@...gutronix.de; dl-linux-imx
> <linux-imx@....com>
> Subject: Re: [PATCH v9 1/4] dt-bindings: imx6q-pcie: Restruct i.MX PCIe
> schema
>
> On 02/02/2023 08:35, Richard Zhu wrote:
> > Restruct i.MX PCIe schema, derive the common properties, thus they can
> > be shared by both the RC and Endpoint schema.
> >
> > Update the description of fsl,imx6q-pcie.yaml, and move the EP mode
> > compatible to fsl,imx6q-pcie-ep.yaml.
> >
> > Add support for i.MX8M PCIe Endpoint modes, and update the MAINTAINER
> > accordingly.
> >
> > Signed-off-by: Richard Zhu <hongxing.zhu@....com>
> > ---
> > .../bindings/pci/fsl,imx6q-pcie-common.yaml | 285
> ++++++++++++++++++
> > .../bindings/pci/fsl,imx6q-pcie-ep.yaml | 83 +++++
> > .../bindings/pci/fsl,imx6q-pcie.yaml | 247 +--------------
> > MAINTAINERS | 2 +
> > 4 files changed, 376 insertions(+), 241 deletions(-) create mode
> > 100644
> > Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml
> > create mode 100644
> > Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml
> >
> > diff --git
> > a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml
> > b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml
> > new file mode 100644
> > index 000000000000..f291f7529622
> > --- /dev/null
> > +++
> b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml
> > @@ -0,0 +1,285 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id:
> > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> >
> +cetree.org%2Fschemas%2Fpci%2Ffsl%2Cimx6q-pcie-common.yaml%23&dat
> a=05%
> >
> +7C01%7Chongxing.zhu%40nxp.com%7Cbc4ab9b963194b84cfb408db055c79
> 30%7C68
> >
> +6ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C638109666953361711%
> 7CUnknown
> >
> +%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1ha
> WwiLC
> >
> +JXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=xbM1eZn2swqrsdlwpNA4eCe
> KTdVWTL3RU9
> > +78v7d0DMU%3D&reserved=0
> > +$schema:
> > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> >
> +cetree.org%2Fmeta-schemas%2Fcore.yaml%23&data=05%7C01%7Chongxin
> g.zhu%
> >
> +40nxp.com%7Cbc4ab9b963194b84cfb408db055c7930%7C686ea1d3bc2b4c
> 6fa92cd9
> >
> +9c5c301635%7C0%7C0%7C638109666953361711%7CUnknown%7CTWFpb
> GZsb3d8eyJWI
> >
> +joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7
> C3000%
> >
> +7C%7C%7C&sdata=%2F%2FCEvu0g51SzeBXDToMlYrefPYbBWARm1FqQVai7x
> Bc%3D&res
> > +erved=0
> > +
> > +title: Freescale i.MX6 PCIe RC/EP controller
> > +
> > +maintainers:
> > + - Lucas Stach <l.stach@...gutronix.de>
> > + - Richard Zhu <hongxing.zhu@....com>
> > +
> > +description:
> > + Generic Freescale i.MX PCIe Root Port and Endpoint controller
> > + properties.
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - fsl,imx6q-pcie
> > + - fsl,imx6sx-pcie
> > + - fsl,imx6qp-pcie
> > + - fsl,imx7d-pcie
> > + - fsl,imx8mq-pcie
> > + - fsl,imx8mm-pcie
> > + - fsl,imx8mp-pcie
> > + - fsl,imx8mm-pcie-ep
> > + - fsl,imx8mq-pcie-ep
> > + - fsl,imx8mp-pcie-ep
>
> Compatibles are not part of common schema. Are you saying that EP
> compatible is valid for PCIE not working as endpoint? This does not make
> sense. The common part is only the part which is common. Compatible is not
> common, not shared.
>
Okay, would sperate the compatibles by RC ane EP.
>
> Also missing required: block.
>
Would add the common required: block too.
Since the RC and EP schema has different description of the
reg/reg-names/interrupts...
Is it fine to let RC or EP schema has its own reg/reg-names/interrupts...
properties?
> (...)
>
> > diff --git
> > a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml
> > b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml
> > new file mode 100644
> > index 000000000000..f651bc3fcaf7
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml
> > @@ -0,0 +1,83 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id:
> > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> >
> +cetree.org%2Fschemas%2Fpci%2Ffsl%2Cimx6q-pcie-ep.yaml%23&data=05
> %7C01
> >
> +%7Chongxing.zhu%40nxp.com%7Cbc4ab9b963194b84cfb408db055c7930%
> 7C686ea1
> >
> +d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C638109666953361711%7CU
> nknown%7CT
> >
> +WFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiL
> CJXVC
> >
> +I6Mn0%3D%7C3000%7C%7C%7C&sdata=4UbTmbEFMOn9nDEO4WwVoheX
> tl2zk%2BAo%2Ff
> > +rbonvl0yo%3D&reserved=0
> > +$schema:
> > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> >
> +cetree.org%2Fmeta-schemas%2Fcore.yaml%23&data=05%7C01%7Chongxin
> g.zhu%
> >
> +40nxp.com%7Cbc4ab9b963194b84cfb408db055c7930%7C686ea1d3bc2b4c
> 6fa92cd9
> >
> +9c5c301635%7C0%7C0%7C638109666953361711%7CUnknown%7CTWFpb
> GZsb3d8eyJWI
> >
> +joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7
> C3000%
> >
> +7C%7C%7C&sdata=%2F%2FCEvu0g51SzeBXDToMlYrefPYbBWARm1FqQVai7x
> Bc%3D&res
> > +erved=0
> > +
> > +title: Freescale i.MX6 PCIe Endpoint controller
> > +
> > +maintainers:
> > + - Lucas Stach <l.stach@...gutronix.de>
> > + - Richard Zhu <hongxing.zhu@....com>
> > +
> > +description: |+
> > + This PCIe controller is based on the Synopsys DesignWare PCIe IP
> > +and
> > + thus inherits all the common properties defined in
> snps,dw-pcie-ep.yaml.
> > + The controller instances are dual mode where in they can work
> > +either in
> > + Root Port mode or Endpoint mode but one at a time.
> > +
> > +properties:
> > + reg:
> > + minItems: 2
> > +
> > + reg-names:
> > + items:
> > + - const: dbi
> > + - const: addr_space
> > +
> > + interrupts:
> > + items:
> > + - description: builtin eDMA interrupter.
> > +
> > + interrupt-names:
> > + items:
> > + - const: dma
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - reg-names
> > + - num-lanes
> > + - interrupts
> > + - interrupt-names
> > + - clocks
> > + - clock-names
>
> Several of these should be required by common schema/
How about this definitions of the required: block?
<for common>
required:
- num-lanes
- clocks
- clock-names
- power-domains
- power-domain-names
- resets
- reset-names
<for ep>
required:
- compatible
- reg
- reg-names
- interrupts
- interrupt-names
<for rc>
required:
- compatible
- reg
- reg-names
- "#address-cells"
- "#size-cells"
- device_type
- bus-range
- ranges
- interrupts
- interrupt-names
- "#interrupt-cells"
- interrupt-map-mask
- interrupt-map
>
> > +
> > +allOf:
> > + - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> > + - $ref: /schemas/pci/fsl,imx6q-pcie-common.yaml#
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/clock/imx8mp-clock.h>
> > + #include <dt-bindings/power/imx8mp-power.h>
> > + #include <dt-bindings/reset/imx8mp-reset.h>
> > + #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > + pcie_ep: pcie-ep@...00000 {
> > + compatible = "fsl,imx8mp-pcie-ep";
> > + reg = <0x33800000 0x000400000>, <0x18000000 0x08000000>;
> > + reg-names = "dbi", "addr_space";
> > + clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
> > + <&clk IMX8MP_CLK_HSIO_AXI>,
> > + <&clk IMX8MP_CLK_PCIE_ROOT>;
> > + clock-names = "pcie", "pcie_bus", "pcie_aux";
> > + assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;
> > + assigned-clock-rates = <10000000>;
> > + assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;
> > + num-lanes = <1>;
> > + interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* eDMA */
> > + interrupt-names = "dma";
> > + fsl,max-link-speed = <3>;
> > + power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>;
> > + resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>,
> > + <&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>;
> > + reset-names = "apps", "turnoff";
> > + phys = <&pcie_phy>;
> > + phy-names = "pcie-phy";
> > + num-ib-windows = <4>;
> > + num-ob-windows = <4>;
> > + status = "disabled";
>
> Drop status
Okay.
>
> > + };
> > diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> > b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> > index f13f87fddb3d..db1d0a04bde4 100644
> > --- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> > +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> > @@ -13,21 +13,13 @@ maintainers:
> > description: |+
> > This PCIe host controller is based on the Synopsys DesignWare PCIe IP
> > and thus inherits all the common properties defined in
> snps,dw-pcie.yaml.
> > + The controller instances are dual mode where in they can work
> > + either in Root Port mode or Endpoint mode but one at a time.
> >
> > -properties:
> > - compatible:
> > - enum:
> > - - fsl,imx6q-pcie
> > - - fsl,imx6sx-pcie
> > - - fsl,imx6qp-pcie
> > - - fsl,imx7d-pcie
> > - - fsl,imx8mq-pcie
> > - - fsl,imx8mm-pcie
> > - - fsl,imx8mp-pcie
>
> Compatibles should stay because these are not valid for EP schema.
Okay.
Best Regards
Richard Zhu
>
> > - - fsl,imx8mm-pcie-ep
> > - - fsl,imx8mq-pcie-ep
> > - - fsl,imx8mp-pcie-ep
> > + See fsl,imx6q-pcie-ep.yaml for details on the Endpoint mode device
> > + tree bindings.
> >
>
>
> Best regards,
> Krzysztof
Powered by blists - more mailing lists