devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Lukasz Majewski <l.majewski@samsung.com>
Cc: Eduardo Valentin <eduardo.valentin@ti.com>,
	Kukjin Kim <kgene.kim@samsung.com>,
	Mike Turquette <mturquette@linaro.org>,
	Zhang Rui <rui.zhang@intel.com>,
	"devicetree-discuss@lists.ozlabs.org"
	<devicetree-discuss@lists.ozlabs.org>,
	"linux-samsung-soc@vger.kernel.org"
	<linux-samsung-soc@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Amit Daniel Kachhap <amit.kachhap@linaro.org>,
	Kyungmin Park <kyungmin.park@samsung.com>
Subject: Re: [PATCH 4/6] thermal: Support for TMU regulator defined at device tree
Date: Tue, 23 Apr 2013 11:01:36 -0400	[thread overview]
Message-ID: <5176A250.40209@ti.com> (raw)
In-Reply-To: <20130423082312.3caf60e0@amdc308.digital.local>

On 23-04-2013 02:23, Lukasz Majewski wrote:
> Hi Eduardo,
>
>> On 19-04-2013 12:38, Lukasz Majewski wrote:
>>> TMU probe function now checks for a device tree defined regulator.
>>> For compatibility reasons it is allowed to probe driver even without
>>> this regulator defined.
>>>
>>> Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>> ---
>>>    drivers/thermal/exynos_thermal.c |   19 +++++++++++++++++++
>>>    1 file changed, 19 insertions(+)
>>>
>>> diff --git a/drivers/thermal/exynos_thermal.c
>>> b/drivers/thermal/exynos_thermal.c index ba6094c..e922fa4 100644
>>> --- a/drivers/thermal/exynos_thermal.c
>>> +++ b/drivers/thermal/exynos_thermal.c
>>> @@ -38,6 +38,7 @@
>>>    #include <linux/cpufreq.h>
>>>    #include <linux/cpu_cooling.h>
>>>    #include <linux/of.h>
>>> +#include <linux/regulator/consumer.h>
>>>
>>>    #include <plat/cpu.h>
>>>
>>> @@ -119,6 +120,8 @@
>>>
>>>    #define EXYNOS_ZONE_COUNT	3
>>>
>>> +#define EXYNOS_TMU_REGULATOR "vdd_ts"
>>> +
>>>    struct exynos_tmu_data {
>>>    	struct exynos_tmu_platform_data *pdata;
>>>    	struct resource *mem;
>>> @@ -944,6 +947,7 @@ static int exynos_tmu_probe(struct
>>> platform_device *pdev) {
>>>    	struct exynos_tmu_data *data;
>>>    	struct exynos_tmu_platform_data *pdata =
>>> pdev->dev.platform_data;
>>> +	struct regulator *reg;
>>>    	int ret, i;
>>>
>>>    	if (!pdata)
>>> @@ -953,6 +957,21 @@ static int exynos_tmu_probe(struct
>>> platform_device *pdev) dev_err(&pdev->dev, "No platform init data
>>> supplied.\n"); return -ENODEV;
>>>    	}
>>> +
>>> +	reg = regulator_get(&pdev->dev, EXYNOS_TMU_REGULATOR);
>>> +	if (!IS_ERR(reg)) {
>>> +		ret = regulator_enable(reg);
>>> +		if (ret) {
>>> +			dev_err(&pdev->dev, "Regulator %s not
>>> enabled.\n",
>>> +				EXYNOS_TMU_REGULATOR);
>>> +			return ret;
>>> +		}
>>> +	} else {
>>> +		dev_info(&pdev->dev,
>>> +			 "Regulator %s not defined at device
>>> tree.\n",
>>> +			 EXYNOS_TMU_REGULATOR);
>> Maybe a dev_warn would fit better?
>
> This is a bit tricky. I first wanted to return -ENODEV when regulator
> is not available. Then I understood, that some other SoCs (e.g.
> Exynos5) will not work.
>
> The info here shall give a clear warn signal, that providing a
> regulator for VDD_TS is crucial (since by default it can be connected
> to other PMIC outputs and when other device puts down this regulator
> the TMU will crash and shut down a system).

OK. I understand your point. Well, it depends on how you want to design 
your driver. This is a clear case for having some sort of required 
feature set bitmap, for instance. Each supported soc for your driver 
would then have a bitmap indicating which features it actually supports. 
Based on the bitmap you make it mandatory on your regulator_get 
treatment. If it is mandatory, then you must clearly return an error 
code. I have done a similar thing for the ti-soc-thermal driver 
(drivers/staging/ti-soc-thermal/).

But again, this is your call, not sure if you want to go for that design 
just for this item,

Still, if you keep the code the way it is, I d request to change your 
message level to dev_warn. And in case you have a way to determine it is 
a mandatory entry, then to dev_err

>
>>
>>> +	}
>>> +
>>>    	data = devm_kzalloc(&pdev->dev, sizeof(struct
>>> exynos_tmu_data), GFP_KERNEL);
>>>    	if (!data) {
>>>
>
>
>

  reply	other threads:[~2013-04-23 15:01 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-19 16:38 [PATCH 0/6] thermal:exynos4: Thermal Measurement Unit fixes for Samsung SoCs Lukasz Majewski
2013-04-19 16:38 ` [PATCH 1/6] clk:exynos4:TMU Thermal Measurement Unit clock added to common clock framework Lukasz Majewski
2013-04-19 16:38 ` [PATCH 2/6] thermal:exynos4: TMU Common clock framework support for TMU (Thermal Monitoring Unit) Lukasz Majewski
2013-04-19 17:26   ` Eduardo Valentin
2013-04-19 18:08   ` Sachin Kamat
2013-04-23  6:17     ` Lukasz Majewski
2013-04-23  7:15       ` Sachin Kamat
2013-04-23  8:06         ` Lukasz Majewski
2013-04-23  8:42           ` Sachin Kamat
2013-04-19 16:38 ` [PATCH 3/6] thermal:exynos4: TMU device tree support for Exynos4412 targets Lukasz Majewski
2013-04-19 17:28   ` Eduardo Valentin
2013-04-23  6:18     ` Lukasz Majewski
2013-04-22  4:19   ` Sachin Kamat
2013-04-23  6:19     ` Lukasz Majewski
2013-04-19 16:38 ` [PATCH 4/6] thermal: Support for TMU regulator defined at device tree Lukasz Majewski
2013-04-19 17:23   ` Eduardo Valentin
2013-04-23  6:23     ` Lukasz Majewski
2013-04-23 15:01       ` Eduardo Valentin [this message]
2013-04-19 16:38 ` [PATCH 5/6] thermal:exynos4: Enable support for Exynos4412 SoCs Lukasz Majewski
2013-04-19 18:11   ` Sachin Kamat
2013-04-19 18:21     ` Tomasz Figa
2013-04-19 18:26       ` Sachin Kamat
2013-04-22  6:25   ` amit kachhap
2013-04-22  6:35     ` Lukasz Majewski
2013-04-22  6:40     ` Sachin Kamat
2013-04-19 16:38 ` [PATCH 6/6] thermal:exynos4: Add documentation for Exynos SoC thermal bindings Lukasz Majewski
2013-04-22  4:55   ` Sachin Kamat
2013-04-23  6:25     ` Lukasz Majewski
2013-04-23  7:09       ` Sachin Kamat
2013-04-22 16:51 ` [PATCH 0/6] thermal:exynos4: Thermal Measurement Unit fixes for Samsung SoCs Kukjin Kim
2013-04-23  6:26   ` Lukasz Majewski
2013-04-23  7:19     ` Sachin Kamat
2013-04-23  8:01       ` Lukasz Majewski
2013-04-25 12:30 ` [PATCH v2 0/4] Thermal:exynos: Thermal Measurement Unit fix and Samsung SoCs support Lukasz Majewski
2013-04-25 12:30   ` [PATCH v2 1/4] ARM: dts: thermal: exynos4: TMU device tree support for Exynos4412 targets Lukasz Majewski
2013-04-25 15:45     ` Eduardo Valentin
2013-04-29  4:57       ` amit daniel kachhap
2013-04-25 12:30   ` [PATCH v2 2/4] Thermal: exynos: Support for TMU regulator defined at device tree Lukasz Majewski
2013-04-25 13:09     ` amit daniel kachhap
2013-04-25 13:29       ` Lukasz Majewski
2013-04-25 15:44         ` Eduardo Valentin
2013-04-25 16:29           ` Lukasz Majewski
2013-04-27  0:50             ` Zhang Rui
2013-04-29  4:38               ` amit daniel kachhap
2013-04-29  4:35           ` amit daniel kachhap
2013-04-25 12:30   ` [PATCH v2 3/4] ARM: dts: thermal: exynos4: Add documentation for Exynos SoC thermal bindings Lukasz Majewski
2013-04-25 15:46     ` Eduardo Valentin
2013-04-29  5:01       ` amit daniel kachhap
2013-04-25 12:30   ` [PATCH v2 4/4] ARM:TMU:fix: Avoid lockup when first frequency table entry is CPUFREQ_ENTRY_INVALID Lukasz Majewski
2013-04-25 15:11     ` Eduardo Valentin
2013-04-25 15:22       ` Lukasz Majewski
2013-04-25 15:39         ` Eduardo Valentin
2013-04-25 15:39   ` [PATCH v2 0/4] Thermal:exynos: Thermal Measurement Unit fix and Samsung SoCs support Eduardo Valentin
2013-04-25 16:28     ` Lukasz Majewski
2013-04-26  5:05       ` Sachin Kamat
2013-04-26  6:39         ` Lukasz Majewski
2013-04-26  6:45           ` Sachin Kamat

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=5176A250.40209@ti.com \
    --to=eduardo.valentin@ti.com \
    --cc=amit.kachhap@linaro.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=kgene.kim@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=l.majewski@samsung.com \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=mturquette@linaro.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;
as well as URLs for NNTP newsgroup(s).