Message ID | 20250410063754.5483-4-linux.amoon@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Exynos Thermal code improvement | expand |
On 4/10/25 07:37, Anand Moon wrote: > As per Exynos5422 user manual e-Fuse range min~max range is 16~76. > if e-Fuse value is out of this range, then thermal sensor may not > sense thermal data properly. Refactors the efuse value > initialization logic within exynos_map_dt_data function by > replacing the nested if-else statements with a switch statement. > Ensures proper initialization of efuse values based on the SOC type. > > Signed-off-by: Anand Moon <linux.amoon@gmail.com> > --- > v5: None > v4: None > v3: Improve the logic to convert if/else to switch > --- > drivers/thermal/samsung/exynos_tmu.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c > index ac3b9d2c900c..a71cde0a4b17 100644 > --- a/drivers/thermal/samsung/exynos_tmu.c > +++ b/drivers/thermal/samsung/exynos_tmu.c > @@ -899,12 +899,23 @@ static int exynos_map_dt_data(struct platform_device *pdev) > data->gain = 8; > data->reference_voltage = 16; > data->efuse_value = 55; > - if (data->soc != SOC_ARCH_EXYNOS5420 && > - data->soc != SOC_ARCH_EXYNOS5420_TRIMINFO) > + data->max_efuse_value = 100; > + switch (data->soc) { > + case SOC_ARCH_EXYNOS3250: > + case SOC_ARCH_EXYNOS4412: > + case SOC_ARCH_EXYNOS5250: > + case SOC_ARCH_EXYNOS5260: > data->min_efuse_value = 40; > - else > + break; > + case SOC_ARCH_EXYNOS5420: > + case SOC_ARCH_EXYNOS5420_TRIMINFO: > + data->min_efuse_value = 16; > + data->max_efuse_value = 76; > + break; > + default: > data->min_efuse_value = 0; > - data->max_efuse_value = 100; > + break; > + } > break; > case SOC_ARCH_EXYNOS5433: > data->tmu_set_low_temp = exynos5433_tmu_set_low_temp; I should have added that in earlier version: LGTM, Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c index ac3b9d2c900c..a71cde0a4b17 100644 --- a/drivers/thermal/samsung/exynos_tmu.c +++ b/drivers/thermal/samsung/exynos_tmu.c @@ -899,12 +899,23 @@ static int exynos_map_dt_data(struct platform_device *pdev) data->gain = 8; data->reference_voltage = 16; data->efuse_value = 55; - if (data->soc != SOC_ARCH_EXYNOS5420 && - data->soc != SOC_ARCH_EXYNOS5420_TRIMINFO) + data->max_efuse_value = 100; + switch (data->soc) { + case SOC_ARCH_EXYNOS3250: + case SOC_ARCH_EXYNOS4412: + case SOC_ARCH_EXYNOS5250: + case SOC_ARCH_EXYNOS5260: data->min_efuse_value = 40; - else + break; + case SOC_ARCH_EXYNOS5420: + case SOC_ARCH_EXYNOS5420_TRIMINFO: + data->min_efuse_value = 16; + data->max_efuse_value = 76; + break; + default: data->min_efuse_value = 0; - data->max_efuse_value = 100; + break; + } break; case SOC_ARCH_EXYNOS5433: data->tmu_set_low_temp = exynos5433_tmu_set_low_temp;
As per Exynos5422 user manual e-Fuse range min~max range is 16~76. if e-Fuse value is out of this range, then thermal sensor may not sense thermal data properly. Refactors the efuse value initialization logic within exynos_map_dt_data function by replacing the nested if-else statements with a switch statement. Ensures proper initialization of efuse values based on the SOC type. Signed-off-by: Anand Moon <linux.amoon@gmail.com> --- v5: None v4: None v3: Improve the logic to convert if/else to switch --- drivers/thermal/samsung/exynos_tmu.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-)