atmel-usb.txt 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. Atmel SOC USB controllers
  2. OHCI
  3. Required properties:
  4. - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
  5. used in host mode.
  6. - reg: Address and length of the register set for the device
  7. - interrupts: Should contain ehci interrupt
  8. - clocks: Should reference the peripheral, host and system clocks
  9. - clock-names: Should contains two strings
  10. "ohci_clk" for the peripheral clock
  11. "hclk" for the host clock
  12. "uhpck" for the system clock
  13. - num-ports: Number of ports.
  14. - atmel,vbus-gpio: If present, specifies a gpio that needs to be
  15. activated for the bus to be powered.
  16. - atmel,oc-gpio: If present, specifies a gpio that needs to be
  17. activated for the overcurrent detection.
  18. usb0: ohci@00500000 {
  19. compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  20. reg = <0x00500000 0x100000>;
  21. clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
  22. clock-names = "ohci_clk", "hclk", "uhpck";
  23. interrupts = <20 4>;
  24. num-ports = <2>;
  25. };
  26. EHCI
  27. Required properties:
  28. - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
  29. used in host mode.
  30. - reg: Address and length of the register set for the device
  31. - interrupts: Should contain ehci interrupt
  32. - clocks: Should reference the peripheral and the UTMI clocks
  33. - clock-names: Should contains two strings
  34. "ehci_clk" for the peripheral clock
  35. "usb_clk" for the UTMI clock
  36. usb1: ehci@00800000 {
  37. compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
  38. reg = <0x00800000 0x100000>;
  39. interrupts = <22 4>;
  40. clocks = <&utmi>, <&uhphs_clk>;
  41. clock-names = "usb_clk", "ehci_clk";
  42. };
  43. AT91 USB device controller
  44. Required properties:
  45. - compatible: Should be one of the following
  46. "atmel,at91rm9200-udc"
  47. "atmel,at91sam9260-udc"
  48. "atmel,at91sam9261-udc"
  49. "atmel,at91sam9263-udc"
  50. - reg: Address and length of the register set for the device
  51. - interrupts: Should contain macb interrupt
  52. - clocks: Should reference the peripheral and the AHB clocks
  53. - clock-names: Should contains two strings
  54. "pclk" for the peripheral clock
  55. "hclk" for the AHB clock
  56. Optional properties:
  57. - atmel,vbus-gpio: If present, specifies a gpio that needs to be
  58. activated for the bus to be powered.
  59. usb1: gadget@fffa4000 {
  60. compatible = "atmel,at91rm9200-udc";
  61. reg = <0xfffa4000 0x4000>;
  62. interrupts = <10 4>;
  63. clocks = <&udc_clk>, <&udpck>;
  64. clock-names = "pclk", "hclk";
  65. atmel,vbus-gpio = <&pioC 5 0>;
  66. };
  67. Atmel High-Speed USB device controller
  68. Required properties:
  69. - compatible: Should be one of the following
  70. "atmel,at91sam9rl-udc"
  71. "atmel,at91sam9g45-udc"
  72. "atmel,sama5d3-udc"
  73. - reg: Address and length of the register set for the device
  74. - interrupts: Should contain usba interrupt
  75. - clocks: Should reference the peripheral and host clocks
  76. - clock-names: Should contains two strings
  77. "pclk" for the peripheral clock
  78. "hclk" for the host clock
  79. - ep childnode: To specify the number of endpoints and their properties.
  80. Optional properties:
  81. - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
  82. vbus is present (USB is connected).
  83. Required child node properties:
  84. - name: Name of the endpoint.
  85. - reg: Num of the endpoint.
  86. - atmel,fifo-size: Size of the fifo.
  87. - atmel,nb-banks: Number of banks.
  88. - atmel,can-dma: Boolean to specify if the endpoint support DMA.
  89. - atmel,can-isoc: Boolean to specify if the endpoint support ISOC.
  90. usb2: gadget@fff78000 {
  91. #address-cells = <1>;
  92. #size-cells = <0>;
  93. compatible = "atmel,at91sam9rl-udc";
  94. reg = <0x00600000 0x80000
  95. 0xfff78000 0x400>;
  96. interrupts = <27 4 0>;
  97. clocks = <&utmi>, <&udphs_clk>;
  98. clock-names = "hclk", "pclk";
  99. atmel,vbus-gpio = <&pioB 19 0>;
  100. ep0 {
  101. reg = <0>;
  102. atmel,fifo-size = <64>;
  103. atmel,nb-banks = <1>;
  104. };
  105. ep1 {
  106. reg = <1>;
  107. atmel,fifo-size = <1024>;
  108. atmel,nb-banks = <2>;
  109. atmel,can-dma;
  110. atmel,can-isoc;
  111. };
  112. ep2 {
  113. reg = <2>;
  114. atmel,fifo-size = <1024>;
  115. atmel,nb-banks = <2>;
  116. atmel,can-dma;
  117. atmel,can-isoc;
  118. };
  119. ep3 {
  120. reg = <3>;
  121. atmel,fifo-size = <1024>;
  122. atmel,nb-banks = <3>;
  123. atmel,can-dma;
  124. };
  125. ep4 {
  126. reg = <4>;
  127. atmel,fifo-size = <1024>;
  128. atmel,nb-banks = <3>;
  129. atmel,can-dma;
  130. };
  131. ep5 {
  132. reg = <5>;
  133. atmel,fifo-size = <1024>;
  134. atmel,nb-banks = <3>;
  135. atmel,can-dma;
  136. atmel,can-isoc;
  137. };
  138. ep6 {
  139. reg = <6>;
  140. atmel,fifo-size = <1024>;
  141. atmel,nb-banks = <3>;
  142. atmel,can-dma;
  143. atmel,can-isoc;
  144. };
  145. };