thermal: exynos: Provide separate TMU data for Exynos4412

Up till now Exynos5250 and Exynos4412 had the same definitions for TMU
data. Following commit changes that, by introducing separate
exynos4412_default_tmu_data structure.

Since Exynos4412 was chronologically first, the corresponding name for
TMU registers and default data was renamed.

Additionally, new SOC_ARCH_EXYNOS4412 type has been defined.

Moreover, the SOC_ARCH_EXYNOS name has been changed to SOC_ARCH_EXYNOS5250.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
This commit is contained in:
Lukasz Majewski 2013-10-09 08:29:51 +02:00 committed by Eduardo Valentin
parent acecdb3cf4
commit 14ddfaecc8
4 changed files with 37 additions and 12 deletions

View file

@ -488,7 +488,7 @@ static const struct of_device_id exynos_tmu_match[] = {
}, },
{ {
.compatible = "samsung,exynos4412-tmu", .compatible = "samsung,exynos4412-tmu",
.data = (void *)EXYNOS5250_TMU_DRV_DATA, .data = (void *)EXYNOS4412_TMU_DRV_DATA,
}, },
{ {
.compatible = "samsung,exynos5250-tmu", .compatible = "samsung,exynos5250-tmu",
@ -629,9 +629,10 @@ static int exynos_tmu_probe(struct platform_device *pdev)
if (ret) if (ret)
return ret; return ret;
if (pdata->type == SOC_ARCH_EXYNOS || if (pdata->type == SOC_ARCH_EXYNOS4210 ||
pdata->type == SOC_ARCH_EXYNOS4210 || pdata->type == SOC_ARCH_EXYNOS4412 ||
pdata->type == SOC_ARCH_EXYNOS5440) pdata->type == SOC_ARCH_EXYNOS5250 ||
pdata->type == SOC_ARCH_EXYNOS5440)
data->soc = pdata->type; data->soc = pdata->type;
else { else {
ret = -EINVAL; ret = -EINVAL;

View file

@ -41,7 +41,8 @@ enum calibration_mode {
enum soc_type { enum soc_type {
SOC_ARCH_EXYNOS4210 = 1, SOC_ARCH_EXYNOS4210 = 1,
SOC_ARCH_EXYNOS, SOC_ARCH_EXYNOS4412,
SOC_ARCH_EXYNOS5250,
SOC_ARCH_EXYNOS5440, SOC_ARCH_EXYNOS5440,
}; };

View file

@ -90,8 +90,8 @@ struct exynos_tmu_init_data const exynos4210_default_tmu_data = {
}; };
#endif #endif
#if defined(CONFIG_SOC_EXYNOS5250) || defined(CONFIG_SOC_EXYNOS4412) #if defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250)
static const struct exynos_tmu_registers exynos5250_tmu_registers = { static const struct exynos_tmu_registers exynos4412_tmu_registers = {
.triminfo_data = EXYNOS_TMU_REG_TRIMINFO, .triminfo_data = EXYNOS_TMU_REG_TRIMINFO,
.triminfo_25_shift = EXYNOS_TRIMINFO_25_SHIFT, .triminfo_25_shift = EXYNOS_TRIMINFO_25_SHIFT,
.triminfo_85_shift = EXYNOS_TRIMINFO_85_SHIFT, .triminfo_85_shift = EXYNOS_TRIMINFO_85_SHIFT,
@ -128,7 +128,7 @@ static const struct exynos_tmu_registers exynos5250_tmu_registers = {
.emul_time_mask = EXYNOS_EMUL_TIME_MASK, .emul_time_mask = EXYNOS_EMUL_TIME_MASK,
}; };
#define EXYNOS5250_TMU_DATA \ #define EXYNOS4412_TMU_DATA \
.threshold_falling = 10, \ .threshold_falling = 10, \
.trigger_levels[0] = 85, \ .trigger_levels[0] = 85, \
.trigger_levels[1] = 103, \ .trigger_levels[1] = 103, \
@ -162,15 +162,31 @@ static const struct exynos_tmu_registers exynos5250_tmu_registers = {
.temp_level = 103, \ .temp_level = 103, \
}, \ }, \
.freq_tab_count = 2, \ .freq_tab_count = 2, \
.type = SOC_ARCH_EXYNOS, \ .registers = &exynos4412_tmu_registers, \
.registers = &exynos5250_tmu_registers, \
.features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_TRIM_RELOAD | \ .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_TRIM_RELOAD | \
TMU_SUPPORT_FALLING_TRIP | TMU_SUPPORT_READY_STATUS | \ TMU_SUPPORT_FALLING_TRIP | TMU_SUPPORT_READY_STATUS | \
TMU_SUPPORT_EMUL_TIME) TMU_SUPPORT_EMUL_TIME)
#endif
#if defined(CONFIG_SOC_EXYNOS4412)
struct exynos_tmu_init_data const exynos4412_default_tmu_data = {
.tmu_data = {
{
EXYNOS4412_TMU_DATA,
.type = SOC_ARCH_EXYNOS4412,
},
},
.tmu_count = 1,
};
#endif
#if defined(CONFIG_SOC_EXYNOS5250)
struct exynos_tmu_init_data const exynos5250_default_tmu_data = { struct exynos_tmu_init_data const exynos5250_default_tmu_data = {
.tmu_data = { .tmu_data = {
{ EXYNOS5250_TMU_DATA }, {
EXYNOS4412_TMU_DATA,
.type = SOC_ARCH_EXYNOS5250,
},
}, },
.tmu_count = 1, .tmu_count = 1,
}; };

View file

@ -138,7 +138,14 @@ extern struct exynos_tmu_init_data const exynos4210_default_tmu_data;
#define EXYNOS4210_TMU_DRV_DATA (NULL) #define EXYNOS4210_TMU_DRV_DATA (NULL)
#endif #endif
#if (defined(CONFIG_SOC_EXYNOS5250) || defined(CONFIG_SOC_EXYNOS4412)) #if defined(CONFIG_SOC_EXYNOS4412)
extern struct exynos_tmu_init_data const exynos4412_default_tmu_data;
#define EXYNOS4412_TMU_DRV_DATA (&exynos4412_default_tmu_data)
#else
#define EXYNOS4412_TMU_DRV_DATA (NULL)
#endif
#if defined(CONFIG_SOC_EXYNOS5250)
extern struct exynos_tmu_init_data const exynos5250_default_tmu_data; extern struct exynos_tmu_init_data const exynos5250_default_tmu_data;
#define EXYNOS5250_TMU_DRV_DATA (&exynos5250_default_tmu_data) #define EXYNOS5250_TMU_DRV_DATA (&exynos5250_default_tmu_data)
#else #else