|
@@ -100,6 +100,42 @@ static int exynos_irq_set_wake(struct irq_data *data, unsigned int state)
|
|
|
return -ENOENT;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * exynos_core_power_down : power down the specified cpu
|
|
|
+ * @cpu : the cpu to power down
|
|
|
+ *
|
|
|
+ * Power down the specified cpu. The sequence must be finished by a
|
|
|
+ * call to cpu_do_idle()
|
|
|
+ *
|
|
|
+ */
|
|
|
+void exynos_cpu_power_down(int cpu)
|
|
|
+{
|
|
|
+ __raw_writel(0, EXYNOS_ARM_CORE_CONFIGURATION(cpu));
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * exynos_cpu_power_up : power up the specified cpu
|
|
|
+ * @cpu : the cpu to power up
|
|
|
+ *
|
|
|
+ * Power up the specified cpu
|
|
|
+ */
|
|
|
+void exynos_cpu_power_up(int cpu)
|
|
|
+{
|
|
|
+ __raw_writel(S5P_CORE_LOCAL_PWR_EN,
|
|
|
+ EXYNOS_ARM_CORE_CONFIGURATION(cpu));
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * exynos_cpu_power_state : returns the power state of the cpu
|
|
|
+ * @cpu : the cpu to retrieve the power state from
|
|
|
+ *
|
|
|
+ */
|
|
|
+int exynos_cpu_power_state(int cpu)
|
|
|
+{
|
|
|
+ return (__raw_readl(EXYNOS_ARM_CORE_STATUS(cpu)) &
|
|
|
+ S5P_CORE_LOCAL_PWR_EN);
|
|
|
+}
|
|
|
+
|
|
|
/* For Cortex-A9 Diagnostic and Power control register */
|
|
|
static unsigned int save_arm_register[2];
|
|
|
|