diff mbox

[v2] ARM: Tegra: Trimslice: Tri-state DAP3 pinmux

Message ID 1310596967-19996-1-git-send-email-swarren@nvidia.com (mailing list archive)
State New, archived
Headers show

Commit Message

Stephen Warren July 13, 2011, 10:42 p.m. UTC
DAP3 is used for a bunch of GPIOs. Not tri-stating the pins means audio
signals get sent out there, and this ends up resetting USB and breaking
SDHCI too.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
v2: s/DAP2/DAP3/ in patch subject/description.

I've not verified that this patch is both necessary and sufficient on
TrimSlice hardware.

 arch/arm/mach-tegra/board-trimslice-pinmux.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Mike Rapoport July 21, 2011, 7:10 a.m. UTC | #1
Hi Stephen,
Sorry for the delay, I was mostly offline these days.

On Thu, Jul 14, 2011 at 1:42 AM, Stephen Warren <swarren@nvidia.com> wrote:
> DAP3 is used for a bunch of GPIOs. Not tri-stating the pins means audio
> signals get sent out there, and this ends up resetting USB and breaking
> SDHCI too.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> v2: s/DAP2/DAP3/ in patch subject/description.
>
> I've not verified that this patch is both necessary and sufficient on
> TrimSlice hardware.

Setting DAP3 pins to tristate is necessary but not sufficient :) I
don't know why, but if we don't tristate DAP2 and DAP4 as well USB and
SDIO are broken.
If you can amend your patch with tristating also DAP2 and DAP4 feel
free to add my

Acked-by: Mike Rapoport <mike@compulab.co.il>

>  arch/arm/mach-tegra/board-trimslice-pinmux.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-tegra/board-trimslice-pinmux.c b/arch/arm/mach-tegra/board-trimslice-pinmux.c
> index 82646a4..47c596c 100644
> --- a/arch/arm/mach-tegra/board-trimslice-pinmux.c
> +++ b/arch/arm/mach-tegra/board-trimslice-pinmux.c
> @@ -35,7 +35,7 @@ static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
>        {TEGRA_PINGROUP_CSUS,  TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_PULL_DOWN,   TEGRA_TRI_TRISTATE},
>        {TEGRA_PINGROUP_DAP1,  TEGRA_MUX_DAP1,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
>        {TEGRA_PINGROUP_DAP2,  TEGRA_MUX_DAP2,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
> -       {TEGRA_PINGROUP_DAP3,  TEGRA_MUX_DAP3,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
> +       {TEGRA_PINGROUP_DAP3,  TEGRA_MUX_DAP3,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
>        {TEGRA_PINGROUP_DAP4,  TEGRA_MUX_DAP4,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
>        {TEGRA_PINGROUP_DDC,   TEGRA_MUX_I2C2,          TEGRA_PUPD_PULL_UP,     TEGRA_TRI_NORMAL},
>        {TEGRA_PINGROUP_DTA,   TEGRA_MUX_VI,            TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
> --
> 1.7.0.4
>
>
Mike Rapoport July 21, 2011, 9:17 a.m. UTC | #2
On Thu, Jul 21, 2011 at 10:10 AM, Mike Rapoport <mike.rapoport@gmail.com> wrote:
>> DAP3 is used for a bunch of GPIOs. Not tri-stating the pins means audio
>> signals get sent out there, and this ends up resetting USB and breaking
>> SDHCI too.
>>
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>> ---
>> v2: s/DAP2/DAP3/ in patch subject/description.
>
> Setting DAP3 pins to tristate is necessary but not sufficient :) I
> don't know why, but if we don't tristate DAP2 and DAP4 as well USB and
> SDIO are broken.
> If you can amend your patch with tristating also DAP2 and DAP4 feel
> free to add my

Oops, I should have read the diff context as well... DAP{2,4} are
anyway tristate, so you can discard my previous comment. So the
Acked-by applies to the original patch. Sorry for the noise.

> Acked-by: Mike Rapoport <mike@compulab.co.il>
>
>>  arch/arm/mach-tegra/board-trimslice-pinmux.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/mach-tegra/board-trimslice-pinmux.c b/arch/arm/mach-tegra/board-trimslice-pinmux.c
>> index 82646a4..47c596c 100644
>> --- a/arch/arm/mach-tegra/board-trimslice-pinmux.c
>> +++ b/arch/arm/mach-tegra/board-trimslice-pinmux.c
>> @@ -35,7 +35,7 @@ static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
>>        {TEGRA_PINGROUP_CSUS,  TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_PULL_DOWN,   TEGRA_TRI_TRISTATE},
>>        {TEGRA_PINGROUP_DAP1,  TEGRA_MUX_DAP1,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
>>        {TEGRA_PINGROUP_DAP2,  TEGRA_MUX_DAP2,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
>> -       {TEGRA_PINGROUP_DAP3,  TEGRA_MUX_DAP3,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
>> +       {TEGRA_PINGROUP_DAP3,  TEGRA_MUX_DAP3,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
>>        {TEGRA_PINGROUP_DAP4,  TEGRA_MUX_DAP4,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
>>        {TEGRA_PINGROUP_DDC,   TEGRA_MUX_I2C2,          TEGRA_PUPD_PULL_UP,     TEGRA_TRI_NORMAL},
>>        {TEGRA_PINGROUP_DTA,   TEGRA_MUX_VI,            TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
>> --
>> 1.7.0.4
>>
>>
>
>
>
> --
> Sincerely Yours,
> Mike.
>
Stephen Warren July 21, 2011, 3:33 p.m. UTC | #3
Mike Rapoport wrote at Thursday, July 21, 2011 3:17 AM:
> On Thu, Jul 21, 2011 at 10:10 AM, Mike Rapoport <mike.rapoport@gmail.com> wrote:
> >> DAP3 is used for a bunch of GPIOs. Not tri-stating the pins means audio
> >> signals get sent out there, and this ends up resetting USB and breaking
> >> SDHCI too.
> >>
> >> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> >> ---
> >> v2: s/DAP2/DAP3/ in patch subject/description.
> >
> > Setting DAP3 pins to tristate is necessary but not sufficient :) I
> > don't know why, but if we don't tristate DAP2 and DAP4 as well USB and
> > SDIO are broken.
> > If you can amend your patch with tristating also DAP2 and DAP4 feel
> > free to add my
> 
> Oops, I should have read the diff context as well... DAP{2,4} are
> anyway tristate, so you can discard my previous comment. So the
> Acked-by applies to the original patch. Sorry for the noise.
> 
> > Acked-by: Mike Rapoport <mike@compulab.co.il>

Thanks! Note that Arnd already picked this patch up in arm-soc.git.
diff mbox

Patch

diff --git a/arch/arm/mach-tegra/board-trimslice-pinmux.c b/arch/arm/mach-tegra/board-trimslice-pinmux.c
index 82646a4..47c596c 100644
--- a/arch/arm/mach-tegra/board-trimslice-pinmux.c
+++ b/arch/arm/mach-tegra/board-trimslice-pinmux.c
@@ -35,7 +35,7 @@  static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
 	{TEGRA_PINGROUP_CSUS,  TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_PULL_DOWN,   TEGRA_TRI_TRISTATE},
 	{TEGRA_PINGROUP_DAP1,  TEGRA_MUX_DAP1,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
 	{TEGRA_PINGROUP_DAP2,  TEGRA_MUX_DAP2,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
-	{TEGRA_PINGROUP_DAP3,  TEGRA_MUX_DAP3,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_NORMAL},
+	{TEGRA_PINGROUP_DAP3,  TEGRA_MUX_DAP3,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
 	{TEGRA_PINGROUP_DAP4,  TEGRA_MUX_DAP4,          TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},
 	{TEGRA_PINGROUP_DDC,   TEGRA_MUX_I2C2,          TEGRA_PUPD_PULL_UP,     TEGRA_TRI_NORMAL},
 	{TEGRA_PINGROUP_DTA,   TEGRA_MUX_VI,            TEGRA_PUPD_NORMAL,      TEGRA_TRI_TRISTATE},