From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Amit Daniel Kachhap <amit.daniel@samsung.com>
Cc: linux-pm@vger.kernel.org, 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>,
Lukasz Majewski <l.majewski@samsung.com>,
Eduardo Valentin <eduardo.valentin@ti.com>,
Sylwester Nawrocki <s.nawrocki@samsung.com>
Subject: Re: [PATCH V2] thermal: exynos: Support for TMU regulator defined at device tree
Date: Wed, 19 Jun 2013 16:03:25 -0400 [thread overview]
Message-ID: <51C20E8D.8040005@ti.com> (raw)
In-Reply-To: <1367489937-30725-1-git-send-email-amit.daniel@samsung.com>
[-- Attachment #1: Type: text/plain, Size: 4478 bytes --]
On 02-05-2013 06:18, Amit Daniel Kachhap 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: Luk asz Majewski <l.majewski@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
I assume this one got superseeded by the same patch on your 30 patch
series, right?
https://patchwork.kernel.org/patch/2731031/
> ---
>
> Changes in V2:
> * Added log message in regulator_get failure as suggested by Sylwester.
> * Used IS_ERR for checking regulator pointer as suggested by Sylwester.
>
> This patch is repost of the patch posted by Lukasz Majewski
> (https://patchwork.kernel.org/patch/2488211/). I have rebased this
> patch on top of my TMU re-structured patch series
> (http://lwn.net/Articles/548634/). Although I thought of handling
> regulator as one type of feature (newly added) but could not do
> so as regulator is a board/platform property and not SOC property so
> leaving the device tree to define and handle it.
>
> .../devicetree/bindings/thermal/exynos-thermal.txt | 4 ++++
> drivers/thermal/samsung/exynos_tmu.c | 19 +++++++++++++++++++
> 2 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/thermal/exynos-thermal.txt b/Documentation/devicetree/bindings/thermal/exynos-thermal.txt
> index 970eeba..ff62f7a 100644
> --- a/Documentation/devicetree/bindings/thermal/exynos-thermal.txt
> +++ b/Documentation/devicetree/bindings/thermal/exynos-thermal.txt
> @@ -14,6 +14,9 @@
> - interrupts : Should contain interrupt for thermal system
> - clocks : The main clock for TMU device
> - clock-names : Thermal system clock name
> +- vtmu-supply: This entry is optional and provides the regulator node supplying
> + voltage to TMU. If needed this entry can be placed inside
> + board/platform specific dts file.
>
> Example 1):
>
> @@ -25,6 +28,7 @@ Example 1):
> clocks = <&clock 383>;
> clock-names = "tmu_apbif";
> status = "disabled";
> + vtmu-supply = <&tmu_regulator_node>;
> };
>
> Example 2):
> diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> index 72446c9..b7c609a 100644
> --- a/drivers/thermal/samsung/exynos_tmu.c
> +++ b/drivers/thermal/samsung/exynos_tmu.c
> @@ -32,6 +32,7 @@
> #include <linux/of_address.h>
> #include <linux/of_irq.h>
> #include <linux/platform_device.h>
> +#include <linux/regulator/consumer.h>
> #include <linux/slab.h>
> #include <linux/workqueue.h>
> #include "exynos_thermal_common.h"
> @@ -52,6 +53,7 @@
> * @clk: pointer to the clock structure.
> * @temp_error1: fused value of the first point trim.
> * @temp_error2: fused value of the second point trim.
> + * @regulator: pointer to the TMU regulator structure.
> * @reg_conf: pointer to structure to register with core thermal.
> */
> struct exynos_tmu_data {
> @@ -65,6 +67,7 @@ struct exynos_tmu_data {
> struct mutex lock;
> struct clk *clk;
> u8 temp_error1, temp_error2;
> + struct regulator *regulator;
> struct thermal_sensor_conf *reg_conf;
> };
>
> @@ -501,10 +504,23 @@ 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 = data->pdata;
> struct resource res;
> + int ret;
>
> if (!data)
> return -ENODEV;
>
> + /* Try enabling the regulator if found */
> + data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
> + if (!IS_ERR(data->regulator)) {
> + ret = regulator_enable(data->regulator);
> + if (ret) {
> + dev_err(&pdev->dev, "failed to enable vtmu\n");
> + return ret;
> + }
> + } else {
> + dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
> + }
> +
> data->id = of_alias_get_id(pdev->dev.of_node, "tmuctrl");
> if (data->id < 0)
> data->id = 0;
> @@ -669,6 +685,9 @@ static int exynos_tmu_remove(struct platform_device *pdev)
>
> clk_unprepare(data->clk);
>
> + if (!IS_ERR(data->regulator))
> + regulator_disable(data->regulator);
> +
> platform_set_drvdata(pdev, NULL);
>
> return 0;
>
--
You have got to be excited about what you are doing. (L. Lamport)
Eduardo Valentin
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 295 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Eduardo Valentin <eduardo.valentin@ti.com>
To: Amit Daniel Kachhap <amit.daniel@samsung.com>
Cc: <linux-pm@vger.kernel.org>, 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>,
Lukasz Majewski <l.majewski@samsung.com>,
Eduardo Valentin <eduardo.valentin@ti.com>,
Sylwester Nawrocki <s.nawrocki@samsung.com>
Subject: Re: [PATCH V2] thermal: exynos: Support for TMU regulator defined at device tree
Date: Wed, 19 Jun 2013 16:03:25 -0400 [thread overview]
Message-ID: <51C20E8D.8040005@ti.com> (raw)
In-Reply-To: <1367489937-30725-1-git-send-email-amit.daniel@samsung.com>
[-- Attachment #1: Type: text/plain, Size: 4478 bytes --]
On 02-05-2013 06:18, Amit Daniel Kachhap 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: Luk asz Majewski <l.majewski@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
I assume this one got superseeded by the same patch on your 30 patch
series, right?
https://patchwork.kernel.org/patch/2731031/
> ---
>
> Changes in V2:
> * Added log message in regulator_get failure as suggested by Sylwester.
> * Used IS_ERR for checking regulator pointer as suggested by Sylwester.
>
> This patch is repost of the patch posted by Lukasz Majewski
> (https://patchwork.kernel.org/patch/2488211/). I have rebased this
> patch on top of my TMU re-structured patch series
> (http://lwn.net/Articles/548634/). Although I thought of handling
> regulator as one type of feature (newly added) but could not do
> so as regulator is a board/platform property and not SOC property so
> leaving the device tree to define and handle it.
>
> .../devicetree/bindings/thermal/exynos-thermal.txt | 4 ++++
> drivers/thermal/samsung/exynos_tmu.c | 19 +++++++++++++++++++
> 2 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/thermal/exynos-thermal.txt b/Documentation/devicetree/bindings/thermal/exynos-thermal.txt
> index 970eeba..ff62f7a 100644
> --- a/Documentation/devicetree/bindings/thermal/exynos-thermal.txt
> +++ b/Documentation/devicetree/bindings/thermal/exynos-thermal.txt
> @@ -14,6 +14,9 @@
> - interrupts : Should contain interrupt for thermal system
> - clocks : The main clock for TMU device
> - clock-names : Thermal system clock name
> +- vtmu-supply: This entry is optional and provides the regulator node supplying
> + voltage to TMU. If needed this entry can be placed inside
> + board/platform specific dts file.
>
> Example 1):
>
> @@ -25,6 +28,7 @@ Example 1):
> clocks = <&clock 383>;
> clock-names = "tmu_apbif";
> status = "disabled";
> + vtmu-supply = <&tmu_regulator_node>;
> };
>
> Example 2):
> diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> index 72446c9..b7c609a 100644
> --- a/drivers/thermal/samsung/exynos_tmu.c
> +++ b/drivers/thermal/samsung/exynos_tmu.c
> @@ -32,6 +32,7 @@
> #include <linux/of_address.h>
> #include <linux/of_irq.h>
> #include <linux/platform_device.h>
> +#include <linux/regulator/consumer.h>
> #include <linux/slab.h>
> #include <linux/workqueue.h>
> #include "exynos_thermal_common.h"
> @@ -52,6 +53,7 @@
> * @clk: pointer to the clock structure.
> * @temp_error1: fused value of the first point trim.
> * @temp_error2: fused value of the second point trim.
> + * @regulator: pointer to the TMU regulator structure.
> * @reg_conf: pointer to structure to register with core thermal.
> */
> struct exynos_tmu_data {
> @@ -65,6 +67,7 @@ struct exynos_tmu_data {
> struct mutex lock;
> struct clk *clk;
> u8 temp_error1, temp_error2;
> + struct regulator *regulator;
> struct thermal_sensor_conf *reg_conf;
> };
>
> @@ -501,10 +504,23 @@ 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 = data->pdata;
> struct resource res;
> + int ret;
>
> if (!data)
> return -ENODEV;
>
> + /* Try enabling the regulator if found */
> + data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
> + if (!IS_ERR(data->regulator)) {
> + ret = regulator_enable(data->regulator);
> + if (ret) {
> + dev_err(&pdev->dev, "failed to enable vtmu\n");
> + return ret;
> + }
> + } else {
> + dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
> + }
> +
> data->id = of_alias_get_id(pdev->dev.of_node, "tmuctrl");
> if (data->id < 0)
> data->id = 0;
> @@ -669,6 +685,9 @@ static int exynos_tmu_remove(struct platform_device *pdev)
>
> clk_unprepare(data->clk);
>
> + if (!IS_ERR(data->regulator))
> + regulator_disable(data->regulator);
> +
> platform_set_drvdata(pdev, NULL);
>
> return 0;
>
--
You have got to be excited about what you are doing. (L. Lamport)
Eduardo Valentin
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 295 bytes --]
next prev parent reply other threads:[~2013-06-19 20:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-02 10:18 [PATCH V2] thermal: exynos: Support for TMU regulator defined at device tree Amit Daniel Kachhap
2013-06-19 20:03 ` Eduardo Valentin [this message]
2013-06-19 20:03 ` Eduardo Valentin
2013-06-21 4:03 ` amit daniel kachhap
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=51C20E8D.8040005@ti.com \
--to=eduardo.valentin@ti.com \
--cc=amit.daniel@samsung.com \
--cc=amit.kachhap@gmail.com \
--cc=kgene.kim@samsung.com \
--cc=l.majewski@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 \
--cc=s.nawrocki@samsung.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.