mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Hongxing Zhu <hongxing.zhu@nxp.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org" 
	<krzysztof.kozlowski+dt@linaro.org>,
	"l.stach@pengutronix.de" <l.stach@pengutronix.de>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"lorenzo.pieralisi@arm.com" <lorenzo.pieralisi@arm.com>,
	Peng Fan <peng.fan@nxp.com>, "marex@denx.de" <marex@denx.de>,
	Marcel Ziswiler <marcel.ziswiler@toradex.com>,
	"tharvey@gateworks.com" <tharvey@gateworks.com>,
	Frank Li <frank.li@nxp.com>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	dl-linux-imx <linux-imx@nxp.com>
Subject: RE: [PATCH v9 1/4] dt-bindings: imx6q-pcie: Restruct i.MX PCIe schema
Date: Mon, 6 Feb 2023 07:31:52 +0000	[thread overview]
Message-ID: <AS8PR04MB8676B52C150023E895393D1A8CDA9@AS8PR04MB8676.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <ac0f6165-490a-d850-0ad4-a3c014f9d2e9@linaro.org>

Hi Krzysztof:
Thanks for your review comments.

> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Sent: 2023年2月3日 4:31
> To: Hongxing Zhu <hongxing.zhu@nxp.com>; robh+dt@kernel.org;
> krzysztof.kozlowski+dt@linaro.org; l.stach@pengutronix.de;
> shawnguo@kernel.org; lorenzo.pieralisi@arm.com; Peng Fan
> <peng.fan@nxp.com>; marex@denx.de; Marcel Ziswiler
> <marcel.ziswiler@toradex.com>; tharvey@gateworks.com; Frank Li
> <frank.li@nxp.com>
> Cc: devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org; kernel@pengutronix.de; dl-linux-imx
> <linux-imx@nxp.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@nxp.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@pengutronix.de>
> > +  - Richard Zhu <hongxing.zhu@nxp.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@pengutronix.de>
> > +  - Richard Zhu <hongxing.zhu@nxp.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@33800000 {
> > +      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


  reply	other threads:[~2023-02-06  7:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-02  7:35 [PATCH DTS v9 0/4] Add i.MX PCIe EP mode support Richard Zhu
2023-02-02  7:35 ` [PATCH v9 1/4] dt-bindings: imx6q-pcie: Restruct i.MX PCIe schema Richard Zhu
2023-02-02 20:31   ` Krzysztof Kozlowski
2023-02-06  7:31     ` Hongxing Zhu [this message]
2023-02-02  7:35 ` [PATCH v9 2/4] arm64: dts: Add i.MX8MM PCIe EP support Richard Zhu
2023-02-02  7:35 ` [PATCH v9 3/4] arm64: dts: Add i.MX8MQ " Richard Zhu
2023-02-02  7:35 ` [PATCH v9 4/4] arm64: dts: Add i.MX8MP " Richard Zhu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AS8PR04MB8676B52C150023E895393D1A8CDA9@AS8PR04MB8676.eurprd04.prod.outlook.com \
    --to=hongxing.zhu@nxp.com \
    --cc=devicetree@vger.kernel.org \
    --cc=frank.li@nxp.com \
    --cc=kernel@pengutronix.de \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=l.stach@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=marcel.ziswiler@toradex.com \
    --cc=marex@denx.de \
    --cc=peng.fan@nxp.com \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=tharvey@gateworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®