devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] gpu: host1x: Add MIPI pad calibration DT bindings
@ 2013-12-02 13:28 Thierry Reding
       [not found] ` <1385990934-20809-1-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Thierry Reding @ 2013-12-02 13:28 UTC (permalink / raw)
  To: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

Introduce device tree bindings for the MIPI pad calibration controller
found on Tegra SoCs. The controller can be used to perform calibration
of pads used for DSI and CSI peripherals.

Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
 .../bindings/misc/nvidia,tegra114-mipi.txt         | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt

diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
new file mode 100644
index 000000000000..beb75ec7f6fc
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
@@ -0,0 +1,37 @@
+NVIDIA Tegra MIPI pad calibration controller
+
+Required properties:
+- compatible: "nvidia,tegra<chip>-mipi"
+- reg: Physical base address and length of the controller's registers.
+- clocks: The clock consumed by the controller.
+- #nvidia,mipi-calibrate-cells: Should be 1. The cell is a bitmask of the pads
+  that need to be calibrated for a given device.
+
+User nodes need to contain an nvidia,mipi-calibrate property that has a
+phandle to refer to the calibration controller node and a bitmask of the pads
+that need to be calibrated.
+
+Example:
+
+	mipi: mipi@700e3000 {
+		compatible = "nvidia,tegra114-mipi";
+		reg = <0x700e3000 0x100>;
+		clocks = <&tegra_car TEGRA114_CLK_MIPI_CAL>;
+		#nvidia,mipi-calibrate-cells = <1>;
+	};
+
+	...
+
+	host1x@50000000 {
+		...
+
+		dsi@54300000 {
+			...
+
+			nvidia,mipi-calibrate = <&mipi 0x060>;
+
+			...
+		};
+
+		...
+	};
-- 
1.8.4.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] gpu: host1x: Add MIPI pad calibration DT bindings
       [not found] ` <1385990934-20809-1-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
@ 2013-12-02 17:38   ` Kumar Gala
       [not found]     ` <3F910C9B-7205-4FC3-A75E-269277ACB513-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
  2013-12-03  9:52   ` Thierry Reding
  2013-12-03 20:17   ` Stephen Warren
  2 siblings, 1 reply; 6+ messages in thread
From: Kumar Gala @ 2013-12-02 17:38 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA


On Dec 2, 2013, at 7:28 AM, Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:

> Introduce device tree bindings for the MIPI pad calibration controller
> found on Tegra SoCs. The controller can be used to perform calibration
> of pads used for DSI and CSI peripherals.
> 
> Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> ---
> .../bindings/misc/nvidia,tegra114-mipi.txt         | 37 ++++++++++++++++++++++

Should this just be nvidia,tegra-mipi.txt (as you have it supported for tegra<chip>)?

> 1 file changed, 37 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt

Is this really pad control or pin?  I ask as its rare to see pad control.

> 
> diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
> new file mode 100644
> index 000000000000..beb75ec7f6fc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
> @@ -0,0 +1,37 @@
> +NVIDIA Tegra MIPI pad calibration controller
> +
> +Required properties:
> +- compatible: "nvidia,tegra<chip>-mipi"
> +- reg: Physical base address and length of the controller's registers.
> +- clocks: The clock consumed by the controller.
> +- #nvidia,mipi-calibrate-cells: Should be 1. The cell is a bitmask of the pads
> +  that need to be calibrated for a given device.

Is there a case that this would not be set to 1?  If so, why bother with the property right now?  One would assume for a non-1 case a new compatible will be required anyways.

> +
> +User nodes need to contain an nvidia,mipi-calibrate property that has a
> +phandle to refer to the calibration controller node and a bitmask of the pads
> +that need to be calibrated.
> +
> +Example:
> +
> +	mipi: mipi@700e3000 {
> +		compatible = "nvidia,tegra114-mipi";
> +		reg = <0x700e3000 0x100>;
> +		clocks = <&tegra_car TEGRA114_CLK_MIPI_CAL>;
> +		#nvidia,mipi-calibrate-cells = <1>;
> +	};
> +
> +	...
> +
> +	host1x@50000000 {
> +		...
> +
> +		dsi@54300000 {
> +			...
> +
> +			nvidia,mipi-calibrate = <&mipi 0x060>;
> +
> +			...
> +		};
> +
> +		...
> +	};
> -- 
> 1.8.4.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] gpu: host1x: Add MIPI pad calibration DT bindings
       [not found]     ` <3F910C9B-7205-4FC3-A75E-269277ACB513-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
@ 2013-12-02 21:17       ` Thierry Reding
  0 siblings, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2013-12-02 21:17 UTC (permalink / raw)
  To: Kumar Gala
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 3079 bytes --]

On Mon, Dec 02, 2013 at 11:38:59AM -0600, Kumar Gala wrote:
> 
> On Dec 2, 2013, at 7:28 AM, Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> 
> > Introduce device tree bindings for the MIPI pad calibration controller
> > found on Tegra SoCs. The controller can be used to perform calibration
> > of pads used for DSI and CSI peripherals.
> > 
> > Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> > ---
> > .../bindings/misc/nvidia,tegra114-mipi.txt         | 37 ++++++++++++++++++++++
> 
> Should this just be nvidia,tegra-mipi.txt (as you have it supported
> for tegra<chip>)?

Tegra114 is the first chip to support it. Subsequent chips should be
backwards-compatible. But it's probably safer to change the compatible
property documentation to only include nvidia,tegra114-mipi for now.
Newer SoC generations can always be added when support for them is
added.

> > 1 file changed, 37 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
> 
> Is this really pad control or pin?  I ask as its rare to see pad control.

It's not really control at all. Rather it is a hardware block that
performs calibration to obtain the optimal parameters for a given set of
pads.

Since you mention it, is there a better location for this file? I
couldn't find anything that matched, so I just put it here. I suppose I
could add it to Documentation/devicetree/bindings/gpu where the rest of
the bindings reside for the Tegra GPU, but this block is also used by
CSI, which is a capture interface and not really related to the GPU at
all.

> > diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
> > new file mode 100644
> > index 000000000000..beb75ec7f6fc
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
> > @@ -0,0 +1,37 @@
> > +NVIDIA Tegra MIPI pad calibration controller
> > +
> > +Required properties:
> > +- compatible: "nvidia,tegra<chip>-mipi"
> > +- reg: Physical base address and length of the controller's registers.
> > +- clocks: The clock consumed by the controller.
> > +- #nvidia,mipi-calibrate-cells: Should be 1. The cell is a bitmask of the pads
> > +  that need to be calibrated for a given device.
> 
> Is there a case that this would not be set to 1?  If so, why bother
> with the property right now?  One would assume for a non-1 case a new
> compatible will be required anyways.

There is no such case now, and I'm not aware of a future chip that has
more than 32 pads and would therefore require this to be anything other
than 1.

However having this property allows the DT to be parsed without specific
knowledge about the hardware block. If this was implied by the value of
the compatible property, a generic parser wouldn't know how to interpret
the data.

A schema validator wouldn't be able to check that the content was
correct either.

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] gpu: host1x: Add MIPI pad calibration DT bindings
       [not found] ` <1385990934-20809-1-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
  2013-12-02 17:38   ` Kumar Gala
@ 2013-12-03  9:52   ` Thierry Reding
  2013-12-03 20:17   ` Stephen Warren
  2 siblings, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2013-12-03  9:52 UTC (permalink / raw)
  To: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 396 bytes --]

On Mon, Dec 02, 2013 at 02:28:54PM +0100, Thierry Reding wrote:
[...]
> +	host1x@50000000 {
> +		...
> +
> +		dsi@54300000 {
> +			...
> +
> +			nvidia,mipi-calibrate = <&mipi 0x060>;

I just occurred to me that perhaps having a list of pad indices here
would be easier to write and parse than a bitmask. So alternatively this
could be:

			nvidia,mipi-calibrate = <&mipi 5>, <&mipi 6>;

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] gpu: host1x: Add MIPI pad calibration DT bindings
       [not found] ` <1385990934-20809-1-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
  2013-12-02 17:38   ` Kumar Gala
  2013-12-03  9:52   ` Thierry Reding
@ 2013-12-03 20:17   ` Stephen Warren
       [not found]     ` <529E3C50.8000801-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
  2 siblings, 1 reply; 6+ messages in thread
From: Stephen Warren @ 2013-12-03 20:17 UTC (permalink / raw)
  To: Thierry Reding, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

On 12/02/2013 06:28 AM, Thierry Reding wrote:
> Introduce device tree bindings for the MIPI pad calibration controller
> found on Tegra SoCs. The controller can be used to perform calibration
> of pads used for DSI and CSI peripherals.

> diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt

> +Required properties:
> +- compatible: "nvidia,tegra<chip>-mipi"
> +- reg: Physical base address and length of the controller's registers.
> +- clocks: The clock consumed by the controller.

I'd prefer all our new drivers just use clock-names from the start, so
we never have to specify that certain clocks must be at a certain index
in the clocks property. How about:

+  - clocks: Must contain an entry for each entry in clock-names.
+    See ../clocks/clock-bindings.txt for details.
+  - clock-names: Must include the following entries:
+    - mipi

(or "cal" or whatever makes sense there)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] gpu: host1x: Add MIPI pad calibration DT bindings
       [not found]     ` <529E3C50.8000801-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
@ 2013-12-04  9:42       ` Thierry Reding
  0 siblings, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2013-12-04  9:42 UTC (permalink / raw)
  To: Stephen Warren
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1346 bytes --]

On Tue, Dec 03, 2013 at 01:17:20PM -0700, Stephen Warren wrote:
> On 12/02/2013 06:28 AM, Thierry Reding wrote:
> > Introduce device tree bindings for the MIPI pad calibration controller
> > found on Tegra SoCs. The controller can be used to perform calibration
> > of pads used for DSI and CSI peripherals.
> 
> > diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt b/Documentation/devicetree/bindings/misc/nvidia,tegra114-mipi.txt
> 
> > +Required properties:
> > +- compatible: "nvidia,tegra<chip>-mipi"
> > +- reg: Physical base address and length of the controller's registers.
> > +- clocks: The clock consumed by the controller.
> 
> I'd prefer all our new drivers just use clock-names from the start, so
> we never have to specify that certain clocks must be at a certain index
> in the clocks property. How about:
> 
> +  - clocks: Must contain an entry for each entry in clock-names.
> +    See ../clocks/clock-bindings.txt for details.
> +  - clock-names: Must include the following entries:
> +    - mipi
> 
> (or "cal" or whatever makes sense there)

"mipi-cal" sounds like a good name. That's also what the clock is
called in the TRM.

I'll repost with this fixed up and I'll move this file into the mipi
subdirectory that I need for the MIPI DSI DT bindings anyway.

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-12-04  9:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-02 13:28 [PATCH] gpu: host1x: Add MIPI pad calibration DT bindings Thierry Reding
     [not found] ` <1385990934-20809-1-git-send-email-treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-12-02 17:38   ` Kumar Gala
     [not found]     ` <3F910C9B-7205-4FC3-A75E-269277ACB513-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2013-12-02 21:17       ` Thierry Reding
2013-12-03  9:52   ` Thierry Reding
2013-12-03 20:17   ` Stephen Warren
     [not found]     ` <529E3C50.8000801-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-12-04  9:42       ` Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).