diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-05-31 17:14:07 -0400 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2011-06-04 18:51:52 -0400 |
commit | f2a4d8ae4d40f6f5482d207f47fd4d53b3ae0ed4 (patch) | |
tree | 7b5650560a494b171a9b8e6a70bdbd530f6f243e | |
parent | 55922c9d1b84b89cb946c777fddccb3247e7df2c (diff) |
ARM: Tegra: Harmony: Fix conflicting GPIO numbering
Currently, both the WM8903 and TPS6586x chips attempt to register with
gpiolib using the same GPIO numbers. This causes the audio driver to
fail to initialize.
To solve this, add a define to board-harmony.h for the TPS6586x, and make
board-harmony-power.c use this define, instead of directly referencing
TEGRA_NR_GPIOS.
This fixes a regression introduced by commit
6f168f2fa60f87e85e0df25e87e2372f22f5eb7c.
ARM: tegra: harmony: initialize the TPS65862 PMIC
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Colin Cross <ccross@android.com>
-rw-r--r-- | arch/arm/mach-tegra/board-harmony-power.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-harmony.h | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-harmony-power.c b/arch/arm/mach-tegra/board-harmony-power.c index c84442cabe07..5ad8b2f94f8d 100644 --- a/arch/arm/mach-tegra/board-harmony-power.c +++ b/arch/arm/mach-tegra/board-harmony-power.c | |||
@@ -24,6 +24,8 @@ | |||
24 | 24 | ||
25 | #include <mach/irqs.h> | 25 | #include <mach/irqs.h> |
26 | 26 | ||
27 | #include "board-harmony.h" | ||
28 | |||
27 | #define PMC_CTRL 0x0 | 29 | #define PMC_CTRL 0x0 |
28 | #define PMC_CTRL_INTR_LOW (1 << 17) | 30 | #define PMC_CTRL_INTR_LOW (1 << 17) |
29 | 31 | ||
@@ -98,7 +100,7 @@ static struct tps6586x_platform_data tps_platform = { | |||
98 | .irq_base = TEGRA_NR_IRQS, | 100 | .irq_base = TEGRA_NR_IRQS, |
99 | .num_subdevs = ARRAY_SIZE(tps_devs), | 101 | .num_subdevs = ARRAY_SIZE(tps_devs), |
100 | .subdevs = tps_devs, | 102 | .subdevs = tps_devs, |
101 | .gpio_base = TEGRA_NR_GPIOS, | 103 | .gpio_base = HARMONY_GPIO_TPS6586X(0), |
102 | }; | 104 | }; |
103 | 105 | ||
104 | static struct i2c_board_info __initdata harmony_regulators[] = { | 106 | static struct i2c_board_info __initdata harmony_regulators[] = { |
diff --git a/arch/arm/mach-tegra/board-harmony.h b/arch/arm/mach-tegra/board-harmony.h index 1e57b071f52d..d85142edaf6b 100644 --- a/arch/arm/mach-tegra/board-harmony.h +++ b/arch/arm/mach-tegra/board-harmony.h | |||
@@ -17,7 +17,8 @@ | |||
17 | #ifndef _MACH_TEGRA_BOARD_HARMONY_H | 17 | #ifndef _MACH_TEGRA_BOARD_HARMONY_H |
18 | #define _MACH_TEGRA_BOARD_HARMONY_H | 18 | #define _MACH_TEGRA_BOARD_HARMONY_H |
19 | 19 | ||
20 | #define HARMONY_GPIO_WM8903(_x_) (TEGRA_NR_GPIOS + (_x_)) | 20 | #define HARMONY_GPIO_TPS6586X(_x_) (TEGRA_NR_GPIOS + (_x_)) |
21 | #define HARMONY_GPIO_WM8903(_x_) (HARMONY_GPIO_TPS6586X(4) + (_x_)) | ||
21 | 22 | ||
22 | #define TEGRA_GPIO_SD2_CD TEGRA_GPIO_PI5 | 23 | #define TEGRA_GPIO_SD2_CD TEGRA_GPIO_PI5 |
23 | #define TEGRA_GPIO_SD2_WP TEGRA_GPIO_PH1 | 24 | #define TEGRA_GPIO_SD2_WP TEGRA_GPIO_PH1 |