[PATCH 4/7] dt-bindings: usb: ti,musb-am33xx: Convert to DT schema
From: Bhargav Joshi
Date: Mon Aug 17 2026 - 17:48:20 EST
Convert the TI AM33xx MUSB text bindings to DT schema.
Changes during conversion:
- Allow an optional vbus interrupt used in am335x-bone-common.
- Add the interface-type and phy-names properties natively used by the
dm816x hardware.
- Allow 0 or 1 for mentor,multipoint. While the text binding mandated 1,
the Mentor USB IP natively supports both single and multipoint
configurations as used in existing DTS.
Signed-off-by: Bhargav Joshi <j.bhargav.u@xxxxxxxxx>
---
.../devicetree/bindings/usb/am33xx-usb.txt | 25 -----
.../devicetree/bindings/usb/ti,musb-am33xx.yaml | 111 +++++++++++++++++++++
2 files changed, 111 insertions(+), 25 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
index 8832843c7d7c..5973f88bcc65 100644
--- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt
+++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
@@ -17,31 +17,6 @@ Reset module
- reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for
the USB wake up control register.
-USB
-~~~
-- compatible: ti,musb-am33xx
-- reg: offset and length of "USB Controller Registers", and offset and
- length of "USB Core" register space.
-- reg-names: control for the ""USB Controller Registers" and "mc" for
- "USB Core" register space
-- interrupts: USB interrupt number
-- interrupt-names: mc
-- dr_mode: Should be one of "host", "peripheral" or "otg".
-- mentor,multipoint: Should be "1" indicating the musb controller supports
- multipoint. This is a MUSB configuration-specific setting.
-- mentor,num-eps: Specifies the number of endpoints. This is also a
- MUSB configuration-specific setting. Should be set to "16"
-- mentor,ram-bits: Specifies the ram address size. Should be set to "12"
-- mentor,power: Should be "500". This signifies the controller can supply up to
- 500mA when operating in host mode.
-- phys: reference to the USB phy
-- dmas: specifies the dma channels
-- dma-names: specifies the names of the channels. Use "rxN" for receive
- and "txN" for transmit endpoints. N specifies the endpoint number.
-
-The controller should have an "usb" alias numbered properly in the alias
-node.
-
Example:
~~~~~~~~
The following example contains all the nodes as used on am335x-evm:
diff --git a/Documentation/devicetree/bindings/usb/ti,musb-am33xx.yaml b/Documentation/devicetree/bindings/usb/ti,musb-am33xx.yaml
new file mode 100644
index 000000000000..05909d5ca3d2
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ti,musb-am33xx.yaml
@@ -0,0 +1,111 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/ti,musb-am33xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI AM33xx/DM816 MUSB
+
+maintainers:
+ - Ravi B <ravibabu@xxxxxx>
+ - Ajay Kumar Gupta <ajay.gupta@xxxxxx>
+
+allOf:
+ - $ref: /schemas/usb/usb-drd.yaml#
+
+properties:
+ compatible:
+ enum:
+ - ti,musb-am33xx
+ - ti,musb-dm816
+
+ reg:
+ maxItems: 2
+
+ reg-names:
+ items:
+ - const: mc
+ - const: control
+
+ interrupts:
+ minItems: 1
+ maxItems: 2
+
+ interrupt-names:
+ minItems: 1
+ items:
+ - const: mc
+ - const: vbus
+
+ mentor,multipoint:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Indicates the musb controller supports multipoint.
+ enum: [0, 1]
+
+ mentor,num-eps:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Specifies the number of endpoints.
+ const: 16
+
+ mentor,ram-bits:
+ description: Specifies the ram address size.
+ const: 12
+
+ mentor,power:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Controller supply capacity (in mA) when operating in host mode.
+ const: 500
+
+ phys:
+ maxItems: 1
+
+ dmas:
+ minItems: 1
+ maxItems: 30
+
+ dma-names:
+ minItems: 1
+ maxItems: 30
+
+ phy-names:
+ const: usb2-phy
+
+ interface-type:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Describes the type of interface between the controller and the PHY.
+ enum: [ 0, 1 ]
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - interrupts
+ - interrupt-names
+ - dr_mode
+ - mentor,multipoint
+ - mentor,num-eps
+ - mentor,ram-bits
+ - mentor,power
+ - phys
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ usb@47401000 {
+ compatible = "ti,musb-am33xx";
+ reg = <0x47401400 0x400>,
+ <0x47401000 0x200>;
+ reg-names = "mc", "control";
+ interrupts = <18>;
+ interrupt-names = "mc";
+ dr_mode = "otg";
+ mentor,multipoint = <1>;
+ mentor,num-eps = <16>;
+ mentor,ram-bits = <12>;
+ mentor,power = <500>;
+ phys = <&usb0_phy>;
+ dmas = <&cppi41dma 0 0 &cppi41dma 1 0>;
+ dma-names = "rx1", "tx1";
+ };
+
--
2.55.0