Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-06-30 Thread Grant Likely
On Tue, 26 May 2015 16:18:54 +0100
, Lee Jones 
 wrote:
> On Thu, 21 May 2015, Thierry Reding wrote:
> 
> > On Thu, May 21, 2015 at 09:40:01AM +0100, Lee Jones wrote:
> > > On Wed, 20 May 2015, Thierry Reding wrote:
> > > > On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
> > > > > On Tue, 19 May 2015, Andrew Bresticker wrote:
> > > > > > On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
> > > > > >  wrote:
> > > > > > > On Thu, May 14, 2015 at 12:40 AM, Lee Jones 
> > > > > > >  wrote:
> > > > > > >> On Thu, 14 May 2015, Jon Hunter wrote:
> > > > > > >>> On 13/05/15 15:39, Lee Jones wrote:
> > > > > > >>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> > > > > > >>> >
> > > > > > >>> >> Add a binding document for the XUSB host complex on NVIDIA 
> > > > > > >>> >> Tegra124
> > > > > > >>> >> and later SoCs.  The XUSB host complex includes a mailbox for
> > > > > > >>> >> communication with the XUSB micro-controller and an xHCI 
> > > > > > >>> >> host-controller.
> > > > > > >>> >>
> > > > > > >>> >> Signed-off-by: Andrew Bresticker 
> > > > > > >>> >> Cc: Rob Herring 
> > > > > > >>> >> Cc: Pawel Moll 
> > > > > > >>> >> Cc: Mark Rutland 
> > > > > > >>> >> Cc: Ian Campbell 
> > > > > > >>> >> Cc: Kumar Gala 
> > > > > > >>> >> Cc: Samuel Ortiz 
> > > > > > >>> >> Cc: Lee Jones 
> > > > > > >>> >> ---
> > > > > > >>> >> Changes from v7:
> > > > > > >>> >>  - Move non-shared resources into child nodes.
> > > > > > >>> >> New for v7.
> > > > > > >>> >> ---
> > > > > > >>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> > > > > > >>> >> ++
> > > > > > >>> >>  1 file changed, 37 insertions(+)
> > > > > > >>> >>  create mode 100644 
> > > > > > >>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > > >>> >>
> > > > > > >>> >> diff --git 
> > > > > > >>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > > >>> >>  
> > > > > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > > >>> >> new file mode 100644
> > > > > > >>> >> index 000..bc50110
> > > > > > >>> >> --- /dev/null
> > > > > > >>> >> +++ 
> > > > > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > > >>> >> @@ -0,0 +1,37 @@
> > > > > > >>> >> +NVIDIA Tegra XUSB host copmlex
> > > > > > >>> >> +==
> > > > > > >>> >> +
> > > > > > >>> >> +The XUSB host complex on Tegra124 and later SoCs contains 
> > > > > > >>> >> an xHCI host
> > > > > > >>> >> +controller and a mailbox for communication with the XUSB 
> > > > > > >>> >> micro-controller.
> > > > > > >>> >> +
> > > > > > >>> >> +Required properties:
> > > > > > >>> >> +
> > > > > > >>> >> + - compatible: For Tegra124, must contain 
> > > > > > >>> >> "nvidia,tegra124-xusb".
> > > > > > >>> >> +   Otherwise, must contain '"nvidia,-xusb", 
> > > > > > >>> >> "nvidia,tegra124-xusb"'
> > > > > > >>> >> +   where  is tegra132.
> > > > > > >>> >> + - reg: Must contain the base and length of the XUSB FPCI 
> > > > > > >>> >> registers.
> > > > > > >>> >> + - ranges: Bus address mapping for the XUSB block.  Can be 
> > > > > > >>> >> empty since the
> > > > > > >>> >> +   mapping is 1:1.
> > > > > > >>> >> + - #address-cells: Must be 2.
> > > > > > >>> >> + - #size-cells: Must be 2.
> > > > > > >>> >> +
> > > > > > >>> >> +Example:
> > > > > > >>> >> +
> > > > > > >>> >> +  usb@0,70098000 {
> > > > > > >>> >> +  compatible = "nvidia,tegra124-xusb";
> > > > > > >>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> > > > > > >>> >> +  ranges;
> > > > > > >>> >> +
> > > > > > >>> >> +  #address-cells = <2>;
> > > > > > >>> >> +  #size-cells = <2>;
> > > > > > >>> >> +
> > > > > > >>> >> +  usb-host@0,7009 {
> > > > > > >>> >> +  compatible = "nvidia,tegra124-xhci";
> > > > > > >>> >> +  ...
> > > > > > >>> >> +  };
> > > > > > >>> >> +
> > > > > > >>> >> +  mailbox {
> > > > > > >>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> > > > > > >>> >> +  ...
> > > > > > >>> >> +  };
> > > > > > >>> >
> > > > > > >>> > This doesn't appear to be a proper MFD.  I would have the USB 
> > > > > > >>> > and
> > > > > > >>> > Mailbox devices probe seperately and use a phandle to point 
> > > > > > >>> > the USB
> > > > > > >>> > device to its Mailbox.
> > > > > > >>> >
> > > > > > >>> > usb@xyz {
> > > > > > >>> > mboxes = <, [chan]>;
> > > > > > >>> > };
> > > > > > >>> >
> > > > > > >>>
> > > > > > >>> I am assuming that Andrew had laid it out like this to reflect 
> > > > > > >>> the hw
> > > > > > >>> structure. The mailbox and xhci controller are part of the xusb
> > > > > > >>> sub-system and hence appear as child nodes. My understanding is 
> > > > > > >>> that for
> > > > > > >>> device-tree we want the device-tree structure to reflect the 
> > > > > > >>> 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-06-30 Thread Grant Likely
On Tue, 26 May 2015 16:18:54 +0100
, Lee Jones lee.jo...@linaro.org
 wrote:
 On Thu, 21 May 2015, Thierry Reding wrote:
 
  On Thu, May 21, 2015 at 09:40:01AM +0100, Lee Jones wrote:
   On Wed, 20 May 2015, Thierry Reding wrote:
On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
 On Tue, 19 May 2015, Andrew Bresticker wrote:
  On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
  abres...@chromium.org wrote:
   On Thu, May 14, 2015 at 12:40 AM, Lee Jones 
   lee.jo...@linaro.org wrote:
   On Thu, 14 May 2015, Jon Hunter wrote:
   On 13/05/15 15:39, Lee Jones wrote:
On Mon, 04 May 2015, Andrew Bresticker wrote:
   
Add a binding document for the XUSB host complex on NVIDIA 
Tegra124
and later SoCs.  The XUSB host complex includes a mailbox for
communication with the XUSB micro-controller and an xHCI 
host-controller.
   
Signed-off-by: Andrew Bresticker abres...@chromium.org
Cc: Rob Herring robh...@kernel.org
Cc: Pawel Moll pawel.m...@arm.com
Cc: Mark Rutland mark.rutl...@arm.com
Cc: Ian Campbell ijc+devicet...@hellion.org.uk
Cc: Kumar Gala ga...@codeaurora.org
Cc: Samuel Ortiz sa...@linux.intel.com
Cc: Lee Jones lee.jo...@linaro.org
---
Changes from v7:
 - Move non-shared resources into child nodes.
New for v7.
---
 .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
++
 1 file changed, 37 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   
diff --git 
a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
new file mode 100644
index 000..bc50110
--- /dev/null
+++ 
b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
@@ -0,0 +1,37 @@
+NVIDIA Tegra XUSB host copmlex
+==
+
+The XUSB host complex on Tegra124 and later SoCs contains 
an xHCI host
+controller and a mailbox for communication with the XUSB 
micro-controller.
+
+Required properties:
+
+ - compatible: For Tegra124, must contain 
nvidia,tegra124-xusb.
+   Otherwise, must contain 'nvidia,chip-xusb, 
nvidia,tegra124-xusb'
+   where chip is tegra132.
+ - reg: Must contain the base and length of the XUSB FPCI 
registers.
+ - ranges: Bus address mapping for the XUSB block.  Can be 
empty since the
+   mapping is 1:1.
+ - #address-cells: Must be 2.
+ - #size-cells: Must be 2.
+
+Example:
+
+  usb@0,70098000 {
+  compatible = nvidia,tegra124-xusb;
+  reg = 0x0 0x70098000 0x0 0x1000;
+  ranges;
+
+  #address-cells = 2;
+  #size-cells = 2;
+
+  usb-host@0,7009 {
+  compatible = nvidia,tegra124-xhci;
+  ...
+  };
+
+  mailbox {
+  compatible = nvidia,tegra124-xusb-mbox;
+  ...
+  };
   
This doesn't appear to be a proper MFD.  I would have the USB 
and
Mailbox devices probe seperately and use a phandle to point 
the USB
device to its Mailbox.
   
usb@xyz {
mboxes = xusb-mailbox, [chan];
};
   
  
   I am assuming that Andrew had laid it out like this to reflect 
   the hw
   structure. The mailbox and xhci controller are part of the xusb
   sub-system and hence appear as child nodes. My understanding is 
   that for
   device-tree we want the device-tree structure to reflect the 
   actual hw.
   Is this not the case?
  
   Yes, the DT files should reflect h/w.  I have requested to see 
   what
   the memory map looks like, so I might provide a more appropriate
   solution to accepting a pretty pointless MFD.
  
   FWIW, the address map for XUSB looks like this:
  
   XUSB_HOST: 0x7009 - 0x7009a000
   xHCI registers: 0x7009 - 0x70098000
   FPCI configuration registers: 0x70098000 - 0x70099000
   IPFS configuration registers: 0x70099000 - 0x7009a000
  
   Two solutions spring to mind.  You can either call
   of_platform_populate() from the USB driver, as some already do:
  
 drivers/usb/dwc3/dwc3-exynos.c:
   ret = of_platform_populate(node, NULL, NULL, dev);
 drivers/usb/dwc3/dwc3-keystone.c:
   error = 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-26 Thread Lee Jones
On Thu, 21 May 2015, Thierry Reding wrote:

> On Thu, May 21, 2015 at 09:40:01AM +0100, Lee Jones wrote:
> > On Wed, 20 May 2015, Thierry Reding wrote:
> > > On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
> > > > On Tue, 19 May 2015, Andrew Bresticker wrote:
> > > > > On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
> > > > >  wrote:
> > > > > > On Thu, May 14, 2015 at 12:40 AM, Lee Jones  
> > > > > > wrote:
> > > > > >> On Thu, 14 May 2015, Jon Hunter wrote:
> > > > > >>> On 13/05/15 15:39, Lee Jones wrote:
> > > > > >>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> > > > > >>> >
> > > > > >>> >> Add a binding document for the XUSB host complex on NVIDIA 
> > > > > >>> >> Tegra124
> > > > > >>> >> and later SoCs.  The XUSB host complex includes a mailbox for
> > > > > >>> >> communication with the XUSB micro-controller and an xHCI 
> > > > > >>> >> host-controller.
> > > > > >>> >>
> > > > > >>> >> Signed-off-by: Andrew Bresticker 
> > > > > >>> >> Cc: Rob Herring 
> > > > > >>> >> Cc: Pawel Moll 
> > > > > >>> >> Cc: Mark Rutland 
> > > > > >>> >> Cc: Ian Campbell 
> > > > > >>> >> Cc: Kumar Gala 
> > > > > >>> >> Cc: Samuel Ortiz 
> > > > > >>> >> Cc: Lee Jones 
> > > > > >>> >> ---
> > > > > >>> >> Changes from v7:
> > > > > >>> >>  - Move non-shared resources into child nodes.
> > > > > >>> >> New for v7.
> > > > > >>> >> ---
> > > > > >>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> > > > > >>> >> ++
> > > > > >>> >>  1 file changed, 37 insertions(+)
> > > > > >>> >>  create mode 100644 
> > > > > >>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > >>> >>
> > > > > >>> >> diff --git 
> > > > > >>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > >>> >>  
> > > > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > >>> >> new file mode 100644
> > > > > >>> >> index 000..bc50110
> > > > > >>> >> --- /dev/null
> > > > > >>> >> +++ 
> > > > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > > >>> >> @@ -0,0 +1,37 @@
> > > > > >>> >> +NVIDIA Tegra XUSB host copmlex
> > > > > >>> >> +==
> > > > > >>> >> +
> > > > > >>> >> +The XUSB host complex on Tegra124 and later SoCs contains an 
> > > > > >>> >> xHCI host
> > > > > >>> >> +controller and a mailbox for communication with the XUSB 
> > > > > >>> >> micro-controller.
> > > > > >>> >> +
> > > > > >>> >> +Required properties:
> > > > > >>> >> +
> > > > > >>> >> + - compatible: For Tegra124, must contain 
> > > > > >>> >> "nvidia,tegra124-xusb".
> > > > > >>> >> +   Otherwise, must contain '"nvidia,-xusb", 
> > > > > >>> >> "nvidia,tegra124-xusb"'
> > > > > >>> >> +   where  is tegra132.
> > > > > >>> >> + - reg: Must contain the base and length of the XUSB FPCI 
> > > > > >>> >> registers.
> > > > > >>> >> + - ranges: Bus address mapping for the XUSB block.  Can be 
> > > > > >>> >> empty since the
> > > > > >>> >> +   mapping is 1:1.
> > > > > >>> >> + - #address-cells: Must be 2.
> > > > > >>> >> + - #size-cells: Must be 2.
> > > > > >>> >> +
> > > > > >>> >> +Example:
> > > > > >>> >> +
> > > > > >>> >> +  usb@0,70098000 {
> > > > > >>> >> +  compatible = "nvidia,tegra124-xusb";
> > > > > >>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> > > > > >>> >> +  ranges;
> > > > > >>> >> +
> > > > > >>> >> +  #address-cells = <2>;
> > > > > >>> >> +  #size-cells = <2>;
> > > > > >>> >> +
> > > > > >>> >> +  usb-host@0,7009 {
> > > > > >>> >> +  compatible = "nvidia,tegra124-xhci";
> > > > > >>> >> +  ...
> > > > > >>> >> +  };
> > > > > >>> >> +
> > > > > >>> >> +  mailbox {
> > > > > >>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> > > > > >>> >> +  ...
> > > > > >>> >> +  };
> > > > > >>> >
> > > > > >>> > This doesn't appear to be a proper MFD.  I would have the USB 
> > > > > >>> > and
> > > > > >>> > Mailbox devices probe seperately and use a phandle to point the 
> > > > > >>> > USB
> > > > > >>> > device to its Mailbox.
> > > > > >>> >
> > > > > >>> > usb@xyz {
> > > > > >>> > mboxes = <, [chan]>;
> > > > > >>> > };
> > > > > >>> >
> > > > > >>>
> > > > > >>> I am assuming that Andrew had laid it out like this to reflect 
> > > > > >>> the hw
> > > > > >>> structure. The mailbox and xhci controller are part of the xusb
> > > > > >>> sub-system and hence appear as child nodes. My understanding is 
> > > > > >>> that for
> > > > > >>> device-tree we want the device-tree structure to reflect the 
> > > > > >>> actual hw.
> > > > > >>> Is this not the case?
> > > > > >>
> > > > > >> Yes, the DT files should reflect h/w.  I have requested to see what
> > > > > >> the memory map looks like, so I might provide a more appropriate
> > > > > >> solution to accepting a pretty pointless 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-26 Thread Lee Jones
On Thu, 21 May 2015, Thierry Reding wrote:

 On Thu, May 21, 2015 at 09:40:01AM +0100, Lee Jones wrote:
  On Wed, 20 May 2015, Thierry Reding wrote:
   On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
On Tue, 19 May 2015, Andrew Bresticker wrote:
 On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
 abres...@chromium.org wrote:
  On Thu, May 14, 2015 at 12:40 AM, Lee Jones lee.jo...@linaro.org 
  wrote:
  On Thu, 14 May 2015, Jon Hunter wrote:
  On 13/05/15 15:39, Lee Jones wrote:
   On Mon, 04 May 2015, Andrew Bresticker wrote:
  
   Add a binding document for the XUSB host complex on NVIDIA 
   Tegra124
   and later SoCs.  The XUSB host complex includes a mailbox for
   communication with the XUSB micro-controller and an xHCI 
   host-controller.
  
   Signed-off-by: Andrew Bresticker abres...@chromium.org
   Cc: Rob Herring robh...@kernel.org
   Cc: Pawel Moll pawel.m...@arm.com
   Cc: Mark Rutland mark.rutl...@arm.com
   Cc: Ian Campbell ijc+devicet...@hellion.org.uk
   Cc: Kumar Gala ga...@codeaurora.org
   Cc: Samuel Ortiz sa...@linux.intel.com
   Cc: Lee Jones lee.jo...@linaro.org
   ---
   Changes from v7:
- Move non-shared resources into child nodes.
   New for v7.
   ---
.../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
   ++
1 file changed, 37 insertions(+)
create mode 100644 
   Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  
   diff --git 
   a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

   b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   new file mode 100644
   index 000..bc50110
   --- /dev/null
   +++ 
   b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   @@ -0,0 +1,37 @@
   +NVIDIA Tegra XUSB host copmlex
   +==
   +
   +The XUSB host complex on Tegra124 and later SoCs contains an 
   xHCI host
   +controller and a mailbox for communication with the XUSB 
   micro-controller.
   +
   +Required properties:
   +
   + - compatible: For Tegra124, must contain 
   nvidia,tegra124-xusb.
   +   Otherwise, must contain 'nvidia,chip-xusb, 
   nvidia,tegra124-xusb'
   +   where chip is tegra132.
   + - reg: Must contain the base and length of the XUSB FPCI 
   registers.
   + - ranges: Bus address mapping for the XUSB block.  Can be 
   empty since the
   +   mapping is 1:1.
   + - #address-cells: Must be 2.
   + - #size-cells: Must be 2.
   +
   +Example:
   +
   +  usb@0,70098000 {
   +  compatible = nvidia,tegra124-xusb;
   +  reg = 0x0 0x70098000 0x0 0x1000;
   +  ranges;
   +
   +  #address-cells = 2;
   +  #size-cells = 2;
   +
   +  usb-host@0,7009 {
   +  compatible = nvidia,tegra124-xhci;
   +  ...
   +  };
   +
   +  mailbox {
   +  compatible = nvidia,tegra124-xusb-mbox;
   +  ...
   +  };
  
   This doesn't appear to be a proper MFD.  I would have the USB 
   and
   Mailbox devices probe seperately and use a phandle to point the 
   USB
   device to its Mailbox.
  
   usb@xyz {
   mboxes = xusb-mailbox, [chan];
   };
  
 
  I am assuming that Andrew had laid it out like this to reflect 
  the hw
  structure. The mailbox and xhci controller are part of the xusb
  sub-system and hence appear as child nodes. My understanding is 
  that for
  device-tree we want the device-tree structure to reflect the 
  actual hw.
  Is this not the case?
 
  Yes, the DT files should reflect h/w.  I have requested to see what
  the memory map looks like, so I might provide a more appropriate
  solution to accepting a pretty pointless MFD.
 
  FWIW, the address map for XUSB looks like this:
 
  XUSB_HOST: 0x7009 - 0x7009a000
  xHCI registers: 0x7009 - 0x70098000
  FPCI configuration registers: 0x70098000 - 0x70099000
  IPFS configuration registers: 0x70099000 - 0x7009a000
 
  Two solutions spring to mind.  You can either call
  of_platform_populate() from the USB driver, as some already do:
 
drivers/usb/dwc3/dwc3-exynos.c:
  ret = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-keystone.c:
  error = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-omap.c:
  ret = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-qcom.c:
  ret = of_platform_populate(node, NULL, NULL, 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-21 Thread Thierry Reding
On Thu, May 21, 2015 at 09:40:01AM +0100, Lee Jones wrote:
> On Wed, 20 May 2015, Thierry Reding wrote:
> > On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
> > > On Tue, 19 May 2015, Andrew Bresticker wrote:
> > > > On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
> > > >  wrote:
> > > > > On Thu, May 14, 2015 at 12:40 AM, Lee Jones  
> > > > > wrote:
> > > > >> On Thu, 14 May 2015, Jon Hunter wrote:
> > > > >>> On 13/05/15 15:39, Lee Jones wrote:
> > > > >>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> > > > >>> >
> > > > >>> >> Add a binding document for the XUSB host complex on NVIDIA 
> > > > >>> >> Tegra124
> > > > >>> >> and later SoCs.  The XUSB host complex includes a mailbox for
> > > > >>> >> communication with the XUSB micro-controller and an xHCI 
> > > > >>> >> host-controller.
> > > > >>> >>
> > > > >>> >> Signed-off-by: Andrew Bresticker 
> > > > >>> >> Cc: Rob Herring 
> > > > >>> >> Cc: Pawel Moll 
> > > > >>> >> Cc: Mark Rutland 
> > > > >>> >> Cc: Ian Campbell 
> > > > >>> >> Cc: Kumar Gala 
> > > > >>> >> Cc: Samuel Ortiz 
> > > > >>> >> Cc: Lee Jones 
> > > > >>> >> ---
> > > > >>> >> Changes from v7:
> > > > >>> >>  - Move non-shared resources into child nodes.
> > > > >>> >> New for v7.
> > > > >>> >> ---
> > > > >>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> > > > >>> >> ++
> > > > >>> >>  1 file changed, 37 insertions(+)
> > > > >>> >>  create mode 100644 
> > > > >>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > >>> >>
> > > > >>> >> diff --git 
> > > > >>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> > > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > >>> >> new file mode 100644
> > > > >>> >> index 000..bc50110
> > > > >>> >> --- /dev/null
> > > > >>> >> +++ 
> > > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > > >>> >> @@ -0,0 +1,37 @@
> > > > >>> >> +NVIDIA Tegra XUSB host copmlex
> > > > >>> >> +==
> > > > >>> >> +
> > > > >>> >> +The XUSB host complex on Tegra124 and later SoCs contains an 
> > > > >>> >> xHCI host
> > > > >>> >> +controller and a mailbox for communication with the XUSB 
> > > > >>> >> micro-controller.
> > > > >>> >> +
> > > > >>> >> +Required properties:
> > > > >>> >> +
> > > > >>> >> + - compatible: For Tegra124, must contain 
> > > > >>> >> "nvidia,tegra124-xusb".
> > > > >>> >> +   Otherwise, must contain '"nvidia,-xusb", 
> > > > >>> >> "nvidia,tegra124-xusb"'
> > > > >>> >> +   where  is tegra132.
> > > > >>> >> + - reg: Must contain the base and length of the XUSB FPCI 
> > > > >>> >> registers.
> > > > >>> >> + - ranges: Bus address mapping for the XUSB block.  Can be 
> > > > >>> >> empty since the
> > > > >>> >> +   mapping is 1:1.
> > > > >>> >> + - #address-cells: Must be 2.
> > > > >>> >> + - #size-cells: Must be 2.
> > > > >>> >> +
> > > > >>> >> +Example:
> > > > >>> >> +
> > > > >>> >> +  usb@0,70098000 {
> > > > >>> >> +  compatible = "nvidia,tegra124-xusb";
> > > > >>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> > > > >>> >> +  ranges;
> > > > >>> >> +
> > > > >>> >> +  #address-cells = <2>;
> > > > >>> >> +  #size-cells = <2>;
> > > > >>> >> +
> > > > >>> >> +  usb-host@0,7009 {
> > > > >>> >> +  compatible = "nvidia,tegra124-xhci";
> > > > >>> >> +  ...
> > > > >>> >> +  };
> > > > >>> >> +
> > > > >>> >> +  mailbox {
> > > > >>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> > > > >>> >> +  ...
> > > > >>> >> +  };
> > > > >>> >
> > > > >>> > This doesn't appear to be a proper MFD.  I would have the USB and
> > > > >>> > Mailbox devices probe seperately and use a phandle to point the 
> > > > >>> > USB
> > > > >>> > device to its Mailbox.
> > > > >>> >
> > > > >>> > usb@xyz {
> > > > >>> > mboxes = <, [chan]>;
> > > > >>> > };
> > > > >>> >
> > > > >>>
> > > > >>> I am assuming that Andrew had laid it out like this to reflect the 
> > > > >>> hw
> > > > >>> structure. The mailbox and xhci controller are part of the xusb
> > > > >>> sub-system and hence appear as child nodes. My understanding is 
> > > > >>> that for
> > > > >>> device-tree we want the device-tree structure to reflect the actual 
> > > > >>> hw.
> > > > >>> Is this not the case?
> > > > >>
> > > > >> Yes, the DT files should reflect h/w.  I have requested to see what
> > > > >> the memory map looks like, so I might provide a more appropriate
> > > > >> solution to accepting a pretty pointless MFD.
> > > > >
> > > > > FWIW, the address map for XUSB looks like this:
> > > > >
> > > > > XUSB_HOST: 0x7009 - 0x7009a000
> > > > > xHCI registers: 0x7009 - 0x70098000
> > > > > FPCI configuration registers: 0x70098000 - 0x70099000
> > > > > IPFS configuration registers: 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-21 Thread Lee Jones
On Wed, 20 May 2015, Thierry Reding wrote:
> On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
> > On Tue, 19 May 2015, Andrew Bresticker wrote:
> > > On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
> > >  wrote:
> > > > On Thu, May 14, 2015 at 12:40 AM, Lee Jones  
> > > > wrote:
> > > >> On Thu, 14 May 2015, Jon Hunter wrote:
> > > >>> On 13/05/15 15:39, Lee Jones wrote:
> > > >>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> > > >>> >
> > > >>> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> > > >>> >> and later SoCs.  The XUSB host complex includes a mailbox for
> > > >>> >> communication with the XUSB micro-controller and an xHCI 
> > > >>> >> host-controller.
> > > >>> >>
> > > >>> >> Signed-off-by: Andrew Bresticker 
> > > >>> >> Cc: Rob Herring 
> > > >>> >> Cc: Pawel Moll 
> > > >>> >> Cc: Mark Rutland 
> > > >>> >> Cc: Ian Campbell 
> > > >>> >> Cc: Kumar Gala 
> > > >>> >> Cc: Samuel Ortiz 
> > > >>> >> Cc: Lee Jones 
> > > >>> >> ---
> > > >>> >> Changes from v7:
> > > >>> >>  - Move non-shared resources into child nodes.
> > > >>> >> New for v7.
> > > >>> >> ---
> > > >>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> > > >>> >> ++
> > > >>> >>  1 file changed, 37 insertions(+)
> > > >>> >>  create mode 100644 
> > > >>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > >>> >>
> > > >>> >> diff --git 
> > > >>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > >>> >> new file mode 100644
> > > >>> >> index 000..bc50110
> > > >>> >> --- /dev/null
> > > >>> >> +++ 
> > > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > > >>> >> @@ -0,0 +1,37 @@
> > > >>> >> +NVIDIA Tegra XUSB host copmlex
> > > >>> >> +==
> > > >>> >> +
> > > >>> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI 
> > > >>> >> host
> > > >>> >> +controller and a mailbox for communication with the XUSB 
> > > >>> >> micro-controller.
> > > >>> >> +
> > > >>> >> +Required properties:
> > > >>> >> +
> > > >>> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> > > >>> >> +   Otherwise, must contain '"nvidia,-xusb", 
> > > >>> >> "nvidia,tegra124-xusb"'
> > > >>> >> +   where  is tegra132.
> > > >>> >> + - reg: Must contain the base and length of the XUSB FPCI 
> > > >>> >> registers.
> > > >>> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty 
> > > >>> >> since the
> > > >>> >> +   mapping is 1:1.
> > > >>> >> + - #address-cells: Must be 2.
> > > >>> >> + - #size-cells: Must be 2.
> > > >>> >> +
> > > >>> >> +Example:
> > > >>> >> +
> > > >>> >> +  usb@0,70098000 {
> > > >>> >> +  compatible = "nvidia,tegra124-xusb";
> > > >>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> > > >>> >> +  ranges;
> > > >>> >> +
> > > >>> >> +  #address-cells = <2>;
> > > >>> >> +  #size-cells = <2>;
> > > >>> >> +
> > > >>> >> +  usb-host@0,7009 {
> > > >>> >> +  compatible = "nvidia,tegra124-xhci";
> > > >>> >> +  ...
> > > >>> >> +  };
> > > >>> >> +
> > > >>> >> +  mailbox {
> > > >>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> > > >>> >> +  ...
> > > >>> >> +  };
> > > >>> >
> > > >>> > This doesn't appear to be a proper MFD.  I would have the USB and
> > > >>> > Mailbox devices probe seperately and use a phandle to point the USB
> > > >>> > device to its Mailbox.
> > > >>> >
> > > >>> > usb@xyz {
> > > >>> > mboxes = <, [chan]>;
> > > >>> > };
> > > >>> >
> > > >>>
> > > >>> I am assuming that Andrew had laid it out like this to reflect the hw
> > > >>> structure. The mailbox and xhci controller are part of the xusb
> > > >>> sub-system and hence appear as child nodes. My understanding is that 
> > > >>> for
> > > >>> device-tree we want the device-tree structure to reflect the actual 
> > > >>> hw.
> > > >>> Is this not the case?
> > > >>
> > > >> Yes, the DT files should reflect h/w.  I have requested to see what
> > > >> the memory map looks like, so I might provide a more appropriate
> > > >> solution to accepting a pretty pointless MFD.
> > > >
> > > > FWIW, the address map for XUSB looks like this:
> > > >
> > > > XUSB_HOST: 0x7009 - 0x7009a000
> > > > xHCI registers: 0x7009 - 0x70098000
> > > > FPCI configuration registers: 0x70098000 - 0x70099000
> > > > IPFS configuration registers: 0x70099000 - 0x7009a000
> > > >
> > > >> Two solutions spring to mind.  You can either call
> > > >> of_platform_populate() from the USB driver, as some already do:
> > > >>
> > > >>   drivers/usb/dwc3/dwc3-exynos.c:
> > > >> ret = of_platform_populate(node, NULL, NULL, dev);
> > > >>   drivers/usb/dwc3/dwc3-keystone.c:
> > > >> error = 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-21 Thread Linus Walleij
On Wed, May 20, 2015 at 4:52 PM, Thierry Reding
 wrote:

> I'm a little confused by the simple-mfd approach. The only code I see in
> linux-next for this is a single line that adds the "simple-mfd" string
> to the OF device ID table in drivers/of/platform.c. As far as I can tell
> this will merely cause child devices to be created. There won't be a
> shared regmap and resources won't be set up properly either.

That is correct. The simple-mfd is a two-component approach.

Ideally, in the simplest case, you combine simple-mfd with syscon.

foo@0 {
compatible = "foo", "syscon", "simple-mfd";
reg = <0x1000 0x1000>;

bar@1 {
compatible = "bar";
};

baz@2 {
compatible = "baz";
};
};

This will instantiate bar and baz.

These subdrivers then probe and:

probe() {
   struct regmap *map;

   map = syscon_node_to_regmap(parent->of_node);
   (...)
}

Simple, syscon is the MFD hub.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-21 Thread Lee Jones
On Wed, 20 May 2015, Thierry Reding wrote:
 On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
  On Tue, 19 May 2015, Andrew Bresticker wrote:
   On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
   abres...@chromium.org wrote:
On Thu, May 14, 2015 at 12:40 AM, Lee Jones lee.jo...@linaro.org 
wrote:
On Thu, 14 May 2015, Jon Hunter wrote:
On 13/05/15 15:39, Lee Jones wrote:
 On Mon, 04 May 2015, Andrew Bresticker wrote:

 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI 
 host-controller.

 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git 
 a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI 
 host
 +controller and a mailbox for communication with the XUSB 
 micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, 
 nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI 
 registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty 
 since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 +  usb@0,70098000 {
 +  compatible = nvidia,tegra124-xusb;
 +  reg = 0x0 0x70098000 0x0 0x1000;
 +  ranges;
 +
 +  #address-cells = 2;
 +  #size-cells = 2;
 +
 +  usb-host@0,7009 {
 +  compatible = nvidia,tegra124-xhci;
 +  ...
 +  };
 +
 +  mailbox {
 +  compatible = nvidia,tegra124-xusb-mbox;
 +  ...
 +  };

 This doesn't appear to be a proper MFD.  I would have the USB and
 Mailbox devices probe seperately and use a phandle to point the USB
 device to its Mailbox.

 usb@xyz {
 mboxes = xusb-mailbox, [chan];
 };

   
I am assuming that Andrew had laid it out like this to reflect the hw
structure. The mailbox and xhci controller are part of the xusb
sub-system and hence appear as child nodes. My understanding is that 
for
device-tree we want the device-tree structure to reflect the actual 
hw.
Is this not the case?
   
Yes, the DT files should reflect h/w.  I have requested to see what
the memory map looks like, so I might provide a more appropriate
solution to accepting a pretty pointless MFD.
   
FWIW, the address map for XUSB looks like this:
   
XUSB_HOST: 0x7009 - 0x7009a000
xHCI registers: 0x7009 - 0x70098000
FPCI configuration registers: 0x70098000 - 0x70099000
IPFS configuration registers: 0x70099000 - 0x7009a000
   
Two solutions spring to mind.  You can either call
of_platform_populate() from the USB driver, as some already do:
   
  drivers/usb/dwc3/dwc3-exynos.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-keystone.c:
error = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-omap.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-qcom.c:
ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
  drivers/usb/dwc3/dwc3-st.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/musb/musb_am335x.c:
ret = of_platform_populate(pdev-dev.of_node, NULL, NULL, 
pdev-dev);
   
This still requires a small, separate driver to setup the regmap and
do of_platform_populate().  The only difference is it lives in
drivers/usb/ instead of 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-21 Thread Linus Walleij
On Wed, May 20, 2015 at 4:52 PM, Thierry Reding
thierry.red...@gmail.com wrote:

 I'm a little confused by the simple-mfd approach. The only code I see in
 linux-next for this is a single line that adds the simple-mfd string
 to the OF device ID table in drivers/of/platform.c. As far as I can tell
 this will merely cause child devices to be created. There won't be a
 shared regmap and resources won't be set up properly either.

That is correct. The simple-mfd is a two-component approach.

Ideally, in the simplest case, you combine simple-mfd with syscon.

foo@0 {
compatible = foo, syscon, simple-mfd;
reg = 0x1000 0x1000;

bar@1 {
compatible = bar;
};

baz@2 {
compatible = baz;
};
};

This will instantiate bar and baz.

These subdrivers then probe and:

probe() {
   struct regmap *map;

   map = syscon_node_to_regmap(parent-of_node);
   (...)
}

Simple, syscon is the MFD hub.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-21 Thread Thierry Reding
On Thu, May 21, 2015 at 09:40:01AM +0100, Lee Jones wrote:
 On Wed, 20 May 2015, Thierry Reding wrote:
  On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
   On Tue, 19 May 2015, Andrew Bresticker wrote:
On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
abres...@chromium.org wrote:
 On Thu, May 14, 2015 at 12:40 AM, Lee Jones lee.jo...@linaro.org 
 wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:
 On 13/05/15 15:39, Lee Jones wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA 
  Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI 
  host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an 
  xHCI host
  +controller and a mailbox for communication with the XUSB 
  micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain 
  nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, 
  nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI 
  registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be 
  empty since the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  +  usb@0,70098000 {
  +  compatible = nvidia,tegra124-xusb;
  +  reg = 0x0 0x70098000 0x0 0x1000;
  +  ranges;
  +
  +  #address-cells = 2;
  +  #size-cells = 2;
  +
  +  usb-host@0,7009 {
  +  compatible = nvidia,tegra124-xhci;
  +  ...
  +  };
  +
  +  mailbox {
  +  compatible = nvidia,tegra124-xusb-mbox;
  +  ...
  +  };
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the 
  USB
  device to its Mailbox.
 
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };
 

 I am assuming that Andrew had laid it out like this to reflect the 
 hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is 
 that for
 device-tree we want the device-tree structure to reflect the actual 
 hw.
 Is this not the case?

 Yes, the DT files should reflect h/w.  I have requested to see what
 the memory map looks like, so I might provide a more appropriate
 solution to accepting a pretty pointless MFD.

 FWIW, the address map for XUSB looks like this:

 XUSB_HOST: 0x7009 - 0x7009a000
 xHCI registers: 0x7009 - 0x70098000
 FPCI configuration registers: 0x70098000 - 0x70099000
 IPFS configuration registers: 0x70099000 - 0x7009a000

 Two solutions spring to mind.  You can either call
 of_platform_populate() from the USB driver, as some already do:

   drivers/usb/dwc3/dwc3-exynos.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-keystone.c:
 error = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-omap.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-qcom.c:
 ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
   drivers/usb/dwc3/dwc3-st.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/musb/musb_am335x.c:
 ret = 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-20 Thread Thierry Reding
On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
> On Tue, 19 May 2015, Andrew Bresticker wrote:
> 
> > Lee,
> > 
> > On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
> >  wrote:
> > > On Thu, May 14, 2015 at 12:40 AM, Lee Jones  wrote:
> > >> On Thu, 14 May 2015, Jon Hunter wrote:
> > >>
> > >>> Hi Lee,
> > >>>
> > >>> On 13/05/15 15:39, Lee Jones wrote:
> > >>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> > >>> >
> > >>> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> > >>> >> and later SoCs.  The XUSB host complex includes a mailbox for
> > >>> >> communication with the XUSB micro-controller and an xHCI 
> > >>> >> host-controller.
> > >>> >>
> > >>> >> Signed-off-by: Andrew Bresticker 
> > >>> >> Cc: Rob Herring 
> > >>> >> Cc: Pawel Moll 
> > >>> >> Cc: Mark Rutland 
> > >>> >> Cc: Ian Campbell 
> > >>> >> Cc: Kumar Gala 
> > >>> >> Cc: Samuel Ortiz 
> > >>> >> Cc: Lee Jones 
> > >>> >> ---
> > >>> >> Changes from v7:
> > >>> >>  - Move non-shared resources into child nodes.
> > >>> >> New for v7.
> > >>> >> ---
> > >>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> > >>> >> ++
> > >>> >>  1 file changed, 37 insertions(+)
> > >>> >>  create mode 100644 
> > >>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > >>> >>
> > >>> >> diff --git 
> > >>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> > >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > >>> >> new file mode 100644
> > >>> >> index 000..bc50110
> > >>> >> --- /dev/null
> > >>> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> > >>> >> @@ -0,0 +1,37 @@
> > >>> >> +NVIDIA Tegra XUSB host copmlex
> > >>> >> +==
> > >>> >> +
> > >>> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI 
> > >>> >> host
> > >>> >> +controller and a mailbox for communication with the XUSB 
> > >>> >> micro-controller.
> > >>> >> +
> > >>> >> +Required properties:
> > >>> >> +
> > >>> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> > >>> >> +   Otherwise, must contain '"nvidia,-xusb", 
> > >>> >> "nvidia,tegra124-xusb"'
> > >>> >> +   where  is tegra132.
> > >>> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
> > >>> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty 
> > >>> >> since the
> > >>> >> +   mapping is 1:1.
> > >>> >> + - #address-cells: Must be 2.
> > >>> >> + - #size-cells: Must be 2.
> > >>> >> +
> > >>> >> +Example:
> > >>> >> +
> > >>> >> +  usb@0,70098000 {
> > >>> >> +  compatible = "nvidia,tegra124-xusb";
> > >>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> > >>> >> +  ranges;
> > >>> >> +
> > >>> >> +  #address-cells = <2>;
> > >>> >> +  #size-cells = <2>;
> > >>> >> +
> > >>> >> +  usb-host@0,7009 {
> > >>> >> +  compatible = "nvidia,tegra124-xhci";
> > >>> >> +  ...
> > >>> >> +  };
> > >>> >> +
> > >>> >> +  mailbox {
> > >>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> > >>> >> +  ...
> > >>> >> +  };
> > >>> >
> > >>> > This doesn't appear to be a proper MFD.  I would have the USB and
> > >>> > Mailbox devices probe seperately and use a phandle to point the USB
> > >>> > device to its Mailbox.
> > >>> >
> > >>> > usb@xyz {
> > >>> > mboxes = <, [chan]>;
> > >>> > };
> > >>> >
> > >>>
> > >>> I am assuming that Andrew had laid it out like this to reflect the hw
> > >>> structure. The mailbox and xhci controller are part of the xusb
> > >>> sub-system and hence appear as child nodes. My understanding is that for
> > >>> device-tree we want the device-tree structure to reflect the actual hw.
> > >>> Is this not the case?
> > >>
> > >> Yes, the DT files should reflect h/w.  I have requested to see what
> > >> the memory map looks like, so I might provide a more appropriate
> > >> solution to accepting a pretty pointless MFD.
> > >
> > > FWIW, the address map for XUSB looks like this:
> > >
> > > XUSB_HOST: 0x7009 - 0x7009a000
> > > xHCI registers: 0x7009 - 0x70098000
> > > FPCI configuration registers: 0x70098000 - 0x70099000
> > > IPFS configuration registers: 0x70099000 - 0x7009a000
> > >
> > >> Two solutions spring to mind.  You can either call
> > >> of_platform_populate() from the USB driver, as some already do:
> > >>
> > >>   drivers/usb/dwc3/dwc3-exynos.c:
> > >> ret = of_platform_populate(node, NULL, NULL, dev);
> > >>   drivers/usb/dwc3/dwc3-keystone.c:
> > >> error = of_platform_populate(node, NULL, NULL, dev);
> > >>   drivers/usb/dwc3/dwc3-omap.c:
> > >> ret = of_platform_populate(node, NULL, NULL, dev);
> > >>   drivers/usb/dwc3/dwc3-qcom.c:
> > >> ret = of_platform_populate(node, NULL, NULL, qdwc->dev);
> > >>   drivers/usb/dwc3/dwc3-st.c:
> 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-20 Thread Lee Jones
On Tue, 19 May 2015, Andrew Bresticker wrote:

> Lee,
> 
> On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
>  wrote:
> > On Thu, May 14, 2015 at 12:40 AM, Lee Jones  wrote:
> >> On Thu, 14 May 2015, Jon Hunter wrote:
> >>
> >>> Hi Lee,
> >>>
> >>> On 13/05/15 15:39, Lee Jones wrote:
> >>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> >>> >
> >>> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> >>> >> and later SoCs.  The XUSB host complex includes a mailbox for
> >>> >> communication with the XUSB micro-controller and an xHCI 
> >>> >> host-controller.
> >>> >>
> >>> >> Signed-off-by: Andrew Bresticker 
> >>> >> Cc: Rob Herring 
> >>> >> Cc: Pawel Moll 
> >>> >> Cc: Mark Rutland 
> >>> >> Cc: Ian Campbell 
> >>> >> Cc: Kumar Gala 
> >>> >> Cc: Samuel Ortiz 
> >>> >> Cc: Lee Jones 
> >>> >> ---
> >>> >> Changes from v7:
> >>> >>  - Move non-shared resources into child nodes.
> >>> >> New for v7.
> >>> >> ---
> >>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> >>> >> ++
> >>> >>  1 file changed, 37 insertions(+)
> >>> >>  create mode 100644 
> >>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >>> >>
> >>> >> diff --git 
> >>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> >>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >>> >> new file mode 100644
> >>> >> index 000..bc50110
> >>> >> --- /dev/null
> >>> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >>> >> @@ -0,0 +1,37 @@
> >>> >> +NVIDIA Tegra XUSB host copmlex
> >>> >> +==
> >>> >> +
> >>> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
> >>> >> +controller and a mailbox for communication with the XUSB 
> >>> >> micro-controller.
> >>> >> +
> >>> >> +Required properties:
> >>> >> +
> >>> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> >>> >> +   Otherwise, must contain '"nvidia,-xusb", 
> >>> >> "nvidia,tegra124-xusb"'
> >>> >> +   where  is tegra132.
> >>> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
> >>> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty 
> >>> >> since the
> >>> >> +   mapping is 1:1.
> >>> >> + - #address-cells: Must be 2.
> >>> >> + - #size-cells: Must be 2.
> >>> >> +
> >>> >> +Example:
> >>> >> +
> >>> >> +  usb@0,70098000 {
> >>> >> +  compatible = "nvidia,tegra124-xusb";
> >>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> >>> >> +  ranges;
> >>> >> +
> >>> >> +  #address-cells = <2>;
> >>> >> +  #size-cells = <2>;
> >>> >> +
> >>> >> +  usb-host@0,7009 {
> >>> >> +  compatible = "nvidia,tegra124-xhci";
> >>> >> +  ...
> >>> >> +  };
> >>> >> +
> >>> >> +  mailbox {
> >>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> >>> >> +  ...
> >>> >> +  };
> >>> >
> >>> > This doesn't appear to be a proper MFD.  I would have the USB and
> >>> > Mailbox devices probe seperately and use a phandle to point the USB
> >>> > device to its Mailbox.
> >>> >
> >>> > usb@xyz {
> >>> > mboxes = <, [chan]>;
> >>> > };
> >>> >
> >>>
> >>> I am assuming that Andrew had laid it out like this to reflect the hw
> >>> structure. The mailbox and xhci controller are part of the xusb
> >>> sub-system and hence appear as child nodes. My understanding is that for
> >>> device-tree we want the device-tree structure to reflect the actual hw.
> >>> Is this not the case?
> >>
> >> Yes, the DT files should reflect h/w.  I have requested to see what
> >> the memory map looks like, so I might provide a more appropriate
> >> solution to accepting a pretty pointless MFD.
> >
> > FWIW, the address map for XUSB looks like this:
> >
> > XUSB_HOST: 0x7009 - 0x7009a000
> > xHCI registers: 0x7009 - 0x70098000
> > FPCI configuration registers: 0x70098000 - 0x70099000
> > IPFS configuration registers: 0x70099000 - 0x7009a000
> >
> >> Two solutions spring to mind.  You can either call
> >> of_platform_populate() from the USB driver, as some already do:
> >>
> >>   drivers/usb/dwc3/dwc3-exynos.c:
> >> ret = of_platform_populate(node, NULL, NULL, dev);
> >>   drivers/usb/dwc3/dwc3-keystone.c:
> >> error = of_platform_populate(node, NULL, NULL, dev);
> >>   drivers/usb/dwc3/dwc3-omap.c:
> >> ret = of_platform_populate(node, NULL, NULL, dev);
> >>   drivers/usb/dwc3/dwc3-qcom.c:
> >> ret = of_platform_populate(node, NULL, NULL, qdwc->dev);
> >>   drivers/usb/dwc3/dwc3-st.c:
> >> ret = of_platform_populate(node, NULL, NULL, dev);
> >>   drivers/usb/musb/musb_am335x.c:
> >> ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, >dev);
> >
> > This still requires a small, separate driver to setup the regmap and
> > do of_platform_populate().  The only difference is it lives in
> > 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-20 Thread Lee Jones
On Tue, 19 May 2015, Andrew Bresticker wrote:

 Lee,
 
 On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
 abres...@chromium.org wrote:
  On Thu, May 14, 2015 at 12:40 AM, Lee Jones lee.jo...@linaro.org wrote:
  On Thu, 14 May 2015, Jon Hunter wrote:
 
  Hi Lee,
 
  On 13/05/15 15:39, Lee Jones wrote:
   On Mon, 04 May 2015, Andrew Bresticker wrote:
  
   Add a binding document for the XUSB host complex on NVIDIA Tegra124
   and later SoCs.  The XUSB host complex includes a mailbox for
   communication with the XUSB micro-controller and an xHCI 
   host-controller.
  
   Signed-off-by: Andrew Bresticker abres...@chromium.org
   Cc: Rob Herring robh...@kernel.org
   Cc: Pawel Moll pawel.m...@arm.com
   Cc: Mark Rutland mark.rutl...@arm.com
   Cc: Ian Campbell ijc+devicet...@hellion.org.uk
   Cc: Kumar Gala ga...@codeaurora.org
   Cc: Samuel Ortiz sa...@linux.intel.com
   Cc: Lee Jones lee.jo...@linaro.org
   ---
   Changes from v7:
- Move non-shared resources into child nodes.
   New for v7.
   ---
.../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
   ++
1 file changed, 37 insertions(+)
create mode 100644 
   Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  
   diff --git 
   a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
   b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   new file mode 100644
   index 000..bc50110
   --- /dev/null
   +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   @@ -0,0 +1,37 @@
   +NVIDIA Tegra XUSB host copmlex
   +==
   +
   +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
   +controller and a mailbox for communication with the XUSB 
   micro-controller.
   +
   +Required properties:
   +
   + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
   +   Otherwise, must contain 'nvidia,chip-xusb, 
   nvidia,tegra124-xusb'
   +   where chip is tegra132.
   + - reg: Must contain the base and length of the XUSB FPCI registers.
   + - ranges: Bus address mapping for the XUSB block.  Can be empty 
   since the
   +   mapping is 1:1.
   + - #address-cells: Must be 2.
   + - #size-cells: Must be 2.
   +
   +Example:
   +
   +  usb@0,70098000 {
   +  compatible = nvidia,tegra124-xusb;
   +  reg = 0x0 0x70098000 0x0 0x1000;
   +  ranges;
   +
   +  #address-cells = 2;
   +  #size-cells = 2;
   +
   +  usb-host@0,7009 {
   +  compatible = nvidia,tegra124-xhci;
   +  ...
   +  };
   +
   +  mailbox {
   +  compatible = nvidia,tegra124-xusb-mbox;
   +  ...
   +  };
  
   This doesn't appear to be a proper MFD.  I would have the USB and
   Mailbox devices probe seperately and use a phandle to point the USB
   device to its Mailbox.
  
   usb@xyz {
   mboxes = xusb-mailbox, [chan];
   };
  
 
  I am assuming that Andrew had laid it out like this to reflect the hw
  structure. The mailbox and xhci controller are part of the xusb
  sub-system and hence appear as child nodes. My understanding is that for
  device-tree we want the device-tree structure to reflect the actual hw.
  Is this not the case?
 
  Yes, the DT files should reflect h/w.  I have requested to see what
  the memory map looks like, so I might provide a more appropriate
  solution to accepting a pretty pointless MFD.
 
  FWIW, the address map for XUSB looks like this:
 
  XUSB_HOST: 0x7009 - 0x7009a000
  xHCI registers: 0x7009 - 0x70098000
  FPCI configuration registers: 0x70098000 - 0x70099000
  IPFS configuration registers: 0x70099000 - 0x7009a000
 
  Two solutions spring to mind.  You can either call
  of_platform_populate() from the USB driver, as some already do:
 
drivers/usb/dwc3/dwc3-exynos.c:
  ret = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-keystone.c:
  error = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-omap.c:
  ret = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-qcom.c:
  ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
drivers/usb/dwc3/dwc3-st.c:
  ret = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/musb/musb_am335x.c:
  ret = of_platform_populate(pdev-dev.of_node, NULL, NULL, pdev-dev);
 
  This still requires a small, separate driver to setup the regmap and
  do of_platform_populate().  The only difference is it lives in
  drivers/usb/ instead of drivers/mfd/.
 
  Or use the simple-mfd, which is currently in -next:
 
git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt
 
  I'm not too opposed to this, but Thierry was when I brought this up
  before.  The issue here is that if we ever have to do something
  besides setting up a regmap in the MFD, we'd have to change the
  binding and break DT 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-20 Thread Thierry Reding
On Wed, May 20, 2015 at 07:35:51AM +0100, Lee Jones wrote:
 On Tue, 19 May 2015, Andrew Bresticker wrote:
 
  Lee,
  
  On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
  abres...@chromium.org wrote:
   On Thu, May 14, 2015 at 12:40 AM, Lee Jones lee.jo...@linaro.org wrote:
   On Thu, 14 May 2015, Jon Hunter wrote:
  
   Hi Lee,
  
   On 13/05/15 15:39, Lee Jones wrote:
On Mon, 04 May 2015, Andrew Bresticker wrote:
   
Add a binding document for the XUSB host complex on NVIDIA Tegra124
and later SoCs.  The XUSB host complex includes a mailbox for
communication with the XUSB micro-controller and an xHCI 
host-controller.
   
Signed-off-by: Andrew Bresticker abres...@chromium.org
Cc: Rob Herring robh...@kernel.org
Cc: Pawel Moll pawel.m...@arm.com
Cc: Mark Rutland mark.rutl...@arm.com
Cc: Ian Campbell ijc+devicet...@hellion.org.uk
Cc: Kumar Gala ga...@codeaurora.org
Cc: Samuel Ortiz sa...@linux.intel.com
Cc: Lee Jones lee.jo...@linaro.org
---
Changes from v7:
 - Move non-shared resources into child nodes.
New for v7.
---
 .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
++
 1 file changed, 37 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   
diff --git 
a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
new file mode 100644
index 000..bc50110
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
@@ -0,0 +1,37 @@
+NVIDIA Tegra XUSB host copmlex
+==
+
+The XUSB host complex on Tegra124 and later SoCs contains an xHCI 
host
+controller and a mailbox for communication with the XUSB 
micro-controller.
+
+Required properties:
+
+ - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
+   Otherwise, must contain 'nvidia,chip-xusb, 
nvidia,tegra124-xusb'
+   where chip is tegra132.
+ - reg: Must contain the base and length of the XUSB FPCI registers.
+ - ranges: Bus address mapping for the XUSB block.  Can be empty 
since the
+   mapping is 1:1.
+ - #address-cells: Must be 2.
+ - #size-cells: Must be 2.
+
+Example:
+
+  usb@0,70098000 {
+  compatible = nvidia,tegra124-xusb;
+  reg = 0x0 0x70098000 0x0 0x1000;
+  ranges;
+
+  #address-cells = 2;
+  #size-cells = 2;
+
+  usb-host@0,7009 {
+  compatible = nvidia,tegra124-xhci;
+  ...
+  };
+
+  mailbox {
+  compatible = nvidia,tegra124-xusb-mbox;
+  ...
+  };
   
This doesn't appear to be a proper MFD.  I would have the USB and
Mailbox devices probe seperately and use a phandle to point the USB
device to its Mailbox.
   
usb@xyz {
mboxes = xusb-mailbox, [chan];
};
   
  
   I am assuming that Andrew had laid it out like this to reflect the hw
   structure. The mailbox and xhci controller are part of the xusb
   sub-system and hence appear as child nodes. My understanding is that for
   device-tree we want the device-tree structure to reflect the actual hw.
   Is this not the case?
  
   Yes, the DT files should reflect h/w.  I have requested to see what
   the memory map looks like, so I might provide a more appropriate
   solution to accepting a pretty pointless MFD.
  
   FWIW, the address map for XUSB looks like this:
  
   XUSB_HOST: 0x7009 - 0x7009a000
   xHCI registers: 0x7009 - 0x70098000
   FPCI configuration registers: 0x70098000 - 0x70099000
   IPFS configuration registers: 0x70099000 - 0x7009a000
  
   Two solutions spring to mind.  You can either call
   of_platform_populate() from the USB driver, as some already do:
  
 drivers/usb/dwc3/dwc3-exynos.c:
   ret = of_platform_populate(node, NULL, NULL, dev);
 drivers/usb/dwc3/dwc3-keystone.c:
   error = of_platform_populate(node, NULL, NULL, dev);
 drivers/usb/dwc3/dwc3-omap.c:
   ret = of_platform_populate(node, NULL, NULL, dev);
 drivers/usb/dwc3/dwc3-qcom.c:
   ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
 drivers/usb/dwc3/dwc3-st.c:
   ret = of_platform_populate(node, NULL, NULL, dev);
 drivers/usb/musb/musb_am335x.c:
   ret = of_platform_populate(pdev-dev.of_node, NULL, NULL, 
   pdev-dev);
  
   This still requires a small, separate driver to setup the regmap and
   do of_platform_populate().  The only difference is it lives in
   drivers/usb/ instead of drivers/mfd/.
  
   Or use the simple-mfd, which is currently in -next:
  
 git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt
  
   I'm not too opposed to 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-19 Thread Andrew Bresticker
Lee,

On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
 wrote:
> On Thu, May 14, 2015 at 12:40 AM, Lee Jones  wrote:
>> On Thu, 14 May 2015, Jon Hunter wrote:
>>
>>> Hi Lee,
>>>
>>> On 13/05/15 15:39, Lee Jones wrote:
>>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
>>> >
>>> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
>>> >> and later SoCs.  The XUSB host complex includes a mailbox for
>>> >> communication with the XUSB micro-controller and an xHCI host-controller.
>>> >>
>>> >> Signed-off-by: Andrew Bresticker 
>>> >> Cc: Rob Herring 
>>> >> Cc: Pawel Moll 
>>> >> Cc: Mark Rutland 
>>> >> Cc: Ian Campbell 
>>> >> Cc: Kumar Gala 
>>> >> Cc: Samuel Ortiz 
>>> >> Cc: Lee Jones 
>>> >> ---
>>> >> Changes from v7:
>>> >>  - Move non-shared resources into child nodes.
>>> >> New for v7.
>>> >> ---
>>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>>> >> ++
>>> >>  1 file changed, 37 insertions(+)
>>> >>  create mode 100644 
>>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>>> >>
>>> >> diff --git 
>>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>>> >> new file mode 100644
>>> >> index 000..bc50110
>>> >> --- /dev/null
>>> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>>> >> @@ -0,0 +1,37 @@
>>> >> +NVIDIA Tegra XUSB host copmlex
>>> >> +==
>>> >> +
>>> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>>> >> +controller and a mailbox for communication with the XUSB 
>>> >> micro-controller.
>>> >> +
>>> >> +Required properties:
>>> >> +
>>> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>>> >> +   Otherwise, must contain '"nvidia,-xusb", 
>>> >> "nvidia,tegra124-xusb"'
>>> >> +   where  is tegra132.
>>> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
>>> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
>>> >> the
>>> >> +   mapping is 1:1.
>>> >> + - #address-cells: Must be 2.
>>> >> + - #size-cells: Must be 2.
>>> >> +
>>> >> +Example:
>>> >> +
>>> >> +  usb@0,70098000 {
>>> >> +  compatible = "nvidia,tegra124-xusb";
>>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
>>> >> +  ranges;
>>> >> +
>>> >> +  #address-cells = <2>;
>>> >> +  #size-cells = <2>;
>>> >> +
>>> >> +  usb-host@0,7009 {
>>> >> +  compatible = "nvidia,tegra124-xhci";
>>> >> +  ...
>>> >> +  };
>>> >> +
>>> >> +  mailbox {
>>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
>>> >> +  ...
>>> >> +  };
>>> >
>>> > This doesn't appear to be a proper MFD.  I would have the USB and
>>> > Mailbox devices probe seperately and use a phandle to point the USB
>>> > device to its Mailbox.
>>> >
>>> > usb@xyz {
>>> > mboxes = <, [chan]>;
>>> > };
>>> >
>>>
>>> I am assuming that Andrew had laid it out like this to reflect the hw
>>> structure. The mailbox and xhci controller are part of the xusb
>>> sub-system and hence appear as child nodes. My understanding is that for
>>> device-tree we want the device-tree structure to reflect the actual hw.
>>> Is this not the case?
>>
>> Yes, the DT files should reflect h/w.  I have requested to see what
>> the memory map looks like, so I might provide a more appropriate
>> solution to accepting a pretty pointless MFD.
>
> FWIW, the address map for XUSB looks like this:
>
> XUSB_HOST: 0x7009 - 0x7009a000
> xHCI registers: 0x7009 - 0x70098000
> FPCI configuration registers: 0x70098000 - 0x70099000
> IPFS configuration registers: 0x70099000 - 0x7009a000
>
>> Two solutions spring to mind.  You can either call
>> of_platform_populate() from the USB driver, as some already do:
>>
>>   drivers/usb/dwc3/dwc3-exynos.c:
>> ret = of_platform_populate(node, NULL, NULL, dev);
>>   drivers/usb/dwc3/dwc3-keystone.c:
>> error = of_platform_populate(node, NULL, NULL, dev);
>>   drivers/usb/dwc3/dwc3-omap.c:
>> ret = of_platform_populate(node, NULL, NULL, dev);
>>   drivers/usb/dwc3/dwc3-qcom.c:
>> ret = of_platform_populate(node, NULL, NULL, qdwc->dev);
>>   drivers/usb/dwc3/dwc3-st.c:
>> ret = of_platform_populate(node, NULL, NULL, dev);
>>   drivers/usb/musb/musb_am335x.c:
>> ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, >dev);
>
> This still requires a small, separate driver to setup the regmap and
> do of_platform_populate().  The only difference is it lives in
> drivers/usb/ instead of drivers/mfd/.
>
>> Or use the "simple-mfd", which is currently in -next:
>>
>>   git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt
>
> I'm not too opposed to this, but Thierry was when I brought this up
> before.  The issue here is that if we ever have to do something
> 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-19 Thread Andrew Bresticker
Lee,

On Thu, May 14, 2015 at 10:38 AM, Andrew Bresticker
abres...@chromium.org wrote:
 On Thu, May 14, 2015 at 12:40 AM, Lee Jones lee.jo...@linaro.org wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:

 Hi Lee,

 On 13/05/15 15:39, Lee Jones wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB 
  micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, 
  nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
  the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  +  usb@0,70098000 {
  +  compatible = nvidia,tegra124-xusb;
  +  reg = 0x0 0x70098000 0x0 0x1000;
  +  ranges;
  +
  +  #address-cells = 2;
  +  #size-cells = 2;
  +
  +  usb-host@0,7009 {
  +  compatible = nvidia,tegra124-xhci;
  +  ...
  +  };
  +
  +  mailbox {
  +  compatible = nvidia,tegra124-xusb-mbox;
  +  ...
  +  };
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
 
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };
 

 I am assuming that Andrew had laid it out like this to reflect the hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is that for
 device-tree we want the device-tree structure to reflect the actual hw.
 Is this not the case?

 Yes, the DT files should reflect h/w.  I have requested to see what
 the memory map looks like, so I might provide a more appropriate
 solution to accepting a pretty pointless MFD.

 FWIW, the address map for XUSB looks like this:

 XUSB_HOST: 0x7009 - 0x7009a000
 xHCI registers: 0x7009 - 0x70098000
 FPCI configuration registers: 0x70098000 - 0x70099000
 IPFS configuration registers: 0x70099000 - 0x7009a000

 Two solutions spring to mind.  You can either call
 of_platform_populate() from the USB driver, as some already do:

   drivers/usb/dwc3/dwc3-exynos.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-keystone.c:
 error = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-omap.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-qcom.c:
 ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
   drivers/usb/dwc3/dwc3-st.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/musb/musb_am335x.c:
 ret = of_platform_populate(pdev-dev.of_node, NULL, NULL, pdev-dev);

 This still requires a small, separate driver to setup the regmap and
 do of_platform_populate().  The only difference is it lives in
 drivers/usb/ instead of drivers/mfd/.

 Or use the simple-mfd, which is currently in -next:

   git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt

 I'm not too opposed to this, but Thierry was when I brought this up
 before.  The issue here is that if we ever have to do something
 besides setting up a regmap in the MFD, we'd have to change the
 binding and break DT backwards-compatibility.

Any thoughts on this?  A minimal MFD seems to be the best way to
future-proof this binding/driver should it need to be extended in the
future.  If this is a firm NAK 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Andrew Bresticker
On Thu, May 14, 2015 at 12:40 AM, Lee Jones  wrote:
> On Thu, 14 May 2015, Jon Hunter wrote:
>
>> Hi Lee,
>>
>> On 13/05/15 15:39, Lee Jones wrote:
>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
>> >
>> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
>> >> and later SoCs.  The XUSB host complex includes a mailbox for
>> >> communication with the XUSB micro-controller and an xHCI host-controller.
>> >>
>> >> Signed-off-by: Andrew Bresticker 
>> >> Cc: Rob Herring 
>> >> Cc: Pawel Moll 
>> >> Cc: Mark Rutland 
>> >> Cc: Ian Campbell 
>> >> Cc: Kumar Gala 
>> >> Cc: Samuel Ortiz 
>> >> Cc: Lee Jones 
>> >> ---
>> >> Changes from v7:
>> >>  - Move non-shared resources into child nodes.
>> >> New for v7.
>> >> ---
>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>> >> ++
>> >>  1 file changed, 37 insertions(+)
>> >>  create mode 100644 
>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> >>
>> >> diff --git 
>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> >> new file mode 100644
>> >> index 000..bc50110
>> >> --- /dev/null
>> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> >> @@ -0,0 +1,37 @@
>> >> +NVIDIA Tegra XUSB host copmlex
>> >> +==
>> >> +
>> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>> >> +controller and a mailbox for communication with the XUSB 
>> >> micro-controller.
>> >> +
>> >> +Required properties:
>> >> +
>> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>> >> +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
>> >> +   where  is tegra132.
>> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
>> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
>> >> the
>> >> +   mapping is 1:1.
>> >> + - #address-cells: Must be 2.
>> >> + - #size-cells: Must be 2.
>> >> +
>> >> +Example:
>> >> +
>> >> +  usb@0,70098000 {
>> >> +  compatible = "nvidia,tegra124-xusb";
>> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
>> >> +  ranges;
>> >> +
>> >> +  #address-cells = <2>;
>> >> +  #size-cells = <2>;
>> >> +
>> >> +  usb-host@0,7009 {
>> >> +  compatible = "nvidia,tegra124-xhci";
>> >> +  ...
>> >> +  };
>> >> +
>> >> +  mailbox {
>> >> +  compatible = "nvidia,tegra124-xusb-mbox";
>> >> +  ...
>> >> +  };
>> >
>> > This doesn't appear to be a proper MFD.  I would have the USB and
>> > Mailbox devices probe seperately and use a phandle to point the USB
>> > device to its Mailbox.
>> >
>> > usb@xyz {
>> > mboxes = <, [chan]>;
>> > };
>> >
>>
>> I am assuming that Andrew had laid it out like this to reflect the hw
>> structure. The mailbox and xhci controller are part of the xusb
>> sub-system and hence appear as child nodes. My understanding is that for
>> device-tree we want the device-tree structure to reflect the actual hw.
>> Is this not the case?
>
> Yes, the DT files should reflect h/w.  I have requested to see what
> the memory map looks like, so I might provide a more appropriate
> solution to accepting a pretty pointless MFD.

FWIW, the address map for XUSB looks like this:

XUSB_HOST: 0x7009 - 0x7009a000
xHCI registers: 0x7009 - 0x70098000
FPCI configuration registers: 0x70098000 - 0x70099000
IPFS configuration registers: 0x70099000 - 0x7009a000

> Two solutions spring to mind.  You can either call
> of_platform_populate() from the USB driver, as some already do:
>
>   drivers/usb/dwc3/dwc3-exynos.c:
> ret = of_platform_populate(node, NULL, NULL, dev);
>   drivers/usb/dwc3/dwc3-keystone.c:
> error = of_platform_populate(node, NULL, NULL, dev);
>   drivers/usb/dwc3/dwc3-omap.c:
> ret = of_platform_populate(node, NULL, NULL, dev);
>   drivers/usb/dwc3/dwc3-qcom.c:
> ret = of_platform_populate(node, NULL, NULL, qdwc->dev);
>   drivers/usb/dwc3/dwc3-st.c:
> ret = of_platform_populate(node, NULL, NULL, dev);
>   drivers/usb/musb/musb_am335x.c:
> ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, >dev);

This still requires a small, separate driver to setup the regmap and
do of_platform_populate().  The only difference is it lives in
drivers/usb/ instead of drivers/mfd/.

> Or use the "simple-mfd", which is currently in -next:
>
>   git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt

I'm not too opposed to this, but Thierry was when I brought this up
before.  The issue here is that if we ever have to do something
besides setting up a regmap in the MFD, we'd have to change the
binding and break DT backwards-compatibility.

Thanks,
Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 11:23, Lee Jones wrote:
> On Thu, 14 May 2015, Jon Hunter wrote:
>> On 14/05/15 10:30, Lee Jones wrote:
>>> On Thu, 14 May 2015, Jon Hunter wrote:
 On 14/05/15 08:40, Lee Jones wrote:
> On Thu, 14 May 2015, Jon Hunter wrote:
>> On 13/05/15 15:39, Lee Jones wrote:
>>> On Mon, 04 May 2015, Andrew Bresticker wrote:
>>>
 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI 
 host-controller.

 Signed-off-by: Andrew Bresticker 
 Cc: Rob Herring 
 Cc: Pawel Moll 
 Cc: Mark Rutland 
 Cc: Ian Campbell 
 Cc: Kumar Gala 
 Cc: Samuel Ortiz 
 Cc: Lee Jones 
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git 
 a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB 
 micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
 +   Otherwise, must contain '"nvidia,-xusb", 
 "nvidia,tegra124-xusb"'
 +   where  is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty 
 since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 +  usb@0,70098000 {
 +  compatible = "nvidia,tegra124-xusb";
 +  reg = <0x0 0x70098000 0x0 0x1000>;
 +  ranges;
 +
 +  #address-cells = <2>;
 +  #size-cells = <2>;
 +
 +  usb-host@0,7009 {
 +  compatible = "nvidia,tegra124-xhci";
 +  ...
 +  };
 +
 +  mailbox {
 +  compatible = "nvidia,tegra124-xusb-mbox";
 +  ...
 +  };
>>>
>>> This doesn't appear to be a proper MFD.  I would have the USB and
>>> Mailbox devices probe seperately and use a phandle to point the USB
>>> device to its Mailbox.
>>>
>>> usb@xyz {
>>> mboxes = <, [chan]>;
>>> };
>>>
>>
>> I am assuming that Andrew had laid it out like this to reflect the hw
>> structure. The mailbox and xhci controller are part of the xusb
>> sub-system and hence appear as child nodes. My understanding is that for
>> device-tree we want the device-tree structure to reflect the actual hw.
>> Is this not the case?
>
> Yes, the DT files should reflect h/w.  I have requested to see what
> the memory map looks like, so I might provide a more appropriate
> solution to accepting a pretty pointless MFD.

 For the xusb-host has memory from 0x7009000 - 0x7009.

 Within this range, we have this fpci range which is defined as 0x7009800
 - 0x70098fff. This range is being shared between the mailbox and xhci
 drivers. Looking at the drivers, we have ...

 mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
 xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.

 So it is a bit messy as they overlap. However, we could have ...

xusb_mbox: mailbox {
compatible = "nvidia,tegra124-xusb-mbox";
reg = <0x0 0x700980e0 0x0 0x14>,
  <0x0 0x70098428 0x0 0x4>;
...
};
usb-host@0,7009 {
compatible = "nvidia,tegra124-xhci";
reg = <0x0 0x7009 0x0 0x8000>,  
  <0x0 0x70098000 0x0 0x00d0>;
  <0x0 0x70098800 0x0 0x0004>;
  <0x0 0x70099000 0x0 0x1000>;
...
};

 I believe that 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:
> On 14/05/15 10:30, Lee Jones wrote:
> > On Thu, 14 May 2015, Jon Hunter wrote:
> >> On 14/05/15 08:40, Lee Jones wrote:
> >>> On Thu, 14 May 2015, Jon Hunter wrote:
>  On 13/05/15 15:39, Lee Jones wrote:
> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> >
> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> >> and later SoCs.  The XUSB host complex includes a mailbox for
> >> communication with the XUSB micro-controller and an xHCI 
> >> host-controller.
> >>
> >> Signed-off-by: Andrew Bresticker 
> >> Cc: Rob Herring 
> >> Cc: Pawel Moll 
> >> Cc: Mark Rutland 
> >> Cc: Ian Campbell 
> >> Cc: Kumar Gala 
> >> Cc: Samuel Ortiz 
> >> Cc: Lee Jones 
> >> ---
> >> Changes from v7:
> >>  - Move non-shared resources into child nodes.
> >> New for v7.
> >> ---
> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> >> ++
> >>  1 file changed, 37 insertions(+)
> >>  create mode 100644 
> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >>
> >> diff --git 
> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> new file mode 100644
> >> index 000..bc50110
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> @@ -0,0 +1,37 @@
> >> +NVIDIA Tegra XUSB host copmlex
> >> +==
> >> +
> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
> >> +controller and a mailbox for communication with the XUSB 
> >> micro-controller.
> >> +
> >> +Required properties:
> >> +
> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> >> +   Otherwise, must contain '"nvidia,-xusb", 
> >> "nvidia,tegra124-xusb"'
> >> +   where  is tegra132.
> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty 
> >> since the
> >> +   mapping is 1:1.
> >> + - #address-cells: Must be 2.
> >> + - #size-cells: Must be 2.
> >> +
> >> +Example:
> >> +
> >> +  usb@0,70098000 {
> >> +  compatible = "nvidia,tegra124-xusb";
> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> >> +  ranges;
> >> +
> >> +  #address-cells = <2>;
> >> +  #size-cells = <2>;
> >> +
> >> +  usb-host@0,7009 {
> >> +  compatible = "nvidia,tegra124-xhci";
> >> +  ...
> >> +  };
> >> +
> >> +  mailbox {
> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> >> +  ...
> >> +  };
> >
> > This doesn't appear to be a proper MFD.  I would have the USB and
> > Mailbox devices probe seperately and use a phandle to point the USB
> > device to its Mailbox.
> >
> > usb@xyz {
> > mboxes = <, [chan]>;
> > };
> >
> 
>  I am assuming that Andrew had laid it out like this to reflect the hw
>  structure. The mailbox and xhci controller are part of the xusb
>  sub-system and hence appear as child nodes. My understanding is that for
>  device-tree we want the device-tree structure to reflect the actual hw.
>  Is this not the case?
> >>>
> >>> Yes, the DT files should reflect h/w.  I have requested to see what
> >>> the memory map looks like, so I might provide a more appropriate
> >>> solution to accepting a pretty pointless MFD.
> >>
> >> For the xusb-host has memory from 0x7009000 - 0x7009.
> >>
> >> Within this range, we have this fpci range which is defined as 0x7009800
> >> - 0x70098fff. This range is being shared between the mailbox and xhci
> >> drivers. Looking at the drivers, we have ...
> >>
> >> mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
> >> xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.
> >>
> >> So it is a bit messy as they overlap. However, we could have ...
> >>
> >>xusb_mbox: mailbox {
> >>compatible = "nvidia,tegra124-xusb-mbox";
> >>reg = <0x0 0x700980e0 0x0 0x14>,
> >>  <0x0 0x70098428 0x0 0x4>;
> >>...
> >>};
> >>usb-host@0,7009 {
> >>compatible = "nvidia,tegra124-xhci";
> >>reg = <0x0 0x7009 0x0 0x8000>,  
> >>  <0x0 0x70098000 0x0 0x00d0>;
> >>  <0x0 0x70098800 0x0 0x0004>;
> >>  <0x0 0x70099000 0x0 0x1000>;
> >>...
> >>};
> >>
> >> I believe that Thierry and Stephen said that they wished to 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 10:30, Lee Jones wrote:
> On Thu, 14 May 2015, Jon Hunter wrote:
>> On 14/05/15 08:40, Lee Jones wrote:
>>> On Thu, 14 May 2015, Jon Hunter wrote:
 On 13/05/15 15:39, Lee Jones wrote:
> On Mon, 04 May 2015, Andrew Bresticker wrote:
>
>> Add a binding document for the XUSB host complex on NVIDIA Tegra124
>> and later SoCs.  The XUSB host complex includes a mailbox for
>> communication with the XUSB micro-controller and an xHCI host-controller.
>>
>> Signed-off-by: Andrew Bresticker 
>> Cc: Rob Herring 
>> Cc: Pawel Moll 
>> Cc: Mark Rutland 
>> Cc: Ian Campbell 
>> Cc: Kumar Gala 
>> Cc: Samuel Ortiz 
>> Cc: Lee Jones 
>> ---
>> Changes from v7:
>>  - Move non-shared resources into child nodes.
>> New for v7.
>> ---
>>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>> ++
>>  1 file changed, 37 insertions(+)
>>  create mode 100644 
>> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>>
>> diff --git 
>> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> new file mode 100644
>> index 000..bc50110
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> @@ -0,0 +1,37 @@
>> +NVIDIA Tegra XUSB host copmlex
>> +==
>> +
>> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>> +controller and a mailbox for communication with the XUSB 
>> micro-controller.
>> +
>> +Required properties:
>> +
>> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>> +   Otherwise, must contain '"nvidia,-xusb", 
>> "nvidia,tegra124-xusb"'
>> +   where  is tegra132.
>> + - reg: Must contain the base and length of the XUSB FPCI registers.
>> + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
>> the
>> +   mapping is 1:1.
>> + - #address-cells: Must be 2.
>> + - #size-cells: Must be 2.
>> +
>> +Example:
>> +
>> +usb@0,70098000 {
>> +compatible = "nvidia,tegra124-xusb";
>> +reg = <0x0 0x70098000 0x0 0x1000>;
>> +ranges;
>> +
>> +#address-cells = <2>;
>> +#size-cells = <2>;
>> +
>> +usb-host@0,7009 {
>> +compatible = "nvidia,tegra124-xhci";
>> +...
>> +};
>> +
>> +mailbox {
>> +compatible = "nvidia,tegra124-xusb-mbox";
>> +...
>> +};
>
> This doesn't appear to be a proper MFD.  I would have the USB and
> Mailbox devices probe seperately and use a phandle to point the USB
> device to its Mailbox.
>
> usb@xyz {
>   mboxes = <, [chan]>;
> };
>

 I am assuming that Andrew had laid it out like this to reflect the hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is that for
 device-tree we want the device-tree structure to reflect the actual hw.
 Is this not the case?
>>>
>>> Yes, the DT files should reflect h/w.  I have requested to see what
>>> the memory map looks like, so I might provide a more appropriate
>>> solution to accepting a pretty pointless MFD.
>>
>> For the xusb-host has memory from 0x7009000 - 0x7009.
>>
>> Within this range, we have this fpci range which is defined as 0x7009800
>> - 0x70098fff. This range is being shared between the mailbox and xhci
>> drivers. Looking at the drivers, we have ...
>>
>> mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
>> xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.
>>
>> So it is a bit messy as they overlap. However, we could have ...
>>
>>  xusb_mbox: mailbox {
>>  compatible = "nvidia,tegra124-xusb-mbox";
>>  reg = <0x0 0x700980e0 0x0 0x14>,
>><0x0 0x70098428 0x0 0x4>;
>>  ...
>>  };
>>  usb-host@0,7009 {
>>  compatible = "nvidia,tegra124-xhci";
>>  reg = <0x0 0x7009 0x0 0x8000>,  
>><0x0 0x70098000 0x0 0x00d0>;
>><0x0 0x70098800 0x0 0x0004>;
>><0x0 0x70099000 0x0 0x1000>;
>>  ...
>>  };
>>
>> I believe that Thierry and Stephen said that they wished to avoid
>> multiple devices sharing the same memory ranges, and so we would need to
>> divvy up the memory map as above. However, I am not sure if this is an
>> ok thing to do.
>>  
>>> Two solutions spring to mind.  You can either call
>>> 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:
> On 14/05/15 08:40, Lee Jones wrote:
> > On Thu, 14 May 2015, Jon Hunter wrote:
> >> On 13/05/15 15:39, Lee Jones wrote:
> >>> On Mon, 04 May 2015, Andrew Bresticker wrote:
> >>>
>  Add a binding document for the XUSB host complex on NVIDIA Tegra124
>  and later SoCs.  The XUSB host complex includes a mailbox for
>  communication with the XUSB micro-controller and an xHCI host-controller.
> 
>  Signed-off-by: Andrew Bresticker 
>  Cc: Rob Herring 
>  Cc: Pawel Moll 
>  Cc: Mark Rutland 
>  Cc: Ian Campbell 
>  Cc: Kumar Gala 
>  Cc: Samuel Ortiz 
>  Cc: Lee Jones 
>  ---
>  Changes from v7:
>   - Move non-shared resources into child nodes.
>  New for v7.
>  ---
>   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>  ++
>   1 file changed, 37 insertions(+)
>   create mode 100644 
>  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> 
>  diff --git 
>  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>  new file mode 100644
>  index 000..bc50110
>  --- /dev/null
>  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>  @@ -0,0 +1,37 @@
>  +NVIDIA Tegra XUSB host copmlex
>  +==
>  +
>  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>  +controller and a mailbox for communication with the XUSB 
>  micro-controller.
>  +
>  +Required properties:
>  +
>  + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>  +   Otherwise, must contain '"nvidia,-xusb", 
>  "nvidia,tegra124-xusb"'
>  +   where  is tegra132.
>  + - reg: Must contain the base and length of the XUSB FPCI registers.
>  + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
>  the
>  +   mapping is 1:1.
>  + - #address-cells: Must be 2.
>  + - #size-cells: Must be 2.
>  +
>  +Example:
>  +
>  +usb@0,70098000 {
>  +compatible = "nvidia,tegra124-xusb";
>  +reg = <0x0 0x70098000 0x0 0x1000>;
>  +ranges;
>  +
>  +#address-cells = <2>;
>  +#size-cells = <2>;
>  +
>  +usb-host@0,7009 {
>  +compatible = "nvidia,tegra124-xhci";
>  +...
>  +};
>  +
>  +mailbox {
>  +compatible = "nvidia,tegra124-xusb-mbox";
>  +...
>  +};
> >>>
> >>> This doesn't appear to be a proper MFD.  I would have the USB and
> >>> Mailbox devices probe seperately and use a phandle to point the USB
> >>> device to its Mailbox.
> >>>
> >>> usb@xyz {
> >>>   mboxes = <, [chan]>;
> >>> };
> >>>
> >>
> >> I am assuming that Andrew had laid it out like this to reflect the hw
> >> structure. The mailbox and xhci controller are part of the xusb
> >> sub-system and hence appear as child nodes. My understanding is that for
> >> device-tree we want the device-tree structure to reflect the actual hw.
> >> Is this not the case?
> > 
> > Yes, the DT files should reflect h/w.  I have requested to see what
> > the memory map looks like, so I might provide a more appropriate
> > solution to accepting a pretty pointless MFD.
> 
> For the xusb-host has memory from 0x7009000 - 0x7009.
> 
> Within this range, we have this fpci range which is defined as 0x7009800
> - 0x70098fff. This range is being shared between the mailbox and xhci
> drivers. Looking at the drivers, we have ...
> 
> mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
> xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.
> 
> So it is a bit messy as they overlap. However, we could have ...
> 
>   xusb_mbox: mailbox {
>   compatible = "nvidia,tegra124-xusb-mbox";
>   reg = <0x0 0x700980e0 0x0 0x14>,
> <0x0 0x70098428 0x0 0x4>;
>   ...
>   };
>   usb-host@0,7009 {
>   compatible = "nvidia,tegra124-xhci";
>   reg = <0x0 0x7009 0x0 0x8000>,  
> <0x0 0x70098000 0x0 0x00d0>;
> <0x0 0x70098800 0x0 0x0004>;
> <0x0 0x70099000 0x0 0x1000>;
>   ...
>   };
> 
> I believe that Thierry and Stephen said that they wished to avoid
> multiple devices sharing the same memory ranges, and so we would need to
> divvy up the memory map as above. However, I am not sure if this is an
> ok thing to do.
>   
> > Two solutions spring to mind.  You can either call
> > of_platform_populate() from the USB driver, as some 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 08:40, Lee Jones wrote:
> On Thu, 14 May 2015, Jon Hunter wrote:
> 
>> Hi Lee,
>>
>> On 13/05/15 15:39, Lee Jones wrote:
>>> On Mon, 04 May 2015, Andrew Bresticker wrote:
>>>
 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI host-controller.

 Signed-off-by: Andrew Bresticker 
 Cc: Rob Herring 
 Cc: Pawel Moll 
 Cc: Mark Rutland 
 Cc: Ian Campbell 
 Cc: Kumar Gala 
 Cc: Samuel Ortiz 
 Cc: Lee Jones 
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git 
 a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
 +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
 +   where  is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 +  usb@0,70098000 {
 +  compatible = "nvidia,tegra124-xusb";
 +  reg = <0x0 0x70098000 0x0 0x1000>;
 +  ranges;
 +
 +  #address-cells = <2>;
 +  #size-cells = <2>;
 +
 +  usb-host@0,7009 {
 +  compatible = "nvidia,tegra124-xhci";
 +  ...
 +  };
 +
 +  mailbox {
 +  compatible = "nvidia,tegra124-xusb-mbox";
 +  ...
 +  };
>>>
>>> This doesn't appear to be a proper MFD.  I would have the USB and
>>> Mailbox devices probe seperately and use a phandle to point the USB
>>> device to its Mailbox.
>>>
>>> usb@xyz {
>>> mboxes = <, [chan]>;
>>> };
>>>
>>
>> I am assuming that Andrew had laid it out like this to reflect the hw
>> structure. The mailbox and xhci controller are part of the xusb
>> sub-system and hence appear as child nodes. My understanding is that for
>> device-tree we want the device-tree structure to reflect the actual hw.
>> Is this not the case?
> 
> Yes, the DT files should reflect h/w.  I have requested to see what
> the memory map looks like, so I might provide a more appropriate
> solution to accepting a pretty pointless MFD.

For the xusb-host has memory from 0x7009000 - 0x7009.

Within this range, we have this fpci range which is defined as 0x7009800
- 0x70098fff. This range is being shared between the mailbox and xhci
drivers. Looking at the drivers, we have ...

mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.

So it is a bit messy as they overlap. However, we could have ...

xusb_mbox: mailbox {
compatible = "nvidia,tegra124-xusb-mbox";
reg = <0x0 0x700980e0 0x0 0x14>,
  <0x0 0x70098428 0x0 0x4>;
...
};
usb-host@0,7009 {
compatible = "nvidia,tegra124-xhci";
reg = <0x0 0x7009 0x0 0x8000>,  
  <0x0 0x70098000 0x0 0x00d0>;
  <0x0 0x70098800 0x0 0x0004>;
  <0x0 0x70099000 0x0 0x1000>;
...
};

I believe that Thierry and Stephen said that they wished to avoid
multiple devices sharing the same memory ranges, and so we would need to
divvy up the memory map as above. However, I am not sure if this is an
ok thing to do.

> Two solutions spring to mind.  You can either call
> of_platform_populate() from the USB driver, as some already do:
> 
>   drivers/usb/dwc3/dwc3-exynos.c:
> ret = of_platform_populate(node, NULL, NULL, dev);
>   drivers/usb/dwc3/dwc3-keystone.c:
> error = of_platform_populate(node, NULL, NULL, dev);
>   drivers/usb/dwc3/dwc3-omap.c:
> ret = of_platform_populate(node, NULL, NULL, dev);
>   drivers/usb/dwc3/dwc3-qcom.c:
> ret = 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:

> 
> On 14/05/15 08:29, Lee Jones wrote:
> > On Wed, 13 May 2015, Andrew Bresticker wrote:
> > 
> >> On Wed, May 13, 2015 at 9:50 AM, Lee Jones  wrote:
> >>> On Wed, 13 May 2015, Andrew Bresticker wrote:
> >>>
>  Lee,
> 
>  On Wed, May 13, 2015 at 7:39 AM, Lee Jones  wrote:
> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> >
> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> >> and later SoCs.  The XUSB host complex includes a mailbox for
> >> communication with the XUSB micro-controller and an xHCI 
> >> host-controller.
> >>
> >> Signed-off-by: Andrew Bresticker 
> >> Cc: Rob Herring 
> >> Cc: Pawel Moll 
> >> Cc: Mark Rutland 
> >> Cc: Ian Campbell 
> >> Cc: Kumar Gala 
> >> Cc: Samuel Ortiz 
> >> Cc: Lee Jones 
> >> ---
> >> Changes from v7:
> >>  - Move non-shared resources into child nodes.
> >> New for v7.
> >> ---
> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> >> ++
> >>  1 file changed, 37 insertions(+)
> >>  create mode 100644 
> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >>
> >> diff --git 
> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> new file mode 100644
> >> index 000..bc50110
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> @@ -0,0 +1,37 @@
> >> +NVIDIA Tegra XUSB host copmlex
> >> +==
> >> +
> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
> >> +controller and a mailbox for communication with the XUSB 
> >> micro-controller.
> >> +
> >> +Required properties:
> >> +
> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> >> +   Otherwise, must contain '"nvidia,-xusb", 
> >> "nvidia,tegra124-xusb"'
> >> +   where  is tegra132.
> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty 
> >> since the
> >> +   mapping is 1:1.
> >> + - #address-cells: Must be 2.
> >> + - #size-cells: Must be 2.
> >> +
> >> +Example:
> >> +
> >> + usb@0,70098000 {
> >> + compatible = "nvidia,tegra124-xusb";
> >> + reg = <0x0 0x70098000 0x0 0x1000>;
> >> + ranges;
> >> +
> >> + #address-cells = <2>;
> >> + #size-cells = <2>;
> >> +
> >> + usb-host@0,7009 {
> >> + compatible = "nvidia,tegra124-xhci";
> >> + ...
> >> + };
> >> +
> >> + mailbox {
> >> + compatible = "nvidia,tegra124-xusb-mbox";
> >> + ...
> >> + };
> >
> > This doesn't appear to be a proper MFD.  I would have the USB and
> > Mailbox devices probe seperately and use a phandle to point the USB
> > device to its Mailbox.
> >
> > usb@xyz {
> > mboxes = <, [chan]>;
> > };
> 
>  Then what will set up the shared regmap?  The point of using an MFD
>  here was to share a register set with both the mailbox and xHCI
>  drivers and avoid having to map the same register set twice in two
>  separate drivers.
> >>>
> >>> Can you share the mapping please?
> >>
> >> What do you mean?  That's what the MFD is doing now by setting up an
> >> MMIO regmap to be shared between the two devices.
> > 
> > I mean, can you share the documentation with me. :)
> 
> You can download the documentation from here [1]. See chapter 19 USB
> complex. However, I will warn you that unfortunately, you need to sign
> up for an account :-(

I'll give that a miss for the time being.  See my other mail for now.

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:

> Hi Lee,
> 
> On 13/05/15 15:39, Lee Jones wrote:
> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> > 
> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> >> and later SoCs.  The XUSB host complex includes a mailbox for
> >> communication with the XUSB micro-controller and an xHCI host-controller.
> >>
> >> Signed-off-by: Andrew Bresticker 
> >> Cc: Rob Herring 
> >> Cc: Pawel Moll 
> >> Cc: Mark Rutland 
> >> Cc: Ian Campbell 
> >> Cc: Kumar Gala 
> >> Cc: Samuel Ortiz 
> >> Cc: Lee Jones 
> >> ---
> >> Changes from v7:
> >>  - Move non-shared resources into child nodes.
> >> New for v7.
> >> ---
> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> >> ++
> >>  1 file changed, 37 insertions(+)
> >>  create mode 100644 
> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >>
> >> diff --git 
> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> new file mode 100644
> >> index 000..bc50110
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> @@ -0,0 +1,37 @@
> >> +NVIDIA Tegra XUSB host copmlex
> >> +==
> >> +
> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
> >> +controller and a mailbox for communication with the XUSB micro-controller.
> >> +
> >> +Required properties:
> >> +
> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> >> +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
> >> +   where  is tegra132.
> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
> >> +   mapping is 1:1.
> >> + - #address-cells: Must be 2.
> >> + - #size-cells: Must be 2.
> >> +
> >> +Example:
> >> +
> >> +  usb@0,70098000 {
> >> +  compatible = "nvidia,tegra124-xusb";
> >> +  reg = <0x0 0x70098000 0x0 0x1000>;
> >> +  ranges;
> >> +
> >> +  #address-cells = <2>;
> >> +  #size-cells = <2>;
> >> +
> >> +  usb-host@0,7009 {
> >> +  compatible = "nvidia,tegra124-xhci";
> >> +  ...
> >> +  };
> >> +
> >> +  mailbox {
> >> +  compatible = "nvidia,tegra124-xusb-mbox";
> >> +  ...
> >> +  };
> > 
> > This doesn't appear to be a proper MFD.  I would have the USB and
> > Mailbox devices probe seperately and use a phandle to point the USB
> > device to its Mailbox.
> > 
> > usb@xyz {
> > mboxes = <, [chan]>;
> > };
> > 
> 
> I am assuming that Andrew had laid it out like this to reflect the hw
> structure. The mailbox and xhci controller are part of the xusb
> sub-system and hence appear as child nodes. My understanding is that for
> device-tree we want the device-tree structure to reflect the actual hw.
> Is this not the case?

Yes, the DT files should reflect h/w.  I have requested to see what
the memory map looks like, so I might provide a more appropriate
solution to accepting a pretty pointless MFD.

Two solutions spring to mind.  You can either call
of_platform_populate() from the USB driver, as some already do:

  drivers/usb/dwc3/dwc3-exynos.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-keystone.c:
error = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-omap.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-qcom.c:
ret = of_platform_populate(node, NULL, NULL, qdwc->dev);
  drivers/usb/dwc3/dwc3-st.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/musb/musb_am335x.c:
ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, >dev);

Or use the "simple-mfd", which is currently in -next:

  git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 08:29, Lee Jones wrote:
> On Wed, 13 May 2015, Andrew Bresticker wrote:
> 
>> On Wed, May 13, 2015 at 9:50 AM, Lee Jones  wrote:
>>> On Wed, 13 May 2015, Andrew Bresticker wrote:
>>>
 Lee,

 On Wed, May 13, 2015 at 7:39 AM, Lee Jones  wrote:
> On Mon, 04 May 2015, Andrew Bresticker wrote:
>
>> Add a binding document for the XUSB host complex on NVIDIA Tegra124
>> and later SoCs.  The XUSB host complex includes a mailbox for
>> communication with the XUSB micro-controller and an xHCI host-controller.
>>
>> Signed-off-by: Andrew Bresticker 
>> Cc: Rob Herring 
>> Cc: Pawel Moll 
>> Cc: Mark Rutland 
>> Cc: Ian Campbell 
>> Cc: Kumar Gala 
>> Cc: Samuel Ortiz 
>> Cc: Lee Jones 
>> ---
>> Changes from v7:
>>  - Move non-shared resources into child nodes.
>> New for v7.
>> ---
>>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>> ++
>>  1 file changed, 37 insertions(+)
>>  create mode 100644 
>> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>>
>> diff --git 
>> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> new file mode 100644
>> index 000..bc50110
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> @@ -0,0 +1,37 @@
>> +NVIDIA Tegra XUSB host copmlex
>> +==
>> +
>> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>> +controller and a mailbox for communication with the XUSB 
>> micro-controller.
>> +
>> +Required properties:
>> +
>> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>> +   Otherwise, must contain '"nvidia,-xusb", 
>> "nvidia,tegra124-xusb"'
>> +   where  is tegra132.
>> + - reg: Must contain the base and length of the XUSB FPCI registers.
>> + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
>> the
>> +   mapping is 1:1.
>> + - #address-cells: Must be 2.
>> + - #size-cells: Must be 2.
>> +
>> +Example:
>> +
>> + usb@0,70098000 {
>> + compatible = "nvidia,tegra124-xusb";
>> + reg = <0x0 0x70098000 0x0 0x1000>;
>> + ranges;
>> +
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + usb-host@0,7009 {
>> + compatible = "nvidia,tegra124-xhci";
>> + ...
>> + };
>> +
>> + mailbox {
>> + compatible = "nvidia,tegra124-xusb-mbox";
>> + ...
>> + };
>
> This doesn't appear to be a proper MFD.  I would have the USB and
> Mailbox devices probe seperately and use a phandle to point the USB
> device to its Mailbox.
>
> usb@xyz {
> mboxes = <, [chan]>;
> };

 Then what will set up the shared regmap?  The point of using an MFD
 here was to share a register set with both the mailbox and xHCI
 drivers and avoid having to map the same register set twice in two
 separate drivers.
>>>
>>> Can you share the mapping please?
>>
>> What do you mean?  That's what the MFD is doing now by setting up an
>> MMIO regmap to be shared between the two devices.
> 
> I mean, can you share the documentation with me. :)

You can download the documentation from here [1]. See chapter 19 USB
complex. However, I will warn you that unfortunately, you need to sign
up for an account :-(

Cheers
Jon

[1] https://developer.nvidia.com/tegra-k1-technical-reference-manual

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Wed, 13 May 2015, Andrew Bresticker wrote:

> On Wed, May 13, 2015 at 9:50 AM, Lee Jones  wrote:
> > On Wed, 13 May 2015, Andrew Bresticker wrote:
> >
> >> Lee,
> >>
> >> On Wed, May 13, 2015 at 7:39 AM, Lee Jones  wrote:
> >> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> >> >
> >> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> >> >> and later SoCs.  The XUSB host complex includes a mailbox for
> >> >> communication with the XUSB micro-controller and an xHCI 
> >> >> host-controller.
> >> >>
> >> >> Signed-off-by: Andrew Bresticker 
> >> >> Cc: Rob Herring 
> >> >> Cc: Pawel Moll 
> >> >> Cc: Mark Rutland 
> >> >> Cc: Ian Campbell 
> >> >> Cc: Kumar Gala 
> >> >> Cc: Samuel Ortiz 
> >> >> Cc: Lee Jones 
> >> >> ---
> >> >> Changes from v7:
> >> >>  - Move non-shared resources into child nodes.
> >> >> New for v7.
> >> >> ---
> >> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> >> >> ++
> >> >>  1 file changed, 37 insertions(+)
> >> >>  create mode 100644 
> >> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> >>
> >> >> diff --git 
> >> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> >> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> >> new file mode 100644
> >> >> index 000..bc50110
> >> >> --- /dev/null
> >> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> >> @@ -0,0 +1,37 @@
> >> >> +NVIDIA Tegra XUSB host copmlex
> >> >> +==
> >> >> +
> >> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
> >> >> +controller and a mailbox for communication with the XUSB 
> >> >> micro-controller.
> >> >> +
> >> >> +Required properties:
> >> >> +
> >> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> >> >> +   Otherwise, must contain '"nvidia,-xusb", 
> >> >> "nvidia,tegra124-xusb"'
> >> >> +   where  is tegra132.
> >> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
> >> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
> >> >> the
> >> >> +   mapping is 1:1.
> >> >> + - #address-cells: Must be 2.
> >> >> + - #size-cells: Must be 2.
> >> >> +
> >> >> +Example:
> >> >> +
> >> >> + usb@0,70098000 {
> >> >> + compatible = "nvidia,tegra124-xusb";
> >> >> + reg = <0x0 0x70098000 0x0 0x1000>;
> >> >> + ranges;
> >> >> +
> >> >> + #address-cells = <2>;
> >> >> + #size-cells = <2>;
> >> >> +
> >> >> + usb-host@0,7009 {
> >> >> + compatible = "nvidia,tegra124-xhci";
> >> >> + ...
> >> >> + };
> >> >> +
> >> >> + mailbox {
> >> >> + compatible = "nvidia,tegra124-xusb-mbox";
> >> >> + ...
> >> >> + };
> >> >
> >> > This doesn't appear to be a proper MFD.  I would have the USB and
> >> > Mailbox devices probe seperately and use a phandle to point the USB
> >> > device to its Mailbox.
> >> >
> >> > usb@xyz {
> >> > mboxes = <, [chan]>;
> >> > };
> >>
> >> Then what will set up the shared regmap?  The point of using an MFD
> >> here was to share a register set with both the mailbox and xHCI
> >> drivers and avoid having to map the same register set twice in two
> >> separate drivers.
> >
> > Can you share the mapping please?
> 
> What do you mean?  That's what the MFD is doing now by setting up an
> MMIO regmap to be shared between the two devices.

I mean, can you share the documentation with me. :)

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter
Hi Lee,

On 13/05/15 15:39, Lee Jones wrote:
> On Mon, 04 May 2015, Andrew Bresticker wrote:
> 
>> Add a binding document for the XUSB host complex on NVIDIA Tegra124
>> and later SoCs.  The XUSB host complex includes a mailbox for
>> communication with the XUSB micro-controller and an xHCI host-controller.
>>
>> Signed-off-by: Andrew Bresticker 
>> Cc: Rob Herring 
>> Cc: Pawel Moll 
>> Cc: Mark Rutland 
>> Cc: Ian Campbell 
>> Cc: Kumar Gala 
>> Cc: Samuel Ortiz 
>> Cc: Lee Jones 
>> ---
>> Changes from v7:
>>  - Move non-shared resources into child nodes.
>> New for v7.
>> ---
>>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>> ++
>>  1 file changed, 37 insertions(+)
>>  create mode 100644 
>> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> new file mode 100644
>> index 000..bc50110
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> @@ -0,0 +1,37 @@
>> +NVIDIA Tegra XUSB host copmlex
>> +==
>> +
>> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>> +controller and a mailbox for communication with the XUSB micro-controller.
>> +
>> +Required properties:
>> +
>> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>> +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
>> +   where  is tegra132.
>> + - reg: Must contain the base and length of the XUSB FPCI registers.
>> + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
>> +   mapping is 1:1.
>> + - #address-cells: Must be 2.
>> + - #size-cells: Must be 2.
>> +
>> +Example:
>> +
>> +usb@0,70098000 {
>> +compatible = "nvidia,tegra124-xusb";
>> +reg = <0x0 0x70098000 0x0 0x1000>;
>> +ranges;
>> +
>> +#address-cells = <2>;
>> +#size-cells = <2>;
>> +
>> +usb-host@0,7009 {
>> +compatible = "nvidia,tegra124-xhci";
>> +...
>> +};
>> +
>> +mailbox {
>> +compatible = "nvidia,tegra124-xusb-mbox";
>> +...
>> +};
> 
> This doesn't appear to be a proper MFD.  I would have the USB and
> Mailbox devices probe seperately and use a phandle to point the USB
> device to its Mailbox.
> 
> usb@xyz {
>   mboxes = <, [chan]>;
> };
> 

I am assuming that Andrew had laid it out like this to reflect the hw
structure. The mailbox and xhci controller are part of the xusb
sub-system and hence appear as child nodes. My understanding is that for
device-tree we want the device-tree structure to reflect the actual hw.
Is this not the case?

Cheers
Jon
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Andrew Bresticker
On Thu, May 14, 2015 at 12:40 AM, Lee Jones lee.jo...@linaro.org wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:

 Hi Lee,

 On 13/05/15 15:39, Lee Jones wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB 
  micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
  the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  +  usb@0,70098000 {
  +  compatible = nvidia,tegra124-xusb;
  +  reg = 0x0 0x70098000 0x0 0x1000;
  +  ranges;
  +
  +  #address-cells = 2;
  +  #size-cells = 2;
  +
  +  usb-host@0,7009 {
  +  compatible = nvidia,tegra124-xhci;
  +  ...
  +  };
  +
  +  mailbox {
  +  compatible = nvidia,tegra124-xusb-mbox;
  +  ...
  +  };
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
 
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };
 

 I am assuming that Andrew had laid it out like this to reflect the hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is that for
 device-tree we want the device-tree structure to reflect the actual hw.
 Is this not the case?

 Yes, the DT files should reflect h/w.  I have requested to see what
 the memory map looks like, so I might provide a more appropriate
 solution to accepting a pretty pointless MFD.

FWIW, the address map for XUSB looks like this:

XUSB_HOST: 0x7009 - 0x7009a000
xHCI registers: 0x7009 - 0x70098000
FPCI configuration registers: 0x70098000 - 0x70099000
IPFS configuration registers: 0x70099000 - 0x7009a000

 Two solutions spring to mind.  You can either call
 of_platform_populate() from the USB driver, as some already do:

   drivers/usb/dwc3/dwc3-exynos.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-keystone.c:
 error = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-omap.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-qcom.c:
 ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
   drivers/usb/dwc3/dwc3-st.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/musb/musb_am335x.c:
 ret = of_platform_populate(pdev-dev.of_node, NULL, NULL, pdev-dev);

This still requires a small, separate driver to setup the regmap and
do of_platform_populate().  The only difference is it lives in
drivers/usb/ instead of drivers/mfd/.

 Or use the simple-mfd, which is currently in -next:

   git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt

I'm not too opposed to this, but Thierry was when I brought this up
before.  The issue here is that if we ever have to do something
besides setting up a regmap in the MFD, we'd have to change the
binding and break DT backwards-compatibility.

Thanks,
Andrew
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 11:23, Lee Jones wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:
 On 14/05/15 10:30, Lee Jones wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:
 On 14/05/15 08:40, Lee Jones wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:
 On 13/05/15 15:39, Lee Jones wrote:
 On Mon, 04 May 2015, Andrew Bresticker wrote:

 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI 
 host-controller.

 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git 
 a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB 
 micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, 
 nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty 
 since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 +  usb@0,70098000 {
 +  compatible = nvidia,tegra124-xusb;
 +  reg = 0x0 0x70098000 0x0 0x1000;
 +  ranges;
 +
 +  #address-cells = 2;
 +  #size-cells = 2;
 +
 +  usb-host@0,7009 {
 +  compatible = nvidia,tegra124-xhci;
 +  ...
 +  };
 +
 +  mailbox {
 +  compatible = nvidia,tegra124-xusb-mbox;
 +  ...
 +  };

 This doesn't appear to be a proper MFD.  I would have the USB and
 Mailbox devices probe seperately and use a phandle to point the USB
 device to its Mailbox.

 usb@xyz {
 mboxes = xusb-mailbox, [chan];
 };


 I am assuming that Andrew had laid it out like this to reflect the hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is that for
 device-tree we want the device-tree structure to reflect the actual hw.
 Is this not the case?

 Yes, the DT files should reflect h/w.  I have requested to see what
 the memory map looks like, so I might provide a more appropriate
 solution to accepting a pretty pointless MFD.

 For the xusb-host has memory from 0x7009000 - 0x7009.

 Within this range, we have this fpci range which is defined as 0x7009800
 - 0x70098fff. This range is being shared between the mailbox and xhci
 drivers. Looking at the drivers, we have ...

 mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
 xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.

 So it is a bit messy as they overlap. However, we could have ...

xusb_mbox: mailbox {
compatible = nvidia,tegra124-xusb-mbox;
reg = 0x0 0x700980e0 0x0 0x14,
  0x0 0x70098428 0x0 0x4;
...
};
usb-host@0,7009 {
compatible = nvidia,tegra124-xhci;
reg = 0x0 0x7009 0x0 0x8000,  
  0x0 0x70098000 0x0 0x00d0;
  0x0 0x70098800 0x0 0x0004;
  0x0 0x70099000 0x0 0x1000;
...
};

 I believe that Thierry and Stephen said that they wished to avoid
 multiple devices sharing the same memory ranges, and so we would need to
 divvy up the memory map as above. However, I am not sure if this is an
 ok thing to do.

 Two solutions spring to mind.  You can either call
 of_platform_populate() from the USB driver, as some already do:

   drivers/usb/dwc3/dwc3-exynos.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-keystone.c:
 error = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-omap.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-qcom.c:
 ret = of_platform_populate(node, NULL, 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 08:29, Lee Jones wrote:
 On Wed, 13 May 2015, Andrew Bresticker wrote:
 
 On Wed, May 13, 2015 at 9:50 AM, Lee Jones lee.jo...@linaro.org wrote:
 On Wed, 13 May 2015, Andrew Bresticker wrote:

 Lee,

 On Wed, May 13, 2015 at 7:39 AM, Lee Jones lee.jo...@linaro.org wrote:
 On Mon, 04 May 2015, Andrew Bresticker wrote:

 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI host-controller.

 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git 
 a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB 
 micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, 
 nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
 the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 + usb@0,70098000 {
 + compatible = nvidia,tegra124-xusb;
 + reg = 0x0 0x70098000 0x0 0x1000;
 + ranges;
 +
 + #address-cells = 2;
 + #size-cells = 2;
 +
 + usb-host@0,7009 {
 + compatible = nvidia,tegra124-xhci;
 + ...
 + };
 +
 + mailbox {
 + compatible = nvidia,tegra124-xusb-mbox;
 + ...
 + };

 This doesn't appear to be a proper MFD.  I would have the USB and
 Mailbox devices probe seperately and use a phandle to point the USB
 device to its Mailbox.

 usb@xyz {
 mboxes = xusb-mailbox, [chan];
 };

 Then what will set up the shared regmap?  The point of using an MFD
 here was to share a register set with both the mailbox and xHCI
 drivers and avoid having to map the same register set twice in two
 separate drivers.

 Can you share the mapping please?

 What do you mean?  That's what the MFD is doing now by setting up an
 MMIO regmap to be shared between the two devices.
 
 I mean, can you share the documentation with me. :)

You can download the documentation from here [1]. See chapter 19 USB
complex. However, I will warn you that unfortunately, you need to sign
up for an account :-(

Cheers
Jon

[1] https://developer.nvidia.com/tegra-k1-technical-reference-manual

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter
Hi Lee,

On 13/05/15 15:39, Lee Jones wrote:
 On Mon, 04 May 2015, Andrew Bresticker wrote:
 
 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI host-controller.

 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 +usb@0,70098000 {
 +compatible = nvidia,tegra124-xusb;
 +reg = 0x0 0x70098000 0x0 0x1000;
 +ranges;
 +
 +#address-cells = 2;
 +#size-cells = 2;
 +
 +usb-host@0,7009 {
 +compatible = nvidia,tegra124-xhci;
 +...
 +};
 +
 +mailbox {
 +compatible = nvidia,tegra124-xusb-mbox;
 +...
 +};
 
 This doesn't appear to be a proper MFD.  I would have the USB and
 Mailbox devices probe seperately and use a phandle to point the USB
 device to its Mailbox.
 
 usb@xyz {
   mboxes = xusb-mailbox, [chan];
 };
 

I am assuming that Andrew had laid it out like this to reflect the hw
structure. The mailbox and xhci controller are part of the xusb
sub-system and hence appear as child nodes. My understanding is that for
device-tree we want the device-tree structure to reflect the actual hw.
Is this not the case?

Cheers
Jon
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Wed, 13 May 2015, Andrew Bresticker wrote:

 On Wed, May 13, 2015 at 9:50 AM, Lee Jones lee.jo...@linaro.org wrote:
  On Wed, 13 May 2015, Andrew Bresticker wrote:
 
  Lee,
 
  On Wed, May 13, 2015 at 7:39 AM, Lee Jones lee.jo...@linaro.org wrote:
   On Mon, 04 May 2015, Andrew Bresticker wrote:
  
   Add a binding document for the XUSB host complex on NVIDIA Tegra124
   and later SoCs.  The XUSB host complex includes a mailbox for
   communication with the XUSB micro-controller and an xHCI 
   host-controller.
  
   Signed-off-by: Andrew Bresticker abres...@chromium.org
   Cc: Rob Herring robh...@kernel.org
   Cc: Pawel Moll pawel.m...@arm.com
   Cc: Mark Rutland mark.rutl...@arm.com
   Cc: Ian Campbell ijc+devicet...@hellion.org.uk
   Cc: Kumar Gala ga...@codeaurora.org
   Cc: Samuel Ortiz sa...@linux.intel.com
   Cc: Lee Jones lee.jo...@linaro.org
   ---
   Changes from v7:
- Move non-shared resources into child nodes.
   New for v7.
   ---
.../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
   ++
1 file changed, 37 insertions(+)
create mode 100644 
   Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  
   diff --git 
   a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
   b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   new file mode 100644
   index 000..bc50110
   --- /dev/null
   +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
   @@ -0,0 +1,37 @@
   +NVIDIA Tegra XUSB host copmlex
   +==
   +
   +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
   +controller and a mailbox for communication with the XUSB 
   micro-controller.
   +
   +Required properties:
   +
   + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
   +   Otherwise, must contain 'nvidia,chip-xusb, 
   nvidia,tegra124-xusb'
   +   where chip is tegra132.
   + - reg: Must contain the base and length of the XUSB FPCI registers.
   + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
   the
   +   mapping is 1:1.
   + - #address-cells: Must be 2.
   + - #size-cells: Must be 2.
   +
   +Example:
   +
   + usb@0,70098000 {
   + compatible = nvidia,tegra124-xusb;
   + reg = 0x0 0x70098000 0x0 0x1000;
   + ranges;
   +
   + #address-cells = 2;
   + #size-cells = 2;
   +
   + usb-host@0,7009 {
   + compatible = nvidia,tegra124-xhci;
   + ...
   + };
   +
   + mailbox {
   + compatible = nvidia,tegra124-xusb-mbox;
   + ...
   + };
  
   This doesn't appear to be a proper MFD.  I would have the USB and
   Mailbox devices probe seperately and use a phandle to point the USB
   device to its Mailbox.
  
   usb@xyz {
   mboxes = xusb-mailbox, [chan];
   };
 
  Then what will set up the shared regmap?  The point of using an MFD
  here was to share a register set with both the mailbox and xHCI
  drivers and avoid having to map the same register set twice in two
  separate drivers.
 
  Can you share the mapping please?
 
 What do you mean?  That's what the MFD is doing now by setting up an
 MMIO regmap to be shared between the two devices.

I mean, can you share the documentation with me. :)

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 08:40, Lee Jones wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:
 
 Hi Lee,

 On 13/05/15 15:39, Lee Jones wrote:
 On Mon, 04 May 2015, Andrew Bresticker wrote:

 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI host-controller.

 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git 
 a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 +  usb@0,70098000 {
 +  compatible = nvidia,tegra124-xusb;
 +  reg = 0x0 0x70098000 0x0 0x1000;
 +  ranges;
 +
 +  #address-cells = 2;
 +  #size-cells = 2;
 +
 +  usb-host@0,7009 {
 +  compatible = nvidia,tegra124-xhci;
 +  ...
 +  };
 +
 +  mailbox {
 +  compatible = nvidia,tegra124-xusb-mbox;
 +  ...
 +  };

 This doesn't appear to be a proper MFD.  I would have the USB and
 Mailbox devices probe seperately and use a phandle to point the USB
 device to its Mailbox.

 usb@xyz {
 mboxes = xusb-mailbox, [chan];
 };


 I am assuming that Andrew had laid it out like this to reflect the hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is that for
 device-tree we want the device-tree structure to reflect the actual hw.
 Is this not the case?
 
 Yes, the DT files should reflect h/w.  I have requested to see what
 the memory map looks like, so I might provide a more appropriate
 solution to accepting a pretty pointless MFD.

For the xusb-host has memory from 0x7009000 - 0x7009.

Within this range, we have this fpci range which is defined as 0x7009800
- 0x70098fff. This range is being shared between the mailbox and xhci
drivers. Looking at the drivers, we have ...

mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.

So it is a bit messy as they overlap. However, we could have ...

xusb_mbox: mailbox {
compatible = nvidia,tegra124-xusb-mbox;
reg = 0x0 0x700980e0 0x0 0x14,
  0x0 0x70098428 0x0 0x4;
...
};
usb-host@0,7009 {
compatible = nvidia,tegra124-xhci;
reg = 0x0 0x7009 0x0 0x8000,  
  0x0 0x70098000 0x0 0x00d0;
  0x0 0x70098800 0x0 0x0004;
  0x0 0x70099000 0x0 0x1000;
...
};

I believe that Thierry and Stephen said that they wished to avoid
multiple devices sharing the same memory ranges, and so we would need to
divvy up the memory map as above. However, I am not sure if this is an
ok thing to do.

 Two solutions spring to mind.  You can either call
 of_platform_populate() from the USB driver, as some already do:
 
   drivers/usb/dwc3/dwc3-exynos.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-keystone.c:
 error = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-omap.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-qcom.c:
 ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
   drivers/usb/dwc3/dwc3-st.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/musb/musb_am335x.c:
 ret = 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:

 Hi Lee,
 
 On 13/05/15 15:39, Lee Jones wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
  
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  +  usb@0,70098000 {
  +  compatible = nvidia,tegra124-xusb;
  +  reg = 0x0 0x70098000 0x0 0x1000;
  +  ranges;
  +
  +  #address-cells = 2;
  +  #size-cells = 2;
  +
  +  usb-host@0,7009 {
  +  compatible = nvidia,tegra124-xhci;
  +  ...
  +  };
  +
  +  mailbox {
  +  compatible = nvidia,tegra124-xusb-mbox;
  +  ...
  +  };
  
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
  
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };
  
 
 I am assuming that Andrew had laid it out like this to reflect the hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is that for
 device-tree we want the device-tree structure to reflect the actual hw.
 Is this not the case?

Yes, the DT files should reflect h/w.  I have requested to see what
the memory map looks like, so I might provide a more appropriate
solution to accepting a pretty pointless MFD.

Two solutions spring to mind.  You can either call
of_platform_populate() from the USB driver, as some already do:

  drivers/usb/dwc3/dwc3-exynos.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-keystone.c:
error = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-omap.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/dwc3/dwc3-qcom.c:
ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
  drivers/usb/dwc3/dwc3-st.c:
ret = of_platform_populate(node, NULL, NULL, dev);
  drivers/usb/musb/musb_am335x.c:
ret = of_platform_populate(pdev-dev.of_node, NULL, NULL, pdev-dev);

Or use the simple-mfd, which is currently in -next:

  git show next/master:Documentation/devicetree/bindings/mfd/mfd.txt

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:

 
 On 14/05/15 08:29, Lee Jones wrote:
  On Wed, 13 May 2015, Andrew Bresticker wrote:
  
  On Wed, May 13, 2015 at 9:50 AM, Lee Jones lee.jo...@linaro.org wrote:
  On Wed, 13 May 2015, Andrew Bresticker wrote:
 
  Lee,
 
  On Wed, May 13, 2015 at 7:39 AM, Lee Jones lee.jo...@linaro.org wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI 
  host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB 
  micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, 
  nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty 
  since the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  + usb@0,70098000 {
  + compatible = nvidia,tegra124-xusb;
  + reg = 0x0 0x70098000 0x0 0x1000;
  + ranges;
  +
  + #address-cells = 2;
  + #size-cells = 2;
  +
  + usb-host@0,7009 {
  + compatible = nvidia,tegra124-xhci;
  + ...
  + };
  +
  + mailbox {
  + compatible = nvidia,tegra124-xusb-mbox;
  + ...
  + };
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
 
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };
 
  Then what will set up the shared regmap?  The point of using an MFD
  here was to share a register set with both the mailbox and xHCI
  drivers and avoid having to map the same register set twice in two
  separate drivers.
 
  Can you share the mapping please?
 
  What do you mean?  That's what the MFD is doing now by setting up an
  MMIO regmap to be shared between the two devices.
  
  I mean, can you share the documentation with me. :)
 
 You can download the documentation from here [1]. See chapter 19 USB
 complex. However, I will warn you that unfortunately, you need to sign
 up for an account :-(

I'll give that a miss for the time being.  See my other mail for now.

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:
 On 14/05/15 10:30, Lee Jones wrote:
  On Thu, 14 May 2015, Jon Hunter wrote:
  On 14/05/15 08:40, Lee Jones wrote:
  On Thu, 14 May 2015, Jon Hunter wrote:
  On 13/05/15 15:39, Lee Jones wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI 
  host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB 
  micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, 
  nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty 
  since the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  +  usb@0,70098000 {
  +  compatible = nvidia,tegra124-xusb;
  +  reg = 0x0 0x70098000 0x0 0x1000;
  +  ranges;
  +
  +  #address-cells = 2;
  +  #size-cells = 2;
  +
  +  usb-host@0,7009 {
  +  compatible = nvidia,tegra124-xhci;
  +  ...
  +  };
  +
  +  mailbox {
  +  compatible = nvidia,tegra124-xusb-mbox;
  +  ...
  +  };
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
 
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };
 
 
  I am assuming that Andrew had laid it out like this to reflect the hw
  structure. The mailbox and xhci controller are part of the xusb
  sub-system and hence appear as child nodes. My understanding is that for
  device-tree we want the device-tree structure to reflect the actual hw.
  Is this not the case?
 
  Yes, the DT files should reflect h/w.  I have requested to see what
  the memory map looks like, so I might provide a more appropriate
  solution to accepting a pretty pointless MFD.
 
  For the xusb-host has memory from 0x7009000 - 0x7009.
 
  Within this range, we have this fpci range which is defined as 0x7009800
  - 0x70098fff. This range is being shared between the mailbox and xhci
  drivers. Looking at the drivers, we have ...
 
  mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
  xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.
 
  So it is a bit messy as they overlap. However, we could have ...
 
 xusb_mbox: mailbox {
 compatible = nvidia,tegra124-xusb-mbox;
 reg = 0x0 0x700980e0 0x0 0x14,
   0x0 0x70098428 0x0 0x4;
 ...
 };
 usb-host@0,7009 {
 compatible = nvidia,tegra124-xhci;
 reg = 0x0 0x7009 0x0 0x8000,  
   0x0 0x70098000 0x0 0x00d0;
   0x0 0x70098800 0x0 0x0004;
   0x0 0x70099000 0x0 0x1000;
 ...
 };
 
  I believe that Thierry and Stephen said that they wished to avoid
  multiple devices sharing the same memory ranges, and so we would need to
  divvy up the memory map as above. However, I am not sure if this is an
  ok thing to do.
 
  Two solutions spring to mind.  You can either call
  of_platform_populate() from the USB driver, as some already do:
 
drivers/usb/dwc3/dwc3-exynos.c:
  ret = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-keystone.c:
  error = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-omap.c:
  ret = 

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Lee Jones
On Thu, 14 May 2015, Jon Hunter wrote:
 On 14/05/15 08:40, Lee Jones wrote:
  On Thu, 14 May 2015, Jon Hunter wrote:
  On 13/05/15 15:39, Lee Jones wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB 
  micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, 
  nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
  the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  +usb@0,70098000 {
  +compatible = nvidia,tegra124-xusb;
  +reg = 0x0 0x70098000 0x0 0x1000;
  +ranges;
  +
  +#address-cells = 2;
  +#size-cells = 2;
  +
  +usb-host@0,7009 {
  +compatible = nvidia,tegra124-xhci;
  +...
  +};
  +
  +mailbox {
  +compatible = nvidia,tegra124-xusb-mbox;
  +...
  +};
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
 
  usb@xyz {
mboxes = xusb-mailbox, [chan];
  };
 
 
  I am assuming that Andrew had laid it out like this to reflect the hw
  structure. The mailbox and xhci controller are part of the xusb
  sub-system and hence appear as child nodes. My understanding is that for
  device-tree we want the device-tree structure to reflect the actual hw.
  Is this not the case?
  
  Yes, the DT files should reflect h/w.  I have requested to see what
  the memory map looks like, so I might provide a more appropriate
  solution to accepting a pretty pointless MFD.
 
 For the xusb-host has memory from 0x7009000 - 0x7009.
 
 Within this range, we have this fpci range which is defined as 0x7009800
 - 0x70098fff. This range is being shared between the mailbox and xhci
 drivers. Looking at the drivers, we have ...
 
 mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
 xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.
 
 So it is a bit messy as they overlap. However, we could have ...
 
   xusb_mbox: mailbox {
   compatible = nvidia,tegra124-xusb-mbox;
   reg = 0x0 0x700980e0 0x0 0x14,
 0x0 0x70098428 0x0 0x4;
   ...
   };
   usb-host@0,7009 {
   compatible = nvidia,tegra124-xhci;
   reg = 0x0 0x7009 0x0 0x8000,  
 0x0 0x70098000 0x0 0x00d0;
 0x0 0x70098800 0x0 0x0004;
 0x0 0x70099000 0x0 0x1000;
   ...
   };
 
 I believe that Thierry and Stephen said that they wished to avoid
 multiple devices sharing the same memory ranges, and so we would need to
 divvy up the memory map as above. However, I am not sure if this is an
 ok thing to do.
   
  Two solutions spring to mind.  You can either call
  of_platform_populate() from the USB driver, as some already do:
  
drivers/usb/dwc3/dwc3-exynos.c:
  ret = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-keystone.c:
  error = of_platform_populate(node, NULL, NULL, dev);
drivers/usb/dwc3/dwc3-omap.c:
  ret = of_platform_populate(node, NULL, NULL, dev);

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-14 Thread Jon Hunter

On 14/05/15 10:30, Lee Jones wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:
 On 14/05/15 08:40, Lee Jones wrote:
 On Thu, 14 May 2015, Jon Hunter wrote:
 On 13/05/15 15:39, Lee Jones wrote:
 On Mon, 04 May 2015, Andrew Bresticker wrote:

 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI host-controller.

 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git 
 a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB 
 micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, 
 nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
 the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 +usb@0,70098000 {
 +compatible = nvidia,tegra124-xusb;
 +reg = 0x0 0x70098000 0x0 0x1000;
 +ranges;
 +
 +#address-cells = 2;
 +#size-cells = 2;
 +
 +usb-host@0,7009 {
 +compatible = nvidia,tegra124-xhci;
 +...
 +};
 +
 +mailbox {
 +compatible = nvidia,tegra124-xusb-mbox;
 +...
 +};

 This doesn't appear to be a proper MFD.  I would have the USB and
 Mailbox devices probe seperately and use a phandle to point the USB
 device to its Mailbox.

 usb@xyz {
   mboxes = xusb-mailbox, [chan];
 };


 I am assuming that Andrew had laid it out like this to reflect the hw
 structure. The mailbox and xhci controller are part of the xusb
 sub-system and hence appear as child nodes. My understanding is that for
 device-tree we want the device-tree structure to reflect the actual hw.
 Is this not the case?

 Yes, the DT files should reflect h/w.  I have requested to see what
 the memory map looks like, so I might provide a more appropriate
 solution to accepting a pretty pointless MFD.

 For the xusb-host has memory from 0x7009000 - 0x7009.

 Within this range, we have this fpci range which is defined as 0x7009800
 - 0x70098fff. This range is being shared between the mailbox and xhci
 drivers. Looking at the drivers, we have ...

 mailbox uses: 0x700980e0 - 0x700980f3 and 0x70098428 - 0x7009842b.
 xhci uses:0x70098000 - 0x700980cf and 0x70098800 - 0x70098803.

 So it is a bit messy as they overlap. However, we could have ...

  xusb_mbox: mailbox {
  compatible = nvidia,tegra124-xusb-mbox;
  reg = 0x0 0x700980e0 0x0 0x14,
0x0 0x70098428 0x0 0x4;
  ...
  };
  usb-host@0,7009 {
  compatible = nvidia,tegra124-xhci;
  reg = 0x0 0x7009 0x0 0x8000,  
0x0 0x70098000 0x0 0x00d0;
0x0 0x70098800 0x0 0x0004;
0x0 0x70099000 0x0 0x1000;
  ...
  };

 I believe that Thierry and Stephen said that they wished to avoid
 multiple devices sharing the same memory ranges, and so we would need to
 divvy up the memory map as above. However, I am not sure if this is an
 ok thing to do.
  
 Two solutions spring to mind.  You can either call
 of_platform_populate() from the USB driver, as some already do:

   drivers/usb/dwc3/dwc3-exynos.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-keystone.c:
 error = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-omap.c:
 ret = of_platform_populate(node, NULL, NULL, dev);
   drivers/usb/dwc3/dwc3-qcom.c:
 ret = of_platform_populate(node, NULL, NULL, qdwc-dev);
   

Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Andrew Bresticker
On Wed, May 13, 2015 at 9:50 AM, Lee Jones  wrote:
> On Wed, 13 May 2015, Andrew Bresticker wrote:
>
>> Lee,
>>
>> On Wed, May 13, 2015 at 7:39 AM, Lee Jones  wrote:
>> > On Mon, 04 May 2015, Andrew Bresticker wrote:
>> >
>> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
>> >> and later SoCs.  The XUSB host complex includes a mailbox for
>> >> communication with the XUSB micro-controller and an xHCI host-controller.
>> >>
>> >> Signed-off-by: Andrew Bresticker 
>> >> Cc: Rob Herring 
>> >> Cc: Pawel Moll 
>> >> Cc: Mark Rutland 
>> >> Cc: Ian Campbell 
>> >> Cc: Kumar Gala 
>> >> Cc: Samuel Ortiz 
>> >> Cc: Lee Jones 
>> >> ---
>> >> Changes from v7:
>> >>  - Move non-shared resources into child nodes.
>> >> New for v7.
>> >> ---
>> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>> >> ++
>> >>  1 file changed, 37 insertions(+)
>> >>  create mode 100644 
>> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> >>
>> >> diff --git 
>> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> >> new file mode 100644
>> >> index 000..bc50110
>> >> --- /dev/null
>> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> >> @@ -0,0 +1,37 @@
>> >> +NVIDIA Tegra XUSB host copmlex
>> >> +==
>> >> +
>> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>> >> +controller and a mailbox for communication with the XUSB 
>> >> micro-controller.
>> >> +
>> >> +Required properties:
>> >> +
>> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>> >> +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
>> >> +   where  is tegra132.
>> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
>> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
>> >> the
>> >> +   mapping is 1:1.
>> >> + - #address-cells: Must be 2.
>> >> + - #size-cells: Must be 2.
>> >> +
>> >> +Example:
>> >> +
>> >> + usb@0,70098000 {
>> >> + compatible = "nvidia,tegra124-xusb";
>> >> + reg = <0x0 0x70098000 0x0 0x1000>;
>> >> + ranges;
>> >> +
>> >> + #address-cells = <2>;
>> >> + #size-cells = <2>;
>> >> +
>> >> + usb-host@0,7009 {
>> >> + compatible = "nvidia,tegra124-xhci";
>> >> + ...
>> >> + };
>> >> +
>> >> + mailbox {
>> >> + compatible = "nvidia,tegra124-xusb-mbox";
>> >> + ...
>> >> + };
>> >
>> > This doesn't appear to be a proper MFD.  I would have the USB and
>> > Mailbox devices probe seperately and use a phandle to point the USB
>> > device to its Mailbox.
>> >
>> > usb@xyz {
>> > mboxes = <, [chan]>;
>> > };
>>
>> Then what will set up the shared regmap?  The point of using an MFD
>> here was to share a register set with both the mailbox and xHCI
>> drivers and avoid having to map the same register set twice in two
>> separate drivers.
>
> Can you share the mapping please?

What do you mean?  That's what the MFD is doing now by setting up an
MMIO regmap to be shared between the two devices.

Thanks,
Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Lee Jones
On Wed, 13 May 2015, Andrew Bresticker wrote:

> Lee,
> 
> On Wed, May 13, 2015 at 7:39 AM, Lee Jones  wrote:
> > On Mon, 04 May 2015, Andrew Bresticker wrote:
> >
> >> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> >> and later SoCs.  The XUSB host complex includes a mailbox for
> >> communication with the XUSB micro-controller and an xHCI host-controller.
> >>
> >> Signed-off-by: Andrew Bresticker 
> >> Cc: Rob Herring 
> >> Cc: Pawel Moll 
> >> Cc: Mark Rutland 
> >> Cc: Ian Campbell 
> >> Cc: Kumar Gala 
> >> Cc: Samuel Ortiz 
> >> Cc: Lee Jones 
> >> ---
> >> Changes from v7:
> >>  - Move non-shared resources into child nodes.
> >> New for v7.
> >> ---
> >>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> >> ++
> >>  1 file changed, 37 insertions(+)
> >>  create mode 100644 
> >> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >>
> >> diff --git 
> >> a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> >> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> new file mode 100644
> >> index 000..bc50110
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> >> @@ -0,0 +1,37 @@
> >> +NVIDIA Tegra XUSB host copmlex
> >> +==
> >> +
> >> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
> >> +controller and a mailbox for communication with the XUSB micro-controller.
> >> +
> >> +Required properties:
> >> +
> >> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> >> +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
> >> +   where  is tegra132.
> >> + - reg: Must contain the base and length of the XUSB FPCI registers.
> >> + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
> >> +   mapping is 1:1.
> >> + - #address-cells: Must be 2.
> >> + - #size-cells: Must be 2.
> >> +
> >> +Example:
> >> +
> >> + usb@0,70098000 {
> >> + compatible = "nvidia,tegra124-xusb";
> >> + reg = <0x0 0x70098000 0x0 0x1000>;
> >> + ranges;
> >> +
> >> + #address-cells = <2>;
> >> + #size-cells = <2>;
> >> +
> >> + usb-host@0,7009 {
> >> + compatible = "nvidia,tegra124-xhci";
> >> + ...
> >> + };
> >> +
> >> + mailbox {
> >> + compatible = "nvidia,tegra124-xusb-mbox";
> >> + ...
> >> + };
> >
> > This doesn't appear to be a proper MFD.  I would have the USB and
> > Mailbox devices probe seperately and use a phandle to point the USB
> > device to its Mailbox.
> >
> > usb@xyz {
> > mboxes = <, [chan]>;
> > };
> 
> Then what will set up the shared regmap?  The point of using an MFD
> here was to share a register set with both the mailbox and xHCI
> drivers and avoid having to map the same register set twice in two
> separate drivers.

Can you share the mapping please?

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Andrew Bresticker
Lee,

On Wed, May 13, 2015 at 7:39 AM, Lee Jones  wrote:
> On Mon, 04 May 2015, Andrew Bresticker wrote:
>
>> Add a binding document for the XUSB host complex on NVIDIA Tegra124
>> and later SoCs.  The XUSB host complex includes a mailbox for
>> communication with the XUSB micro-controller and an xHCI host-controller.
>>
>> Signed-off-by: Andrew Bresticker 
>> Cc: Rob Herring 
>> Cc: Pawel Moll 
>> Cc: Mark Rutland 
>> Cc: Ian Campbell 
>> Cc: Kumar Gala 
>> Cc: Samuel Ortiz 
>> Cc: Lee Jones 
>> ---
>> Changes from v7:
>>  - Move non-shared resources into child nodes.
>> New for v7.
>> ---
>>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
>> ++
>>  1 file changed, 37 insertions(+)
>>  create mode 100644 
>> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
>> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> new file mode 100644
>> index 000..bc50110
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
>> @@ -0,0 +1,37 @@
>> +NVIDIA Tegra XUSB host copmlex
>> +==
>> +
>> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
>> +controller and a mailbox for communication with the XUSB micro-controller.
>> +
>> +Required properties:
>> +
>> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
>> +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
>> +   where  is tegra132.
>> + - reg: Must contain the base and length of the XUSB FPCI registers.
>> + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
>> +   mapping is 1:1.
>> + - #address-cells: Must be 2.
>> + - #size-cells: Must be 2.
>> +
>> +Example:
>> +
>> + usb@0,70098000 {
>> + compatible = "nvidia,tegra124-xusb";
>> + reg = <0x0 0x70098000 0x0 0x1000>;
>> + ranges;
>> +
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + usb-host@0,7009 {
>> + compatible = "nvidia,tegra124-xhci";
>> + ...
>> + };
>> +
>> + mailbox {
>> + compatible = "nvidia,tegra124-xusb-mbox";
>> + ...
>> + };
>
> This doesn't appear to be a proper MFD.  I would have the USB and
> Mailbox devices probe seperately and use a phandle to point the USB
> device to its Mailbox.
>
> usb@xyz {
> mboxes = <, [chan]>;
> };

Then what will set up the shared regmap?  The point of using an MFD
here was to share a register set with both the mailbox and xHCI
drivers and avoid having to map the same register set twice in two
separate drivers.

Thanks,
Andrew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Lee Jones
On Mon, 04 May 2015, Andrew Bresticker wrote:

> Add a binding document for the XUSB host complex on NVIDIA Tegra124
> and later SoCs.  The XUSB host complex includes a mailbox for
> communication with the XUSB micro-controller and an xHCI host-controller.
> 
> Signed-off-by: Andrew Bresticker 
> Cc: Rob Herring 
> Cc: Pawel Moll 
> Cc: Mark Rutland 
> Cc: Ian Campbell 
> Cc: Kumar Gala 
> Cc: Samuel Ortiz 
> Cc: Lee Jones 
> ---
> Changes from v7:
>  - Move non-shared resources into child nodes.
> New for v7.
> ---
>  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
> ++
>  1 file changed, 37 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> 
> diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
> b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> new file mode 100644
> index 000..bc50110
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> @@ -0,0 +1,37 @@
> +NVIDIA Tegra XUSB host copmlex
> +==
> +
> +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
> +controller and a mailbox for communication with the XUSB micro-controller.
> +
> +Required properties:
> +
> + - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
> +   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
> +   where  is tegra132.
> + - reg: Must contain the base and length of the XUSB FPCI registers.
> + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
> +   mapping is 1:1.
> + - #address-cells: Must be 2.
> + - #size-cells: Must be 2.
> +
> +Example:
> +
> + usb@0,70098000 {
> + compatible = "nvidia,tegra124-xusb";
> + reg = <0x0 0x70098000 0x0 0x1000>;
> + ranges;
> +
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + usb-host@0,7009 {
> + compatible = "nvidia,tegra124-xhci";
> + ...
> + };
> +
> + mailbox {
> + compatible = "nvidia,tegra124-xusb-mbox";
> + ...
> + };

This doesn't appear to be a proper MFD.  I would have the USB and
Mailbox devices probe seperately and use a phandle to point the USB
device to its Mailbox.

usb@xyz {
mboxes = <, [chan]>;
};

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Lee Jones
On Mon, 04 May 2015, Andrew Bresticker wrote:

 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI host-controller.
 
 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
 diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 + usb@0,70098000 {
 + compatible = nvidia,tegra124-xusb;
 + reg = 0x0 0x70098000 0x0 0x1000;
 + ranges;
 +
 + #address-cells = 2;
 + #size-cells = 2;
 +
 + usb-host@0,7009 {
 + compatible = nvidia,tegra124-xhci;
 + ...
 + };
 +
 + mailbox {
 + compatible = nvidia,tegra124-xusb-mbox;
 + ...
 + };

This doesn't appear to be a proper MFD.  I would have the USB and
Mailbox devices probe seperately and use a phandle to point the USB
device to its Mailbox.

usb@xyz {
mboxes = xusb-mailbox, [chan];
};

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Andrew Bresticker
Lee,

On Wed, May 13, 2015 at 7:39 AM, Lee Jones lee.jo...@linaro.org wrote:
 On Mon, 04 May 2015, Andrew Bresticker wrote:

 Add a binding document for the XUSB host complex on NVIDIA Tegra124
 and later SoCs.  The XUSB host complex includes a mailbox for
 communication with the XUSB micro-controller and an xHCI host-controller.

 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
 Changes from v7:
  - Move non-shared resources into child nodes.
 New for v7.
 ---
  .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
 ++
  1 file changed, 37 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

 diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
 b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 new file mode 100644
 index 000..bc50110
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 @@ -0,0 +1,37 @@
 +NVIDIA Tegra XUSB host copmlex
 +==
 +
 +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
 +controller and a mailbox for communication with the XUSB micro-controller.
 +
 +Required properties:
 +
 + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
 +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
 +   where chip is tegra132.
 + - reg: Must contain the base and length of the XUSB FPCI registers.
 + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
 +   mapping is 1:1.
 + - #address-cells: Must be 2.
 + - #size-cells: Must be 2.
 +
 +Example:
 +
 + usb@0,70098000 {
 + compatible = nvidia,tegra124-xusb;
 + reg = 0x0 0x70098000 0x0 0x1000;
 + ranges;
 +
 + #address-cells = 2;
 + #size-cells = 2;
 +
 + usb-host@0,7009 {
 + compatible = nvidia,tegra124-xhci;
 + ...
 + };
 +
 + mailbox {
 + compatible = nvidia,tegra124-xusb-mbox;
 + ...
 + };

 This doesn't appear to be a proper MFD.  I would have the USB and
 Mailbox devices probe seperately and use a phandle to point the USB
 device to its Mailbox.

 usb@xyz {
 mboxes = xusb-mailbox, [chan];
 };

Then what will set up the shared regmap?  The point of using an MFD
here was to share a register set with both the mailbox and xHCI
drivers and avoid having to map the same register set twice in two
separate drivers.

Thanks,
Andrew
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Lee Jones
On Wed, 13 May 2015, Andrew Bresticker wrote:

 Lee,
 
 On Wed, May 13, 2015 at 7:39 AM, Lee Jones lee.jo...@linaro.org wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty since the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  + usb@0,70098000 {
  + compatible = nvidia,tegra124-xusb;
  + reg = 0x0 0x70098000 0x0 0x1000;
  + ranges;
  +
  + #address-cells = 2;
  + #size-cells = 2;
  +
  + usb-host@0,7009 {
  + compatible = nvidia,tegra124-xhci;
  + ...
  + };
  +
  + mailbox {
  + compatible = nvidia,tegra124-xusb-mbox;
  + ...
  + };
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
 
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };
 
 Then what will set up the shared regmap?  The point of using an MFD
 here was to share a register set with both the mailbox and xHCI
 drivers and avoid having to map the same register set twice in two
 separate drivers.

Can you share the mapping please?

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-13 Thread Andrew Bresticker
On Wed, May 13, 2015 at 9:50 AM, Lee Jones lee.jo...@linaro.org wrote:
 On Wed, 13 May 2015, Andrew Bresticker wrote:

 Lee,

 On Wed, May 13, 2015 at 7:39 AM, Lee Jones lee.jo...@linaro.org wrote:
  On Mon, 04 May 2015, Andrew Bresticker wrote:
 
  Add a binding document for the XUSB host complex on NVIDIA Tegra124
  and later SoCs.  The XUSB host complex includes a mailbox for
  communication with the XUSB micro-controller and an xHCI host-controller.
 
  Signed-off-by: Andrew Bresticker abres...@chromium.org
  Cc: Rob Herring robh...@kernel.org
  Cc: Pawel Moll pawel.m...@arm.com
  Cc: Mark Rutland mark.rutl...@arm.com
  Cc: Ian Campbell ijc+devicet...@hellion.org.uk
  Cc: Kumar Gala ga...@codeaurora.org
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Lee Jones lee.jo...@linaro.org
  ---
  Changes from v7:
   - Move non-shared resources into child nodes.
  New for v7.
  ---
   .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 
  ++
   1 file changed, 37 insertions(+)
   create mode 100644 
  Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
 
  diff --git 
  a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
  b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  new file mode 100644
  index 000..bc50110
  --- /dev/null
  +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
  @@ -0,0 +1,37 @@
  +NVIDIA Tegra XUSB host copmlex
  +==
  +
  +The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
  +controller and a mailbox for communication with the XUSB 
  micro-controller.
  +
  +Required properties:
  +
  + - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
  +   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
  +   where chip is tegra132.
  + - reg: Must contain the base and length of the XUSB FPCI registers.
  + - ranges: Bus address mapping for the XUSB block.  Can be empty since 
  the
  +   mapping is 1:1.
  + - #address-cells: Must be 2.
  + - #size-cells: Must be 2.
  +
  +Example:
  +
  + usb@0,70098000 {
  + compatible = nvidia,tegra124-xusb;
  + reg = 0x0 0x70098000 0x0 0x1000;
  + ranges;
  +
  + #address-cells = 2;
  + #size-cells = 2;
  +
  + usb-host@0,7009 {
  + compatible = nvidia,tegra124-xhci;
  + ...
  + };
  +
  + mailbox {
  + compatible = nvidia,tegra124-xusb-mbox;
  + ...
  + };
 
  This doesn't appear to be a proper MFD.  I would have the USB and
  Mailbox devices probe seperately and use a phandle to point the USB
  device to its Mailbox.
 
  usb@xyz {
  mboxes = xusb-mailbox, [chan];
  };

 Then what will set up the shared regmap?  The point of using an MFD
 here was to share a register set with both the mailbox and xHCI
 drivers and avoid having to map the same register set twice in two
 separate drivers.

 Can you share the mapping please?

What do you mean?  That's what the MFD is doing now by setting up an
MMIO regmap to be shared between the two devices.

Thanks,
Andrew
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-04 Thread Andrew Bresticker
Add a binding document for the XUSB host complex on NVIDIA Tegra124
and later SoCs.  The XUSB host complex includes a mailbox for
communication with the XUSB micro-controller and an xHCI host-controller.

Signed-off-by: Andrew Bresticker 
Cc: Rob Herring 
Cc: Pawel Moll 
Cc: Mark Rutland 
Cc: Ian Campbell 
Cc: Kumar Gala 
Cc: Samuel Ortiz 
Cc: Lee Jones 
---
Changes from v7:
 - Move non-shared resources into child nodes.
New for v7.
---
 .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 ++
 1 file changed, 37 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
new file mode 100644
index 000..bc50110
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
@@ -0,0 +1,37 @@
+NVIDIA Tegra XUSB host copmlex
+==
+
+The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
+controller and a mailbox for communication with the XUSB micro-controller.
+
+Required properties:
+
+ - compatible: For Tegra124, must contain "nvidia,tegra124-xusb".
+   Otherwise, must contain '"nvidia,-xusb", "nvidia,tegra124-xusb"'
+   where  is tegra132.
+ - reg: Must contain the base and length of the XUSB FPCI registers.
+ - ranges: Bus address mapping for the XUSB block.  Can be empty since the
+   mapping is 1:1.
+ - #address-cells: Must be 2.
+ - #size-cells: Must be 2.
+
+Example:
+
+   usb@0,70098000 {
+   compatible = "nvidia,tegra124-xusb";
+   reg = <0x0 0x70098000 0x0 0x1000>;
+   ranges;
+
+   #address-cells = <2>;
+   #size-cells = <2>;
+
+   usb-host@0,7009 {
+   compatible = "nvidia,tegra124-xhci";
+   ...
+   };
+
+   mailbox {
+   compatible = "nvidia,tegra124-xusb-mbox";
+   ...
+   };
+   };
-- 
2.2.0.rc0.207.ga3a616c

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB

2015-05-04 Thread Andrew Bresticker
Add a binding document for the XUSB host complex on NVIDIA Tegra124
and later SoCs.  The XUSB host complex includes a mailbox for
communication with the XUSB micro-controller and an xHCI host-controller.

Signed-off-by: Andrew Bresticker abres...@chromium.org
Cc: Rob Herring robh...@kernel.org
Cc: Pawel Moll pawel.m...@arm.com
Cc: Mark Rutland mark.rutl...@arm.com
Cc: Ian Campbell ijc+devicet...@hellion.org.uk
Cc: Kumar Gala ga...@codeaurora.org
Cc: Samuel Ortiz sa...@linux.intel.com
Cc: Lee Jones lee.jo...@linaro.org
---
Changes from v7:
 - Move non-shared resources into child nodes.
New for v7.
---
 .../bindings/mfd/nvidia,tegra124-xusb.txt  | 37 ++
 1 file changed, 37 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt

diff --git a/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt 
b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
new file mode 100644
index 000..bc50110
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
@@ -0,0 +1,37 @@
+NVIDIA Tegra XUSB host copmlex
+==
+
+The XUSB host complex on Tegra124 and later SoCs contains an xHCI host
+controller and a mailbox for communication with the XUSB micro-controller.
+
+Required properties:
+
+ - compatible: For Tegra124, must contain nvidia,tegra124-xusb.
+   Otherwise, must contain 'nvidia,chip-xusb, nvidia,tegra124-xusb'
+   where chip is tegra132.
+ - reg: Must contain the base and length of the XUSB FPCI registers.
+ - ranges: Bus address mapping for the XUSB block.  Can be empty since the
+   mapping is 1:1.
+ - #address-cells: Must be 2.
+ - #size-cells: Must be 2.
+
+Example:
+
+   usb@0,70098000 {
+   compatible = nvidia,tegra124-xusb;
+   reg = 0x0 0x70098000 0x0 0x1000;
+   ranges;
+
+   #address-cells = 2;
+   #size-cells = 2;
+
+   usb-host@0,7009 {
+   compatible = nvidia,tegra124-xhci;
+   ...
+   };
+
+   mailbox {
+   compatible = nvidia,tegra124-xusb-mbox;
+   ...
+   };
+   };
-- 
2.2.0.rc0.207.ga3a616c

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/