Allow calling tegra_powergate_sequence_power_up on a partition
that is already powered. Reset the partition, and return success
with the clock enabled.
Change-Id: I776c6a84091f0bb8faca22d87b3fabf0cfede564
Signed-off-by: Colin Cross <ccross@android.com>
return 0;
}
+/* Must be called with clk disabled, and returns with clk enabled */
+static int tegra_powergate_reset_module(struct clk *clk)
+{
+ int ret;
+
+ tegra_periph_reset_assert(clk);
+
+ udelay(10);
+
+ ret = clk_enable(clk);
+ if (ret)
+ return ret;
+
+ udelay(10);
+
+ tegra_periph_reset_deassert(clk);
+
+ return 0;
+}
+
/* Must be called with clk disabled, and returns with clk enabled */
int tegra_powergate_sequence_power_up(int id, struct clk *clk)
{
int ret;
+ if (tegra_powergate_is_powered(id))
+ return tegra_powergate_reset_module(clk);
+
tegra_periph_reset_assert(clk);
ret = tegra_powergate_power_on(id);