* [PATCH 0/2] dt-bindings: usb: Convert TI OMAP MUSB OTG controller and DWC3 USB Glue to DT schema
@ 2026-01-26 13:22 Charan Pedumuru
2026-01-26 13:22 ` [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert " Charan Pedumuru
2026-01-26 13:22 ` [PATCH 2/2] dt-bindings: usb: ti,dwc3: " Charan Pedumuru
0 siblings, 2 replies; 7+ messages in thread
From: Charan Pedumuru @ 2026-01-26 13:22 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Felipe Balbi
Cc: linux-usb, devicetree, linux-kernel, Charan Pedumuru
This series converts the old text-based DeviceTree bindings for TI OMAP
MUSB OTG controller and TI DWC3 USB glue to modern JSON-schema (YAML) format.
Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com>
---
Charan Pedumuru (2):
dt-bindings: usb: ti,omap4-musb: convert to DT schema
dt-bindings: usb: ti,dwc3: convert to DT schema
Documentation/devicetree/bindings/usb/omap-usb.txt | 80 -------------
Documentation/devicetree/bindings/usb/ti,dwc3.yaml | 112 +++++++++++++++++
.../devicetree/bindings/usb/ti,omap4-musb.yaml | 133 +++++++++++++++++++++
3 files changed, 245 insertions(+), 80 deletions(-)
---
base-commit: f417b7ffcbef7d76b0d8860518f50dae0e7e5eda
change-id: 20260109-ti-usb-9df63c7ee152
Best regards,
--
Charan Pedumuru <charan.pedumuru@gmail.com>
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert to DT schema 2026-01-26 13:22 [PATCH 0/2] dt-bindings: usb: Convert TI OMAP MUSB OTG controller and DWC3 USB Glue to DT schema Charan Pedumuru @ 2026-01-26 13:22 ` Charan Pedumuru 2026-01-26 16:06 ` Rob Herring 2026-01-26 13:22 ` [PATCH 2/2] dt-bindings: usb: ti,dwc3: " Charan Pedumuru 1 sibling, 1 reply; 7+ messages in thread From: Charan Pedumuru @ 2026-01-26 13:22 UTC (permalink / raw) To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Felipe Balbi Cc: linux-usb, devicetree, linux-kernel, Charan Pedumuru Convert OMAP MUSB USB OTG Controller binding to DT schema. Changes during conversion: - Introduce new compatible string patterns "am35x_otg_hs" and "usb_otg_hs" to properly match existing nodes already defined in the DT sources. - Include "interrupts" and "interrupt-names" properties in the YAML, as they are used by many in-tree DTS files. - Extend the "power" property to allow the value 150 (in addition to existing values), since this is present in several in-tree DTS examples. Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> --- .../devicetree/bindings/usb/ti,omap4-musb.yaml | 133 +++++++++++++++++++++ 1 file changed, 133 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml b/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml new file mode 100644 index 000000000000..16e95fe4c38d --- /dev/null +++ b/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml @@ -0,0 +1,133 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/ti,omap4-musb.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments OMAP MUSB USB OTG Controller + +maintainers: + - Felipe Balbi <balbi@ti.com + +description: + Texas Instruments glue layer for the Mentor Graphics MUSB OTG controller. + Handles SoC-specific integration including PHY interface bridging(ULPI/ + UTMI), interrupt aggregation, DMA engine coordination (internal/ + external), VBUS/session control via control module mailbox, and + clock/reset management. Provides fixed hardware configuration parameters + to the generic MUSB core driver. + +properties: + $nodename: + pattern: "^(am35x_otg_hs|usb_otg_hs|usb)@[0-9a-f]+$" + + compatible: + enum: + - ti,omap3-musb + - ti,omap4-musb + + reg: + maxItems: 1 + + ti,hwmods: + $ref: /schemas/types.yaml#/definitions/string + description: + Specifies the name of the TI PRCM (Power, Reset and Clock Management) + hardware module that must be enabled (powered and clocked) for this + device node to operate. The value "usb_otg_hs" refers to the USB + On-The-Go High-Speed controller IP block. + const: usb_otg_hs + + interrupts: + minItems: 1 + maxItems: 2 + + interrupt-names: + minItems: 1 + maxItems: 2 + items: + enum: [mc, dma] + + multipoint: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Indicates the MUSB controller supports multipoint. This is a MUSB + configuration-specific setting. + const: 1 + + num-eps: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Specifies the number of endpoints. This is a MUSB configuration + specific setting. + const: 16 + + ram-bits: + description: + Specifies the RAM address size. + const: 12 + + interface-type: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Describes the type of interface between the controller and the PHY. + 0 for ULPI, 1 for UTMI. + enum: [0, 1] + + mode: + $ref: /schemas/types.yaml#/definitions/uint32 + description: 1 for HOST, 2 for PERIPHERAL, 3 for OTG. + enum: [1, 2, 3] + + power: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Signifies the controller can supply up to 100mA when operating + in host mode. + enum: [50, 150] + + phys: + maxItems: 1 + + phy-names: + const: usb2-phy + + usb-phy: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: Phandle for the PHY device. + deprecated: true + + ctrl-module: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle of the control module this glue uses to write to mailbox. + +required: + - reg + - compatible + - interrupts + - interrupt-names + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + usb_otg_hs@4a0ab000 { + compatible = "ti,omap4-musb"; + reg = <0x4a0ab000 0x1000>; + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "mc", "dma"; + ti,hwmods = "usb_otg_hs"; + multipoint = <1>; + num-eps = <16>; + ram-bits = <12>; + ctrl-module = <&omap_control_usb>; + phys = <&usb2_phy>; + phy-names = "usb2-phy"; + interface-type = <1>; + mode = <3>; + power = <50>; + }; +... -- 2.52.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert to DT schema 2026-01-26 13:22 ` [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert " Charan Pedumuru @ 2026-01-26 16:06 ` Rob Herring 2026-01-27 15:26 ` Charan Pedumuru 0 siblings, 1 reply; 7+ messages in thread From: Rob Herring @ 2026-01-26 16:06 UTC (permalink / raw) To: Charan Pedumuru Cc: Greg Kroah-Hartman, Krzysztof Kozlowski, Conor Dooley, Felipe Balbi, linux-usb, devicetree, linux-kernel On Mon, Jan 26, 2026 at 01:22:04PM +0000, Charan Pedumuru wrote: > Convert OMAP MUSB USB OTG Controller binding to DT schema. > Changes during conversion: > - Introduce new compatible string patterns "am35x_otg_hs" and "usb_otg_hs" > to properly match existing nodes already defined in the DT sources. > - Include "interrupts" and "interrupt-names" properties in the YAML, as > they are used by many in-tree DTS files. > - Extend the "power" property to allow the value 150 (in addition to > existing values), since this is present in several in-tree DTS examples. > > Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> > --- > .../devicetree/bindings/usb/ti,omap4-musb.yaml | 133 +++++++++++++++++++++ > 1 file changed, 133 insertions(+) > > diff --git a/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml b/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml > new file mode 100644 > index 000000000000..16e95fe4c38d > --- /dev/null > +++ b/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml > @@ -0,0 +1,133 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/usb/ti,omap4-musb.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Texas Instruments OMAP MUSB USB OTG Controller > + > +maintainers: > + - Felipe Balbi <balbi@ti.com Missing '>' > + > +description: > + Texas Instruments glue layer for the Mentor Graphics MUSB OTG controller. > + Handles SoC-specific integration including PHY interface bridging(ULPI/ > + UTMI), interrupt aggregation, DMA engine coordination (internal/ > + external), VBUS/session control via control module mailbox, and > + clock/reset management. Provides fixed hardware configuration parameters > + to the generic MUSB core driver. > + > +properties: > + $nodename: > + pattern: "^(am35x_otg_hs|usb_otg_hs|usb)@[0-9a-f]+$" Again, do not document non-standard names. That's anything not in the DT spec. > + > + compatible: > + enum: > + - ti,omap3-musb > + - ti,omap4-musb > + > + reg: > + maxItems: 1 > + > + ti,hwmods: > + $ref: /schemas/types.yaml#/definitions/string > + description: > + Specifies the name of the TI PRCM (Power, Reset and Clock Management) > + hardware module that must be enabled (powered and clocked) for this > + device node to operate. The value "usb_otg_hs" refers to the USB > + On-The-Go High-Speed controller IP block. > + const: usb_otg_hs deprecated: true (I think we want that everywhere?) Actually, looks like only omap2430 sets this, but that's not covered by this schema. Unless you need to add "ti,omap2-musb"? > + > + interrupts: > + minItems: 1 > + maxItems: 2 > + > + interrupt-names: > + minItems: 1 > + maxItems: 2 > + items: > + enum: [mc, dma] I would assume only 'dma' is optional? Does this work?: items: - const: mc - const: dma > + > + multipoint: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Indicates the MUSB controller supports multipoint. This is a MUSB > + configuration-specific setting. > + const: 1 > + > + num-eps: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Specifies the number of endpoints. This is a MUSB configuration > + specific setting. > + const: 16 > + > + ram-bits: > + description: > + Specifies the RAM address size. > + const: 12 > + > + interface-type: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Describes the type of interface between the controller and the PHY. > + 0 for ULPI, 1 for UTMI. > + enum: [0, 1] > + > + mode: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: 1 for HOST, 2 for PERIPHERAL, 3 for OTG. > + enum: [1, 2, 3] > + > + power: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Signifies the controller can supply up to 100mA when operating > + in host mode. > + enum: [50, 150] Which value corresponds to 100mA? > + > + phys: > + maxItems: 1 > + > + phy-names: > + const: usb2-phy > + > + usb-phy: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: Phandle for the PHY device. > + deprecated: true > + > + ctrl-module: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle of the control module this glue uses to write to mailbox. > + > +required: > + - reg > + - compatible > + - interrupts > + - interrupt-names > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + usb_otg_hs@4a0ab000 { usb@... > + compatible = "ti,omap4-musb"; > + reg = <0x4a0ab000 0x1000>; > + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "mc", "dma"; > + ti,hwmods = "usb_otg_hs"; > + multipoint = <1>; > + num-eps = <16>; > + ram-bits = <12>; > + ctrl-module = <&omap_control_usb>; > + phys = <&usb2_phy>; > + phy-names = "usb2-phy"; > + interface-type = <1>; > + mode = <3>; > + power = <50>; > + }; > +... > > -- > 2.52.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert to DT schema 2026-01-26 16:06 ` Rob Herring @ 2026-01-27 15:26 ` Charan Pedumuru 0 siblings, 0 replies; 7+ messages in thread From: Charan Pedumuru @ 2026-01-27 15:26 UTC (permalink / raw) To: Rob Herring Cc: Greg Kroah-Hartman, Krzysztof Kozlowski, Conor Dooley, Felipe Balbi, linux-usb, devicetree, linux-kernel On 26-01-2026 21:36, Rob Herring wrote: > On Mon, Jan 26, 2026 at 01:22:04PM +0000, Charan Pedumuru wrote: >> Convert OMAP MUSB USB OTG Controller binding to DT schema. >> Changes during conversion: >> - Introduce new compatible string patterns "am35x_otg_hs" and "usb_otg_hs" >> to properly match existing nodes already defined in the DT sources. >> - Include "interrupts" and "interrupt-names" properties in the YAML, as >> they are used by many in-tree DTS files. >> - Extend the "power" property to allow the value 150 (in addition to >> existing values), since this is present in several in-tree DTS examples. >> >> Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> >> --- >> .../devicetree/bindings/usb/ti,omap4-musb.yaml | 133 +++++++++++++++++++++ >> 1 file changed, 133 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml b/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml >> new file mode 100644 >> index 000000000000..16e95fe4c38d >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/usb/ti,omap4-musb.yaml >> @@ -0,0 +1,133 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/usb/ti,omap4-musb.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Texas Instruments OMAP MUSB USB OTG Controller >> + >> +maintainers: >> + - Felipe Balbi <balbi@ti.com > > Missing '>' Yeah, I missed it, will add in the next rev. > >> + >> +description: >> + Texas Instruments glue layer for the Mentor Graphics MUSB OTG controller. >> + Handles SoC-specific integration including PHY interface bridging(ULPI/ >> + UTMI), interrupt aggregation, DMA engine coordination (internal/ >> + external), VBUS/session control via control module mailbox, and >> + clock/reset management. Provides fixed hardware configuration parameters >> + to the generic MUSB core driver. >> + >> +properties: >> + $nodename: >> + pattern: "^(am35x_otg_hs|usb_otg_hs|usb)@[0-9a-f]+$" > > Again, do not document non-standard names. That's anything not in the DT > spec. Sure, I will remove pattern entirely. > >> + >> + compatible: >> + enum: >> + - ti,omap3-musb >> + - ti,omap4-musb >> + >> + reg: >> + maxItems: 1 >> + >> + ti,hwmods: >> + $ref: /schemas/types.yaml#/definitions/string >> + description: >> + Specifies the name of the TI PRCM (Power, Reset and Clock Management) >> + hardware module that must be enabled (powered and clocked) for this >> + device node to operate. The value "usb_otg_hs" refers to the USB >> + On-The-Go High-Speed controller IP block. >> + const: usb_otg_hs > > deprecated: true > > (I think we want that everywhere?) > > Actually, looks like only omap2430 sets this, but that's not covered by > this schema. Unless you need to add "ti,omap2-musb"? Okay, in that case I will drop the property. > >> + >> + interrupts: >> + minItems: 1 >> + maxItems: 2 >> + >> + interrupt-names: >> + minItems: 1 >> + maxItems: 2 >> + items: >> + enum: [mc, dma] > > I would assume only 'dma' is optional? Does this work?: > > items: > - const: mc > - const: dma Yes, this works. > >> + >> + multipoint: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Indicates the MUSB controller supports multipoint. This is a MUSB >> + configuration-specific setting. >> + const: 1 >> + >> + num-eps: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Specifies the number of endpoints. This is a MUSB configuration >> + specific setting. >> + const: 16 >> + >> + ram-bits: >> + description: >> + Specifies the RAM address size. >> + const: 12 >> + >> + interface-type: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Describes the type of interface between the controller and the PHY. >> + 0 for ULPI, 1 for UTMI. >> + enum: [0, 1] >> + >> + mode: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: 1 for HOST, 2 for PERIPHERAL, 3 for OTG. >> + enum: [1, 2, 3] >> + >> + power: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Signifies the controller can supply up to 100mA when operating >> + in host mode. >> + enum: [50, 150] > > Which value corresponds to 100mA? 50 corresponds to 100mA, I will add it to the description. > >> + >> + phys: >> + maxItems: 1 >> + >> + phy-names: >> + const: usb2-phy >> + >> + usb-phy: >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + description: Phandle for the PHY device. >> + deprecated: true >> + >> + ctrl-module: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: >> + Phandle of the control module this glue uses to write to mailbox. >> + >> +required: >> + - reg >> + - compatible >> + - interrupts >> + - interrupt-names >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + usb_otg_hs@4a0ab000 { > > usb@... Okay. > >> + compatible = "ti,omap4-musb"; >> + reg = <0x4a0ab000 0x1000>; >> + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; >> + interrupt-names = "mc", "dma"; >> + ti,hwmods = "usb_otg_hs"; >> + multipoint = <1>; >> + num-eps = <16>; >> + ram-bits = <12>; >> + ctrl-module = <&omap_control_usb>; >> + phys = <&usb2_phy>; >> + phy-names = "usb2-phy"; >> + interface-type = <1>; >> + mode = <3>; >> + power = <50>; >> + }; >> +... >> >> -- >> 2.52.0 >> -- Best Regards, Charan. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] dt-bindings: usb: ti,dwc3: convert to DT schema 2026-01-26 13:22 [PATCH 0/2] dt-bindings: usb: Convert TI OMAP MUSB OTG controller and DWC3 USB Glue to DT schema Charan Pedumuru 2026-01-26 13:22 ` [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert " Charan Pedumuru @ 2026-01-26 13:22 ` Charan Pedumuru 2026-01-26 16:08 ` Rob Herring 1 sibling, 1 reply; 7+ messages in thread From: Charan Pedumuru @ 2026-01-26 13:22 UTC (permalink / raw) To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Felipe Balbi Cc: linux-usb, devicetree, linux-kernel, Charan Pedumuru Convert OMAP DWC3 USB Glue Layer binding to DT schema. Changes during conversion: - Introduce a new compatible string pattern "omap_dwc3" to match nodes already present in existing device tree sources. Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> --- Documentation/devicetree/bindings/usb/omap-usb.txt | 80 --------------- Documentation/devicetree/bindings/usb/ti,dwc3.yaml | 112 +++++++++++++++++++++ 2 files changed, 112 insertions(+), 80 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt deleted file mode 100644 index f0dbc5ae45ae..000000000000 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ /dev/null @@ -1,80 +0,0 @@ -OMAP GLUE AND OTHER OMAP SPECIFIC COMPONENTS - -OMAP MUSB GLUE - - compatible : Should be "ti,omap4-musb" or "ti,omap3-musb" - - ti,hwmods : must be "usb_otg_hs" - - multipoint : Should be "1" indicating the musb controller supports - multipoint. This is a MUSB configuration-specific setting. - - num-eps : Specifies the number of endpoints. This is also a - MUSB configuration-specific setting. Should be set to "16" - - ram-bits : Specifies the ram address size. Should be set to "12" - - interface-type : This is a board specific setting to describe the type of - interface between the controller and the phy. It should be "0" or "1" - specifying ULPI and UTMI respectively. - - mode : Should be "3" to represent OTG. "1" signifies HOST and "2" - represents PERIPHERAL. - - power : Should be "50". This signifies the controller can supply up to - 100mA when operating in host mode. - - usb-phy : the phandle for the PHY device - - phys : the phandle for the PHY device (used by generic PHY framework) - - phy-names : the names of the PHY corresponding to the PHYs present in the - *phy* phandle. - -Optional properties: - - ctrl-module : phandle of the control module this glue uses to write to - mailbox - -SOC specific device node entry -usb_otg_hs: usb_otg_hs@4a0ab000 { - compatible = "ti,omap4-musb"; - ti,hwmods = "usb_otg_hs"; - multipoint = <1>; - num-eps = <16>; - ram-bits = <12>; - ctrl-module = <&omap_control_usb>; - phys = <&usb2_phy>; - phy-names = "usb2-phy"; -}; - -Board specific device node entry -&usb_otg_hs { - interface-type = <1>; - mode = <3>; - power = <50>; -}; - -OMAP DWC3 GLUE - - compatible : Should be - * "ti,dwc3" for OMAP5 and DRA7 - * "ti,am437x-dwc3" for AM437x - - ti,hwmods : Should be "usb_otg_ss" - - reg : Address and length of the register set for the device. - - interrupts : The irq number of this device that is used to interrupt the - MPU - - #address-cells, #size-cells : Must be present if the device has sub-nodes - - utmi-mode : controls the source of UTMI/PIPE status for VBUS and OTG ID. - It should be set to "1" for HW mode and "2" for SW mode. - - ranges: the child address space are mapped 1:1 onto the parent address space - -Optional Properties: - - extcon : phandle for the extcon device omap dwc3 uses to detect - connect/disconnect events. - - vbus-supply : phandle to the regulator device tree node if needed. - -Sub-nodes: -The dwc3 core should be added as subnode to omap dwc3 glue. -- dwc3 : - The binding details of dwc3 can be found in: - Documentation/devicetree/bindings/usb/snps,dwc3.yaml - -omap_dwc3 { - compatible = "ti,dwc3"; - ti,hwmods = "usb_otg_ss"; - reg = <0x4a020000 0x1ff>; - interrupts = <0 93 4>; - #address-cells = <1>; - #size-cells = <1>; - utmi-mode = <2>; - ranges; -}; - diff --git a/Documentation/devicetree/bindings/usb/ti,dwc3.yaml b/Documentation/devicetree/bindings/usb/ti,dwc3.yaml new file mode 100644 index 000000000000..859da4b1f207 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/ti,dwc3.yaml @@ -0,0 +1,112 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/ti,dwc3.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments OMAP DWC3 USB Glue Layer + +maintainers: + - Felipe Balbi <balbi@ti.com> + +description: + Texas Instruments glue layer for Synopsys DesignWare USB3 (DWC3) + controller on OMAP and AM43xx SoCs. Manages SoC-specific integration + including register mapping, interrupt routing, UTMI/PIPE interface mode + selection (HW/SW), and child DWC3 core instantiation via address space + translation. Supports both legacy single-instance and multi-instance + (numbered) configurations. + +properties: + $nodename: + pattern: "^omap_dwc3(_[0-9]+)?@.*$" + + compatible: + enum: + - ti,dwc3 + - ti,am437x-dwc3 + + ti,hwmods: + $ref: /schemas/types.yaml#/definitions/string + description: + TI PRCM hardware module name that must be enabled (powered and + clocked) for this node. "usb_otg_ss" refers to the SuperSpeed + (USB3 + USB2 OTG) controller wrapper/glue layer found in OMAP5, + DRA7, AM57x, and similar TI SoCs using DWC3. + const: usb_otg_ss + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + utmi-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Controls the source of UTMI/PIPE status for VBUS and OTG ID. + 1 for HW mode, 2 for SW mode. + enum: [1, 2] + + "#address-cells": + const: 1 + + "#size-cells": + const: 1 + + ranges: true + + extcon: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle for the extcon device used to detect connect/ + disconnect events. + + vbus-supply: + description: Phandle to the regulator device tree node if needed. + +patternProperties: + "^usb@[0-9a-f]+$": + type: object + $ref: snps,dwc3.yaml# + unevaluatedProperties: false + +required: + - reg + - compatible + - interrupts + - "#address-cells" + - "#size-cells" + - utmi-mode + - ranges + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + omap_dwc3_1@0 { + compatible = "ti,dwc3"; + reg = <0x0 0x10000>; + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; + #address-cells = <1>; + #size-cells = <1>; + utmi-mode = <2>; + ranges = <0 0 0x20000>; + + usb@10000 { + compatible = "snps,dwc3"; + reg = <0x10000 0x17000>; + interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "peripheral", "host", "otg"; + phys = <&usb2_phy1>, <&usb3_phy1>; + phy-names = "usb2-phy", "usb3-phy"; + maximum-speed = "super-speed"; + dr_mode = "otg"; + snps,dis_u3_susphy_quirk; + snps,dis_u2_susphy_quirk; + }; + }; +... -- 2.52.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] dt-bindings: usb: ti,dwc3: convert to DT schema 2026-01-26 13:22 ` [PATCH 2/2] dt-bindings: usb: ti,dwc3: " Charan Pedumuru @ 2026-01-26 16:08 ` Rob Herring 2026-01-27 15:04 ` Charan Pedumuru 0 siblings, 1 reply; 7+ messages in thread From: Rob Herring @ 2026-01-26 16:08 UTC (permalink / raw) To: Charan Pedumuru Cc: Greg Kroah-Hartman, Krzysztof Kozlowski, Conor Dooley, Felipe Balbi, linux-usb, devicetree, linux-kernel On Mon, Jan 26, 2026 at 01:22:05PM +0000, Charan Pedumuru wrote: > Convert OMAP DWC3 USB Glue Layer binding to DT schema. > Changes during conversion: > - Introduce a new compatible string pattern "omap_dwc3" to match nodes > already present in existing device tree sources. > > Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> > --- > Documentation/devicetree/bindings/usb/omap-usb.txt | 80 --------------- > Documentation/devicetree/bindings/usb/ti,dwc3.yaml | 112 +++++++++++++++++++++ > 2 files changed, 112 insertions(+), 80 deletions(-) > > diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt > deleted file mode 100644 > index f0dbc5ae45ae..000000000000 > --- a/Documentation/devicetree/bindings/usb/omap-usb.txt > +++ /dev/null > @@ -1,80 +0,0 @@ > -OMAP GLUE AND OTHER OMAP SPECIFIC COMPONENTS > - > -OMAP MUSB GLUE > - - compatible : Should be "ti,omap4-musb" or "ti,omap3-musb" > - - ti,hwmods : must be "usb_otg_hs" > - - multipoint : Should be "1" indicating the musb controller supports > - multipoint. This is a MUSB configuration-specific setting. > - - num-eps : Specifies the number of endpoints. This is also a > - MUSB configuration-specific setting. Should be set to "16" > - - ram-bits : Specifies the ram address size. Should be set to "12" > - - interface-type : This is a board specific setting to describe the type of > - interface between the controller and the phy. It should be "0" or "1" > - specifying ULPI and UTMI respectively. > - - mode : Should be "3" to represent OTG. "1" signifies HOST and "2" > - represents PERIPHERAL. > - - power : Should be "50". This signifies the controller can supply up to > - 100mA when operating in host mode. > - - usb-phy : the phandle for the PHY device > - - phys : the phandle for the PHY device (used by generic PHY framework) > - - phy-names : the names of the PHY corresponding to the PHYs present in the > - *phy* phandle. > - > -Optional properties: > - - ctrl-module : phandle of the control module this glue uses to write to > - mailbox > - > -SOC specific device node entry > -usb_otg_hs: usb_otg_hs@4a0ab000 { > - compatible = "ti,omap4-musb"; > - ti,hwmods = "usb_otg_hs"; > - multipoint = <1>; > - num-eps = <16>; > - ram-bits = <12>; > - ctrl-module = <&omap_control_usb>; > - phys = <&usb2_phy>; > - phy-names = "usb2-phy"; > -}; > - > -Board specific device node entry > -&usb_otg_hs { > - interface-type = <1>; > - mode = <3>; > - power = <50>; > -}; > - > -OMAP DWC3 GLUE > - - compatible : Should be > - * "ti,dwc3" for OMAP5 and DRA7 > - * "ti,am437x-dwc3" for AM437x > - - ti,hwmods : Should be "usb_otg_ss" > - - reg : Address and length of the register set for the device. > - - interrupts : The irq number of this device that is used to interrupt the > - MPU > - - #address-cells, #size-cells : Must be present if the device has sub-nodes > - - utmi-mode : controls the source of UTMI/PIPE status for VBUS and OTG ID. > - It should be set to "1" for HW mode and "2" for SW mode. > - - ranges: the child address space are mapped 1:1 onto the parent address space > - > -Optional Properties: > - - extcon : phandle for the extcon device omap dwc3 uses to detect > - connect/disconnect events. > - - vbus-supply : phandle to the regulator device tree node if needed. > - > -Sub-nodes: > -The dwc3 core should be added as subnode to omap dwc3 glue. > -- dwc3 : > - The binding details of dwc3 can be found in: > - Documentation/devicetree/bindings/usb/snps,dwc3.yaml > - > -omap_dwc3 { > - compatible = "ti,dwc3"; > - ti,hwmods = "usb_otg_ss"; > - reg = <0x4a020000 0x1ff>; > - interrupts = <0 93 4>; > - #address-cells = <1>; > - #size-cells = <1>; > - utmi-mode = <2>; > - ranges; > -}; > - > diff --git a/Documentation/devicetree/bindings/usb/ti,dwc3.yaml b/Documentation/devicetree/bindings/usb/ti,dwc3.yaml > new file mode 100644 > index 000000000000..859da4b1f207 > --- /dev/null > +++ b/Documentation/devicetree/bindings/usb/ti,dwc3.yaml > @@ -0,0 +1,112 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/usb/ti,dwc3.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Texas Instruments OMAP DWC3 USB Glue Layer > + > +maintainers: > + - Felipe Balbi <balbi@ti.com> > + > +description: > + Texas Instruments glue layer for Synopsys DesignWare USB3 (DWC3) > + controller on OMAP and AM43xx SoCs. Manages SoC-specific integration > + including register mapping, interrupt routing, UTMI/PIPE interface mode > + selection (HW/SW), and child DWC3 core instantiation via address space > + translation. Supports both legacy single-instance and multi-instance > + (numbered) configurations. > + > +properties: > + $nodename: > + pattern: "^omap_dwc3(_[0-9]+)?@.*$" Drop. > + > + compatible: > + enum: > + - ti,dwc3 > + - ti,am437x-dwc3 > + > + ti,hwmods: > + $ref: /schemas/types.yaml#/definitions/string > + description: > + TI PRCM hardware module name that must be enabled (powered and > + clocked) for this node. "usb_otg_ss" refers to the SuperSpeed > + (USB3 + USB2 OTG) controller wrapper/glue layer found in OMAP5, > + DRA7, AM57x, and similar TI SoCs using DWC3. > + const: usb_otg_ss Drop. Not used anywhere. > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + utmi-mode: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Controls the source of UTMI/PIPE status for VBUS and OTG ID. > + 1 for HW mode, 2 for SW mode. > + enum: [1, 2] > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 1 > + > + ranges: true > + > + extcon: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Phandle for the extcon device used to detect connect/ > + disconnect events. > + > + vbus-supply: > + description: Phandle to the regulator device tree node if needed. > + > +patternProperties: > + "^usb@[0-9a-f]+$": > + type: object > + $ref: snps,dwc3.yaml# > + unevaluatedProperties: false > + > +required: > + - reg > + - compatible > + - interrupts > + - "#address-cells" > + - "#size-cells" > + - utmi-mode > + - ranges > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + omap_dwc3_1@0 { > + compatible = "ti,dwc3"; > + reg = <0x0 0x10000>; > + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; > + #address-cells = <1>; > + #size-cells = <1>; > + utmi-mode = <2>; > + ranges = <0 0 0x20000>; > + > + usb@10000 { > + compatible = "snps,dwc3"; > + reg = <0x10000 0x17000>; > + interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "peripheral", "host", "otg"; > + phys = <&usb2_phy1>, <&usb3_phy1>; > + phy-names = "usb2-phy", "usb3-phy"; > + maximum-speed = "super-speed"; > + dr_mode = "otg"; > + snps,dis_u3_susphy_quirk; > + snps,dis_u2_susphy_quirk; > + }; > + }; > +... > > -- > 2.52.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] dt-bindings: usb: ti,dwc3: convert to DT schema 2026-01-26 16:08 ` Rob Herring @ 2026-01-27 15:04 ` Charan Pedumuru 0 siblings, 0 replies; 7+ messages in thread From: Charan Pedumuru @ 2026-01-27 15:04 UTC (permalink / raw) To: Rob Herring Cc: Greg Kroah-Hartman, Krzysztof Kozlowski, Conor Dooley, Felipe Balbi, linux-usb, devicetree, linux-kernel On 26-01-2026 21:38, Rob Herring wrote: > On Mon, Jan 26, 2026 at 01:22:05PM +0000, Charan Pedumuru wrote: >> Convert OMAP DWC3 USB Glue Layer binding to DT schema. >> Changes during conversion: >> - Introduce a new compatible string pattern "omap_dwc3" to match nodes >> already present in existing device tree sources. >> >> Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com> >> --- >> Documentation/devicetree/bindings/usb/omap-usb.txt | 80 --------------- >> Documentation/devicetree/bindings/usb/ti,dwc3.yaml | 112 +++++++++++++++++++++ >> 2 files changed, 112 insertions(+), 80 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt >> deleted file mode 100644 >> index f0dbc5ae45ae..000000000000 >> --- a/Documentation/devicetree/bindings/usb/omap-usb.txt >> +++ /dev/null >> @@ -1,80 +0,0 @@ >> -OMAP GLUE AND OTHER OMAP SPECIFIC COMPONENTS >> - >> -OMAP MUSB GLUE >> - - compatible : Should be "ti,omap4-musb" or "ti,omap3-musb" >> - - ti,hwmods : must be "usb_otg_hs" >> - - multipoint : Should be "1" indicating the musb controller supports >> - multipoint. This is a MUSB configuration-specific setting. >> - - num-eps : Specifies the number of endpoints. This is also a >> - MUSB configuration-specific setting. Should be set to "16" >> - - ram-bits : Specifies the ram address size. Should be set to "12" >> - - interface-type : This is a board specific setting to describe the type of >> - interface between the controller and the phy. It should be "0" or "1" >> - specifying ULPI and UTMI respectively. >> - - mode : Should be "3" to represent OTG. "1" signifies HOST and "2" >> - represents PERIPHERAL. >> - - power : Should be "50". This signifies the controller can supply up to >> - 100mA when operating in host mode. >> - - usb-phy : the phandle for the PHY device >> - - phys : the phandle for the PHY device (used by generic PHY framework) >> - - phy-names : the names of the PHY corresponding to the PHYs present in the >> - *phy* phandle. >> - >> -Optional properties: >> - - ctrl-module : phandle of the control module this glue uses to write to >> - mailbox >> - >> -SOC specific device node entry >> -usb_otg_hs: usb_otg_hs@4a0ab000 { >> - compatible = "ti,omap4-musb"; >> - ti,hwmods = "usb_otg_hs"; >> - multipoint = <1>; >> - num-eps = <16>; >> - ram-bits = <12>; >> - ctrl-module = <&omap_control_usb>; >> - phys = <&usb2_phy>; >> - phy-names = "usb2-phy"; >> -}; >> - >> -Board specific device node entry >> -&usb_otg_hs { >> - interface-type = <1>; >> - mode = <3>; >> - power = <50>; >> -}; >> - >> -OMAP DWC3 GLUE >> - - compatible : Should be >> - * "ti,dwc3" for OMAP5 and DRA7 >> - * "ti,am437x-dwc3" for AM437x >> - - ti,hwmods : Should be "usb_otg_ss" >> - - reg : Address and length of the register set for the device. >> - - interrupts : The irq number of this device that is used to interrupt the >> - MPU >> - - #address-cells, #size-cells : Must be present if the device has sub-nodes >> - - utmi-mode : controls the source of UTMI/PIPE status for VBUS and OTG ID. >> - It should be set to "1" for HW mode and "2" for SW mode. >> - - ranges: the child address space are mapped 1:1 onto the parent address space >> - >> -Optional Properties: >> - - extcon : phandle for the extcon device omap dwc3 uses to detect >> - connect/disconnect events. >> - - vbus-supply : phandle to the regulator device tree node if needed. >> - >> -Sub-nodes: >> -The dwc3 core should be added as subnode to omap dwc3 glue. >> -- dwc3 : >> - The binding details of dwc3 can be found in: >> - Documentation/devicetree/bindings/usb/snps,dwc3.yaml >> - >> -omap_dwc3 { >> - compatible = "ti,dwc3"; >> - ti,hwmods = "usb_otg_ss"; >> - reg = <0x4a020000 0x1ff>; >> - interrupts = <0 93 4>; >> - #address-cells = <1>; >> - #size-cells = <1>; >> - utmi-mode = <2>; >> - ranges; >> -}; >> - >> diff --git a/Documentation/devicetree/bindings/usb/ti,dwc3.yaml b/Documentation/devicetree/bindings/usb/ti,dwc3.yaml >> new file mode 100644 >> index 000000000000..859da4b1f207 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/usb/ti,dwc3.yaml >> @@ -0,0 +1,112 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/usb/ti,dwc3.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Texas Instruments OMAP DWC3 USB Glue Layer >> + >> +maintainers: >> + - Felipe Balbi <balbi@ti.com> >> + >> +description: >> + Texas Instruments glue layer for Synopsys DesignWare USB3 (DWC3) >> + controller on OMAP and AM43xx SoCs. Manages SoC-specific integration >> + including register mapping, interrupt routing, UTMI/PIPE interface mode >> + selection (HW/SW), and child DWC3 core instantiation via address space >> + translation. Supports both legacy single-instance and multi-instance >> + (numbered) configurations. >> + >> +properties: >> + $nodename: >> + pattern: "^omap_dwc3(_[0-9]+)?@.*$" > > Drop. Sure. > >> + >> + compatible: >> + enum: >> + - ti,dwc3 >> + - ti,am437x-dwc3 >> + >> + ti,hwmods: >> + $ref: /schemas/types.yaml#/definitions/string >> + description: >> + TI PRCM hardware module name that must be enabled (powered and >> + clocked) for this node. "usb_otg_ss" refers to the SuperSpeed >> + (USB3 + USB2 OTG) controller wrapper/glue layer found in OMAP5, >> + DRA7, AM57x, and similar TI SoCs using DWC3. >> + const: usb_otg_ss > > Drop. Not used anywhere. Okay. > >> + >> + reg: >> + maxItems: 1 >> + >> + interrupts: >> + maxItems: 1 >> + >> + utmi-mode: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Controls the source of UTMI/PIPE status for VBUS and OTG ID. >> + 1 for HW mode, 2 for SW mode. >> + enum: [1, 2] >> + >> + "#address-cells": >> + const: 1 >> + >> + "#size-cells": >> + const: 1 >> + >> + ranges: true >> + >> + extcon: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: >> + Phandle for the extcon device used to detect connect/ >> + disconnect events. >> + >> + vbus-supply: >> + description: Phandle to the regulator device tree node if needed. >> + >> +patternProperties: >> + "^usb@[0-9a-f]+$": >> + type: object >> + $ref: snps,dwc3.yaml# >> + unevaluatedProperties: false >> + >> +required: >> + - reg >> + - compatible >> + - interrupts >> + - "#address-cells" >> + - "#size-cells" >> + - utmi-mode >> + - ranges >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + omap_dwc3_1@0 { >> + compatible = "ti,dwc3"; >> + reg = <0x0 0x10000>; >> + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + utmi-mode = <2>; >> + ranges = <0 0 0x20000>; >> + >> + usb@10000 { >> + compatible = "snps,dwc3"; >> + reg = <0x10000 0x17000>; >> + interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; >> + interrupt-names = "peripheral", "host", "otg"; >> + phys = <&usb2_phy1>, <&usb3_phy1>; >> + phy-names = "usb2-phy", "usb3-phy"; >> + maximum-speed = "super-speed"; >> + dr_mode = "otg"; >> + snps,dis_u3_susphy_quirk; >> + snps,dis_u2_susphy_quirk; >> + }; >> + }; >> +... >> >> -- >> 2.52.0 >> -- Best Regards, Charan. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-01-27 15:26 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-01-26 13:22 [PATCH 0/2] dt-bindings: usb: Convert TI OMAP MUSB OTG controller and DWC3 USB Glue to DT schema Charan Pedumuru 2026-01-26 13:22 ` [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert " Charan Pedumuru 2026-01-26 16:06 ` Rob Herring 2026-01-27 15:26 ` Charan Pedumuru 2026-01-26 13:22 ` [PATCH 2/2] dt-bindings: usb: ti,dwc3: " Charan Pedumuru 2026-01-26 16:08 ` Rob Herring 2026-01-27 15:04 ` Charan Pedumuru
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox