diff options
Diffstat (limited to 'Documentation/devicetree/bindings/usb/am33xx-usb.txt')
-rw-r--r-- | Documentation/devicetree/bindings/usb/am33xx-usb.txt | 222 |
1 files changed, 192 insertions, 30 deletions
diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt b/Documentation/devicetree/bindings/usb/am33xx-usb.txt index dc9dc8c87f15..20c2ff2ba07e 100644 --- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt +++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt | |||
@@ -1,35 +1,197 @@ | |||
1 | AM33XX MUSB GLUE | 1 | AM33xx MUSB |
2 | - compatible : Should be "ti,musb-am33xx" | 2 | ~~~~~~~~~~~~~~~ |
3 | - reg : offset and length of register sets, first usbss, then for musb instances | 3 | - compatible: ti,am33xx-usb |
4 | - interrupts : usbss, musb instance interrupts in order | 4 | - reg: offset and length of the usbss register sets |
5 | - ti,hwmods : must be "usb_otg_hs" | 5 | - ti,hwmods : must be "usb_otg_hs" |
6 | - multipoint : Should be "1" indicating the musb controller supports | 6 | |
7 | multipoint. This is a MUSB configuration-specific setting. | 7 | The glue layer contains multiple child nodes. It is required the have |
8 | - num-eps : Specifies the number of endpoints. This is also a | 8 | at least a control module node, USB node and a PHY node. The second USB |
9 | MUSB configuration-specific setting. Should be set to "16" | 9 | node and its PHY node is optional. The DMA node is also optional. |
10 | - ram-bits : Specifies the ram address size. Should be set to "12" | 10 | |
11 | - port0-mode : Should be "3" to represent OTG. "1" signifies HOST and "2" | 11 | Reset module |
12 | represents PERIPHERAL. | 12 | ~~~~~~~~~~~~ |
13 | - port1-mode : Should be "1" to represent HOST. "3" signifies OTG and "2" | 13 | - compatible: ti,am335x-usb-ctrl-module |
14 | represents PERIPHERAL. | 14 | - reg: offset and length of the "USB control registers" in the "Control |
15 | - power : Should be "250". This signifies the controller can supply up to | 15 | Module" block. A second offset and length for the USB wake up control |
16 | 500mA when operating in host mode. | 16 | in the same memory block. |
17 | - reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for | ||
18 | the USB wake up control register. | ||
19 | |||
20 | USB PHY | ||
21 | ~~~~~~~ | ||
22 | compatible: ti,am335x-usb-phy | ||
23 | reg: offset and length of the "USB PHY" register space | ||
24 | ti,ctrl_mod: reference to the "reset module" node | ||
25 | reg-names: phy | ||
26 | The PHY should have a "phy" alias numbered properly in the alias | ||
27 | node. | ||
28 | |||
29 | USB | ||
30 | ~~~ | ||
31 | - compatible: ti,musb-am33xx | ||
32 | - reg: offset and length of "USB Controller Registers", and offset and | ||
33 | length of "USB Core" register space. | ||
34 | - reg-names: control for the ""USB Controller Registers" and "mc" for | ||
35 | "USB Core" register space | ||
36 | - interrupts: USB interrupt number | ||
37 | - interrupt-names: mc | ||
38 | - dr_mode: Should be one of "host", "peripheral" or "otg". | ||
39 | - mentor,multipoint: Should be "1" indicating the musb controller supports | ||
40 | multipoint. This is a MUSB configuration-specific setting. | ||
41 | - mentor,num-eps: Specifies the number of endpoints. This is also a | ||
42 | MUSB configuration-specific setting. Should be set to "16" | ||
43 | - mentor,ram-bits: Specifies the ram address size. Should be set to "12" | ||
44 | - mentor,power: Should be "500". This signifies the controller can supply up to | ||
45 | 500mA when operating in host mode. | ||
46 | - phys: reference to the USB phy | ||
47 | - dmas: specifies the dma channels | ||
48 | - dma-names: specifies the names of the channels. Use "rxN" for receive | ||
49 | and "txN" for transmit endpoints. N specifies the endpoint number. | ||
50 | |||
51 | The controller should have an "usb" alias numbered properly in the alias | ||
52 | node. | ||
53 | |||
54 | DMA | ||
55 | ~~~ | ||
56 | - compatible: ti,am3359-cppi41 | ||
57 | - reg: offset and length of the following register spaces: USBSS, USB | ||
58 | CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager | ||
59 | - reg-names: glue, controller, scheduler, queuemgr | ||
60 | - #dma-cells: should be set to 2. The first number represents the | ||
61 | endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29 | ||
62 | for endpoints 1 … 15 on instance 1). The second number is 0 for RX and | ||
63 | 1 for TX transfers. | ||
64 | - #dma-channels: should be set to 30 representing the 15 endpoints for | ||
65 | each USB instance. | ||
17 | 66 | ||
18 | Example: | 67 | Example: |
68 | ~~~~~~~~ | ||
69 | The following example contains all the nodes as used on am335x-evm: | ||
70 | |||
71 | aliases { | ||
72 | usb0 = &usb0; | ||
73 | usb1 = &usb1; | ||
74 | phy0 = &usb0_phy; | ||
75 | phy1 = &usb1_phy; | ||
76 | }; | ||
19 | 77 | ||
20 | usb@47400000 { | 78 | usb: usb@47400000 { |
21 | compatible = "ti,musb-am33xx"; | 79 | compatible = "ti,am33xx-usb"; |
22 | reg = <0x47400000 0x1000 /* usbss */ | 80 | reg = <0x47400000 0x1000>; |
23 | 0x47401000 0x800 /* musb instance 0 */ | 81 | ranges; |
24 | 0x47401800 0x800>; /* musb instance 1 */ | 82 | #address-cells = <1>; |
25 | interrupts = <17 /* usbss */ | 83 | #size-cells = <1>; |
26 | 18 /* musb instance 0 */ | ||
27 | 19>; /* musb instance 1 */ | ||
28 | multipoint = <1>; | ||
29 | num-eps = <16>; | ||
30 | ram-bits = <12>; | ||
31 | port0-mode = <3>; | ||
32 | port1-mode = <3>; | ||
33 | power = <250>; | ||
34 | ti,hwmods = "usb_otg_hs"; | 84 | ti,hwmods = "usb_otg_hs"; |
85 | |||
86 | ctrl_mod: control@44e10000 { | ||
87 | compatible = "ti,am335x-usb-ctrl-module"; | ||
88 | reg = <0x44e10620 0x10 | ||
89 | 0x44e10648 0x4>; | ||
90 | reg-names = "phy_ctrl", "wakeup"; | ||
91 | }; | ||
92 | |||
93 | usb0_phy: usb-phy@47401300 { | ||
94 | compatible = "ti,am335x-usb-phy"; | ||
95 | reg = <0x47401300 0x100>; | ||
96 | reg-names = "phy"; | ||
97 | ti,ctrl_mod = <&ctrl_mod>; | ||
98 | }; | ||
99 | |||
100 | usb0: usb@47401000 { | ||
101 | compatible = "ti,musb-am33xx"; | ||
102 | reg = <0x47401400 0x400 | ||
103 | 0x47401000 0x200>; | ||
104 | reg-names = "mc", "control"; | ||
105 | |||
106 | interrupts = <18>; | ||
107 | interrupt-names = "mc"; | ||
108 | dr_mode = "otg" | ||
109 | mentor,multipoint = <1>; | ||
110 | mentor,num-eps = <16>; | ||
111 | mentor,ram-bits = <12>; | ||
112 | mentor,power = <500>; | ||
113 | phys = <&usb0_phy>; | ||
114 | |||
115 | dmas = <&cppi41dma 0 0 &cppi41dma 1 0 | ||
116 | &cppi41dma 2 0 &cppi41dma 3 0 | ||
117 | &cppi41dma 4 0 &cppi41dma 5 0 | ||
118 | &cppi41dma 6 0 &cppi41dma 7 0 | ||
119 | &cppi41dma 8 0 &cppi41dma 9 0 | ||
120 | &cppi41dma 10 0 &cppi41dma 11 0 | ||
121 | &cppi41dma 12 0 &cppi41dma 13 0 | ||
122 | &cppi41dma 14 0 &cppi41dma 0 1 | ||
123 | &cppi41dma 1 1 &cppi41dma 2 1 | ||
124 | &cppi41dma 3 1 &cppi41dma 4 1 | ||
125 | &cppi41dma 5 1 &cppi41dma 6 1 | ||
126 | &cppi41dma 7 1 &cppi41dma 8 1 | ||
127 | &cppi41dma 9 1 &cppi41dma 10 1 | ||
128 | &cppi41dma 11 1 &cppi41dma 12 1 | ||
129 | &cppi41dma 13 1 &cppi41dma 14 1>; | ||
130 | dma-names = | ||
131 | "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", | ||
132 | "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", | ||
133 | "rx14", "rx15", | ||
134 | "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", | ||
135 | "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", | ||
136 | "tx14", "tx15"; | ||
137 | }; | ||
138 | |||
139 | usb1_phy: usb-phy@47401b00 { | ||
140 | compatible = "ti,am335x-usb-phy"; | ||
141 | reg = <0x47401b00 0x100>; | ||
142 | reg-names = "phy"; | ||
143 | ti,ctrl_mod = <&ctrl_mod>; | ||
144 | }; | ||
145 | |||
146 | usb1: usb@47401800 { | ||
147 | compatible = "ti,musb-am33xx"; | ||
148 | reg = <0x47401c00 0x400 | ||
149 | 0x47401800 0x200>; | ||
150 | reg-names = "mc", "control"; | ||
151 | interrupts = <19>; | ||
152 | interrupt-names = "mc"; | ||
153 | dr_mode = "host" | ||
154 | mentor,multipoint = <1>; | ||
155 | mentor,num-eps = <16>; | ||
156 | mentor,ram-bits = <12>; | ||
157 | mentor,power = <500>; | ||
158 | phys = <&usb1_phy>; | ||
159 | |||
160 | dmas = <&cppi41dma 15 0 &cppi41dma 16 0 | ||
161 | &cppi41dma 17 0 &cppi41dma 18 0 | ||
162 | &cppi41dma 19 0 &cppi41dma 20 0 | ||
163 | &cppi41dma 21 0 &cppi41dma 22 0 | ||
164 | &cppi41dma 23 0 &cppi41dma 24 0 | ||
165 | &cppi41dma 25 0 &cppi41dma 26 0 | ||
166 | &cppi41dma 27 0 &cppi41dma 28 0 | ||
167 | &cppi41dma 29 0 &cppi41dma 15 1 | ||
168 | &cppi41dma 16 1 &cppi41dma 17 1 | ||
169 | &cppi41dma 18 1 &cppi41dma 19 1 | ||
170 | &cppi41dma 20 1 &cppi41dma 21 1 | ||
171 | &cppi41dma 22 1 &cppi41dma 23 1 | ||
172 | &cppi41dma 24 1 &cppi41dma 25 1 | ||
173 | &cppi41dma 26 1 &cppi41dma 27 1 | ||
174 | &cppi41dma 28 1 &cppi41dma 29 1>; | ||
175 | dma-names = | ||
176 | "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", | ||
177 | "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", | ||
178 | "rx14", "rx15", | ||
179 | "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", | ||
180 | "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", | ||
181 | "tx14", "tx15"; | ||
182 | }; | ||
183 | |||
184 | cppi41dma: dma-controller@07402000 { | ||
185 | compatible = "ti,am3359-cppi41"; | ||
186 | reg = <0x47400000 0x1000 | ||
187 | 0x47402000 0x1000 | ||
188 | 0x47403000 0x1000 | ||
189 | 0x47404000 0x4000>; | ||
190 | reg-names = "glue", "controller", "scheduler", "queuemgr"; | ||
191 | interrupts = <17>; | ||
192 | interrupt-names = "glue"; | ||
193 | #dma-cells = <2>; | ||
194 | #dma-channels = <30>; | ||
195 | #dma-requests = <256>; | ||
196 | }; | ||
35 | }; | 197 | }; |