From d2f03874e7b3c7c173dc6977f8df5232515ad282 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Wed, 21 Sep 2016 16:49:16 +0200 Subject: apalis/colibri_t30: pull-down multiplexed camera input pins saves 100mW 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 Acked-by: Max Krummenacher --- arch/arm/mach-tegra/board-apalis_t30-pinmux.c | 32 ++++++------- 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 -- cgit v1.2.3