Re: [PATCH 04/11] usb: usb: dsps: update device tree bindings

2013-09-06 Thread Mark Rutland
On Tue, Aug 20, 2013 at 05:35:46PM +0100, Sebastian Andrzej Siewior wrote:
 The support for both am335x-USB instances required changes to the device
 tree bindings. This patch reflects these changes in the bindings
 document.
 
 v3…v4:
 - remove the child node for USB. This is driver specific on won't be
   reflected in the device tree
 - use the mentor prefix instead of mg.
 - use dr_mode istead of mg,port-mode for the port mode. The former
   is used by a few other drivers.
 
 v2…v3:
 - use proper usb-phy nodes in evm, bone and evmsk device tree.
 
 v1…v2:
 - use mg prefix for the Metor Graphics specific attributes
 - use power in mA not in mA/2 as specifed in the USB2.0 specification
 - use usbX-phy instead of usbX_phy
 - use dma-controller instead of dma
 
 Cc: Rob Herring rob.herr...@calxeda.com
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Stephen Warren swar...@wwwdotorg.org
 Cc: Ian Campbell ian.campb...@citrix.com
 Cc: devicet...@vger.kernel.org
 Signed-off-by: Sebastian Andrzej Siewior bige...@linutronix.de
 ---
  .../devicetree/bindings/usb/am33xx-usb.txt | 222 
 ++---
  1 file changed, 192 insertions(+), 30 deletions(-)
 
 diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt 
 b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
 index dc9dc8c..20c2ff2 100644
 --- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt
 +++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
 @@ -1,35 +1,197 @@
 -AM33XX MUSB GLUE
 - - compatible : Should be ti,musb-am33xx
 - - reg : offset and length of register sets, first usbss, then for musb 
 instances
 - - interrupts : usbss, musb instance interrupts in order
 - - ti,hwmods : must be usb_otg_hs
 - - multipoint : Should be 1 indicating the musb controller supports
 -   multipoint. This is a MUSB configuration-specific setting.
 - - num-eps : Specifies the number of endpoints. This is also a
 -   MUSB configuration-specific setting. Should be set to 16
 - - ram-bits : Specifies the ram address size. Should be set to 12
 - - port0-mode : Should be 3 to represent OTG. 1 signifies HOST and 2
 -   represents PERIPHERAL.
 - - port1-mode : Should be 1 to represent HOST. 3 signifies OTG and 2
 -   represents PERIPHERAL.
 - - power : Should be 250. This signifies the controller can supply up to
 -   500mA when operating in host mode.
 +  AM33xx MUSB
 +~~~
 +- compatible: ti,am33xx-usb
 +- reg: offset and length of the usbss register sets
 +- ti,hwmods : must be usb_otg_hs
 +
 +The glue layer contains multiple child nodes. It is required the have
 +at least a control module node, USB node and a PHY node. The second USB
 +node and its PHY node is optional. The DMA node is also optional.
 +
 +Reset module
 +
 +- compatible: ti,am335x-usb-ctrl-module
 +- reg: offset and length of the USB control registers in the Control
 +  Module block. A second offset and length for the USB wake up control
 +  in the same memory block.
 +- reg-names: phy_ctrl for the USB control registers and wakeup for
 +  the USB wake up control register.
 +
 +USB PHY
 +~~~
 +compatible: ti,am335x-usb-phy
 +reg: offset and length of the USB PHY register space
 +ti,ctrl_mod: reference to the reset module node
 +reg-names: phy

For consistency, these should be bullet bpoints (as with the Reset
module properties above).

Also, preferably:

- reg-names: should contain phy.

 +The PHY should have a phy alias numbered properly in the alias
 +node.

Why?

 +
 +USB
 +~~~
 +- compatible: ti,musb-am33xx
 +- reg: offset and length of USB Controller Registers, and offset and
 +  length of USB Core register space.
 +- reg-names: control for the USB Controller Registers and mc for
 +  USB Core register space

Consistent quoting please.

 +- interrupts: USB interrupt number

- interrupts: should contain an interrupt-specifier for the USB
  interrupt.

Is this the only interrupt? Is there a particular name for it in any
data sheet?

 +- interrupt-names: mc

String property values quoted please:

- interrupt-names: should contain mc for the USB interrupt.

Is mc the name of the interrupt on the data sheet?

 +- dr_mode: Should be one of host, peripheral or otg.
 +- mentor,multipoint: Should be 1 indicating the musb controller supports
 +  multipoint. This is a MUSB configuration-specific setting.

Is this a boolean value?

Why is this not an empty property?

 +- mentor,num-eps: Specifies the number of endpoints. This is also a
 +  MUSB configuration-specific setting. Should be set to 16
 +- mentor,ram-bits: Specifies the ram address size. Should be set to 12

Is this to define the address space the controller can see? What if it's
offset from the CPU's view? This sounds like something better described
via another means (like dma-ranges).

 +- mentor,power: Should be 500. This signifies the controller can supply up 
 to
 +  500mA when operating in host mode.

Why do we nee a particular value in a 

[PATCH 04/11] usb: usb: dsps: update device tree bindings

2013-08-20 Thread Sebastian Andrzej Siewior
The support for both am335x-USB instances required changes to the device
tree bindings. This patch reflects these changes in the bindings
document.

v3…v4:
- remove the child node for USB. This is driver specific on won't be
  reflected in the device tree
- use the mentor prefix instead of mg.
- use dr_mode istead of mg,port-mode for the port mode. The former
  is used by a few other drivers.

v2…v3:
- use proper usb-phy nodes in evm, bone and evmsk device tree.

v1…v2:
- use mg prefix for the Metor Graphics specific attributes
- use power in mA not in mA/2 as specifed in the USB2.0 specification
- use usbX-phy instead of usbX_phy
- use dma-controller instead of dma

Cc: Rob Herring rob.herr...@calxeda.com
Cc: Pawel Moll pawel.m...@arm.com
Cc: Mark Rutland mark.rutl...@arm.com
Cc: Stephen Warren swar...@wwwdotorg.org
Cc: Ian Campbell ian.campb...@citrix.com
Cc: devicet...@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior bige...@linutronix.de
---
 .../devicetree/bindings/usb/am33xx-usb.txt | 222 ++---
 1 file changed, 192 insertions(+), 30 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/am33xx-usb.txt 
b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
index dc9dc8c..20c2ff2 100644
--- a/Documentation/devicetree/bindings/usb/am33xx-usb.txt
+++ b/Documentation/devicetree/bindings/usb/am33xx-usb.txt
@@ -1,35 +1,197 @@
-AM33XX MUSB GLUE
- - compatible : Should be ti,musb-am33xx
- - reg : offset and length of register sets, first usbss, then for musb 
instances
- - interrupts : usbss, musb instance interrupts in order
- - ti,hwmods : must be usb_otg_hs
- - multipoint : Should be 1 indicating the musb controller supports
-   multipoint. This is a MUSB configuration-specific setting.
- - num-eps : Specifies the number of endpoints. This is also a
-   MUSB configuration-specific setting. Should be set to 16
- - ram-bits : Specifies the ram address size. Should be set to 12
- - port0-mode : Should be 3 to represent OTG. 1 signifies HOST and 2
-   represents PERIPHERAL.
- - port1-mode : Should be 1 to represent HOST. 3 signifies OTG and 2
-   represents PERIPHERAL.
- - power : Should be 250. This signifies the controller can supply up to
-   500mA when operating in host mode.
+  AM33xx MUSB
+~~~
+- compatible: ti,am33xx-usb
+- reg: offset and length of the usbss register sets
+- ti,hwmods : must be usb_otg_hs
+
+The glue layer contains multiple child nodes. It is required the have
+at least a control module node, USB node and a PHY node. The second USB
+node and its PHY node is optional. The DMA node is also optional.
+
+Reset module
+
+- compatible: ti,am335x-usb-ctrl-module
+- reg: offset and length of the USB control registers in the Control
+  Module block. A second offset and length for the USB wake up control
+  in the same memory block.
+- reg-names: phy_ctrl for the USB control registers and wakeup for
+  the USB wake up control register.
+
+USB PHY
+~~~
+compatible: ti,am335x-usb-phy
+reg: offset and length of the USB PHY register space
+ti,ctrl_mod: reference to the reset module node
+reg-names: phy
+The PHY should have a phy alias numbered properly in the alias
+node.
+
+USB
+~~~
+- compatible: ti,musb-am33xx
+- reg: offset and length of USB Controller Registers, and offset and
+  length of USB Core register space.
+- reg-names: control for the USB Controller Registers and mc for
+  USB Core register space
+- interrupts: USB interrupt number
+- interrupt-names: mc
+- dr_mode: Should be one of host, peripheral or otg.
+- mentor,multipoint: Should be 1 indicating the musb controller supports
+  multipoint. This is a MUSB configuration-specific setting.
+- mentor,num-eps: Specifies the number of endpoints. This is also a
+  MUSB configuration-specific setting. Should be set to 16
+- mentor,ram-bits: Specifies the ram address size. Should be set to 12
+- mentor,power: Should be 500. This signifies the controller can supply up to
+  500mA when operating in host mode.
+- phys: reference to the USB phy
+- dmas: specifies the dma channels
+- dma-names: specifies the names of the channels. Use rxN for receive
+  and txN for transmit endpoints. N specifies the endpoint number.
+
+The controller should have an usb alias numbered properly in the alias
+node.
+
+DMA
+~~~
+- compatible: ti,am3359-cppi41
+- reg: offset and length of the following register spaces: USBSS, USB
+  CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager
+- reg-names: glue, controller, scheduler, queuemgr
+- #dma-cells: should be set to 2. The first number represents the
+  endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29
+  for endpoints 1 … 15 on instance 1). The second number is 0 for RX and
+  1 for TX transfers.
+- #dma-channels: should be set to 30 representing the 15 endpoints for
+  each USB instance.
 
 Example:
+
+The following example contains all the nodes as used on am335x-evm:
+
+aliases {
+   usb0 = usb0;
+