thermal: exynos: remove TMU_SUPPORT_ADDRESS_MULTIPLE flag
authorBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Thu, 13 Nov 2014 15:01:23 +0000 (16:01 +0100)
committerEduardo Valentin <edubezval@gmail.com>
Thu, 20 Nov 2014 14:54:27 +0000 (10:54 -0400)
Replace TMU_SUPPORT_ADDRESS_MULTIPLE flag check in exynos_map_dt_data()
by an explicit check for a SoC type (only Exynos5420 with TRIMINFO
quirk and Exynos5440 have TMU_SUPPORT_ADDRESS_MULTIPLE flag set in
their struct exynos_tmu_init_data instances).

Please note that this requires moving SoC type assignment and verification
from exynos_tmu_probe() to exynos_map_dt_data() so it happens earlier
(which is a good thing in itself).

There should be no functional changes caused by this patch.

Cc: Amit Daniel Kachhap <amit.daniel@samsung.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Tested-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/samsung/exynos_tmu.c
drivers/thermal/samsung/exynos_tmu.h
drivers/thermal/samsung/exynos_tmu_data.c

index 51d8cc70b6d66df727de77eb263ee66204f191c4..65eeeccff78b4c236fec5a729e8c657bcc88cb50 100644 (file)
@@ -473,7 +473,6 @@ static void exynos5440_tmu_set_emulation(struct exynos_tmu_data *data,
 static int exynos_tmu_set_emulation(void *drv_data, unsigned long temp)
 {
        struct exynos_tmu_data *data = drv_data;
-       struct exynos_tmu_platform_data *pdata = data->pdata;
        int ret = -EINVAL;
 
        if (data->soc == SOC_ARCH_EXYNOS4210)
@@ -696,12 +695,47 @@ static int exynos_map_dt_data(struct platform_device *pdev)
                dev_err(&pdev->dev, "No platform init data supplied.\n");
                return -ENODEV;
        }
+
        data->pdata = pdata;
+       data->soc = pdata->type;
+
+       switch (data->soc) {
+       case SOC_ARCH_EXYNOS4210:
+               data->tmu_initialize = exynos4210_tmu_initialize;
+               data->tmu_control = exynos4210_tmu_control;
+               data->tmu_read = exynos4210_tmu_read;
+               data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
+               break;
+       case SOC_ARCH_EXYNOS3250:
+       case SOC_ARCH_EXYNOS4412:
+       case SOC_ARCH_EXYNOS5250:
+       case SOC_ARCH_EXYNOS5260:
+       case SOC_ARCH_EXYNOS5420:
+       case SOC_ARCH_EXYNOS5420_TRIMINFO:
+               data->tmu_initialize = exynos4412_tmu_initialize;
+               data->tmu_control = exynos4210_tmu_control;
+               data->tmu_read = exynos4412_tmu_read;
+               data->tmu_set_emulation = exynos4412_tmu_set_emulation;
+               data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
+               break;
+       case SOC_ARCH_EXYNOS5440:
+               data->tmu_initialize = exynos5440_tmu_initialize;
+               data->tmu_control = exynos5440_tmu_control;
+               data->tmu_read = exynos5440_tmu_read;
+               data->tmu_set_emulation = exynos5440_tmu_set_emulation;
+               data->tmu_clear_irqs = exynos5440_tmu_clear_irqs;
+               break;
+       default:
+               dev_err(&pdev->dev, "Platform not supported\n");
+               return -EINVAL;
+       }
+
        /*
         * Check if the TMU shares some registers and then try to map the
         * memory of common registers.
         */
-       if (!TMU_SUPPORTS(pdata, ADDRESS_MULTIPLE))
+       if (data->soc != SOC_ARCH_EXYNOS5420_TRIMINFO &&
+           data->soc != SOC_ARCH_EXYNOS5440)
                return 0;
 
        if (of_address_to_resource(pdev->dev.of_node, 1, &res)) {
@@ -768,40 +802,6 @@ static int exynos_tmu_probe(struct platform_device *pdev)
                goto err_clk_sec;
        }
 
-       data->soc = pdata->type;
-
-       switch (data->soc) {
-       case SOC_ARCH_EXYNOS4210:
-               data->tmu_initialize = exynos4210_tmu_initialize;
-               data->tmu_control = exynos4210_tmu_control;
-               data->tmu_read = exynos4210_tmu_read;
-               data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
-               break;
-       case SOC_ARCH_EXYNOS3250:
-       case SOC_ARCH_EXYNOS4412:
-       case SOC_ARCH_EXYNOS5250:
-       case SOC_ARCH_EXYNOS5260:
-       case SOC_ARCH_EXYNOS5420:
-       case SOC_ARCH_EXYNOS5420_TRIMINFO:
-               data->tmu_initialize = exynos4412_tmu_initialize;
-               data->tmu_control = exynos4210_tmu_control;
-               data->tmu_read = exynos4412_tmu_read;
-               data->tmu_set_emulation = exynos4412_tmu_set_emulation;
-               data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
-               break;
-       case SOC_ARCH_EXYNOS5440:
-               data->tmu_initialize = exynos5440_tmu_initialize;
-               data->tmu_control = exynos5440_tmu_control;
-               data->tmu_read = exynos5440_tmu_read;
-               data->tmu_set_emulation = exynos5440_tmu_set_emulation;
-               data->tmu_clear_irqs = exynos5440_tmu_clear_irqs;
-               break;
-       default:
-               ret = -EINVAL;
-               dev_err(&pdev->dev, "Platform not supported\n");
-               goto err_clk;
-       }
-
        ret = exynos_tmu_initialize(pdev);
        if (ret) {
                dev_err(&pdev->dev, "Failed to initialize TMU\n");
index 5ad3f3fbc6f0d64825e6ad2be774b0e4ed089cba..54f018d6c38219798fa790358f5990a4ac5c73a8 100644 (file)
@@ -49,12 +49,9 @@ enum soc_type {
  * EXYNOS TMU supported features.
  * TMU_SUPPORT_MULTI_INST - This features denotes that the soc
  *                     has many instances of TMU.
- * TMU_SUPPORT_ADDRESS_MULTIPLE - This feature tells that the different TMU
- *                     sensors shares some common registers.
  * TMU_SUPPORT - macro to compare the above features with the supplied.
  */
 #define TMU_SUPPORT_MULTI_INST                 BIT(0)
-#define TMU_SUPPORT_ADDRESS_MULTIPLE           BIT(1)
 
 #define TMU_SUPPORTS(a, b)     (a->features & TMU_SUPPORT_ ## b)
 
index 4dd8d1c1b822594df8488a133d0f0532b63690d5..13ac00b88e6b960908403ae444d744a1f097848f 100644 (file)
@@ -275,8 +275,7 @@ struct exynos_tmu_init_data const exynos5260_default_tmu_data = {
 
 #define EXYNOS5420_TMU_DATA_SHARED \
        __EXYNOS5420_TMU_DATA \
-       .type = SOC_ARCH_EXYNOS5420_TRIMINFO, \
-       .features = TMU_SUPPORT_ADDRESS_MULTIPLE
+       .type = SOC_ARCH_EXYNOS5420_TRIMINFO
 
 struct exynos_tmu_init_data const exynos5420_default_tmu_data = {
        .tmu_data = {
@@ -310,7 +309,7 @@ struct exynos_tmu_init_data const exynos5420_default_tmu_data = {
        .second_point_trim = 70, \
        .default_temp_offset = 25, \
        .type = SOC_ARCH_EXYNOS5440, \
-       .features = (TMU_SUPPORT_MULTI_INST | TMU_SUPPORT_ADDRESS_MULTIPLE),
+       .features = TMU_SUPPORT_MULTI_INST,
 
 struct exynos_tmu_init_data const exynos5440_default_tmu_data = {
        .tmu_data = {