summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2016-09-21 16:49:16 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2016-09-29 14:48:23 +0200
commitd2f03874e7b3c7c173dc6977f8df5232515ad282 (patch)
tree308c33c8a194c2684eeebffb583d67d14586481d /arch
parent473768330d42e504a89671bb47d966735c83293c (diff)
Floating pins towards the camera input level-shifter cause it to consume at least 100mW of power even in idle. This patch fixes this by configuring pull-downs on all multiplexed camera input pins. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/board-apalis_t30-pinmux.c32
-rw-r--r--arch/arm/mach-tegra/board-colibri_t30-pinmux.c62
2 files changed, 47 insertions, 47 deletions
diff --git a/arch/arm/mach-tegra/board-apalis_t30-pinmux.c b/arch/arm/mach-tegra/board-apalis_t30-pinmux.c
index 944520d9e513..f3c5b61aa60a 100644
--- a/arch/arm/mach-tegra/board-apalis_t30-pinmux.c
+++ b/arch/arm/mach-tegra/board-apalis_t30-pinmux.c
@@ -1,7 +1,7 @@
/*
* arch/arm/mach-tegra/board-apalis_t30-pinmux.c
*
- * Copyright (C) 2013-2015 Toradex, Inc.
+ * Copyright (C) 2013-2016 Toradex, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -258,30 +258,30 @@ static __initdata struct tegra_pingroup_config apalis_t30_pinmux[] = {
DEFAULT_PINMUX(KB_COL1, KBC, NORMAL, NORMAL, INPUT),
//multiplexed VI_PCLK, VI_VSYNC and VI_HSYNC
- DEFAULT_PINMUX(KB_COL2, KBC, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_COL3, KBC, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_COL4, KBC, NORMAL, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_COL2, KBC, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_COL3, KBC, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_COL4, KBC, PULL_DOWN, TRISTATE, INPUT),
//multiplexed VI_D11
- DEFAULT_PINMUX(KB_COL5, KBC, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(KB_COL5, KBC, PULL_DOWN, NORMAL, INPUT),
//multiplexed VI_D10
- DEFAULT_PINMUX(KB_COL6, KBC, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(KB_COL6, KBC, PULL_DOWN, NORMAL, INPUT),
DEFAULT_PINMUX(KB_COL7, KBC, NORMAL, NORMAL, INPUT),
//multiplexed VI_D2, VI_D3, VI_D4, VI_D5, VI_D6, VI_D7, VI_D8 and VI_D9
- DEFAULT_PINMUX(KB_ROW0, RSVD2, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_ROW1, RSVD2, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_ROW2, RSVD2, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_ROW3, RSVD2, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_ROW4, RSVD3, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_ROW5, KBC, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_ROW6, KBC, NORMAL, TRISTATE, INPUT),
- DEFAULT_PINMUX(KB_ROW7, KBC, NORMAL, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW0, RSVD2, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW1, RSVD2, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW2, RSVD2, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW3, RSVD2, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW4, RSVD3, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW5, KBC, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW6, KBC, PULL_DOWN, TRISTATE, INPUT),
+ DEFAULT_PINMUX(KB_ROW7, KBC, PULL_DOWN, TRISTATE, INPUT),
//multiplexed VI_D0
- DEFAULT_PINMUX(KB_ROW8, KBC, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(KB_ROW8, KBC, PULL_DOWN, NORMAL, INPUT),
//multiplexed VI_D1
- DEFAULT_PINMUX(KB_ROW9, KBC, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(KB_ROW9, KBC, PULL_DOWN, NORMAL, INPUT),
DEFAULT_PINMUX(KB_ROW10, KBC, NORMAL, NORMAL, INPUT),
DEFAULT_PINMUX(KB_ROW11, KBC, NORMAL, NORMAL, INPUT),
diff --git a/arch/arm/mach-tegra/board-colibri_t30-pinmux.c b/arch/arm/mach-tegra/board-colibri_t30-pinmux.c
index 16207d94a338..12dea99d0142 100644
--- a/arch/arm/mach-tegra/board-colibri_t30-pinmux.c
+++ b/arch/arm/mach-tegra/board-colibri_t30-pinmux.c
@@ -1,7 +1,7 @@
/*
* arch/arm/mach-tegra/board-colibri_t30-pinmux.c
*
- * Copyright (c) 2012-2015 Toradex, Inc.
+ * Copyright (c) 2012-2016 Toradex, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
@@ -308,9 +308,9 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = {
#else /* COLIBRI_T30_SDMMC4B */
//multiplexed VI_D11
#ifdef COLIBRI_T30_VI
- DEFAULT_PINMUX(GPIO_PCC2, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(GPIO_PCC2, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
#else
- DEFAULT_PINMUX(GPIO_PCC2, RSVD1, PULL_UP, NORMAL, INPUT),
+ DEFAULT_PINMUX(GPIO_PCC2, RSVD1, PULL_DOWN, NORMAL, INPUT),
#endif
#endif /* COLIBRI_T30_SDMMC4B */
@@ -327,13 +327,13 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = {
DEFAULT_PINMUX(GPIO_PV1, RSVD, NORMAL, NORMAL, INPUT),
#ifdef COLIBRI_T30_VI
//multiplexed VI_D0
- DEFAULT_PINMUX(GPIO_PV2, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(GPIO_PV2, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
//multiplexed VI_D8
- DEFAULT_PINMUX(GPIO_PV3, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(GPIO_PV3, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
#else
//GPIO V2: BL_ON
- DEFAULT_PINMUX(GPIO_PV2, RSVD1, NORMAL, NORMAL, INPUT),
- DEFAULT_PINMUX(GPIO_PV3, RSVD1, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(GPIO_PV2, RSVD1, PULL_DOWN, NORMAL, INPUT),
+ DEFAULT_PINMUX(GPIO_PV3, RSVD1, PULL_DOWN, NORMAL, INPUT),
#endif
DEFAULT_PINMUX(HDMI_CEC, RSVD1, PULL_DOWN, TRISTATE, OUTPUT), /* NC */
@@ -421,9 +421,9 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = {
DEFAULT_PINMUX(LCD_PWR0, DISPLAYA, NORMAL, NORMAL, INPUT),
//multiplexed VI_VSYNC
#ifdef COLIBRI_T30_VI
- DEFAULT_PINMUX(LCD_PWR1, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(LCD_PWR1, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
#else
- DEFAULT_PINMUX(LCD_PWR1, RSVD1, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(LCD_PWR1, RSVD1, PULL_DOWN, NORMAL, INPUT),
#endif
DEFAULT_PINMUX(LCD_PWR2, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), /* NC */
DEFAULT_PINMUX(LCD_SCK, DISPLAYA, NORMAL, NORMAL, INPUT),
@@ -446,19 +446,19 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = {
DEFAULT_PINMUX(PEX_L0_RST_N, RSVD2, NORMAL, NORMAL, INPUT),
//multiplexed VI_D9
#ifdef COLIBRI_T30_VI
- DEFAULT_PINMUX(PEX_L1_CLKREQ_N, RSVD2, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(PEX_L1_CLKREQ_N, RSVD2, PULL_DOWN, TRISTATE, OUTPUT),
#else
- DEFAULT_PINMUX(PEX_L1_CLKREQ_N, RSVD2, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(PEX_L1_CLKREQ_N, RSVD2, PULL_DOWN, NORMAL, INPUT),
#endif
DEFAULT_PINMUX(PEX_L1_PRSNT_N, RSVD2, PULL_DOWN, TRISTATE, OUTPUT), /* NC */
#ifdef COLIBRI_T30_VI
//multiplexed VI_D10
- DEFAULT_PINMUX(PEX_L1_RST_N, RSVD2, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(PEX_L1_RST_N, RSVD2, PULL_DOWN, TRISTATE, OUTPUT),
//multiplexed VI_HSYNC
- DEFAULT_PINMUX(PEX_L2_CLKREQ_N, RSVD2, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(PEX_L2_CLKREQ_N, RSVD2, PULL_DOWN, TRISTATE, OUTPUT),
#else
- DEFAULT_PINMUX(PEX_L1_RST_N, RSVD2, NORMAL, NORMAL, INPUT),
- DEFAULT_PINMUX(PEX_L2_CLKREQ_N, RSVD2, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(PEX_L1_RST_N, RSVD2, PULL_DOWN, NORMAL, INPUT),
+ DEFAULT_PINMUX(PEX_L2_CLKREQ_N, RSVD2, PULL_DOWN, NORMAL, INPUT),
#endif
DEFAULT_PINMUX(PEX_L2_PRSNT_N, RSVD2, PULL_UP, NORMAL, INPUT),
DEFAULT_PINMUX(PEX_L2_RST_N, RSVD2, PULL_UP, NORMAL, INPUT),
@@ -471,41 +471,41 @@ static __initdata struct tegra_pingroup_config colibri_t30_pinmux[] = {
#ifdef COLIBRI_T30_VI
//multiplexed VI_PCLK
- DEFAULT_PINMUX(SDMMC1_CLK, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC1_CLK, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
//multiplexed VI_D1
- DEFAULT_PINMUX(SDMMC1_CMD, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC1_CMD, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
//multiplexed VI_D2
- DEFAULT_PINMUX(SDMMC1_DAT0, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT0, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
//multiplexed VI_D3
- DEFAULT_PINMUX(SDMMC1_DAT1, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT1, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
//multiplexed VI_D4
- DEFAULT_PINMUX(SDMMC1_DAT2, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT2, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
//multiplexed VI_D5
- DEFAULT_PINMUX(SDMMC1_DAT3, RSVD1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT3, RSVD1, PULL_DOWN, TRISTATE, OUTPUT),
#else
- DEFAULT_PINMUX(SDMMC1_CLK, RSVD1, NORMAL, NORMAL, INPUT),
- DEFAULT_PINMUX(SDMMC1_CMD, RSVD1, NORMAL, NORMAL, INPUT),
- DEFAULT_PINMUX(SDMMC1_DAT0, RSVD1, NORMAL, NORMAL, INPUT),
- DEFAULT_PINMUX(SDMMC1_DAT1, RSVD1, NORMAL, NORMAL, INPUT),
- DEFAULT_PINMUX(SDMMC1_DAT2, RSVD1, NORMAL, NORMAL, INPUT),
- DEFAULT_PINMUX(SDMMC1_DAT3, RSVD1, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC1_CLK, RSVD1, PULL_DOWN, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC1_CMD, RSVD1, PULL_DOWN, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT0, RSVD1, PULL_DOWN, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT1, RSVD1, PULL_DOWN, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT2, RSVD1, PULL_DOWN, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC1_DAT3, RSVD1, PULL_DOWN, NORMAL, INPUT),
#endif
DEFAULT_PINMUX(SDMMC3_CLK, PWM2, NORMAL, NORMAL, INPUT),
//multiplexed VI_D6
#ifdef COLIBRI_T30_VI
- DEFAULT_PINMUX(SDMMC3_CMD, SDMMC3, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC3_CMD, SDMMC3, PULL_DOWN, TRISTATE, OUTPUT),
#else
- DEFAULT_PINMUX(SDMMC3_CMD, PWM3, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC3_CMD, PWM3, PULL_DOWN, NORMAL, INPUT),
#endif
DEFAULT_PINMUX(SDMMC3_DAT0, RSVD0, NORMAL, NORMAL, INPUT),
DEFAULT_PINMUX(SDMMC3_DAT1, RSVD0, NORMAL, NORMAL, INPUT),
DEFAULT_PINMUX(SDMMC3_DAT2, PWM1, NORMAL, NORMAL, INPUT),
//multiplexed VI_D7
#ifdef COLIBRI_T30_VI
- DEFAULT_PINMUX(SDMMC3_DAT3, RSVD0, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(SDMMC3_DAT3, RSVD0, PULL_DOWN, TRISTATE, OUTPUT),
#else
- DEFAULT_PINMUX(SDMMC3_DAT3, PWM0, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC3_DAT3, PWM0, PULL_DOWN, NORMAL, INPUT),
#endif
#if defined(CONFIG_CAN_SJA1000) || defined(CONFIG_CAN_SJA1000_MODULE)
//not tri-stating GMI_WR_N on nPWE SODIMM pin 99