aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/thermal/samsung
diff options
context:
space:
mode:
authorNaveen Krishna Chatradhi <ch.naveen@samsung.com>2013-12-19 01:06:08 -0500
committerEduardo Valentin <edubezval@gmail.com>2014-05-06 14:51:32 -0400
commit9025d563cd9bd141a7b7f2095b6a760cd9d83a4e (patch)
tree412d7be9dc372c690da0ccd8497c00b5aeafdff2 /drivers/thermal/samsung
parent74429c2f034dbd07c00e20744b38a813dfe2e895 (diff)
thermal: samsung: change base_common to more meaningful base_second
On Exynos5440 and Exynos5420 there are registers common across the TMU channels. To support that, we introduced a ADDRESS_MULTIPLE flag in the driver and the 2nd set of register base and size are provided in the "reg" property of the node. As per Amit's suggestion, this patch changes the base_common to base_second and SHARED_MEMORY to ADDRESS_MULTIPLE. Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com> Acked-by: Amit Daniel Kachhap <amit.daniel@samsung.com> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Diffstat (limited to 'drivers/thermal/samsung')
-rw-r--r--drivers/thermal/samsung/exynos_tmu.c14
-rw-r--r--drivers/thermal/samsung/exynos_tmu.h4
-rw-r--r--drivers/thermal/samsung/exynos_tmu_data.c2
3 files changed, 10 insertions, 10 deletions
diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
index c308a3d9c0ea..d9e7663fea8c 100644
--- a/drivers/thermal/samsung/exynos_tmu.c
+++ b/drivers/thermal/samsung/exynos_tmu.c
@@ -41,7 +41,7 @@
41 * @id: identifier of the one instance of the TMU controller. 41 * @id: identifier of the one instance of the TMU controller.
42 * @pdata: pointer to the tmu platform/configuration data 42 * @pdata: pointer to the tmu platform/configuration data
43 * @base: base address of the single instance of the TMU controller. 43 * @base: base address of the single instance of the TMU controller.
44 * @base_common: base address of the common registers of the TMU controller. 44 * @base_second: base address of the common registers of the TMU controller.
45 * @irq: irq number of the TMU controller. 45 * @irq: irq number of the TMU controller.
46 * @soc: id of the SOC type. 46 * @soc: id of the SOC type.
47 * @irq_work: pointer to the irq work structure. 47 * @irq_work: pointer to the irq work structure.
@@ -56,7 +56,7 @@ struct exynos_tmu_data {
56 int id; 56 int id;
57 struct exynos_tmu_platform_data *pdata; 57 struct exynos_tmu_platform_data *pdata;
58 void __iomem *base; 58 void __iomem *base;
59 void __iomem *base_common; 59 void __iomem *base_second;
60 int irq; 60 int irq;
61 enum soc_type soc; 61 enum soc_type soc;
62 struct work_struct irq_work; 62 struct work_struct irq_work;
@@ -298,7 +298,7 @@ skip_calib_data:
298 } 298 }
299 /*Clear the PMIN in the common TMU register*/ 299 /*Clear the PMIN in the common TMU register*/
300 if (reg->tmu_pmin && !data->id) 300 if (reg->tmu_pmin && !data->id)
301 writel(0, data->base_common + reg->tmu_pmin); 301 writel(0, data->base_second + reg->tmu_pmin);
302out: 302out:
303 clk_disable(data->clk); 303 clk_disable(data->clk);
304 mutex_unlock(&data->lock); 304 mutex_unlock(&data->lock);
@@ -455,7 +455,7 @@ static void exynos_tmu_work(struct work_struct *work)
455 455
456 /* Find which sensor generated this interrupt */ 456 /* Find which sensor generated this interrupt */
457 if (reg->tmu_irqstatus) { 457 if (reg->tmu_irqstatus) {
458 val_type = readl(data->base_common + reg->tmu_irqstatus); 458 val_type = readl(data->base_second + reg->tmu_irqstatus);
459 if (!((val_type >> data->id) & 0x1)) 459 if (!((val_type >> data->id) & 0x1))
460 goto out; 460 goto out;
461 } 461 }
@@ -580,7 +580,7 @@ static int exynos_map_dt_data(struct platform_device *pdev)
580 * Check if the TMU shares some registers and then try to map the 580 * Check if the TMU shares some registers and then try to map the
581 * memory of common registers. 581 * memory of common registers.
582 */ 582 */
583 if (!TMU_SUPPORTS(pdata, SHARED_MEMORY)) 583 if (!TMU_SUPPORTS(pdata, ADDRESS_MULTIPLE))
584 return 0; 584 return 0;
585 585
586 if (of_address_to_resource(pdev->dev.of_node, 1, &res)) { 586 if (of_address_to_resource(pdev->dev.of_node, 1, &res)) {
@@ -588,9 +588,9 @@ static int exynos_map_dt_data(struct platform_device *pdev)
588 return -ENODEV; 588 return -ENODEV;
589 } 589 }
590 590
591 data->base_common = devm_ioremap(&pdev->dev, res.start, 591 data->base_second = devm_ioremap(&pdev->dev, res.start,
592 resource_size(&res)); 592 resource_size(&res));
593 if (!data->base_common) { 593 if (!data->base_second) {
594 dev_err(&pdev->dev, "Failed to ioremap memory\n"); 594 dev_err(&pdev->dev, "Failed to ioremap memory\n");
595 return -ENOMEM; 595 return -ENOMEM;
596 } 596 }
diff --git a/drivers/thermal/samsung/exynos_tmu.h b/drivers/thermal/samsung/exynos_tmu.h
index 980859a6ad1c..0d6b32fb0a4c 100644
--- a/drivers/thermal/samsung/exynos_tmu.h
+++ b/drivers/thermal/samsung/exynos_tmu.h
@@ -60,7 +60,7 @@ enum soc_type {
60 * state(active/idle) can be checked. 60 * state(active/idle) can be checked.
61 * TMU_SUPPORT_EMUL_TIME - This features allows to set next temp emulation 61 * TMU_SUPPORT_EMUL_TIME - This features allows to set next temp emulation
62 * sample time. 62 * sample time.
63 * TMU_SUPPORT_SHARED_MEMORY - This feature tells that the different TMU 63 * TMU_SUPPORT_ADDRESS_MULTIPLE - This feature tells that the different TMU
64 * sensors shares some common registers. 64 * sensors shares some common registers.
65 * TMU_SUPPORT - macro to compare the above features with the supplied. 65 * TMU_SUPPORT - macro to compare the above features with the supplied.
66 */ 66 */
@@ -70,7 +70,7 @@ enum soc_type {
70#define TMU_SUPPORT_FALLING_TRIP BIT(3) 70#define TMU_SUPPORT_FALLING_TRIP BIT(3)
71#define TMU_SUPPORT_READY_STATUS BIT(4) 71#define TMU_SUPPORT_READY_STATUS BIT(4)
72#define TMU_SUPPORT_EMUL_TIME BIT(5) 72#define TMU_SUPPORT_EMUL_TIME BIT(5)
73#define TMU_SUPPORT_SHARED_MEMORY BIT(6) 73#define TMU_SUPPORT_ADDRESS_MULTIPLE BIT(6)
74 74
75#define TMU_SUPPORTS(a, b) (a->features & TMU_SUPPORT_ ## b) 75#define TMU_SUPPORTS(a, b) (a->features & TMU_SUPPORT_ ## b)
76 76
diff --git a/drivers/thermal/samsung/exynos_tmu_data.c b/drivers/thermal/samsung/exynos_tmu_data.c
index 7d58219b8604..9816294f7058 100644
--- a/drivers/thermal/samsung/exynos_tmu_data.c
+++ b/drivers/thermal/samsung/exynos_tmu_data.c
@@ -255,7 +255,7 @@ static const struct exynos_tmu_registers exynos5440_tmu_registers = {
255 .type = SOC_ARCH_EXYNOS5440, \ 255 .type = SOC_ARCH_EXYNOS5440, \
256 .registers = &exynos5440_tmu_registers, \ 256 .registers = &exynos5440_tmu_registers, \
257 .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_FALLING_TRIP | \ 257 .features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_FALLING_TRIP | \
258 TMU_SUPPORT_MULTI_INST | TMU_SUPPORT_SHARED_MEMORY), 258 TMU_SUPPORT_MULTI_INST | TMU_SUPPORT_ADDRESS_MULTIPLE),
259 259
260struct exynos_tmu_init_data const exynos5440_default_tmu_data = { 260struct exynos_tmu_init_data const exynos5440_default_tmu_data = {
261 .tmu_data = { 261 .tmu_data = {