diff options
-rw-r--r-- | arch/arm/mach-tegra/board-loki-pinmux-t12x.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-loki-pinmux.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-loki-power.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-tegra/tegra-board-id.h | 1 |
4 files changed, 38 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-loki-pinmux-t12x.h b/arch/arm/mach-tegra/board-loki-pinmux-t12x.h index 721f3007655e..3e70ce06e764 100644 --- a/arch/arm/mach-tegra/board-loki-pinmux-t12x.h +++ b/arch/arm/mach-tegra/board-loki-pinmux-t12x.h @@ -21,6 +21,9 @@ /* DO NOT EDIT THIS FILE. THIS FILE IS AUTO GENERATED FROM T124_CUSTOMER_PINMUX.XLSM */ +static __initdata struct tegra_pingroup_config loki_ffd_pinmux_common[] = { + GPIO_PINMUX(DP_HPD, PULL_DOWN, NORMAL, OUTPUT, DISABLE), +}; static __initdata struct tegra_pingroup_config loki_pinmux_common[] = { /* EXTPERIPH1 pinmux */ @@ -277,6 +280,9 @@ static __initdata struct tegra_pingroup_config unused_pins_lowpower[] = { UNUSED_PINMUX(USB_VBUS_EN1), }; +static struct gpio_init_pin_info init_gpio_mode_loki_ffd_common[] = { + GPIO_INIT_PIN_MODE(TEGRA_GPIO_PFF0, false, 0), +}; static struct gpio_init_pin_info init_gpio_mode_loki_common[] = { GPIO_INIT_PIN_MODE(TEGRA_GPIO_PX6, true, 0), GPIO_INIT_PIN_MODE(TEGRA_GPIO_PX7, false, 0), diff --git a/arch/arm/mach-tegra/board-loki-pinmux.c b/arch/arm/mach-tegra/board-loki-pinmux.c index a39cefe9be72..10559637c867 100644 --- a/arch/arm/mach-tegra/board-loki-pinmux.c +++ b/arch/arm/mach-tegra/board-loki-pinmux.c @@ -22,6 +22,7 @@ #include "board.h" #include "board-loki.h" +#include "tegra-board-id.h" #include "devices.h" #include "gpio-names.h" @@ -48,6 +49,9 @@ static void __init loki_gpio_init_configure(void) int len; int i; struct gpio_init_pin_info *pins_info; + struct board_info bi; + + tegra_get_board_info(&bi); len = ARRAY_SIZE(init_gpio_mode_loki_common); pins_info = init_gpio_mode_loki_common; @@ -57,13 +61,33 @@ static void __init loki_gpio_init_configure(void) pins_info->is_input, pins_info->value); pins_info++; } + + if (bi.board_id == BOARD_P2530) { + len = ARRAY_SIZE(init_gpio_mode_loki_ffd_common); + pins_info = init_gpio_mode_loki_ffd_common; + + for (i = 0; i < len; ++i) { + tegra_gpio_init_configure(pins_info->gpio_nr, + pins_info->is_input, pins_info->value); + pins_info++; + } + } } int __init loki_pinmux_init(void) { + struct board_info bi; + + tegra_get_board_info(&bi); + loki_gpio_init_configure(); tegra_pinmux_config_table(loki_pinmux_common, ARRAY_SIZE(loki_pinmux_common)); + + if (bi.board_id == BOARD_P2530) + tegra_pinmux_config_table(loki_ffd_pinmux_common, + ARRAY_SIZE(loki_ffd_pinmux_common)); + tegra_drive_pinmux_config_table(loki_drive_pinmux, ARRAY_SIZE(loki_drive_pinmux)); tegra_pinmux_config_table(unused_pins_lowpower, diff --git a/arch/arm/mach-tegra/board-loki-power.c b/arch/arm/mach-tegra/board-loki-power.c index 39db45c41b09..b7ad388e4bf5 100644 --- a/arch/arm/mach-tegra/board-loki-power.c +++ b/arch/arm/mach-tegra/board-loki-power.c @@ -767,12 +767,19 @@ int __init loki_regulator_init(void) static int __init loki_fixed_regulator_init(void) { struct board_info pmu_board_info; + struct board_info bi; + if (!of_machine_is_compatible("nvidia,loki")) return 0; + tegra_get_board_info(&bi); tegra_get_pmu_board_info(&pmu_board_info); + if (bi.board_id == BOARD_P2530) { + fixed_reg_en_vdd_hdmi_5v0_pdata.gpio = TEGRA_GPIO_PFF0; + fixed_reg_en_vdd_hdmi_5v0_pdata.enable_high = false; + } if (pmu_board_info.board_id == BOARD_E2545) return platform_add_devices(fixed_reg_devs_e2545, ARRAY_SIZE(fixed_reg_devs_e2545)); diff --git a/arch/arm/mach-tegra/tegra-board-id.h b/arch/arm/mach-tegra/tegra-board-id.h index c89ac0c932e8..8dc0774738aa 100644 --- a/arch/arm/mach-tegra/tegra-board-id.h +++ b/arch/arm/mach-tegra/tegra-board-id.h @@ -52,6 +52,7 @@ #define BOARD_E2548 0x09F4 #define BOARD_E2549 0x09F5 #define BOARD_E1782 0x06F6 +#define BOARD_P2530 0x09E2 /* Panel board ID */ #define BOARD_E1605 0x0645 |