summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/board-loki-pinmux-t12x.h6
-rw-r--r--arch/arm/mach-tegra/board-loki-pinmux.c24
-rw-r--r--arch/arm/mach-tegra/board-loki-power.c7
-rw-r--r--arch/arm/mach-tegra/tegra-board-id.h1
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