Re: [PATCH] ARM: dts: nuvoton: Add UDC nodes
From: Andrew Jeffery
Date: Tue Oct 01 2024 - 22:46:01 EST
Hi William,
On Wed, 2024-09-25 at 02:39 -0700, William A. Kennington III wrote:
> The driver support was already added but we are missing the nodes in our
> common devicetree. This enables npcm7xx platforms to enable the udc
> nodes and expose USB devices endpoints.
>
> Signed-off-by: William A. Kennington III <william@xxxxxxxxxxxxxxx>
> ---
> .../dts/nuvoton/nuvoton-common-npcm7xx.dtsi | 71 +++++++++++++++++++
> .../arm/boot/dts/nuvoton/nuvoton-npcm750.dtsi | 65 +++++++++++++++++
> 2 files changed, 136 insertions(+)
>
> diff --git a/arch/arm/boot/dts/nuvoton/nuvoton-common-npcm7xx.dtsi b/arch/arm/boot/dts/nuvoton/nuvoton-common-npcm7xx.dtsi
> index 868454ae6bde..358b52894ac0 100644
> --- a/arch/arm/boot/dts/nuvoton/nuvoton-common-npcm7xx.dtsi
> +++ b/arch/arm/boot/dts/nuvoton/nuvoton-common-npcm7xx.dtsi
> @@ -99,6 +99,11 @@ rst: rst@801000 {
> };
> };
>
> + udc0_phy: usb-phy {
> + compatible = "usb-nop-xceiv";
> + #phy-cells = <0>;
> + };
> +
> ahb {
> #address-cells = <1>;
> #size-cells = <1>;
> @@ -179,6 +184,72 @@ fiux: spi@fb001000 {
> status = "disabled";
> };
>
> + udc5: udc@f0835000 {
Testing this with `make CHECK_DTBS=y nuvoton/nuvoton-npcm750-evb.dtb`
causes the following additional warning:
+/home/andrew/src/kernel.org/linux/origin/build.multi_v5/arch/arm/boot/dts/nuvoton/nuvoton-npcm750-evb.dtb: udc@f0835000: $nodename:0: 'udc@f0835000' does not match '^usb(@.*)?'
+ from schema $id: http://devicetree.org/schemas/usb/ci-hdrc-usb2.yaml#
This is the same for all the other nodes added.
Can you please fix that up in a v2?
Andrew
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0xf0835000 0x1000
> + 0xfffd2800 0x800>;
> + interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc6: udc@f0836000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0xf0836000 0x1000
> + 0xfffd3000 0x800>;
> + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc7: udc@f0837000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0xf0837000 0x1000
> + 0xfffd3800 0x800>;
> + interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc8: udc@f0838000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0xf0838000 0x1000
> + 0xfffd4000 0x800>;
> + interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc9: udc@f0839000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0xf0839000 0x1000
> + 0xfffd4800 0x800>;
> + interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + nuvoton,sysgcr = <&gcr>;
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> apb {
> #address-cells = <1>;
> #size-cells = <1>;
> diff --git a/arch/arm/boot/dts/nuvoton/nuvoton-npcm750.dtsi b/arch/arm/boot/dts/nuvoton/nuvoton-npcm750.dtsi
> index 30eed40b89b5..00615e7d1462 100644
> --- a/arch/arm/boot/dts/nuvoton/nuvoton-npcm750.dtsi
> +++ b/arch/arm/boot/dts/nuvoton/nuvoton-npcm750.dtsi
> @@ -58,5 +58,70 @@ gmac1: eth@f0804000 {
> &rg2mdio_pins>;
> status = "disabled";
> };
> +
> + udc0:udc@f0830000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0x0 0xf0830000 0x0 0x1000
> + 0x0 0xfffeb000 0x0 0x800>;
> + interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc1:udc@f0831000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0x0 0xf0831000 0x0 0x1000
> + 0x0 0xfffeb800 0x0 0x800>;
> + interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc2:udc@f0832000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0x0 0xf0832000 0x0 0x1000
> + 0x0 0xfffec000 0x0 0x800>;
> + interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc3:udc@f0833000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0x0 0xf0833000 0x0 0x1000
> + 0x0 0xfffec800 0x0 0x800>;
> + interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> +
> + udc4:udc@f0834000 {
> + compatible = "nuvoton,npcm750-udc";
> + reg = <0x0 0xf0834000 0x0 0x1000
> + 0x0 0xfffed000 0x0 0x800>;
> + interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk NPCM7XX_CLK_SU>;
> + clock-names = "clk_usb_bridge";
> + phys = <&udc0_phy>;
> + phy_type = "utmi_wide";
> + dr_mode = "peripheral";
> + status = "disabled";
> + };
> };
> };