]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-exynos/pmu.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
[karo-tx-linux.git] / arch / arm / mach-exynos / pmu.c
index fb0deda3b3a406fc44d705c29f0440e11d61e366..ff9d23f0a7d99676e2aba9a8b553e6cc2df779e2 100644 (file)
@@ -11,7 +11,6 @@
 
 #include <linux/io.h>
 #include <linux/kernel.h>
-#include <linux/bug.h>
 
 #include "common.h"
 #include "regs-pmu.h"
@@ -19,7 +18,7 @@
 static const struct exynos_pmu_conf *exynos_pmu_config;
 
 static const struct exynos_pmu_conf exynos4210_pmu_config[] = {
-       /* { .reg = address, .val = { AFTR, LPA, SLEEP } */
+       /* { .offset = offset, .val = { AFTR, LPA, SLEEP } */
        { S5P_ARM_CORE0_LOWPWR,                 { 0x0, 0x0, 0x2 } },
        { S5P_DIS_IRQ_CORE0,                    { 0x0, 0x0, 0x0 } },
        { S5P_DIS_IRQ_CENTRAL0,                 { 0x0, 0x0, 0x0 } },
@@ -213,7 +212,7 @@ static const struct exynos_pmu_conf exynos4412_pmu_config[] = {
 };
 
 static const struct exynos_pmu_conf exynos5250_pmu_config[] = {
-       /* { .reg = address, .val = { AFTR, LPA, SLEEP } */
+       /* { .offset = offset, .val = { AFTR, LPA, SLEEP } */
        { EXYNOS5_ARM_CORE0_SYS_PWR_REG,                { 0x0, 0x0, 0x2} },
        { EXYNOS5_DIS_IRQ_ARM_CORE0_LOCAL_SYS_PWR_REG,  { 0x0, 0x0, 0x0} },
        { EXYNOS5_DIS_IRQ_ARM_CORE0_CENTRAL_SYS_PWR_REG,        { 0x0, 0x0, 0x0} },
@@ -316,7 +315,7 @@ static const struct exynos_pmu_conf exynos5250_pmu_config[] = {
        { PMU_TABLE_END,},
 };
 
-static void __iomem * const exynos5_list_both_cnt_feed[] = {
+static unsigned int const exynos5_list_both_cnt_feed[] = {
        EXYNOS5_ARM_CORE0_OPTION,
        EXYNOS5_ARM_CORE1_OPTION,
        EXYNOS5_ARM_COMMON_OPTION,
@@ -330,7 +329,7 @@ static void __iomem * const exynos5_list_both_cnt_feed[] = {
        EXYNOS5_TOP_PWR_SYSMEM_OPTION,
 };
 
-static void __iomem * const exynos5_list_diable_wfi_wfe[] = {
+static unsigned int const exynos5_list_diable_wfi_wfe[] = {
        EXYNOS5_ARM_CORE1_OPTION,
        EXYNOS5_FSYS_ARM_OPTION,
        EXYNOS5_ISP_ARM_OPTION,
@@ -345,27 +344,27 @@ static void exynos5_init_pmu(void)
         * Enable both SC_FEEDBACK and SC_COUNTER
         */
        for (i = 0 ; i < ARRAY_SIZE(exynos5_list_both_cnt_feed) ; i++) {
-               tmp = __raw_readl(exynos5_list_both_cnt_feed[i]);
+               tmp = pmu_raw_readl(exynos5_list_both_cnt_feed[i]);
                tmp |= (EXYNOS5_USE_SC_FEEDBACK |
                        EXYNOS5_USE_SC_COUNTER);
-               __raw_writel(tmp, exynos5_list_both_cnt_feed[i]);
+               pmu_raw_writel(tmp, exynos5_list_both_cnt_feed[i]);
        }
 
        /*
         * SKIP_DEACTIVATE_ACEACP_IN_PWDN_BITFIELD Enable
         */
-       tmp = __raw_readl(EXYNOS5_ARM_COMMON_OPTION);
+       tmp = pmu_raw_readl(EXYNOS5_ARM_COMMON_OPTION);
        tmp |= EXYNOS5_SKIP_DEACTIVATE_ACEACP_IN_PWDN;
-       __raw_writel(tmp, EXYNOS5_ARM_COMMON_OPTION);
+       pmu_raw_writel(tmp, EXYNOS5_ARM_COMMON_OPTION);
 
        /*
         * Disable WFI/WFE on XXX_OPTION
         */
        for (i = 0 ; i < ARRAY_SIZE(exynos5_list_diable_wfi_wfe) ; i++) {
-               tmp = __raw_readl(exynos5_list_diable_wfi_wfe[i]);
+               tmp = pmu_raw_readl(exynos5_list_diable_wfi_wfe[i]);
                tmp &= ~(EXYNOS5_OPTION_USE_STANDBYWFE |
                         EXYNOS5_OPTION_USE_STANDBYWFI);
-               __raw_writel(tmp, exynos5_list_diable_wfi_wfe[i]);
+               pmu_raw_writel(tmp, exynos5_list_diable_wfi_wfe[i]);
        }
 }
 
@@ -376,14 +375,14 @@ void exynos_sys_powerdown_conf(enum sys_powerdown mode)
        if (soc_is_exynos5250())
                exynos5_init_pmu();
 
-       for (i = 0; (exynos_pmu_config[i].reg != PMU_TABLE_END) ; i++)
-               __raw_writel(exynos_pmu_config[i].val[mode],
-                               exynos_pmu_config[i].reg);
+       for (i = 0; (exynos_pmu_config[i].offset != PMU_TABLE_END) ; i++)
+               pmu_raw_writel(exynos_pmu_config[i].val[mode],
+                               exynos_pmu_config[i].offset);
 
        if (soc_is_exynos4412()) {
-               for (i = 0; exynos4412_pmu_config[i].reg != PMU_TABLE_END ; i++)
-                       __raw_writel(exynos4412_pmu_config[i].val[mode],
-                               exynos4412_pmu_config[i].reg);
+               for (i = 0; exynos4412_pmu_config[i].offset != PMU_TABLE_END ; i++)
+                       pmu_raw_writel(exynos4412_pmu_config[i].val[mode],
+                                       exynos4412_pmu_config[i].offset);
        }
 }
 
@@ -404,13 +403,13 @@ static int __init exynos_pmu_init(void)
                 * When SYS_WDTRESET is set, watchdog timer reset request
                 * is ignored by power management unit.
                 */
-               value = __raw_readl(EXYNOS5_AUTO_WDTRESET_DISABLE);
+               value = pmu_raw_readl(EXYNOS5_AUTO_WDTRESET_DISABLE);
                value &= ~EXYNOS5_SYS_WDTRESET;
-               __raw_writel(value, EXYNOS5_AUTO_WDTRESET_DISABLE);
+               pmu_raw_writel(value, EXYNOS5_AUTO_WDTRESET_DISABLE);
 
-               value = __raw_readl(EXYNOS5_MASK_WDTRESET_REQUEST);
+               value = pmu_raw_readl(EXYNOS5_MASK_WDTRESET_REQUEST);
                value &= ~EXYNOS5_SYS_WDTRESET;
-               __raw_writel(value, EXYNOS5_MASK_WDTRESET_REQUEST);
+               pmu_raw_writel(value, EXYNOS5_MASK_WDTRESET_REQUEST);
 
                exynos_pmu_config = exynos5250_pmu_config;
                pr_info("EXYNOS5250 PMU Initialize\n");