diff options
| author | Bhargav Joshi <j.bhargav.u@gmail.com> | 2026-09-01 04:53:07 +0530 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-09-10 14:50:30 +0200 |
| commit | 1c09fe2edad271cb0e1e8c71c2e66a414be7ece8 (patch) | |
| tree | 4c8c8b1c719d035becc7d027acbbaff04b103473 | |
| parent | 267e31adc4831b7c59daa88869e78a08c64af25b (diff) | |
| download | linux-next-1c09fe2edad271cb0e1e8c71c2e66a414be7ece8.tar.gz linux-next-1c09fe2edad271cb0e1e8c71c2e66a414be7ece8.zip | |
dt-bindings: usb: ti,musb-am33xx: Convert to DT schema
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.
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Bhargav Joshi <j.bhargav.u@gmail.com>
Link: https://patch.msgid.link/20260901-ti-am33-usb-v3-3-5e15c617d2e9@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | Documentation/devicetree/bindings/usb/am33xx-usb.txt | 25 | ||||
| -rw-r--r-- | Documentation/devicetree/bindings/usb/ti,musb-am33xx.yaml | 113 |
2 files changed, 113 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..cc01edc75d11 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/ti,musb-am33xx.yaml @@ -0,0 +1,113 @@ +# 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@ti.com> + - Ajay Kumar Gupta <ajay.gupta@ti.com> + +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 + items: + pattern: "^(rx|tx)([1-9]|1[0-5])$" + + 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"; + }; + |
