From a8047fabd0ae8fc767ce6f276d8bfb53fc838d05 Mon Sep 17 00:00:00 2001 From: Prem Sasidharan Date: Mon, 13 Aug 2012 13:54:16 -0700 Subject: arm: tegra: E1506 Tristate, pull down LCD pins Tristate and pull down LCD pins D0-D23, LCD_PWR* and LCD_CS*_N pins for E1506 DSI panel. Reduced the power consumption on VDDIO_LCD to 0.37mW for PM269 with E1506 DSI panel. Bug 1007512 Bug 1015349 Signed-off-by: Prem Sasidharan Change-Id: Ic54d1ca71f5ff92742f70915b7b27104c0a508a6 Reviewed-on: http://git-master/r/123172 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Jon Mayo --- arch/arm/mach-tegra/board-cardhu-pinmux.c | 75 +++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/arch/arm/mach-tegra/board-cardhu-pinmux.c b/arch/arm/mach-tegra/board-cardhu-pinmux.c index 09d7c8911f22..346dccfd715b 100644 --- a/arch/arm/mach-tegra/board-cardhu-pinmux.c +++ b/arch/arm/mach-tegra/board-cardhu-pinmux.c @@ -543,6 +543,38 @@ static __initdata struct tegra_pingroup_config unused_pins_lowpower[] = { }; static __initdata struct tegra_pingroup_config unused_pins_lowpower_e1506[] = { + DEFAULT_PINMUX(LCD_D0, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D1, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D2, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D3, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D4, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D5, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D6, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D7, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D8, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D9, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D10, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D11, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D12, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D13, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D14, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D15, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D16, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D17, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D18, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D19, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D20, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D21, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D22, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_D23, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + + DEFAULT_PINMUX(LCD_DC0, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_PWR0, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_PWR1, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_PWR2, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_CS0_N, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_CS1_N, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), + DEFAULT_PINMUX(LCD_PCLK, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), DEFAULT_PINMUX(LCD_WR_N, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), DEFAULT_PINMUX(LCD_HSYNC, DISPLAYA, PULL_DOWN, TRISTATE, OUTPUT), @@ -767,6 +799,47 @@ struct gpio_init_pin_info vddio_gmi_pins_pm269_e1506[] = { PIN_GPIO_LPM("GMI_CS2", TEGRA_GPIO_PK3, 1, 0), }; +static struct gpio_init_pin_info cardhu_unused_gpio_pins_e1506[] = { + PIN_GPIO_LPM("LCD_D0", TEGRA_GPIO_PE0, 0, 0), + PIN_GPIO_LPM("LCD_D1", TEGRA_GPIO_PE1, 0, 0), + PIN_GPIO_LPM("LCD_D2", TEGRA_GPIO_PE2, 0, 0), + PIN_GPIO_LPM("LCD_D3", TEGRA_GPIO_PE3, 0, 0), + PIN_GPIO_LPM("LCD_D4", TEGRA_GPIO_PE4, 0, 0), + PIN_GPIO_LPM("LCD_D5", TEGRA_GPIO_PE5, 0, 0), + PIN_GPIO_LPM("LCD_D6", TEGRA_GPIO_PE6, 0, 0), + PIN_GPIO_LPM("LCD_D7", TEGRA_GPIO_PE7, 0, 0), + PIN_GPIO_LPM("LCD_D8", TEGRA_GPIO_PF0, 0, 0), + PIN_GPIO_LPM("LCD_D9", TEGRA_GPIO_PF1, 0, 0), + PIN_GPIO_LPM("LCD_D10", TEGRA_GPIO_PF2, 0, 0), + PIN_GPIO_LPM("LCD_D11", TEGRA_GPIO_PF3, 0, 0), + PIN_GPIO_LPM("LCD_D12", TEGRA_GPIO_PF4, 0, 0), + PIN_GPIO_LPM("LCD_D13", TEGRA_GPIO_PF5, 0, 0), + PIN_GPIO_LPM("LCD_D14", TEGRA_GPIO_PF6, 0, 0), + PIN_GPIO_LPM("LCD_D15", TEGRA_GPIO_PF7, 0, 0), + PIN_GPIO_LPM("LCD_D16", TEGRA_GPIO_PM0, 0, 0), + PIN_GPIO_LPM("LCD_D17", TEGRA_GPIO_PM1, 0, 0), + PIN_GPIO_LPM("LCD_D18", TEGRA_GPIO_PM2, 0, 0), + PIN_GPIO_LPM("LCD_D19", TEGRA_GPIO_PM3, 0, 0), + PIN_GPIO_LPM("LCD_D20", TEGRA_GPIO_PM4, 0, 0), + PIN_GPIO_LPM("LCD_D21", TEGRA_GPIO_PM5, 0, 0), + PIN_GPIO_LPM("LCD_D22", TEGRA_GPIO_PM6, 0, 0), + PIN_GPIO_LPM("LCD_D23", TEGRA_GPIO_PM7, 0, 0), + + PIN_GPIO_LPM("LCD_DC0", TEGRA_GPIO_PN6, 0, 0), + PIN_GPIO_LPM("LCD_PWR0", TEGRA_GPIO_PB2, 0, 0), + PIN_GPIO_LPM("LCD_PWR1", TEGRA_GPIO_PC1, 0, 0), + PIN_GPIO_LPM("LCD_PWR2", TEGRA_GPIO_PC6, 0, 0), + PIN_GPIO_LPM("LCD_CS0_N", TEGRA_GPIO_PN4, 0, 0), + PIN_GPIO_LPM("LCD_CS1_N", TEGRA_GPIO_PW0, 0, 0), + PIN_GPIO_LPM("LCD_PCLK", TEGRA_GPIO_PB3, 0, 0), + PIN_GPIO_LPM("LCD_WR_N", TEGRA_GPIO_PZ3, 0, 0), + PIN_GPIO_LPM("LCD_HSYNC", TEGRA_GPIO_PJ3, 0, 0), + PIN_GPIO_LPM("LCD_VSYNC", TEGRA_GPIO_PJ4, 0, 0), + PIN_GPIO_LPM("LCD_SCK", TEGRA_GPIO_PZ4, 0, 0), + PIN_GPIO_LPM("LCD_SDOUT", TEGRA_GPIO_PN5, 0, 0), + PIN_GPIO_LPM("LCD_SDIN", TEGRA_GPIO_PZ2, 0, 0), +}; + static void set_unused_pin_gpio(struct gpio_init_pin_info *lpm_pin_info, int list_count) { @@ -829,6 +902,8 @@ int __init cardhu_pins_state_init(void) if (display_board_info.board_id == BOARD_DISPLAY_E1506) { set_unused_pin_gpio(&vddio_gmi_pins_pm269_e1506[0], ARRAY_SIZE(vddio_gmi_pins_pm269_e1506)); + set_unused_pin_gpio(cardhu_unused_gpio_pins_e1506, + ARRAY_SIZE(cardhu_unused_gpio_pins_e1506)); } else if (display_board_info.board_id != BOARD_DISPLAY_PM313) { set_unused_pin_gpio(&vddio_gmi_pins_pm269_wo_pm313[0], ARRAY_SIZE(vddio_gmi_pins_pm269_wo_pm313)); -- cgit v1.2.3