2013-06-20 21:39:13

by Anna-Maria Gleixner

[permalink] [raw]
Subject: [PATCH] ARM:tegra20-colibri-512.dts: Change tristate status for i2c pinmux

The nvidia,tristate entry for the pinmux of i2c1 an i2c3 was set to
tristate. This results in non working i2c, because the i2c pins are
not actively driven. Set the entries to "driven".

Signed-off-by: Anna-Maria Gleixner <[email protected]>

diff --git a/arch/arm/boot/dts/tegra20-colibri-512.dtsi b/arch/arm/boot/dts/tegra20-colibri-512.dtsi
index 4441620..ad699bb 100644
--- a/arch/arm/boot/dts/tegra20-colibri-512.dtsi
+++ b/arch/arm/boot/dts/tegra20-colibri-512.dtsi
@@ -86,13 +86,13 @@
nvidia,pins = "rm";
nvidia,function = "i2c1";
nvidia,pull = <0>;
- nvidia,tristate = <1>;
+ nvidia,tristate = <0>;
};
i2c3 {
nvidia,pins = "dtf";
nvidia,function = "i2c3";
nvidia,pull = <0>;
- nvidia,tristate = <1>;
+ nvidia,tristate = <0>;
};
i2cddc {
nvidia,pins = "ddc";


2013-06-21 16:24:37

by Stephen Warren

[permalink] [raw]
Subject: Re: [PATCH] ARM:tegra20-colibri-512.dts: Change tristate status for i2c pinmux

On 06/20/2013 03:08 PM, Anna-Maria Gleixner wrote:
> The nvidia,tristate entry for the pinmux of i2c1 an i2c3 was set to
> tristate. This results in non working i2c, because the i2c pins are
> not actively driven. Set the entries to "driven".

Lucas, can you please comment on this patch? It sounds correct to me,
but I would have assumed you'd tested I2C already when you wrote the
original DT?

Oh actually, now that I look further, I see that tegra20-iris-512.dts
includes this file, and overrides some of the tristate values there.
What's the thinking behind that, and does this patch fit into it?

> diff --git a/arch/arm/boot/dts/tegra20-colibri-512.dtsi

> nvidia,pins = "rm";
> nvidia,function = "i2c1";
> nvidia,pull = <0>;
> - nvidia,tristate = <1>;
> + nvidia,tristate = <0>;
> };
> i2c3 {
> nvidia,pins = "dtf";
> nvidia,function = "i2c3";
> nvidia,pull = <0>;
> - nvidia,tristate = <1>;
> + nvidia,tristate = <0>;
> };
> i2cddc {
> nvidia,pins = "ddc";

2013-06-21 17:14:03

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH] ARM:tegra20-colibri-512.dts: Change tristate status for i2c pinmux

Am Freitag, den 21.06.2013, 10:24 -0600 schrieb Stephen Warren:
> On 06/20/2013 03:08 PM, Anna-Maria Gleixner wrote:
> > The nvidia,tristate entry for the pinmux of i2c1 an i2c3 was set to
> > tristate. This results in non working i2c, because the i2c pins are
> > not actively driven. Set the entries to "driven".
>
> Lucas, can you please comment on this patch? It sounds correct to me,
> but I would have assumed you'd tested I2C already when you wrote the
> original DT?
>
This is a NACK from me. For robustness reasons all pins/busses not
actually used on the Colibri module itself are tristated in order to
avoid any invalid configurations when placed on a baseboard.

Baseboards using particular busses should untristate those pins in their
respective dts. So if this change is about iris, I would be ok with
enabling i2c1, as this is actually routed on this baseboard, but not
i2c3.

Regards,
Lucas

> Oh actually, now that I look further, I see that tegra20-iris-512.dts
> includes this file, and overrides some of the tristate values there.
> What's the thinking behind that, and does this patch fit into it?
>
> > diff --git a/arch/arm/boot/dts/tegra20-colibri-512.dtsi
>
> > nvidia,pins = "rm";
> > nvidia,function = "i2c1";
> > nvidia,pull = <0>;
> > - nvidia,tristate = <1>;
> > + nvidia,tristate = <0>;
> > };
> > i2c3 {
> > nvidia,pins = "dtf";
> > nvidia,function = "i2c3";
> > nvidia,pull = <0>;
> > - nvidia,tristate = <1>;
> > + nvidia,tristate = <0>;
> > };
> > i2cddc {
> > nvidia,pins = "ddc";
>