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