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

From: [email-masked] (Lee Jones)
Date: Wed, 29 Apr 2015 10:25:45 +0100

On Mon, 27 Apr 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 <[email-masked]>
> Cc: Rob Herring <[email-masked]>
> Cc: Pawel Moll <[email-masked]>
> Cc: Mark Rutland <[email-masked]>
> Cc: Ian Campbell <[email-masked]>
> Cc: Kumar Gala <[email-masked]>
> Cc: Samuel Ortiz <[email-masked]>
> Cc: Lee Jones <[email-masked]>
> ---
> New for v7.
> ---
>  .../bindings/mfd/nvidia,tegra124-xusb.txt          | 46 ++++++++++++++++++++++
>  1 file changed, 46 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..6a46680
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/nvidia,tegra124-xusb.txt
> @@ -0,0 +1,46 @@
> +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.

Okay.  Why?

> + - reg: Must contain register base and length for each register set listed
> +   in reg-names.

You've mentioned 2 of the cells, what about the remaining 2?

> + - reg-names: Must include the following entries:
> +   - xhci
> +   - fpci
> +   - ipfs
> + - interrupts: Must contain an interrupt for each entry in interrupt-names.
> + - interrupt-names: Must include the following entries:
> +   - host
> +   - smi
> +   - pme
> +
> +Example:
> +--------
> +	usb at 0,70090000 {
> +		compatible = "nvidia,tegra124-xusb";
> +		reg = <0x0 0x70090000 0x0 0x8000>,
> +		      <0x0 0x70098000 0x0 0x1000>,
> +		      <0x0 0x70099000 0x0 0x1000>;
> +		reg-names = "xhci", "fpci", "ipfs";
> +		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
> +			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HGIH>,
> +			     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "host", "smi", "pme";

Are these resources used by both children?

If not, place them into the children and ioremap() them from the
associated child drivers.

Using an MFD driver to pull all of this out an disseminate it is a bit
bonkers.

> +		usb-host {
> +			compatible = "nvidia,tegra124-xhci";
> +			...
> +		};
> +
> +		mailbox {
> +			compatible = "nvidia,tegra124-xusb-mbox";
> +			...
> +		};
> +	};

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