[PATCH v2 4/7] dt-bindings: usb: ti,musb-am33xx: Convert to DT schema
Bhargav Joshi <[email protected]>
| Newsgroups | org.infradead.lists.linux-phy,org.kernel.vger.dmaengine,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-omap,org.kernel.vger.linux-usb |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- .../devicetree/bindings/usb/am33xx-usb.txt | 25 ----- .../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 <[email protected]> + - Ajay Kumar Gupta <[email protected]> + +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"; + }; + -- 2.55.0 -- linux-phy mailing list [email protected] https://lists.infradead.org/mailman/listinfo/linux-phy