Re: [PATCH 1/2] dt-bindings: usb: ti,omap4-musb: convert to DT schema
From: Rob Herring <robh@kernel.org>
Date: 2026-01-26 16:06:11
Also in:
linux-usb, lkml
On Mon, Jan 26, 2026 at 01:22:04PM +0000, Charan Pedumuru wrote:
quoted hunk ↗ jump to hunk
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 <redacted> --- .../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