RE: [EXT] Re: [PATCH v2 1/3] dt-bindings: usb: cdns-imx8qm: add imx8qm cdns3 glue bindings

From: Frank Li
Date: Mon Mar 20 2023 - 10:51:52 EST




> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> Sent: Sunday, March 19, 2023 6:13 AM
> To: Frank Li <frank.li@xxxxxxx>; shawnguo@xxxxxxxxxx
> Cc: devicetree@xxxxxxxxxxxxxxx; festevam@xxxxxxxxx; imx@xxxxxxxxxxxxxxx;
> kernel@xxxxxxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx; robh+dt@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx
> Subject: Re: [EXT] Re: [PATCH v2 1/3] dt-bindings: usb: cdns-imx8qm: add
> imx8qm cdns3 glue bindings
>
> Caution: EXT Email
>
> On 17/03/2023 15:55, Frank Li wrote:
> >
> >
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> >> Sent: Friday, March 17, 2023 4:09 AM
> >> To: Frank Li <frank.li@xxxxxxx>; shawnguo@xxxxxxxxxx
> >> Cc: devicetree@xxxxxxxxxxxxxxx; festevam@xxxxxxxxx;
> imx@xxxxxxxxxxxxxxx;
> >> kernel@xxxxxxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; linux-arm-
> >> kernel@xxxxxxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; linux-
> >> kernel@xxxxxxxxxxxxxxx; robh+dt@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx
> >> Subject: [EXT] Re: [PATCH v2 1/3] dt-bindings: usb: cdns-imx8qm: add
> >> imx8qm cdns3 glue bindings
> >>
> >> Caution: EXT Email
> >>
> >> On 16/03/2023 22:27, Frank Li wrote:
> >>> NXP imx8qm integrates 1 cdns3 IP. This is glue layer device bindings.
> >>>
> >>
> >> Subject: drop second/last, redundant "bindings". The "dt-bindings"
> >> prefix is already stating that these are bindings.
> >>
> >>> Signed-off-by: Frank Li <Frank.Li@xxxxxxx>
> >>> ---
> >>> .../bindings/usb/fsl,imx8qm-cdns3.yaml | 122
> ++++++++++++++++++
> >>> 1 file changed, 122 insertions(+)
> >>> create mode 100644
> Documentation/devicetree/bindings/usb/fsl,imx8qm-
> >> cdns3.yaml
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/usb/fsl,imx8qm-
> >> cdns3.yaml b/Documentation/devicetree/bindings/usb/fsl,imx8qm-
> >> cdns3.yaml
> >>> new file mode 100644
> >>> index 000000000000..fc24df1e4483
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/usb/fsl,imx8qm-cdns3.yaml
> >>> @@ -0,0 +1,122 @@
> >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>> +# Copyright (c) 2020 NXP
> >>> +%YAML 1.2
> >>> +---
> >>> +$id:
> >>
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevice
> %2F&data=05%7C01%7Cfrank.li%40nxp.com%7Cc2d76d3694194fba130a08db
> 286ae90e%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6381482118
> 66106607%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoi
> V2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Lo
> JUcnJnBaGjywN1zF%2BuUpFVUmldixTci96NPzVuio0%3D&reserved=0
> >> tree.org%2Fschemas%2Fusb%2Ffsl%2Cimx8qm-
> >>
> cdns3.yaml%23&data=05%7C01%7CFrank.Li%40nxp.com%7Cac9af3d617dc4cf
> >>
> 14baf08db26c74b07%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6
> >>
> 38146409617970248%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD
> >>
> AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C
> >>
> &sdata=EczZhjyMUGnnp7ZGfSvTj4lmOUuGlOtWYIsxxXIlNXw%3D&reserved
> >> =0
> >>> +$schema:
> >>
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevice
> %2F&data=05%7C01%7Cfrank.li%40nxp.com%7Cc2d76d3694194fba130a08db
> 286ae90e%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6381482118
> 66106607%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoi
> V2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Lo
> JUcnJnBaGjywN1zF%2BuUpFVUmldixTci96NPzVuio0%3D&reserved=0
> >> tree.org%2Fmeta-
> >>
> schemas%2Fcore.yaml%23&data=05%7C01%7CFrank.Li%40nxp.com%7Cac9a
> >>
> f3d617dc4cf14baf08db26c74b07%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C
> >>
> 0%7C0%7C638146409617970248%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiM
> >>
> C4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000
> >> %7C%7C%7C&sdata=uTNYuDm%2ByhZ56oQET2pX8sHpEqVvsUYtmOBCPX
> EK
> >> v40%3D&reserved=0
> >>> +
> >>> +title: NXP iMX8QM Soc USB Controller
> >>> +
> >>> +maintainers:
> >>> + - Frank Li <Frank.Li@xxxxxxx>
> >>> +
> >>> +properties:
> >>> + compatible:
> >>> + const: fsl,imx8qm-usb3
> >>> +
> >>> + reg:
> >>> + items:
> >>> + - description: Address and length of the register set for iMX USB3
> >> Platform Control
> >>
> >> Drop "Address and length of the"... or actually just maxItems: 1,
> >> because the description is a bit obvious.
> >>
> >>> +
> >>> + "#address-cells":
> >>> + enum: [ 1, 2 ]
> >>> +
> >>> + "#size-cells":
> >>> + enum: [ 1, 2 ]
> >>> +
> >>> + ranges: true
> >>> +
> >>> + clocks:
> >>> + description:
> >>> + A list of phandle and clock-specifier pairs for the clocks
> >>> + listed in clock-names.
> >>
> >> Drop description.
> >>
> >>> + items:
> >>> + - description: Standby clock. Used during ultra low power states.
> >>> + - description: USB bus clock for usb3 controller.
> >>> + - description: AXI clock for AXI interface.
> >>> + - description: ipg clock for register access.
> >>> + - description: Core clock for usb3 controller.
> >>> +
> >>> + clock-names:
> >>> + items:
> >>> + - const: usb3_lpm_clk
> >>> + - const: usb3_bus_clk
> >>> + - const: usb3_aclk
> >>> + - const: usb3_ipg_clk
> >>> + - const: usb3_core_pclk
> >>> +
> >>> + assigned-clocks:
> >>> + items:
> >>> + - description: Phandle and clock specifier of IMX_SC_PM_CLK_PER.
> >>> + - description: Phandle and clock specifoer of
> IMX_SC_PM_CLK_MISC.
> >>> + - description: Phandle and clock specifoer of
> >> IMX_SC_PM_CLK_MST_BUS.
> >>> +
> >>> + assigned-clock-rates:
> >>> + items:
> >>> + - description: Must be 125 Mhz.
> >>> + - description: Must be 12 Mhz.
> >>> + - description: Must be 250 Mhz.
> >>
> >> I would argue that both properties above are not needed. If your
> >> hardware requires fixed frequencies, clock provider can fix them, can't it?
> >
> > Clock provider don't know fixed value and turn on only used by client.
>
> So maybe fix the clock provider? Or this device driver? Requiring by
> binding specific frequencies for every board is a bit redundant.

It is not for every boards, it is common for a chip family. Only a place to set for
QM and QXP.

The similar case is network driver, which require a specific frequency at clock assign.
Generally frequency is fixed, clock source name may change at difference chips.

>
> Best regards,
> Krzysztof