[PATCH v3 5/6] arm64: dtsi: imx8mp: add usb nodes

Krzysztof Kozlowski krzk at kernel.org
Tue Sep 22 10:39:19 EDT 2020


On Tue, 22 Sep 2020 at 12:56, Li Jun <jun.li at nxp.com> wrote:
>
> imx8mp integrates 2 identical dwc3 based USB3 controllers and
> Synopsys phys, each instance has additional wakeup logic to
> support low power mode, so the glue layer need a node with dwc3
> core sub node.
>
> Signed-off-by: Li Jun <jun.li at nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 88 +++++++++++++++++++++++++++++++
>  1 file changed, 88 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index 9de2aa1..1b7ed4c 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -750,5 +750,93 @@
>                         reg = <0x3d800000 0x400000>;
>                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
>                 };
> +
> +               usb3_phy0: usb-phy at 381f0040 {
> +                       compatible = "fsl,imx8mp-usb-phy";
> +                       reg = <0x381f0040 0x40>;
> +                       clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
> +                       clock-names = "phy";
> +                       assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
> +                       assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
> +                       #phy-cells = <0>;
> +                       status = "disabled";
> +               };
> +
> +               usb3_0: usb at 32f10100 {
> +                       compatible = "fsl,imx8mp-dwc3";
> +                       reg = <0x32f10100 0x8>;
> +                       clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
> +                                <&clk IMX8MP_CLK_USB_ROOT>;
> +                       clock-names = "hsio", "suspend";
> +                       interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
> +                       #address-cells = <1>;
> +                       #size-cells = <1>;
> +                       ranges;
> +                       status = "disabled";
> +
> +                       usb_dwc3_0: dwc3 at 38100000 {
> +                               compatible = "snps,dwc3";
> +                               reg = <0x38100000 0x10000>;
> +                               clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
> +                                        <&clk IMX8MP_CLK_USB_CORE_REF>,
> +                                        <&clk IMX8MP_CLK_USB_ROOT>;
> +                               clock-names = "bus_early", "ref", "suspend";
> +                               assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
> +                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
> +                               assigned-clock-rates = <500000000>;
> +                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
> +                               phys = <&usb3_phy0>, <&usb3_phy0>;
> +                               phy-names = "usb2-phy", "usb3-phy";
> +                               snps,dis-u2-freeclk-exists-quirk;
> +                               xhci-64bit-support-disable;
> +                               status = "disabled";
> +                       };
> +
> +               };
> +
> +               usb3_phy1: usb-phy at 382f0040 {
> +                       compatible = "fsl,imx8mp-usb-phy";
> +                       reg = <0x382f0040 0x40>;
> +                       clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
> +                       clock-names = "phy";
> +                       assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
> +                       assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
> +                       #phy-cells = <0>;
> +                       status = "disabled";
> +               };
> +
> +               usb3_1: usb at 32f10108 {
> +                       compatible = "fsl,imx8mp-dwc3";
> +                       reg = <0x32f10108 0x8>;
> +                       clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
> +                                <&clk IMX8MP_CLK_USB_ROOT>;
> +                       clock-names = "hsio", "suspend";
> +                       assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI_SRC>;

This does not validate against your own schema:
arch/arm64/boot/dts/freescale/imx8mp-evk.dt.yaml: usb at 32f10108:
'assigned-clock-parents', 'assigned-clock-rates', 'assigned-clocks' do
not match any of the regexes: '^dwc3@[0-9a-f]+$', 'pinctrl-[0-9]+'

Please, stop adding new schema and DTS which from day one have
warnings/violations.

It's really a lot of effort (and commits) to clean this up later.

Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list