ti,j721e-usb.yaml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. # SPDX-License-Identifier: GPL-2.0
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/usb/ti,j721e-usb.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: TI wrapper module for the Cadence USBSS-DRD controller
  7. maintainers:
  8. - Roger Quadros <rogerq@kernel.org>
  9. properties:
  10. compatible:
  11. oneOf:
  12. - const: ti,j721e-usb
  13. - items:
  14. - const: ti,am64-usb
  15. - const: ti,j721e-usb
  16. reg:
  17. maxItems: 1
  18. ranges: true
  19. power-domains:
  20. description:
  21. PM domain provider node and an args specifier containing
  22. the USB device id value. See,
  23. Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
  24. maxItems: 1
  25. clocks:
  26. description: Clock phandles to usb2_refclk and lpm_clk
  27. minItems: 2
  28. maxItems: 2
  29. clock-names:
  30. items:
  31. - const: ref
  32. - const: lpm
  33. ti,usb2-only:
  34. description:
  35. If present, it restricts the controller to USB2.0 mode of
  36. operation. Must be present if USB3 PHY is not available
  37. for USB.
  38. type: boolean
  39. ti,vbus-divider:
  40. description:
  41. Should be present if USB VBUS line is connected to the
  42. VBUS pin of the SoC via a 1/3 voltage divider.
  43. type: boolean
  44. '#address-cells':
  45. const: 2
  46. '#size-cells':
  47. const: 2
  48. dma-coherent: true
  49. patternProperties:
  50. "^usb@":
  51. type: object
  52. required:
  53. - compatible
  54. - reg
  55. - power-domains
  56. - clocks
  57. - clock-names
  58. additionalProperties: false
  59. examples:
  60. - |
  61. #include <dt-bindings/soc/ti,sci_pm_domain.h>
  62. #include <dt-bindings/interrupt-controller/arm-gic.h>
  63. bus {
  64. #address-cells = <2>;
  65. #size-cells = <2>;
  66. cdns_usb@4104000 {
  67. compatible = "ti,j721e-usb";
  68. reg = <0x00 0x4104000 0x00 0x100>;
  69. power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>;
  70. clocks = <&k3_clks 288 15>, <&k3_clks 288 3>;
  71. clock-names = "ref", "lpm";
  72. assigned-clocks = <&k3_clks 288 15>; /* USB2_REFCLK */
  73. assigned-clock-parents = <&k3_clks 288 16>; /* HFOSC0 */
  74. #address-cells = <2>;
  75. #size-cells = <2>;
  76. usb@6000000 {
  77. compatible = "cdns,usb3";
  78. reg = <0x00 0x6000000 0x00 0x10000>,
  79. <0x00 0x6010000 0x00 0x10000>,
  80. <0x00 0x6020000 0x00 0x10000>;
  81. reg-names = "otg", "xhci", "dev";
  82. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
  83. <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */
  84. <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; /* otgirq.0 */
  85. interrupt-names = "host",
  86. "peripheral",
  87. "otg";
  88. maximum-speed = "super-speed";
  89. dr_mode = "otg";
  90. };
  91. };
  92. };