Commit 62b40def authored by Thierry Reding's avatar Thierry Reding

Merge branch 'for-4.7/soc' into for-4.7/genpd

parents f55532a0 605aa5e4
...@@ -6,11 +6,13 @@ modes. It provides power-gating controllers for SoC and CPU power-islands. ...@@ -6,11 +6,13 @@ modes. It provides power-gating controllers for SoC and CPU power-islands.
Required properties: Required properties:
- name : Should be pmc - name : Should be pmc
- compatible : For Tegra20, must contain "nvidia,tegra20-pmc". For Tegra30, - compatible : Should contain one of the following:
must contain "nvidia,tegra30-pmc". For Tegra114, must contain For Tegra20 must contain "nvidia,tegra20-pmc".
"nvidia,tegra114-pmc". For Tegra124, must contain "nvidia,tegra124-pmc". For Tegra30 must contain "nvidia,tegra30-pmc".
Otherwise, must contain "nvidia,<chip>-pmc", plus at least one of the For Tegra114 must contain "nvidia,tegra114-pmc"
above, where <chip> is tegra132. For Tegra124 must contain "nvidia,tegra124-pmc"
For Tegra132 must contain "nvidia,tegra124-pmc"
For Tegra210 must contain "nvidia,tegra210-pmc"
- reg : Offset and length of the register set for the device - reg : Offset and length of the register set for the device
- clocks : Must contain an entry for each entry in clock-names. - clocks : Must contain an entry for each entry in clock-names.
See ../clocks/clock-bindings.txt for details. See ../clocks/clock-bindings.txt for details.
......
...@@ -108,19 +108,9 @@ static int tegra30_boot_secondary(unsigned int cpu, struct task_struct *idle) ...@@ -108,19 +108,9 @@ static int tegra30_boot_secondary(unsigned int cpu, struct task_struct *idle)
* be un-gated by un-toggling the power gate register * be un-gated by un-toggling the power gate register
* manually. * manually.
*/ */
if (!tegra_pmc_cpu_is_powered(cpu)) { ret = tegra_pmc_cpu_power_on(cpu);
ret = tegra_pmc_cpu_power_on(cpu); if (ret)
if (ret) return ret;
return ret;
/* Wait for the power to come up. */
timeout = jiffies + msecs_to_jiffies(100);
while (!tegra_pmc_cpu_is_powered(cpu)) {
if (time_after(jiffies, timeout))
return -ETIMEDOUT;
udelay(10);
}
}
remove_clamps: remove_clamps:
/* CPU partition is powered. Enable the CPU clock. */ /* CPU partition is powered. Enable the CPU clock. */
......
...@@ -121,7 +121,7 @@ struct tegra_dc { ...@@ -121,7 +121,7 @@ struct tegra_dc {
spinlock_t lock; spinlock_t lock;
struct drm_crtc base; struct drm_crtc base;
int powergate; unsigned int powergate;
int pipe; int pipe;
struct clk *clk; struct clk *clk;
......
This diff is collapsed.
...@@ -33,9 +33,9 @@ void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode); ...@@ -33,9 +33,9 @@ void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode);
#endif /* CONFIG_PM_SLEEP */ #endif /* CONFIG_PM_SLEEP */
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
bool tegra_pmc_cpu_is_powered(int cpuid); bool tegra_pmc_cpu_is_powered(unsigned int cpuid);
int tegra_pmc_cpu_power_on(int cpuid); int tegra_pmc_cpu_power_on(unsigned int cpuid);
int tegra_pmc_cpu_remove_clamping(int cpuid); int tegra_pmc_cpu_remove_clamping(unsigned int cpuid);
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
/* /*
...@@ -108,50 +108,51 @@ int tegra_pmc_cpu_remove_clamping(int cpuid); ...@@ -108,50 +108,51 @@ int tegra_pmc_cpu_remove_clamping(int cpuid);
#define TEGRA_IO_RAIL_SYS_DDC 58 #define TEGRA_IO_RAIL_SYS_DDC 58
#ifdef CONFIG_ARCH_TEGRA #ifdef CONFIG_ARCH_TEGRA
int tegra_powergate_is_powered(int id); int tegra_powergate_is_powered(unsigned int id);
int tegra_powergate_power_on(int id); int tegra_powergate_power_on(unsigned int id);
int tegra_powergate_power_off(int id); int tegra_powergate_power_off(unsigned int id);
int tegra_powergate_remove_clamping(int id); int tegra_powergate_remove_clamping(unsigned int id);
/* Must be called with clk disabled, and returns with clk enabled */ /* Must be called with clk disabled, and returns with clk enabled */
int tegra_powergate_sequence_power_up(int id, struct clk *clk, int tegra_powergate_sequence_power_up(unsigned int id, struct clk *clk,
struct reset_control *rst); struct reset_control *rst);
int tegra_io_rail_power_on(int id); int tegra_io_rail_power_on(unsigned int id);
int tegra_io_rail_power_off(int id); int tegra_io_rail_power_off(unsigned int id);
#else #else
static inline int tegra_powergate_is_powered(int id) static inline int tegra_powergate_is_powered(unsigned int id)
{ {
return -ENOSYS; return -ENOSYS;
} }
static inline int tegra_powergate_power_on(int id) static inline int tegra_powergate_power_on(unsigned int id)
{ {
return -ENOSYS; return -ENOSYS;
} }
static inline int tegra_powergate_power_off(int id) static inline int tegra_powergate_power_off(unsigned int id)
{ {
return -ENOSYS; return -ENOSYS;
} }
static inline int tegra_powergate_remove_clamping(int id) static inline int tegra_powergate_remove_clamping(unsigned int id)
{ {
return -ENOSYS; return -ENOSYS;
} }
static inline int tegra_powergate_sequence_power_up(int id, struct clk *clk, static inline int tegra_powergate_sequence_power_up(unsigned int id,
struct clk *clk,
struct reset_control *rst) struct reset_control *rst)
{ {
return -ENOSYS; return -ENOSYS;
} }
static inline int tegra_io_rail_power_on(int id) static inline int tegra_io_rail_power_on(unsigned int id)
{ {
return -ENOSYS; return -ENOSYS;
} }
static inline int tegra_io_rail_power_off(int id) static inline int tegra_io_rail_power_off(unsigned int id)
{ {
return -ENOSYS; return -ENOSYS;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment