mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Amit Daniel Kachhap <amit.daniel@samsung.com>
To: linux-pm@vger.kernel.org
Cc: Zhang Rui <rui.zhang@intel.com>,
	linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
	amit.kachhap@gmail.com, Kukjin Kim <kgene.kim@samsung.com>,
	Eduardo Valentin <eduardo.valentin@ti.com>
Subject: [PATCH V4 24/30] thermal: exynos: Add thermal configuration data for exynos5440 TMU sensor
Date: Tue, 14 May 2013 15:28:54 +0530	[thread overview]
Message-ID: <1368525540-15034-25-git-send-email-amit.daniel@samsung.com> (raw)
In-Reply-To: <1368525540-15034-1-git-send-email-amit.daniel@samsung.com>

This patch adds configuration data for exynos5440 soc. Also register
definations for the controller are added.

Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
---
 drivers/thermal/samsung/exynos_tmu.c      |    4 ++
 drivers/thermal/samsung/exynos_tmu_data.c |   61 +++++++++++++++++++++++++++++
 drivers/thermal/samsung/exynos_tmu_data.h |   42 ++++++++++++++++++++
 3 files changed, 107 insertions(+), 0 deletions(-)

diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
index 28804a5..671061b 100644
--- a/drivers/thermal/samsung/exynos_tmu.c
+++ b/drivers/thermal/samsung/exynos_tmu.c
@@ -423,6 +423,10 @@ static const struct of_device_id exynos_tmu_match[] = {
 		.compatible = "samsung,exynos5250-tmu",
 		.data = (void *)EXYNOS5250_TMU_DRV_DATA,
 	},
+	{
+		.compatible = "samsung,exynos5440-tmu",
+		.data = (void *)EXYNOS5440_TMU_DRV_DATA,
+	},
 	{},
 };
 MODULE_DEVICE_TABLE(of, exynos_tmu_match);
diff --git a/drivers/thermal/samsung/exynos_tmu_data.c b/drivers/thermal/samsung/exynos_tmu_data.c
index b4bfa61..d622cb4 100644
--- a/drivers/thermal/samsung/exynos_tmu_data.c
+++ b/drivers/thermal/samsung/exynos_tmu_data.c
@@ -160,3 +160,64 @@ struct exynos_tmu_platform_data const exynos5250_default_tmu_data = {
 			TMU_SUPPORT_EMUL_TIME),
 };
 #endif
+
+#if defined(CONFIG_SOC_EXYNOS5440)
+static const struct exynos_tmu_registers exynos5440_tmu_registers = {
+	.triminfo_data = EXYNOS5440_TMU_S0_7_TRIM,
+	.triminfo_25_shift = EXYNOS_TRIMINFO_25_SHIFT,
+	.triminfo_85_shift = EXYNOS_TRIMINFO_85_SHIFT,
+	.tmu_ctrl = EXYNOS5440_TMU_S0_7_CTRL,
+	.buf_vref_sel_shift = EXYNOS_TMU_REF_VOLTAGE_SHIFT,
+	.buf_vref_sel_mask = EXYNOS_TMU_REF_VOLTAGE_MASK,
+	.therm_trip_mode_shift = EXYNOS_TMU_TRIP_MODE_SHIFT,
+	.therm_trip_mode_mask = EXYNOS_TMU_TRIP_MODE_MASK,
+	.therm_trip_en_shift = EXYNOS_TMU_THERM_TRIP_EN_SHIFT,
+	.buf_slope_sel_shift = EXYNOS_TMU_BUF_SLOPE_SEL_SHIFT,
+	.buf_slope_sel_mask = EXYNOS_TMU_BUF_SLOPE_SEL_MASK,
+	.core_en_shift = EXYNOS_TMU_CORE_EN_SHIFT,
+	.tmu_status = EXYNOS5440_TMU_S0_7_STATUS,
+	.tmu_cur_temp = EXYNOS5440_TMU_S0_7_TEMP,
+	.threshold_th0 = EXYNOS5440_TMU_S0_7_TH0,
+	.threshold_th1 = EXYNOS5440_TMU_S0_7_TH1,
+	.threshold_th2 = EXYNOS5440_TMU_S0_7_TH2,
+	.threshold_th3_l0_shift = EXYNOS5440_TMU_TH_RISE4_SHIFT,
+	.tmu_inten = EXYNOS5440_TMU_S0_7_IRQEN,
+	.inten_rise_mask = EXYNOS5440_TMU_RISE_INT_MASK,
+	.inten_rise_shift = EXYNOS5440_TMU_RISE_INT_SHIFT,
+	.inten_fall_mask = EXYNOS5440_TMU_FALL_INT_MASK,
+	.inten_fall_shift = EXYNOS5440_TMU_FALL_INT_SHIFT,
+	.inten_rise0_shift = EXYNOS5440_TMU_INTEN_RISE0_SHIFT,
+	.inten_rise1_shift = EXYNOS5440_TMU_INTEN_RISE1_SHIFT,
+	.inten_rise2_shift = EXYNOS5440_TMU_INTEN_RISE2_SHIFT,
+	.inten_rise3_shift = EXYNOS5440_TMU_INTEN_RISE3_SHIFT,
+	.inten_fall0_shift = EXYNOS5440_TMU_INTEN_FALL0_SHIFT,
+	.tmu_intstat = EXYNOS5440_TMU_S0_7_IRQ,
+	.tmu_intclear = EXYNOS5440_TMU_S0_7_IRQ,
+	.tmu_irqstatus = EXYNOS5440_TMU_IRQ_STATUS,
+	.emul_con = EXYNOS5440_TMU_S0_7_DEBUG,
+	.emul_temp_shift = EXYNOS_EMUL_DATA_SHIFT,
+	.tmu_pmin = EXYNOS5440_TMU_PMIN,
+};
+struct exynos_tmu_platform_data const exynos5440_default_tmu_data = {
+	.trigger_levels[0] = 100,
+	.trigger_levels[4] = 105,
+	.trigger_enable[0] = 1,
+	.trigger_type[0] = 1,
+	.trigger_type[4] = 2,
+	.gain = 5,
+	.reference_voltage = 16,
+	.noise_cancel_mode = 4,
+	.cal_type = TYPE_TWO_POINT_TRIMMING,
+	.cal_mode = 0,
+	.efuse_value = 0x5b2d,
+	.min_efuse_value = 16,
+	.max_efuse_value = 76,
+	.first_point_trim = 25,
+	.second_point_trim = 70,
+	.default_temp_offset = 25,
+	.type = SOC_ARCH_EXYNOS5440,
+	.registers = &exynos5440_tmu_registers,
+	.features = (TMU_SUPPORT_EMULATION | TMU_SUPPORT_FALLING_TRIP |
+			TMU_SUPPORT_MULTI_INST),
+};
+#endif
diff --git a/drivers/thermal/samsung/exynos_tmu_data.h b/drivers/thermal/samsung/exynos_tmu_data.h
index 4acf070..eb7250d 100644
--- a/drivers/thermal/samsung/exynos_tmu_data.h
+++ b/drivers/thermal/samsung/exynos_tmu_data.h
@@ -93,6 +93,41 @@
 
 #define EXYNOS_MAX_TRIGGER_PER_REG	4
 
+/*exynos5440 specific registers*/
+#define EXYNOS5440_TMU_S0_7_TRIM		0x000
+#define EXYNOS5440_TMU_S0_7_CTRL		0x020
+#define EXYNOS5440_TMU_S0_7_DEBUG		0x040
+#define EXYNOS5440_TMU_S0_7_STATUS		0x060
+#define EXYNOS5440_TMU_S0_7_TEMP		0x0f0
+#define EXYNOS5440_TMU_S0_7_TH0			0x110
+#define EXYNOS5440_TMU_S0_7_TH1			0x130
+#define EXYNOS5440_TMU_S0_7_TH2			0x150
+#define EXYNOS5440_TMU_S0_7_EVTEN		0x1F0
+#define EXYNOS5440_TMU_S0_7_IRQEN		0x210
+#define EXYNOS5440_TMU_S0_7_IRQ			0x230
+/* exynos5440 common registers */
+#define EXYNOS5440_TMU_IRQ_STATUS		0x000
+#define EXYNOS5440_TMU_PMIN			0x004
+#define EXYNOS5440_TMU_TEMP			0x008
+
+#define EXYNOS5440_TMU_RISE_INT_MASK		0xf
+#define EXYNOS5440_TMU_RISE_INT_SHIFT		0
+#define EXYNOS5440_TMU_FALL_INT_MASK		0xf
+#define EXYNOS5440_TMU_FALL_INT_SHIFT		4
+#define EXYNOS5440_TMU_INTEN_RISE0_SHIFT	0
+#define EXYNOS5440_TMU_INTEN_RISE1_SHIFT	1
+#define EXYNOS5440_TMU_INTEN_RISE2_SHIFT	2
+#define EXYNOS5440_TMU_INTEN_RISE3_SHIFT	3
+#define EXYNOS5440_TMU_INTEN_FALL0_SHIFT	4
+#define EXYNOS5440_TMU_INTEN_FALL1_SHIFT	5
+#define EXYNOS5440_TMU_INTEN_FALL2_SHIFT	6
+#define EXYNOS5440_TMU_INTEN_FALL3_SHIFT	7
+#define EXYNOS5440_TMU_TH_RISE0_SHIFT		0
+#define EXYNOS5440_TMU_TH_RISE1_SHIFT		8
+#define EXYNOS5440_TMU_TH_RISE2_SHIFT		16
+#define EXYNOS5440_TMU_TH_RISE3_SHIFT		24
+#define EXYNOS5440_TMU_TH_RISE4_SHIFT		24
+
 #if defined(CONFIG_CPU_EXYNOS4210)
 extern struct exynos_tmu_platform_data const exynos4210_default_tmu_data;
 #define EXYNOS4210_TMU_DRV_DATA (&exynos4210_default_tmu_data)
@@ -107,4 +142,11 @@ extern struct exynos_tmu_platform_data const exynos5250_default_tmu_data;
 #define EXYNOS5250_TMU_DRV_DATA (NULL)
 #endif
 
+#if defined(CONFIG_SOC_EXYNOS5440)
+extern struct exynos_tmu_platform_data const exynos5440_default_tmu_data;
+#define EXYNOS5440_TMU_DRV_DATA (&exynos5440_default_tmu_data)
+#else
+#define EXYNOS5440_TMU_DRV_DATA (NULL)
+#endif
+
 #endif /*_EXYNOS_TMU_DATA_H*/
-- 
1.7.1


  parent reply	other threads:[~2013-05-14 10:01 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-14  9:58 [PATCH V4 00/30] thermal: exynos: Add thermal driver for exynos5440 Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 01/30] thermal: exynos: Moving exynos thermal files into samsung directory Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 02/30] thermal: exynos: Add ARCH_HAS_TMU config to know the supported soc's Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 03/30] thermal: exynos: Remove CPU_THERMAL dependency for using TMU driver Amit Daniel Kachhap
2013-05-31 15:13   ` Eduardo Valentin
2013-05-14  9:58 ` [PATCH V4 04/30] thermal: exynos: Bifurcate exynos thermal common and tmu controller code Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 05/30] thermal: exynos: Rename exynos_thermal.c to exynos_tmu.c Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 06/30] thermal: exynos: Move exynos_thermal.h from include/* to driver/* folder Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 07/30] thermal: exynos: Bifurcate exynos tmu driver and configuration data Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 08/30] thermal: exynos: Add missing definations and code cleanup Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 09/30] thermal: exynos: Add extra entries in the tmu platform data Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 10/30] thermal: exynos: Support thermal tripping Amit Daniel Kachhap
2013-05-17 11:56   ` jonghwa3.lee
2013-06-04  4:48     ` amit daniel kachhap
2013-05-14  9:58 ` [PATCH V4 11/30] thermal: exynos: Move register definitions from driver file to data file Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 12/30] thermal: exynos: Fix to clear only the generated interrupts Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 13/30] thermal: exynos: Add support for instance based register/unregister Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 14/30] thermal: exynos: Modify private_data to appropriate name driver_data Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 15/30] thermal: exynos: Return success even if no cooling data supplied Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 16/30] thermal: exynos: Make the zone handling dependent on trip count Amit Daniel Kachhap
2013-05-17 12:17   ` jonghwa3.lee
2013-05-14  9:58 ` [PATCH V4 17/30] thermal: exynos: Add support to handle many instances of TMU Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 18/30] thermal: exynos: Add TMU features to check instead of using SOC type Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 19/30] thermal: exynos: use device resource management infrastructure Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 20/30] ARM: dts: thermal: exynos4: Add documentation for Exynos SoC thermal bindings Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 21/30] thermal: exynos: Add support to access common register for multistance Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 22/30] thermal: exynos: Add support for exynos5440 TMU sensor Amit Daniel Kachhap
2013-05-18  5:23   ` jonghwa3.lee
2013-05-31 15:28     ` Eduardo Valentin
2013-06-04  4:44     ` amit daniel kachhap
2013-06-04 12:55       ` Eduardo Valentin
2013-06-05  3:20         ` amit daniel kachhap
2013-06-05 12:53           ` Eduardo Valentin
2013-06-06  6:19             ` amit daniel kachhap
2013-05-14  9:58 ` [PATCH V4 23/30] thermal: exynos: Fix to set the second point correction value properly Amit Daniel Kachhap
2013-05-14  9:58 ` Amit Daniel Kachhap [this message]
2013-05-14  9:58 ` [PATCH V4 25/30] thermal: exynos: Add a compensation logic on swapped e-fuse values Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 26/30] thermal: exynos: Add hardware mode thermal calibration support Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 27/30] Documentation: thermal: Explain the exynos thermal driver model Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 28/30] thermal: exynos: Support for TMU regulator defined at device tree Amit Daniel Kachhap
2013-05-14  9:58 ` [PATCH V4 29/30] ARM: dts: Add device tree node for exynos5440 TMU controller Amit Daniel Kachhap
2013-05-14  9:59 ` [PATCH V4 30/30] arm: exynos: enable ARCH_HAS_TMU Amit Daniel Kachhap
2013-05-15 14:44 ` [PATCH V4 00/30] thermal: exynos: Add thermal driver for exynos5440 Eduardo Valentin
2013-06-04  4:55   ` amit daniel kachhap
2013-06-04 12:57     ` Eduardo Valentin
2013-06-04 13:01       ` Eduardo Valentin
2013-06-05  3:49         ` amit daniel kachhap
2013-06-06 13:48           ` Eduardo Valentin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1368525540-15034-25-git-send-email-amit.daniel@samsung.com \
    --to=amit.daniel@samsung.com \
    --cc=amit.kachhap@gmail.com \
    --cc=eduardo.valentin@ti.com \
    --cc=kgene.kim@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=rui.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®