aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra/board-dt-tegra20.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2012-08-16 16:59:59 -0400
committerStephen Warren <swarren@nvidia.com>2012-09-14 13:31:37 -0400
commit3cc404de243f5cc3cfe8036c6e84232c1401137b (patch)
treec982b99e0653a57c9180dbec921fa5a8748516d9 /arch/arm/mach-tegra/board-dt-tegra20.c
parentbb25af8167d357e3ce3774e85e0b43dc2e931289 (diff)
ARM: dt: tegra: harmony: add regulators
Harmony uses a TPS6586x regulator. Instantiate this, and hook up a couple of fixed GPIO-controlled regulators too. Based on Ventana regulator patch by Stephen Warren <swarren@nvidia.com> and converted to Harmony. swarren made the following changes: * Added ldo0 regulator configuration to device tree, and updated board-harmony-pcie.c for the new regulator name. * Fixed vdd_1v05's voltage from 10.5V to 1.05V. * Modified board-harmony-pcie.c to obtain the en_vdd_1v05 GPIO number at run-time from device tree instead of hard-coding it. * Removed board-harmony{-power.c,.h} now that they're unused. * Disabled vdd_1v05 regulator; the code in board-harmony-pcie.c hijacks this GPIO for now. This will be fixed when the PCIe driver is re- written as a driver. The code can't regulator_get("vdd_1v05") right now, because the vdd_1v05 regulator's probe gets deferred due to its supply being the PMIC, which gets probed after the regulator the first time around, and this dependency is only resolved by repeated probing, which happens when deferred_probe_initcall() is called, which happens in a late initcall, whose runtime order relative to harmony_pcie_init() is undefined, since that's also called from a late initcall. * Removed unused harmony_pcie_initcall(). Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-dt-tegra20.c')
-rw-r--r--arch/arm/mach-tegra/board-dt-tegra20.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c
index f336cdbc8971..37007d60bc37 100644
--- a/arch/arm/mach-tegra/board-dt-tegra20.c
+++ b/arch/arm/mach-tegra/board-dt-tegra20.c
@@ -42,7 +42,6 @@
42#include <mach/irqs.h> 42#include <mach/irqs.h>
43 43
44#include "board.h" 44#include "board.h"
45#include "board-harmony.h"
46#include "clock.h" 45#include "clock.h"
47#include "devices.h" 46#include "devices.h"
48 47
@@ -108,15 +107,9 @@ static void __init trimslice_init(void)
108 107
109static void __init harmony_init(void) 108static void __init harmony_init(void)
110{ 109{
110#ifdef CONFIG_TEGRA_PCI
111 int ret; 111 int ret;
112 112
113 ret = harmony_regulator_init();
114 if (ret) {
115 pr_err("harmony_regulator_init() failed: %d\n", ret);
116 return;
117 }
118
119#ifdef CONFIG_TEGRA_PCI
120 ret = harmony_pcie_init(); 113 ret = harmony_pcie_init();
121 if (ret) 114 if (ret)
122 pr_err("harmony_pcie_init() failed: %d\n", ret); 115 pr_err("harmony_pcie_init() failed: %d\n", ret);