All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: Thierry Reding
	<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Andrew Bresticker
	<abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
	Alexandre Courbot
	<gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Ian Campbell
	<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
	Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	Samuel Ortiz <sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Subject: Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
Date: Thu, 14 May 2015 11:23:15 +0100	[thread overview]
Message-ID: <20150514102315.GI22418@x1> (raw)
In-Reply-To: <5554746A.4000608-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

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 <abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
> >>>>>> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> >>>>>> Cc: Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>
> >>>>>> Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
> >>>>>> Cc: Ian Campbell <ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>
> >>>>>> Cc: Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
> >>>>>> Cc: Samuel Ortiz <sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> >>>>>> Cc: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.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 0000000..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,70090000 {
> >>>>>> +			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 - 0x7009ffff.
> >>
> >> 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,70090000 {
> >> 		compatible = "nvidia,tegra124-xhci";
> >> 		reg = <0x0 0x70090000 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 = 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
> >>
> >> That is nice. Sounds like the "simple-bus" style of device but for an
> > 
> > That's precisely what it does.  FYI: You 'can' use "simple-bus" and it
> > will do the right thing, but as an MFD isn't really a bus, it was
> > decided to create something a little more fitting.
> > 
> >> mfd. Based upon the above, let me know if you think we could use the
> >> "simple-mfd"?
> > 
> > I do. :)
> 
> Thanks Lee.
> 
> Thierry, any objections on the above mem-mapping?

If you have the mailbox as the child device and use "simple-mfd", you
don't need to slice up the memory do you?

-- 
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-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Jon Hunter <jonathanh@nvidia.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Andrew Bresticker <abrestic@chromium.org>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Alexandre Courbot <gnurou@gmail.com>,
	devicetree@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	Samuel Ortiz <sameo@linux.intel.com>
Subject: Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
Date: Thu, 14 May 2015 11:23:15 +0100	[thread overview]
Message-ID: <20150514102315.GI22418@x1> (raw)
In-Reply-To: <5554746A.4000608@nvidia.com>

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 <abrestic@chromium.org>
> >>>>>> Cc: Rob Herring <robh+dt@kernel.org>
> >>>>>> Cc: Pawel Moll <pawel.moll@arm.com>
> >>>>>> Cc: Mark Rutland <mark.rutland@arm.com>
> >>>>>> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
> >>>>>> Cc: Kumar Gala <galak@codeaurora.org>
> >>>>>> Cc: Samuel Ortiz <sameo@linux.intel.com>
> >>>>>> Cc: Lee Jones <lee.jones@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 0000000..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,70090000 {
> >>>>>> +			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 - 0x7009ffff.
> >>
> >> 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,70090000 {
> >> 		compatible = "nvidia,tegra124-xhci";
> >> 		reg = <0x0 0x70090000 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 = 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
> >>
> >> That is nice. Sounds like the "simple-bus" style of device but for an
> > 
> > That's precisely what it does.  FYI: You 'can' use "simple-bus" and it
> > will do the right thing, but as an MFD isn't really a bus, it was
> > decided to create something a little more fitting.
> > 
> >> mfd. Based upon the above, let me know if you think we could use the
> >> "simple-mfd"?
> > 
> > I do. :)
> 
> Thanks Lee.
> 
> Thierry, any objections on the above mem-mapping?

If you have the mailbox as the child device and use "simple-mfd", you
don't need to slice up the memory do you?

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
Date: Thu, 14 May 2015 11:23:15 +0100	[thread overview]
Message-ID: <20150514102315.GI22418@x1> (raw)
In-Reply-To: <5554746A.4000608@nvidia.com>

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 <abrestic@chromium.org>
> >>>>>> Cc: Rob Herring <robh+dt@kernel.org>
> >>>>>> Cc: Pawel Moll <pawel.moll@arm.com>
> >>>>>> Cc: Mark Rutland <mark.rutland@arm.com>
> >>>>>> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
> >>>>>> Cc: Kumar Gala <galak@codeaurora.org>
> >>>>>> Cc: Samuel Ortiz <sameo@linux.intel.com>
> >>>>>> Cc: Lee Jones <lee.jones@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 0000000..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 at 0,70098000 {
> >>>>>> +		compatible = "nvidia,tegra124-xusb";
> >>>>>> +		reg = <0x0 0x70098000 0x0 0x1000>;
> >>>>>> +		ranges;
> >>>>>> +
> >>>>>> +		#address-cells = <2>;
> >>>>>> +		#size-cells = <2>;
> >>>>>> +
> >>>>>> +		usb-host at 0,70090000 {
> >>>>>> +			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 at 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 - 0x7009ffff.
> >>
> >> 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 at 0,70090000 {
> >> 		compatible = "nvidia,tegra124-xhci";
> >> 		reg = <0x0 0x70090000 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 = 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
> >>
> >> That is nice. Sounds like the "simple-bus" style of device but for an
> > 
> > That's precisely what it does.  FYI: You 'can' use "simple-bus" and it
> > will do the right thing, but as an MFD isn't really a bus, it was
> > decided to create something a little more fitting.
> > 
> >> mfd. Based upon the above, let me know if you think we could use the
> >> "simple-mfd"?
> > 
> > I do. :)
> 
> Thanks Lee.
> 
> Thierry, any objections on the above mem-mapping?

If you have the mailbox as the child device and use "simple-mfd", you
don't need to slice up the memory do you?

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  parent reply	other threads:[~2015-05-14 10:23 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-04 17:36 [PATCH v8 0/9] Tegra xHCI support Andrew Bresticker
2015-05-04 17:36 ` Andrew Bresticker
2015-05-04 17:36 ` Andrew Bresticker
     [not found] ` <1430761002-9327-1-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2015-05-04 17:36   ` [PATCH v8 1/9] xhci: Set shared HCD's hcd_priv in xhci_gen_setup Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
     [not found]     ` <1430761002-9327-2-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2015-05-19 18:39       ` Andrew Bresticker
2015-05-19 18:39         ` Andrew Bresticker
2015-05-19 18:39         ` Andrew Bresticker
     [not found]         ` <CAL1qeaGo2-T=suBiCTtHmyR1sNeS_ZG-2j2FuuLdGc9vmct2ug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-22 12:19           ` Mathias Nyman
2015-05-22 12:19             ` Mathias Nyman
2015-05-22 12:19             ` Mathias Nyman
2015-05-04 17:36   ` [PATCH v8 2/9] mailbox: Make mbox_chan_ops const Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
     [not found]     ` <1430761002-9327-3-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2015-05-04 19:22       ` Suman Anna
2015-05-04 19:22         ` Suman Anna
2015-05-04 19:22         ` Suman Anna
2015-05-04 17:36   ` [PATCH v8 3/9] mailbox: Fix up error handling in mbox_request_channel() Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36   ` [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
     [not found]     ` <1430761002-9327-5-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2015-05-13 14:39       ` Lee Jones
2015-05-13 14:39         ` Lee Jones
2015-05-13 14:39         ` Lee Jones
2015-05-13 16:26         ` Andrew Bresticker
2015-05-13 16:26           ` Andrew Bresticker
2015-05-13 16:26           ` Andrew Bresticker
     [not found]           ` <CAL1qeaF-7aAx0gqPe-_D4ZaZET0Kejr801KrbvuQ_2w6c8mcnA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-13 16:50             ` Lee Jones
2015-05-13 16:50               ` Lee Jones
2015-05-13 16:50               ` Lee Jones
2015-05-13 17:03               ` Andrew Bresticker
2015-05-13 17:03                 ` Andrew Bresticker
2015-05-13 17:03                 ` Andrew Bresticker
     [not found]                 ` <CAL1qeaE7XHmreQ_b52iop6fOY1osAhjij81c4vVr7_8wO_cYxQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-14  7:29                   ` Lee Jones
2015-05-14  7:29                     ` Lee Jones
2015-05-14  7:29                     ` Lee Jones
2015-05-14  7:32                     ` Jon Hunter
2015-05-14  7:32                       ` Jon Hunter
2015-05-14  7:32                       ` Jon Hunter
     [not found]                       ` <55544F91.4060402-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-05-14  7:45                         ` Lee Jones
2015-05-14  7:45                           ` Lee Jones
2015-05-14  7:45                           ` Lee Jones
2015-05-14  7:20         ` Jon Hunter
2015-05-14  7:20           ` Jon Hunter
2015-05-14  7:20           ` Jon Hunter
     [not found]           ` <55544CC5.9050001-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-05-14  7:40             ` Lee Jones
2015-05-14  7:40               ` Lee Jones
2015-05-14  7:40               ` Lee Jones
2015-05-14  9:14               ` Jon Hunter
2015-05-14  9:14                 ` Jon Hunter
2015-05-14  9:14                 ` Jon Hunter
2015-05-14  9:30                 ` Lee Jones
2015-05-14  9:30                   ` Lee Jones
2015-05-14 10:09                   ` Jon Hunter
2015-05-14 10:09                     ` Jon Hunter
2015-05-14 10:09                     ` Jon Hunter
     [not found]                     ` <5554746A.4000608-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-05-14 10:23                       ` Lee Jones [this message]
2015-05-14 10:23                         ` Lee Jones
2015-05-14 10:23                         ` Lee Jones
2015-05-14 11:21                         ` Jon Hunter
2015-05-14 11:21                           ` Jon Hunter
2015-05-14 11:21                           ` Jon Hunter
2015-05-14 17:38               ` Andrew Bresticker
2015-05-14 17:38                 ` Andrew Bresticker
2015-05-14 17:38                 ` Andrew Bresticker
     [not found]                 ` <CAL1qeaEqNejuGkN-ke11mtWnaaRo+XieCBkQ6+NQ-Afym6uxVA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-19 18:36                   ` Andrew Bresticker
2015-05-19 18:36                     ` Andrew Bresticker
2015-05-19 18:36                     ` Andrew Bresticker
     [not found]                     ` <CAL1qeaHy0h7bXhuLHh4AG2Zfu48JYeawgVo4dp_k4oX8YFw6tA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-20  6:35                       ` Lee Jones
2015-05-20  6:35                         ` Lee Jones
2015-05-20  6:35                         ` Lee Jones
2015-05-20 14:52                         ` Thierry Reding
2015-05-20 14:52                           ` Thierry Reding
2015-05-20 14:52                           ` Thierry Reding
     [not found]                           ` <20150520145227.GA3787-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-05-21  7:19                             ` Linus Walleij
2015-05-21  7:19                               ` Linus Walleij
2015-05-21  7:19                               ` Linus Walleij
2015-05-21  8:40                             ` Lee Jones
2015-05-21  8:40                               ` Lee Jones
2015-05-21  8:40                               ` Lee Jones
2015-05-21 10:12                               ` Thierry Reding
2015-05-21 10:12                                 ` Thierry Reding
2015-05-21 10:12                                 ` Thierry Reding
     [not found]                                 ` <20150521101247.GA8073-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-05-26 15:18                                   ` Lee Jones
2015-05-26 15:18                                     ` Lee Jones
2015-05-26 15:18                                     ` Lee Jones
2015-06-30 18:22                                     ` Grant Likely
2015-06-30 18:22                                       ` Grant Likely
2015-06-30 18:22                                       ` Grant Likely
2015-05-04 17:36   ` [PATCH v8 6/9] mailbox: Add NVIDIA Tegra XUSB mailbox binding Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
     [not found]     ` <1430761002-9327-7-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2015-05-08 20:42       ` Benson Leung
2015-05-08 20:42         ` Benson Leung
2015-05-08 20:42         ` Benson Leung
     [not found]         ` <CANLzEksWtzSmz=OCuwVdY5RSG6gDrOoMyGsW3i9jMcjD3WtPKQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-08 20:53           ` Andrew Bresticker
2015-05-08 20:53             ` Andrew Bresticker
2015-05-08 20:53             ` Andrew Bresticker
2015-05-08 21:03             ` Benson Leung
2015-05-08 21:03               ` Benson Leung
2015-05-08 21:03               ` Benson Leung
2015-05-04 17:36   ` [PATCH v8 7/9] mailbox: Add NVIDIA Tegra XUSB mailbox driver Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36   ` [PATCH v8 8/9] usb: Add NVIDIA Tegra xHCI controller binding Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36   ` [PATCH v8 9/9] usb: xhci: Add NVIDIA Tegra xHCI host-controller driver Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-04 17:36     ` Andrew Bresticker
2015-05-12  3:56   ` [PATCH v8 0/9] Tegra xHCI support Jassi Brar
2015-05-12  3:56     ` Jassi Brar
2015-05-12  3:56     ` Jassi Brar
     [not found]     ` <CABb+yY2WhH2gGbCr4n=m9HOa_843MuZDp=QWNDHbtB8AMYYwYA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-26 16:27       ` Andrew Bresticker
2015-05-26 16:27         ` Andrew Bresticker
2015-05-26 16:27         ` Andrew Bresticker
2015-05-04 17:36 ` [PATCH v8 5/9] mfd: Add driver for NVIDIA Tegra XUSB Andrew Bresticker
2015-05-04 17:36   ` Andrew Bresticker
     [not found]   ` <1430761002-9327-6-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2015-05-13 14:37     ` Lee Jones
2015-05-13 14:37       ` Lee Jones
2015-05-13 14:37       ` Lee Jones
2015-05-13 16:31       ` Andrew Bresticker
2015-05-13 16:31         ` Andrew Bresticker
2015-05-13 16:31         ` Andrew Bresticker
2015-05-05 14:28 ` [PATCH v8 0/9] Tegra xHCI support Jon Hunter
2015-05-05 14:28   ` Jon Hunter
2015-05-05 14:28   ` Jon Hunter
2015-05-05 14:42   ` Thierry Reding
2015-05-05 14:42     ` Thierry Reding
2015-05-05 14:42     ` Thierry Reding
2015-05-05 14:57     ` Jon Hunter
2015-05-05 14:57       ` Jon Hunter
2015-05-05 14:57       ` Jon Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150514102315.GI22418@x1 \
    --to=lee.jones-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
    --cc=abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
    --cc=jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.