xref: /linux/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
14c48f236SRoger Quadros# SPDX-License-Identifier: GPL-2.0
24c48f236SRoger Quadros%YAML 1.2
34c48f236SRoger Quadros---
4653b131aSRob Herring$id: http://devicetree.org/schemas/usb/ti,j721e-usb.yaml#
5653b131aSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
64c48f236SRoger Quadros
79d69d47fSKrzysztof Kozlowskititle: TI wrapper module for the Cadence USBSS-DRD controller
84c48f236SRoger Quadros
94c48f236SRoger Quadrosmaintainers:
100c0822bcSKrzysztof Kozlowski  - Roger Quadros <rogerq@kernel.org>
114c48f236SRoger Quadros
124c48f236SRoger Quadrosproperties:
134c48f236SRoger Quadros  compatible:
1488ebce92SAswath Govindraju    oneOf:
154c48f236SRoger Quadros      - const: ti,j721e-usb
1688ebce92SAswath Govindraju      - items:
1788ebce92SAswath Govindraju          - const: ti,am64-usb
18*f7fd939eSThéo Lebrun          - const: ti,j721e-usb
194c48f236SRoger Quadros
204c48f236SRoger Quadros  reg:
210499220dSRob Herring    maxItems: 1
224c48f236SRoger Quadros
23453b6741SGrygorii Strashko  ranges: true
24453b6741SGrygorii Strashko
254c48f236SRoger Quadros  power-domains:
264c48f236SRoger Quadros    description:
274c48f236SRoger Quadros      PM domain provider node and an args specifier containing
284c48f236SRoger Quadros      the USB device id value. See,
29f22145f1SMauro Carvalho Chehab      Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
300499220dSRob Herring    maxItems: 1
314c48f236SRoger Quadros
324c48f236SRoger Quadros  clocks:
334c48f236SRoger Quadros    description: Clock phandles to usb2_refclk and lpm_clk
344c48f236SRoger Quadros    minItems: 2
354c48f236SRoger Quadros    maxItems: 2
364c48f236SRoger Quadros
374c48f236SRoger Quadros  clock-names:
384c48f236SRoger Quadros    items:
394c48f236SRoger Quadros      - const: ref
404c48f236SRoger Quadros      - const: lpm
414c48f236SRoger Quadros
424c48f236SRoger Quadros  ti,usb2-only:
434c48f236SRoger Quadros    description:
444c48f236SRoger Quadros      If present, it restricts the controller to USB2.0 mode of
454c48f236SRoger Quadros      operation. Must be present if USB3 PHY is not available
464c48f236SRoger Quadros      for USB.
474c48f236SRoger Quadros    type: boolean
484c48f236SRoger Quadros
494c48f236SRoger Quadros  ti,vbus-divider:
504c48f236SRoger Quadros    description:
514c48f236SRoger Quadros      Should be present if USB VBUS line is connected to the
524c48f236SRoger Quadros      VBUS pin of the SoC via a 1/3 voltage divider.
534c48f236SRoger Quadros    type: boolean
544c48f236SRoger Quadros
555be478f9SRob Herring  '#address-cells':
565be478f9SRob Herring    const: 2
575be478f9SRob Herring
585be478f9SRob Herring  '#size-cells':
595be478f9SRob Herring    const: 2
605be478f9SRob Herring
61453b6741SGrygorii Strashko  dma-coherent: true
62453b6741SGrygorii Strashko
635be478f9SRob HerringpatternProperties:
645be478f9SRob Herring  "^usb@":
655be478f9SRob Herring    type: object
665be478f9SRob Herring
674c48f236SRoger Quadrosrequired:
684c48f236SRoger Quadros  - compatible
694c48f236SRoger Quadros  - reg
704c48f236SRoger Quadros  - power-domains
714c48f236SRoger Quadros  - clocks
724c48f236SRoger Quadros  - clock-names
734c48f236SRoger Quadros
745be478f9SRob HerringadditionalProperties: false
755be478f9SRob Herring
764c48f236SRoger Quadrosexamples:
774c48f236SRoger Quadros  - |
784c48f236SRoger Quadros    #include <dt-bindings/soc/ti,sci_pm_domain.h>
794c48f236SRoger Quadros    #include <dt-bindings/interrupt-controller/arm-gic.h>
80fba56184SRob Herring
81fba56184SRob Herring    bus {
82fba56184SRob Herring        #address-cells = <2>;
83fba56184SRob Herring        #size-cells = <2>;
84fba56184SRob Herring
854c48f236SRoger Quadros        cdns_usb@4104000 {
864c48f236SRoger Quadros            compatible = "ti,j721e-usb";
874c48f236SRoger Quadros            reg = <0x00 0x4104000 0x00 0x100>;
884c48f236SRoger Quadros            power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>;
894c48f236SRoger Quadros            clocks = <&k3_clks 288 15>, <&k3_clks 288 3>;
904c48f236SRoger Quadros            clock-names = "ref", "lpm";
914c48f236SRoger Quadros            assigned-clocks = <&k3_clks 288 15>;	/* USB2_REFCLK */
924c48f236SRoger Quadros            assigned-clock-parents = <&k3_clks 288 16>; /* HFOSC0 */
934c48f236SRoger Quadros            #address-cells = <2>;
944c48f236SRoger Quadros            #size-cells = <2>;
954c48f236SRoger Quadros
964c48f236SRoger Quadros            usb@6000000 {
974c48f236SRoger Quadros                  compatible = "cdns,usb3";
984c48f236SRoger Quadros                  reg = <0x00 0x6000000 0x00 0x10000>,
994c48f236SRoger Quadros                        <0x00 0x6010000 0x00 0x10000>,
1004c48f236SRoger Quadros                        <0x00 0x6020000 0x00 0x10000>;
1014c48f236SRoger Quadros                  reg-names = "otg", "xhci", "dev";
1024c48f236SRoger Quadros                  interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,	/* irq.0 */
1034c48f236SRoger Quadros                               <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,	/* irq.6 */
1044c48f236SRoger Quadros                               <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;	/* otgirq.0 */
1054c48f236SRoger Quadros                  interrupt-names = "host",
1064c48f236SRoger Quadros                                    "peripheral",
1074c48f236SRoger Quadros                                    "otg";
1084c48f236SRoger Quadros                  maximum-speed = "super-speed";
1094c48f236SRoger Quadros                  dr_mode = "otg";
1104c48f236SRoger Quadros            };
1114c48f236SRoger Quadros        };
112fba56184SRob Herring    };
113