Re: [PATCHv2] thermal: exynos: Add support for TRIM_RELOAD feature at Exynos3250

2014-08-19 Thread edubez...@gmail.com
Amit,

On Tue, Aug 19, 2014 at 8:07 AM, Chanwoo Choi cw00.c...@samsung.com wrote:
 This patch add support for TRIM_RELOAD feature at Exynos3250. The TMU of
 Exynos3250 has two TRIMINFO_CON register.

 Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
 Acked-by: Kyungmin Park kyungmin.p...@samsung.com
 Cc: Zhang Rui rui.zh...@intel.com
 Cc: Eduardo Valentin edubez...@gmail.com

What do you think about this patch?

 ---
 Changes from v1:
 - Add missing 'TMU_SUPPORT_TRIM_RELOAD' features

  drivers/thermal/samsung/exynos_tmu.c  |  7 +--
  drivers/thermal/samsung/exynos_tmu.h  |  5 +++--
  drivers/thermal/samsung/exynos_tmu_data.c | 11 +--
  drivers/thermal/samsung/exynos_tmu_data.h |  7 +--
  4 files changed, 22 insertions(+), 8 deletions(-)

 diff --git a/drivers/thermal/samsung/exynos_tmu.c 
 b/drivers/thermal/samsung/exynos_tmu.c
 index acbff14..ed01606 100644
 --- a/drivers/thermal/samsung/exynos_tmu.c
 +++ b/drivers/thermal/samsung/exynos_tmu.c
 @@ -164,8 +164,11 @@ static int exynos_tmu_initialize(struct platform_device 
 *pdev)
 }
 }

 -   if (TMU_SUPPORTS(pdata, TRIM_RELOAD))
 -   __raw_writel(1, data-base + reg-triminfo_ctrl);
 +   if (TMU_SUPPORTS(pdata, TRIM_RELOAD)) {
 +   for (i = 0; i  pdata-triminfo_reload_count; i++)
 +   __raw_writel(pdata-triminfo_reload[i],
 +   data-base + reg-triminfo_ctrl[i]);
 +   }

 if (pdata-cal_mode == HW_MODE)
 goto skip_calib_data;
 diff --git a/drivers/thermal/samsung/exynos_tmu.h 
 b/drivers/thermal/samsung/exynos_tmu.h
 index 1b4a644..72cb54e 100644
 --- a/drivers/thermal/samsung/exynos_tmu.h
 +++ b/drivers/thermal/samsung/exynos_tmu.h
 @@ -151,8 +151,7 @@ struct exynos_tmu_registers {
 u32 triminfo_25_shift;
 u32 triminfo_85_shift;

 -   u32 triminfo_ctrl;
 -   u32 triminfo_ctrl1;
 +   u32 triminfo_ctrl[2];
 u32 triminfo_reload_shift;

 u32 tmu_ctrl;
 @@ -295,6 +294,8 @@ struct exynos_tmu_platform_data {
 u8 second_point_trim;
 u8 default_temp_offset;
 u8 test_mux;
 +   u8 triminfo_reload[2];
 +   u8 triminfo_reload_count;

 enum calibration_type cal_type;
 enum calibration_mode cal_mode;
 diff --git a/drivers/thermal/samsung/exynos_tmu_data.c 
 b/drivers/thermal/samsung/exynos_tmu_data.c
 index aa8e0de..b45aa90 100644
 --- a/drivers/thermal/samsung/exynos_tmu_data.c
 +++ b/drivers/thermal/samsung/exynos_tmu_data.c
 @@ -95,6 +95,8 @@ static const struct exynos_tmu_registers 
 exynos3250_tmu_registers = {
 .triminfo_data = EXYNOS_TMU_REG_TRIMINFO,
 .triminfo_25_shift = EXYNOS_TRIMINFO_25_SHIFT,
 .triminfo_85_shift = EXYNOS_TRIMINFO_85_SHIFT,
 +   .triminfo_ctrl[0] = EXYNOS_TMU_TRIMINFO_CON1,
 +   .triminfo_ctrl[1] = EXYNOS_TMU_TRIMINFO_CON2,
 .tmu_ctrl = EXYNOS_TMU_REG_CONTROL,
 .test_mux_addr_shift = EXYNOS4412_MUX_ADDR_SHIFT,
 .buf_vref_sel_shift = EXYNOS_TMU_REF_VOLTAGE_SHIFT,
 @@ -160,8 +162,11 @@ static const struct exynos_tmu_registers 
 exynos3250_tmu_registers = {
 .temp_level = 95, \
 }, \
 .freq_tab_count = 2, \
 +   .triminfo_reload[0] = 0x1, \
 +   .triminfo_reload[1] = 0x11, \
 +   .triminfo_reload_count = 2, \
 .registers = exynos3250_tmu_registers, \
 -   .features = (TMU_SUPPORT_EMULATION | \
 +   .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_TRIM_RELOAD\
 TMU_SUPPORT_FALLING_TRIP | TMU_SUPPORT_READY_STATUS | 
 \
 TMU_SUPPORT_EMUL_TIME)
  #endif
 @@ -184,7 +189,7 @@ static const struct exynos_tmu_registers 
 exynos4412_tmu_registers = {
 .triminfo_data = EXYNOS_TMU_REG_TRIMINFO,
 .triminfo_25_shift = EXYNOS_TRIMINFO_25_SHIFT,
 .triminfo_85_shift = EXYNOS_TRIMINFO_85_SHIFT,
 -   .triminfo_ctrl = EXYNOS_TMU_TRIMINFO_CON,
 +   .triminfo_ctrl[0] = EXYNOS_TMU_TRIMINFO_CON2,
 .triminfo_reload_shift = EXYNOS_TRIMINFO_RELOAD_SHIFT,
 .tmu_ctrl = EXYNOS_TMU_REG_CONTROL,
 .test_mux_addr_shift = EXYNOS4412_MUX_ADDR_SHIFT,
 @@ -252,6 +257,8 @@ static const struct exynos_tmu_registers 
 exynos4412_tmu_registers = {
 .temp_level = 95, \
 }, \
 .freq_tab_count = 2, \
 +   .triminfo_reload[0] = 0x1, \
 +   .triminfo_reload_count = 1, \
 .registers = exynos4412_tmu_registers, \
 .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_TRIM_RELOAD | \
 TMU_SUPPORT_FALLING_TRIP | TMU_SUPPORT_READY_STATUS | 
 \
 diff --git a/drivers/thermal/samsung/exynos_tmu_data.h 
 b/drivers/thermal/samsung/exynos_tmu_data.h
 index f0979e5..e0536c3 100644
 --- a/drivers/thermal/samsung/exynos_tmu_data.h
 +++ b/drivers/thermal/samsung/exynos_tmu_data.h
 @@ -57,8 +57,11 @@
  #define EXYNOS4210_TMU_TRIG_LEVEL_MASK 

Re: [PATCHv2] thermal: exynos: Add support for TRIM_RELOAD feature at Exynos3250

2014-08-19 Thread Chanwoo Choi
Dear Eduardo,

I'm so sorry. This patch has build break as following:
It is my mistake about missing 'or' operation when adding 
TMU_SUPPORT_TRIM_RELOAD.

+   .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_TRIM_RELOAD\

I'll send new patch to fix it right now.

Best Regards,
Chanwoo Choi

On 08/19/2014 09:28 PM, edubez...@gmail.com wrote:
 Amit,
 
 On Tue, Aug 19, 2014 at 8:07 AM, Chanwoo Choi cw00.c...@samsung.com wrote:
 This patch add support for TRIM_RELOAD feature at Exynos3250. The TMU of
 Exynos3250 has two TRIMINFO_CON register.

 Signed-off-by: Chanwoo Choi cw00.c...@samsung.com
 Acked-by: Kyungmin Park kyungmin.p...@samsung.com
 Cc: Zhang Rui rui.zh...@intel.com
 Cc: Eduardo Valentin edubez...@gmail.com
 
 What do you think about this patch?
 
 ---
 Changes from v1:
 - Add missing 'TMU_SUPPORT_TRIM_RELOAD' features

  drivers/thermal/samsung/exynos_tmu.c  |  7 +--
  drivers/thermal/samsung/exynos_tmu.h  |  5 +++--
  drivers/thermal/samsung/exynos_tmu_data.c | 11 +--
  drivers/thermal/samsung/exynos_tmu_data.h |  7 +--
  4 files changed, 22 insertions(+), 8 deletions(-)

 diff --git a/drivers/thermal/samsung/exynos_tmu.c 
 b/drivers/thermal/samsung/exynos_tmu.c
 index acbff14..ed01606 100644
 --- a/drivers/thermal/samsung/exynos_tmu.c
 +++ b/drivers/thermal/samsung/exynos_tmu.c
 @@ -164,8 +164,11 @@ static int exynos_tmu_initialize(struct platform_device 
 *pdev)
 }
 }

 -   if (TMU_SUPPORTS(pdata, TRIM_RELOAD))
 -   __raw_writel(1, data-base + reg-triminfo_ctrl);
 +   if (TMU_SUPPORTS(pdata, TRIM_RELOAD)) {
 +   for (i = 0; i  pdata-triminfo_reload_count; i++)
 +   __raw_writel(pdata-triminfo_reload[i],
 +   data-base + reg-triminfo_ctrl[i]);
 +   }

 if (pdata-cal_mode == HW_MODE)
 goto skip_calib_data;
 diff --git a/drivers/thermal/samsung/exynos_tmu.h 
 b/drivers/thermal/samsung/exynos_tmu.h
 index 1b4a644..72cb54e 100644
 --- a/drivers/thermal/samsung/exynos_tmu.h
 +++ b/drivers/thermal/samsung/exynos_tmu.h
 @@ -151,8 +151,7 @@ struct exynos_tmu_registers {
 u32 triminfo_25_shift;
 u32 triminfo_85_shift;

 -   u32 triminfo_ctrl;
 -   u32 triminfo_ctrl1;
 +   u32 triminfo_ctrl[2];
 u32 triminfo_reload_shift;

 u32 tmu_ctrl;
 @@ -295,6 +294,8 @@ struct exynos_tmu_platform_data {
 u8 second_point_trim;
 u8 default_temp_offset;
 u8 test_mux;
 +   u8 triminfo_reload[2];
 +   u8 triminfo_reload_count;

 enum calibration_type cal_type;
 enum calibration_mode cal_mode;
 diff --git a/drivers/thermal/samsung/exynos_tmu_data.c 
 b/drivers/thermal/samsung/exynos_tmu_data.c
 index aa8e0de..b45aa90 100644
 --- a/drivers/thermal/samsung/exynos_tmu_data.c
 +++ b/drivers/thermal/samsung/exynos_tmu_data.c
 @@ -95,6 +95,8 @@ static const struct exynos_tmu_registers 
 exynos3250_tmu_registers = {
 .triminfo_data = EXYNOS_TMU_REG_TRIMINFO,
 .triminfo_25_shift = EXYNOS_TRIMINFO_25_SHIFT,
 .triminfo_85_shift = EXYNOS_TRIMINFO_85_SHIFT,
 +   .triminfo_ctrl[0] = EXYNOS_TMU_TRIMINFO_CON1,
 +   .triminfo_ctrl[1] = EXYNOS_TMU_TRIMINFO_CON2,
 .tmu_ctrl = EXYNOS_TMU_REG_CONTROL,
 .test_mux_addr_shift = EXYNOS4412_MUX_ADDR_SHIFT,
 .buf_vref_sel_shift = EXYNOS_TMU_REF_VOLTAGE_SHIFT,
 @@ -160,8 +162,11 @@ static const struct exynos_tmu_registers 
 exynos3250_tmu_registers = {
 .temp_level = 95, \
 }, \
 .freq_tab_count = 2, \
 +   .triminfo_reload[0] = 0x1, \
 +   .triminfo_reload[1] = 0x11, \
 +   .triminfo_reload_count = 2, \
 .registers = exynos3250_tmu_registers, \
 -   .features = (TMU_SUPPORT_EMULATION | \
 +   .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_TRIM_RELOAD\
 TMU_SUPPORT_FALLING_TRIP | TMU_SUPPORT_READY_STATUS 
 | \
 TMU_SUPPORT_EMUL_TIME)
  #endif
 @@ -184,7 +189,7 @@ static const struct exynos_tmu_registers 
 exynos4412_tmu_registers = {
 .triminfo_data = EXYNOS_TMU_REG_TRIMINFO,
 .triminfo_25_shift = EXYNOS_TRIMINFO_25_SHIFT,
 .triminfo_85_shift = EXYNOS_TRIMINFO_85_SHIFT,
 -   .triminfo_ctrl = EXYNOS_TMU_TRIMINFO_CON,
 +   .triminfo_ctrl[0] = EXYNOS_TMU_TRIMINFO_CON2,
 .triminfo_reload_shift = EXYNOS_TRIMINFO_RELOAD_SHIFT,
 .tmu_ctrl = EXYNOS_TMU_REG_CONTROL,
 .test_mux_addr_shift = EXYNOS4412_MUX_ADDR_SHIFT,
 @@ -252,6 +257,8 @@ static const struct exynos_tmu_registers 
 exynos4412_tmu_registers = {
 .temp_level = 95, \
 }, \
 .freq_tab_count = 2, \
 +   .triminfo_reload[0] = 0x1, \
 +   .triminfo_reload_count = 1, \
 .registers = exynos4412_tmu_registers, \
 .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_TRIM_RELOAD | \