Skip to content

Commit

Permalink
thermal: exynos: remove parsing of samsung, tmu_cal_type property
Browse files Browse the repository at this point in the history
Since calibration type for temperature is SoC (not platform) specific
just move it from platform data to struct exynos_tmu_data instance.
Then remove parsing of samsung,tmu_cal_type property. Also remove no
longer needed platform data structure.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
Reviewed-by: Daniel Lezcano <[email protected]>
Signed-off-by: Eduardo Valentin <[email protected]>
  • Loading branch information
bzolnier authored and Eduardo Valentin committed May 6, 2018
1 parent fccfe09 commit 199b3e3
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 44 deletions.
43 changes: 9 additions & 34 deletions drivers/thermal/samsung/exynos_tmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,6 @@
* struct exynos_tmu_data : A structure to hold the private data of the TMU
driver
* @id: identifier of the one instance of the TMU controller.
* @pdata: pointer to the tmu platform/configuration data
* @base: base address of the single instance of the TMU controller.
* @base_second: base address of the common registers of the TMU controller.
* @irq: irq number of the TMU controller.
Expand All @@ -187,6 +186,7 @@
* @clk: pointer to the clock structure.
* @clk_sec: pointer to the clock structure for accessing the base_second.
* @sclk: pointer to the clock structure for accessing the tmu special clk.
* @cal_type: calibration type for temperature
* @efuse_value: SoC defined fuse value
* @min_efuse_value: minimum valid trimming data
* @max_efuse_value: maximum valid trimming data
Expand All @@ -209,14 +209,14 @@
*/
struct exynos_tmu_data {
int id;
struct exynos_tmu_platform_data *pdata;
void __iomem *base;
void __iomem *base_second;
int irq;
enum soc_type soc;
struct work_struct irq_work;
struct mutex lock;
struct clk *clk, *clk_sec, *sclk;
u32 cal_type;
u32 efuse_value;
u32 min_efuse_value;
u32 max_efuse_value;
Expand Down Expand Up @@ -268,9 +268,7 @@ static void exynos_report_trigger(struct exynos_tmu_data *p)
*/
static int temp_to_code(struct exynos_tmu_data *data, u8 temp)
{
struct exynos_tmu_platform_data *pdata = data->pdata;

if (pdata->cal_type == TYPE_ONE_POINT_TRIMMING)
if (data->cal_type == TYPE_ONE_POINT_TRIMMING)
return temp + data->temp_error1 - EXYNOS_FIRST_POINT_TRIM;

return (temp - EXYNOS_FIRST_POINT_TRIM) *
Expand All @@ -285,9 +283,7 @@ static int temp_to_code(struct exynos_tmu_data *data, u8 temp)
*/
static int code_to_temp(struct exynos_tmu_data *data, u16 temp_code)
{
struct exynos_tmu_platform_data *pdata = data->pdata;

if (pdata->cal_type == TYPE_ONE_POINT_TRIMMING)
if (data->cal_type == TYPE_ONE_POINT_TRIMMING)
return temp_code - data->temp_error1 + EXYNOS_FIRST_POINT_TRIM;

return (temp_code - data->temp_error1) *
Expand Down Expand Up @@ -519,7 +515,6 @@ static int exynos4412_tmu_initialize(struct platform_device *pdev)
static int exynos5433_tmu_initialize(struct platform_device *pdev)
{
struct exynos_tmu_data *data = platform_get_drvdata(pdev);
struct exynos_tmu_platform_data *pdata = data->pdata;
struct thermal_zone_device *tz = data->tzd;
unsigned int status, trim_info;
unsigned int rising_threshold = 0, falling_threshold = 0;
Expand All @@ -546,14 +541,12 @@ static int exynos5433_tmu_initialize(struct platform_device *pdev)
>> EXYNOS5433_TRIMINFO_CALIB_SEL_SHIFT;

switch (cal_type) {
case EXYNOS5433_TRIMINFO_ONE_POINT_TRIMMING:
pdata->cal_type = TYPE_ONE_POINT_TRIMMING;
break;
case EXYNOS5433_TRIMINFO_TWO_POINT_TRIMMING:
pdata->cal_type = TYPE_TWO_POINT_TRIMMING;
data->cal_type = TYPE_TWO_POINT_TRIMMING;
break;
case EXYNOS5433_TRIMINFO_ONE_POINT_TRIMMING:
default:
pdata->cal_type = TYPE_ONE_POINT_TRIMMING;
data->cal_type = TYPE_ONE_POINT_TRIMMING;
break;
}

Expand Down Expand Up @@ -1133,21 +1126,9 @@ static const struct of_device_id exynos_tmu_match[] = {
};
MODULE_DEVICE_TABLE(of, exynos_tmu_match);

static int exynos_of_sensor_conf(struct device_node *np,
struct exynos_tmu_platform_data *pdata)
{
of_node_get(np);

of_property_read_u32(np, "samsung,tmu_cal_type", &pdata->cal_type);

of_node_put(np);
return 0;
}

static int exynos_map_dt_data(struct platform_device *pdev)
{
struct exynos_tmu_data *data = platform_get_drvdata(pdev);
struct exynos_tmu_platform_data *pdata;
struct resource res;

if (!data || !pdev->dev.of_node)
Expand All @@ -1174,14 +1155,6 @@ static int exynos_map_dt_data(struct platform_device *pdev)
return -EADDRNOTAVAIL;
}

pdata = devm_kzalloc(&pdev->dev,
sizeof(struct exynos_tmu_platform_data),
GFP_KERNEL);
if (!pdata)
return -ENOMEM;

exynos_of_sensor_conf(pdev->dev.of_node, pdata);
data->pdata = pdata;
data->soc = (enum soc_type)of_device_get_match_data(&pdev->dev);

switch (data->soc) {
Expand Down Expand Up @@ -1266,6 +1239,8 @@ static int exynos_map_dt_data(struct platform_device *pdev)
return -EINVAL;
}

data->cal_type = TYPE_ONE_POINT_TRIMMING;

/*
* Check if the TMU shares some registers and then try to map the
* memory of common registers.
Expand Down
10 changes: 0 additions & 10 deletions drivers/thermal/samsung/exynos_tmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,4 @@ enum soc_type {
SOC_ARCH_EXYNOS7,
};

/**
* struct exynos_tmu_platform_data
* @cal_type: calibration type for temperature
*
* This structure is required for configuration of exynos_tmu driver.
*/
struct exynos_tmu_platform_data {
u32 cal_type;
};

#endif /* _EXYNOS_TMU_H */

0 comments on commit 199b3e3

Please sign in to comment.