exynos-usb.txt 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. Samsung Exynos SoC USB controller
  2. The USB devices interface with USB controllers on Exynos SOCs.
  3. The device node has following properties.
  4. EHCI
  5. Required properties:
  6. - compatible: should be "samsung,exynos4210-ehci" for USB 2.0
  7. EHCI controller in host mode.
  8. - reg: physical base address of the controller and length of memory mapped
  9. region.
  10. - interrupts: interrupt number to the cpu.
  11. - clocks: from common clock binding: handle to usb clock.
  12. - clock-names: from common clock binding: Shall be "usbhost".
  13. - port: if in the SoC there are EHCI phys, they should be listed here.
  14. One phy per port. Each port should have following entries:
  15. - reg: port number on EHCI controller, e.g
  16. On Exynos5250, port 0 is USB2.0 otg phy
  17. port 1 is HSIC phy0
  18. port 2 is HSIC phy1
  19. - phys: from the *Generic PHY* bindings; specifying phy used by port.
  20. Optional properties:
  21. - samsung,vbus-gpio: if present, specifies the GPIO that
  22. needs to be pulled up for the bus to be powered.
  23. Example:
  24. usb@12110000 {
  25. compatible = "samsung,exynos4210-ehci";
  26. reg = <0x12110000 0x100>;
  27. interrupts = <0 71 0>;
  28. samsung,vbus-gpio = <&gpx2 6 1 3 3>;
  29. clocks = <&clock 285>;
  30. clock-names = "usbhost";
  31. #address-cells = <1>;
  32. #size-cells = <0>;
  33. port@0 {
  34. reg = <0>;
  35. phys = <&usb2phy 1>;
  36. status = "disabled";
  37. };
  38. };
  39. OHCI
  40. Required properties:
  41. - compatible: should be "samsung,exynos4210-ohci" for USB 2.0
  42. OHCI companion controller in host mode.
  43. - reg: physical base address of the controller and length of memory mapped
  44. region.
  45. - interrupts: interrupt number to the cpu.
  46. - clocks: from common clock binding: handle to usb clock.
  47. - clock-names: from common clock binding: Shall be "usbhost".
  48. - port: if in the SoC there are OHCI phys, they should be listed here.
  49. One phy per port. Each port should have following entries:
  50. - reg: port number on OHCI controller, e.g
  51. On Exynos5250, port 0 is USB2.0 otg phy
  52. port 1 is HSIC phy0
  53. port 2 is HSIC phy1
  54. - phys: from the *Generic PHY* bindings, specifying phy used by port.
  55. Example:
  56. usb@12120000 {
  57. compatible = "samsung,exynos4210-ohci";
  58. reg = <0x12120000 0x100>;
  59. interrupts = <0 71 0>;
  60. clocks = <&clock 285>;
  61. clock-names = "usbhost";
  62. #address-cells = <1>;
  63. #size-cells = <0>;
  64. port@0 {
  65. reg = <0>;
  66. phys = <&usb2phy 1>;
  67. status = "disabled";
  68. };
  69. };
  70. DWC3
  71. Required properties:
  72. - compatible: should be one of the following -
  73. "samsung,exynos5250-dwusb3": for USB 3.0 DWC3 controller on
  74. Exynos5250/5420.
  75. "samsung,exynos7-dwusb3": for USB 3.0 DWC3 controller on Exynos7.
  76. - #address-cells, #size-cells : should be '1' if the device has sub-nodes
  77. with 'reg' property.
  78. - ranges: allows valid 1:1 translation between child's address space and
  79. parent's address space
  80. - clocks: Clock IDs array as required by the controller.
  81. - clock-names: names of clocks correseponding to IDs in the clock property
  82. Sub-nodes:
  83. The dwc3 core should be added as subnode to Exynos dwc3 glue.
  84. - dwc3 :
  85. The binding details of dwc3 can be found in:
  86. Documentation/devicetree/bindings/usb/dwc3.txt
  87. Example:
  88. usb@12000000 {
  89. compatible = "samsung,exynos5250-dwusb3";
  90. clocks = <&clock 286>;
  91. clock-names = "usbdrd30";
  92. #address-cells = <1>;
  93. #size-cells = <1>;
  94. ranges;
  95. dwc3 {
  96. compatible = "synopsys,dwc3";
  97. reg = <0x12000000 0x10000>;
  98. interrupts = <0 72 0>;
  99. usb-phy = <&usb2_phy &usb3_phy>;
  100. };
  101. };