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