| # SPDX-License-Identifier: GPL-2.0 |
| %YAML 1.2 |
| --- |
| $id: "http://devicetree.org/schemas/usb/ti,j721e-usb.yaml#" |
| $schema: "http://devicetree.org/meta-schemas/core.yaml#" |
| |
| title: TI wrapper module for the Cadence USBSS-DRD controller |
| |
| maintainers: |
| - Roger Quadros <rogerq@kernel.org> |
| |
| properties: |
| compatible: |
| oneOf: |
| - const: ti,j721e-usb |
| - const: ti,am64-usb |
| - items: |
| - const: ti,j721e-usb |
| - const: ti,am64-usb |
| |
| reg: |
| maxItems: 1 |
| |
| ranges: true |
| |
| power-domains: |
| description: |
| PM domain provider node and an args specifier containing |
| the USB device id value. See, |
| Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml |
| maxItems: 1 |
| |
| clocks: |
| description: Clock phandles to usb2_refclk and lpm_clk |
| minItems: 2 |
| maxItems: 2 |
| |
| clock-names: |
| items: |
| - const: ref |
| - const: lpm |
| |
| ti,usb2-only: |
| description: |
| If present, it restricts the controller to USB2.0 mode of |
| operation. Must be present if USB3 PHY is not available |
| for USB. |
| type: boolean |
| |
| ti,vbus-divider: |
| description: |
| Should be present if USB VBUS line is connected to the |
| VBUS pin of the SoC via a 1/3 voltage divider. |
| type: boolean |
| |
| assigned-clocks: |
| maxItems: 1 |
| |
| assigned-clock-parents: |
| maxItems: 1 |
| |
| '#address-cells': |
| const: 2 |
| |
| '#size-cells': |
| const: 2 |
| |
| dma-coherent: true |
| |
| patternProperties: |
| "^usb@": |
| type: object |
| |
| required: |
| - compatible |
| - reg |
| - power-domains |
| - clocks |
| - clock-names |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/soc/ti,sci_pm_domain.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| bus { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| cdns_usb@4104000 { |
| compatible = "ti,j721e-usb"; |
| reg = <0x00 0x4104000 0x00 0x100>; |
| power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>; |
| clocks = <&k3_clks 288 15>, <&k3_clks 288 3>; |
| clock-names = "ref", "lpm"; |
| assigned-clocks = <&k3_clks 288 15>; /* USB2_REFCLK */ |
| assigned-clock-parents = <&k3_clks 288 16>; /* HFOSC0 */ |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| usb@6000000 { |
| compatible = "cdns,usb3"; |
| reg = <0x00 0x6000000 0x00 0x10000>, |
| <0x00 0x6010000 0x00 0x10000>, |
| <0x00 0x6020000 0x00 0x10000>; |
| reg-names = "otg", "xhci", "dev"; |
| interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */ |
| <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */ |
| <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; /* otgirq.0 */ |
| interrupt-names = "host", |
| "peripheral", |
| "otg"; |
| maximum-speed = "super-speed"; |
| dr_mode = "otg"; |
| }; |
| }; |
| }; |