Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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 > >
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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 register
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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: > > > >> err
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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
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 = <&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/
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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 c
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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: > r
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
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 = <&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
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 = <&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
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 = <&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
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 = <&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
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 = <&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/
Re: [PATCH v8 4/9] mfd: Add binding document for NVIDIA Tegra XUSB
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 = <&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
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 = <&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
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 = <&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/