RE: [PATCH v2 1/3] dt-bindings: PCI: imx6: convert the imx pcie controller to dtschema

From: Hongxing Zhu
Date: Wed Jul 20 2022 - 22:37:19 EST


> -----Original Message-----
> From: Bjorn Helgaas <helgaas@xxxxxxxxxx>
> Sent: 2022年7月21日 5:03
> To: Hongxing Zhu <hongxing.zhu@xxxxxxx>
> Cc: robh@xxxxxxxxxx; l.stach@xxxxxxxxxxxxxx; galak@xxxxxxxxxxxxxxxxxxx;
> shawnguo@xxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> dl-linux-imx <linux-imx@xxxxxxx>; kernel@xxxxxxxxxxxxxx
> Subject: Re: [PATCH v2 1/3] dt-bindings: PCI: imx6: convert the imx pcie
> controller to dtschema
>
> On Wed, Jul 20, 2022 at 01:16:45AM +0000, Hongxing Zhu wrote:
> > > -----Original Message-----
> > > From: Bjorn Helgaas <helgaas@xxxxxxxxxx>
> > > Sent: 2022年7月20日 2:00
> > > To: Hongxing Zhu <hongxing.zhu@xxxxxxx>
> > > Cc: robh@xxxxxxxxxx; l.stach@xxxxxxxxxxxxxx;
> > > galak@xxxxxxxxxxxxxxxxxxx; shawnguo@xxxxxxxxxx;
> > > devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> > > linux-kernel@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>;
> > > kernel@xxxxxxxxxxxxxx
> > > Subject: Re: [PATCH v2 1/3] dt-bindings: PCI: imx6: convert the imx
> > > pcie controller to dtschema
> > >
> > > On Fri, Aug 27, 2021 at 02:42:58PM +0800, Richard Zhu wrote:
> > > > Convert the fsl,imx6q-pcie.txt into a schema.
> > > > - ranges property should be grouped by region, with no functional
> > > > changes.
> > > > - only one propert is allowed in the compatible string, remove
> > > > "snps,dw-pcie".
> > > >
> > > > Signed-off-by: Richard Zhu <hongxing.zhu@xxxxxxx>
> > > > ---
> > > > .../bindings/pci/fsl,imx6q-pcie.txt | 100 ---------
> > > > .../bindings/pci/fsl,imx6q-pcie.yaml | 202
> > > ++++++++++++++++++
> > > > MAINTAINERS | 2 +-
> > > > 3 files changed, 203 insertions(+), 101 deletions(-) delete mode
> > > > 100644 Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
> > > > create mode 100644
> > > > Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> > > >
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
> > > > b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
> > >
> > > > -Optional properties:
> > > > -- fsl,tx-deemph-gen1: Gen1 De-emphasis value. Default: 0
> > > > -- fsl,tx-deemph-gen2-3p5db: Gen2 (3.5db) De-emphasis value. Default:
> > > > 0
> > >
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> > > > b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> > >
> > > > + fsl,tx-deemph-gen1:
> > > > + description: Gen1 De-emphasis value (optional required).
> > > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > > + default: 0
> > > > +
> > > > + fsl,tx-deemph-gen2-3p5db:
> > > > + description: Gen2 (3.5db) De-emphasis value (optional required).
> > > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > > + default: 0
> > >
> > > What does "optional required" mean in all these properties?
> > > "Optional" is the opposite of "required."
> >
> > Regarding my understands, the "optional required" means that these
> > properties are not mandatory required. The default values are used if
> > there are no such kind of properties. If HW board designers want to
> > shape their PCIe signals (E.X eye diagram), they should define these
> properties.
>
> That sounds like "optional" to me.
>
> "Optional required" is meaningless. A property can be either optional OR
> required, but not both at the same time.
>
> If the driver can function without these properties, they are optional. If
> designers can use these properties to optimize signal characteristics, the
> properties are still optional.
>
> The properties you describe as "optional required" are:
>
> fsl,tx-deemph-gen1
> fsl,tx-deemph-gen2-3p5db
> fsl,tx-deemph-gen2-6db
> fsl,tx-swing-full
> fsl,tx-swing-low
> fsl,max-link-speed
> reset-gpio
> reset-gpio-active-high
> vpcie-supply
> vph-supply
>
> From reading the code, the driver uses default values for all the "fsl,"
> properties if they don't exist. And the driver always checks whether the
> others exist before using them.
>
> So I think you should describe all these as "optional".
>
Yes it is.
I would clean them, and set them all "optional" later.
Thanks for your reminder.

Best Regards
Richard Zhu

> Bjorn