power: exynos-tmu: use the mux_addr bit fields in tmu_control register
authorNaveen Krishna Chatradhi <ch.naveen@samsung.com>
Fri, 5 Apr 2013 22:21:39 +0000 (15:21 -0700)
committerMinkyu Kang <mk7.kang@samsung.com>
Thu, 13 Jun 2013 08:53:37 +0000 (17:53 +0900)
This patch implements the mux_addr bit fields defined in tmu_control
register (used for debugging purpose)

Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Reviewed-by: Vadim Bendebury <vbendeb@google.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
drivers/power/exynos-tmu.c

index 6d74bc74b5ffb50b73ef49decc9d7e504b551a2d..9a093a5bddd63d6bf15917377896edd1afe32144 100644 (file)
@@ -79,6 +79,8 @@ struct tmu_data {
 struct tmu_info {
        /* base Address for the TMU */
        struct exynos5_tmu_reg *tmu_base;
+       /* mux Address for the TMU */
+       int tmu_mux;
        /* pre-defined values for calibration and thresholds */
        struct tmu_data data;
        /* value required for triminfo_25 calibration */
@@ -204,6 +206,13 @@ static int get_tmu_fdt_values(struct tmu_info *info, const void *blob)
        }
        info->tmu_base = (struct exynos5_tmu_reg *)addr;
 
+       /* Optional field. */
+       info->tmu_mux = fdtdec_get_int(blob,
+                               node, "samsung,mux", -1);
+       /* Take default value as per the user manual b(110) */
+       if (info->tmu_mux == -1)
+               info->tmu_mux = 0x6;
+
        info->data.ts.min_val = fdtdec_get_int(blob,
                                node, "samsung,min-temp", -1);
        error |= (info->data.ts.min_val == -1);
@@ -307,7 +316,7 @@ static void tmu_setup_parameters(struct tmu_info *info)
 
        /* TMU core enable */
        con = readl(&reg->tmu_control);
-       con |= THERM_TRIP_EN | CORE_EN;
+       con |= THERM_TRIP_EN | CORE_EN | (info->tmu_mux << 20);
 
        writel(con, &reg->tmu_control);