xref: /freebsd/sys/contrib/device-tree/Bindings/usb/ti,j721e-usb.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/ti,j721e-usb.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: TI wrapper module for the Cadence USBSS-DRD controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10e67e8565SEmmanuel Vadot  - Roger Quadros <rogerq@kernel.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotproperties:
13c66ec88fSEmmanuel Vadot  compatible:
145def4c47SEmmanuel Vadot    oneOf:
15c66ec88fSEmmanuel Vadot      - const: ti,j721e-usb
165def4c47SEmmanuel Vadot      - items:
175def4c47SEmmanuel Vadot          - const: ti,am64-usb
18*b2d2a78aSEmmanuel Vadot          - const: ti,j721e-usb
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot  reg:
215def4c47SEmmanuel Vadot    maxItems: 1
225def4c47SEmmanuel Vadot
235def4c47SEmmanuel Vadot  ranges: true
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot  power-domains:
26c66ec88fSEmmanuel Vadot    description:
27c66ec88fSEmmanuel Vadot      PM domain provider node and an args specifier containing
28c66ec88fSEmmanuel Vadot      the USB device id value. See,
295956d97fSEmmanuel Vadot      Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
305def4c47SEmmanuel Vadot    maxItems: 1
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadot  clocks:
33c66ec88fSEmmanuel Vadot    description: Clock phandles to usb2_refclk and lpm_clk
34c66ec88fSEmmanuel Vadot    minItems: 2
35c66ec88fSEmmanuel Vadot    maxItems: 2
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot  clock-names:
38c66ec88fSEmmanuel Vadot    items:
39c66ec88fSEmmanuel Vadot      - const: ref
40c66ec88fSEmmanuel Vadot      - const: lpm
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  ti,usb2-only:
43c66ec88fSEmmanuel Vadot    description:
44c66ec88fSEmmanuel Vadot      If present, it restricts the controller to USB2.0 mode of
45c66ec88fSEmmanuel Vadot      operation. Must be present if USB3 PHY is not available
46c66ec88fSEmmanuel Vadot      for USB.
47c66ec88fSEmmanuel Vadot    type: boolean
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  ti,vbus-divider:
50c66ec88fSEmmanuel Vadot    description:
51c66ec88fSEmmanuel Vadot      Should be present if USB VBUS line is connected to the
52c66ec88fSEmmanuel Vadot      VBUS pin of the SoC via a 1/3 voltage divider.
53c66ec88fSEmmanuel Vadot    type: boolean
54c66ec88fSEmmanuel Vadot
556be33864SEmmanuel Vadot  '#address-cells':
566be33864SEmmanuel Vadot    const: 2
576be33864SEmmanuel Vadot
586be33864SEmmanuel Vadot  '#size-cells':
596be33864SEmmanuel Vadot    const: 2
606be33864SEmmanuel Vadot
615def4c47SEmmanuel Vadot  dma-coherent: true
625def4c47SEmmanuel Vadot
636be33864SEmmanuel VadotpatternProperties:
646be33864SEmmanuel Vadot  "^usb@":
656be33864SEmmanuel Vadot    type: object
666be33864SEmmanuel Vadot
67c66ec88fSEmmanuel Vadotrequired:
68c66ec88fSEmmanuel Vadot  - compatible
69c66ec88fSEmmanuel Vadot  - reg
70c66ec88fSEmmanuel Vadot  - power-domains
71c66ec88fSEmmanuel Vadot  - clocks
72c66ec88fSEmmanuel Vadot  - clock-names
73c66ec88fSEmmanuel Vadot
746be33864SEmmanuel VadotadditionalProperties: false
756be33864SEmmanuel Vadot
76c66ec88fSEmmanuel Vadotexamples:
77c66ec88fSEmmanuel Vadot  - |
78c66ec88fSEmmanuel Vadot    #include <dt-bindings/soc/ti,sci_pm_domain.h>
79c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot    bus {
82c66ec88fSEmmanuel Vadot        #address-cells = <2>;
83c66ec88fSEmmanuel Vadot        #size-cells = <2>;
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot        cdns_usb@4104000 {
86c66ec88fSEmmanuel Vadot            compatible = "ti,j721e-usb";
87c66ec88fSEmmanuel Vadot            reg = <0x00 0x4104000 0x00 0x100>;
88c66ec88fSEmmanuel Vadot            power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>;
89c66ec88fSEmmanuel Vadot            clocks = <&k3_clks 288 15>, <&k3_clks 288 3>;
90c66ec88fSEmmanuel Vadot            clock-names = "ref", "lpm";
91c66ec88fSEmmanuel Vadot            assigned-clocks = <&k3_clks 288 15>;	/* USB2_REFCLK */
92c66ec88fSEmmanuel Vadot            assigned-clock-parents = <&k3_clks 288 16>; /* HFOSC0 */
93c66ec88fSEmmanuel Vadot            #address-cells = <2>;
94c66ec88fSEmmanuel Vadot            #size-cells = <2>;
95c66ec88fSEmmanuel Vadot
96c66ec88fSEmmanuel Vadot            usb@6000000 {
97c66ec88fSEmmanuel Vadot                  compatible = "cdns,usb3";
98c66ec88fSEmmanuel Vadot                  reg = <0x00 0x6000000 0x00 0x10000>,
99c66ec88fSEmmanuel Vadot                        <0x00 0x6010000 0x00 0x10000>,
100c66ec88fSEmmanuel Vadot                        <0x00 0x6020000 0x00 0x10000>;
101c66ec88fSEmmanuel Vadot                  reg-names = "otg", "xhci", "dev";
102c66ec88fSEmmanuel Vadot                  interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,	/* irq.0 */
103c66ec88fSEmmanuel Vadot                               <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,	/* irq.6 */
104c66ec88fSEmmanuel Vadot                               <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;	/* otgirq.0 */
105c66ec88fSEmmanuel Vadot                  interrupt-names = "host",
106c66ec88fSEmmanuel Vadot                                    "peripheral",
107c66ec88fSEmmanuel Vadot                                    "otg";
108c66ec88fSEmmanuel Vadot                  maximum-speed = "super-speed";
109c66ec88fSEmmanuel Vadot                  dr_mode = "otg";
110c66ec88fSEmmanuel Vadot            };
111c66ec88fSEmmanuel Vadot        };
112c66ec88fSEmmanuel Vadot    };
113