ARM: tegra12: introduce revised system-EDP for TN8
[linux-3.10.git] / arch / arm / mach-tegra / board-ardbeg.c
index 3b2b5d3..0c1280a 100644 (file)
@@ -1024,7 +1024,7 @@ static int __init ardbeg_touch_init(void)
        return 0;
 }
 
-static void __init sysedp_init(void)
+static void __init ardbeg_sysedp_init(void)
 {
        struct board_info bi;
 
@@ -1032,8 +1032,11 @@ static void __init sysedp_init(void)
 
        switch (bi.board_id) {
        case BOARD_E1780:
-               if (bi.sku == 1100)
+               if (bi.sku == 1100) {
                        tn8_sysedp_init();
+                       if (!IS_ENABLED(CONFIG_SYSEDP_FRAMEWORK))
+                               tn8_new_sysedp_init();
+               }
                break;
        case BOARD_PM358:
        case BOARD_PM359:
@@ -1060,6 +1063,24 @@ static void __init sysedp_core_init(void)
        }
 }
 
+static void __init ardbeg_sysedp_dynamic_capping_init(void)
+{
+       struct board_info bi;
+
+       tegra_get_board_info(&bi);
+
+       switch (bi.board_id) {
+       case BOARD_E1780:
+               if (bi.sku == 1100)
+                       tn8_sysedp_dynamic_capping_init();
+               break;
+       case BOARD_PM358:
+       case BOARD_PM359:
+       default:
+               break;
+       }
+}
+
 
 static void __init sysedp_psydepl_init(void)
 {
@@ -1079,6 +1100,29 @@ static void __init sysedp_psydepl_init(void)
        }
 }
 
+static void __init ardbeg_sysedp_batmon_init(void)
+{
+       struct board_info bi;
+
+       if (!IS_ENABLED(CONFIG_SYSEDP_FRAMEWORK))
+               return;
+
+       tegra_get_board_info(&bi);
+
+       switch (bi.board_id) {
+       case BOARD_E1780:
+               if (bi.sku == 1100)
+                       tn8_sysedp_batmon_init();
+               break;
+       case BOARD_PM358:
+       case BOARD_PM359:
+       default:
+               break;
+       }
+}
+
+
+
 static void __init edp_init(void)
 {
        struct board_info bi;
@@ -1104,7 +1148,7 @@ static void __init edp_init(void)
 
 static void __init tegra_ardbeg_early_init(void)
 {
-       sysedp_init();
+       ardbeg_sysedp_init();
        tegra_clk_init_from_table(ardbeg_clk_init_table);
        tegra_clk_verify_parents();
        if (of_machine_is_compatible("nvidia,laguna"))
@@ -1215,6 +1259,9 @@ static void __init tegra_ardbeg_late_init(void)
 
        sysedp_core_init();
        sysedp_psydepl_init();
+
+       ardbeg_sysedp_dynamic_capping_init();
+       ardbeg_sysedp_batmon_init();
 }
 
 static void __init ardbeg_ramconsole_reserve(unsigned long size)