diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2016-09-21 16:49:16 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2016-09-29 14:48:23 +0200 |
commit | d2f03874e7b3c7c173dc6977f8df5232515ad282 (patch) | |
tree | 308c33c8a194c2684eeebffb583d67d14586481d | |
parent | 473768330d42e504a89671bb47d966735c83293c (diff) |
apalis/colibri_t30: pull-down multiplexed camera input pins saves 100mWColibri_T30_LinuxImageV2.6.1Beta1_20160929Colibri_T20_LinuxImageV2.6.1Beta1_20160929Apalis_T30_LinuxImageV2.6.1Beta1_20160929
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>
-rw-r--r-- | arch/arm/mach-tegra/board-apalis_t30-pinmux.c | 32 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-colibri_t30-pinmux.c | 62 |
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 |