From: Stephen Boyd <sboyd@codeaurora.org> To: Bjorn Andersson <bjorn.andersson@sonymobile.com> Cc: Rajendra Nayak <rnayak@codeaurora.org>, linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, srinivas.kandagatla@linaro.org, linux-arm-kernel@lists.infradead.org, nrajan@codeaurora.org, lina.iyer@linaro.org Subject: Re: [PATCH 5/9] clk: qcom: gcc-msm8960: add child devices support. Date: Wed, 12 Aug 2015 14:57:31 -0700 [thread overview] Message-ID: <55CBC14B.8000509@codeaurora.org> (raw) In-Reply-To: <20150812201855.GF13472@usrtlx11787.corpusers.net> On 08/12/2015 01:18 PM, Bjorn Andersson wrote: > On Tue 11 Aug 15:49 PDT 2015, Stephen Boyd wrote: > >> On 07/08, Rajendra Nayak wrote: >>> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c >>> index eb6a4f9..2c80d03 100644 >>> --- a/drivers/clk/qcom/gcc-msm8960.c >>> +++ b/drivers/clk/qcom/gcc-msm8960.c >>> @@ -15,6 +15,7 @@ >>> #include <linux/bitops.h> >>> #include <linux/err.h> >>> #include <linux/platform_device.h> >>> +#include <linux/of_platform.h> >>> #include <linux/module.h> >>> #include <linux/of.h> >>> #include <linux/of_device.h> >>> @@ -3520,7 +3521,8 @@ static int gcc_msm8960_probe(struct platform_device *pdev) >>> if (IS_ERR(clk)) >>> return PTR_ERR(clk); >>> >>> - return qcom_cc_probe(pdev, match->data); >>> + qcom_cc_probe(pdev, match->data); >>> + return of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev); >> We just lost the error code from qcom_cc_probe()... >> >> Also, I don't like having a subnode in DT. Why can't we use the >> same node as the GCC node and create a virtual child device here >> for tsens? We can assign the same of_node that this platform >> device has so that DT keeps working correctly. >> > Can't we make the gcc driver support being a child of a simple-mfd by > having it attempting to acquire the regmap of the parent and falling > back to creating its own mmio regmap? So we would need to make a new device and driver for the simple-mfd parent? I'm confused about what you're suggesting and what benefit it has versus creating a child of the clock controller device. Here's the patch I'm suggesting. The device name is probably wrong, but you get the idea. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> ----8<---- diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c index aa294b1bad34..802e9794f76e 100644 --- a/drivers/clk/qcom/gcc-msm8960.c +++ b/drivers/clk/qcom/gcc-msm8960.c @@ -3505,7 +3505,9 @@ static int gcc_msm8960_probe(struct platform_device *pdev) { struct clk *clk; struct device *dev = &pdev->dev; + struct platform_device *tsens; const struct of_device_id *match; + int ret; match = of_match_device(gcc_msm8960_match_table, &pdev->dev); if (!match) @@ -3520,7 +3522,30 @@ static int gcc_msm8960_probe(struct platform_device *pdev) if (IS_ERR(clk)) return PTR_ERR(clk); - return qcom_cc_probe(pdev, match->data); + ret = qcom_cc_probe(pdev, match->data); + if (ret) + return ret; + + tsens = platform_device_alloc("tsens", -1); + if (!tsens) { + ret = -ENOMEM; + goto err_alloc; + } + + tsens->dev.parent = &pdev->dev; + tsens->dev.of_node = pdev->dev.of_node; + ret = platform_device_add(tsens); + if (ret) + goto err_add; + + return 0; + +err_add: + platform_device_put(tsens); +err_alloc: + qcom_cc_remove(pdev); + + return ret; } static int gcc_msm8960_remove(struct platform_device *pdev) -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 5/9] clk: qcom: gcc-msm8960: add child devices support. Date: Wed, 12 Aug 2015 14:57:31 -0700 [thread overview] Message-ID: <55CBC14B.8000509@codeaurora.org> (raw) In-Reply-To: <20150812201855.GF13472@usrtlx11787.corpusers.net> On 08/12/2015 01:18 PM, Bjorn Andersson wrote: > On Tue 11 Aug 15:49 PDT 2015, Stephen Boyd wrote: > >> On 07/08, Rajendra Nayak wrote: >>> diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c >>> index eb6a4f9..2c80d03 100644 >>> --- a/drivers/clk/qcom/gcc-msm8960.c >>> +++ b/drivers/clk/qcom/gcc-msm8960.c >>> @@ -15,6 +15,7 @@ >>> #include <linux/bitops.h> >>> #include <linux/err.h> >>> #include <linux/platform_device.h> >>> +#include <linux/of_platform.h> >>> #include <linux/module.h> >>> #include <linux/of.h> >>> #include <linux/of_device.h> >>> @@ -3520,7 +3521,8 @@ static int gcc_msm8960_probe(struct platform_device *pdev) >>> if (IS_ERR(clk)) >>> return PTR_ERR(clk); >>> >>> - return qcom_cc_probe(pdev, match->data); >>> + qcom_cc_probe(pdev, match->data); >>> + return of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev); >> We just lost the error code from qcom_cc_probe()... >> >> Also, I don't like having a subnode in DT. Why can't we use the >> same node as the GCC node and create a virtual child device here >> for tsens? We can assign the same of_node that this platform >> device has so that DT keeps working correctly. >> > Can't we make the gcc driver support being a child of a simple-mfd by > having it attempting to acquire the regmap of the parent and falling > back to creating its own mmio regmap? So we would need to make a new device and driver for the simple-mfd parent? I'm confused about what you're suggesting and what benefit it has versus creating a child of the clock controller device. Here's the patch I'm suggesting. The device name is probably wrong, but you get the idea. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> ----8<---- diff --git a/drivers/clk/qcom/gcc-msm8960.c b/drivers/clk/qcom/gcc-msm8960.c index aa294b1bad34..802e9794f76e 100644 --- a/drivers/clk/qcom/gcc-msm8960.c +++ b/drivers/clk/qcom/gcc-msm8960.c @@ -3505,7 +3505,9 @@ static int gcc_msm8960_probe(struct platform_device *pdev) { struct clk *clk; struct device *dev = &pdev->dev; + struct platform_device *tsens; const struct of_device_id *match; + int ret; match = of_match_device(gcc_msm8960_match_table, &pdev->dev); if (!match) @@ -3520,7 +3522,30 @@ static int gcc_msm8960_probe(struct platform_device *pdev) if (IS_ERR(clk)) return PTR_ERR(clk); - return qcom_cc_probe(pdev, match->data); + ret = qcom_cc_probe(pdev, match->data); + if (ret) + return ret; + + tsens = platform_device_alloc("tsens", -1); + if (!tsens) { + ret = -ENOMEM; + goto err_alloc; + } + + tsens->dev.parent = &pdev->dev; + tsens->dev.of_node = pdev->dev.of_node; + ret = platform_device_add(tsens); + if (ret) + goto err_add; + + return 0; + +err_add: + platform_device_put(tsens); +err_alloc: + qcom_cc_remove(pdev); + + return ret; } static int gcc_msm8960_remove(struct platform_device *pdev) -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2015-08-12 21:57 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-07-08 9:47 [PATCH 0/9] qcom: Add support for TSENS driver Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 1/9] thermal: qcom: tsens: Add a skeletal TSENS drivers Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 2/9] thermal: qcom: tsens-8916: Add support for 8916 family of SoCs Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 3/9] thermal: qcom: tsens-8974: Add support for 8974 " Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 4/9] thermal: qcom: tsens-8960: Add support for 8960 " Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 5/9] clk: qcom: gcc-msm8960: add child devices support Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-08-11 22:49 ` Stephen Boyd 2015-08-11 22:49 ` Stephen Boyd 2015-08-12 9:00 ` Srinivas Kandagatla 2015-08-12 9:00 ` Srinivas Kandagatla 2015-08-13 4:28 ` Rajendra Nayak 2015-08-13 4:28 ` Rajendra Nayak 2015-08-14 0:42 ` Stephen Boyd 2015-08-14 0:42 ` Stephen Boyd 2015-08-14 3:09 ` Rajendra Nayak 2015-08-14 3:09 ` Rajendra Nayak 2015-09-02 2:37 ` Rajendra Nayak 2015-09-02 2:37 ` Rajendra Nayak 2015-09-03 17:27 ` Stephen Boyd 2015-09-03 17:27 ` Stephen Boyd 2015-09-07 6:39 ` Rajendra Nayak 2015-09-07 6:39 ` Rajendra Nayak 2015-09-08 19:21 ` Stephen Boyd 2015-09-08 19:21 ` Stephen Boyd 2015-09-09 3:33 ` Rajendra Nayak 2015-09-09 3:33 ` Rajendra Nayak 2015-09-09 5:15 ` Rajendra Nayak 2015-09-09 5:15 ` Rajendra Nayak 2015-09-09 9:11 ` Srinivas Kandagatla 2015-09-09 9:11 ` Srinivas Kandagatla 2015-08-12 20:18 ` Bjorn Andersson 2015-08-12 20:18 ` Bjorn Andersson 2015-08-12 21:57 ` Stephen Boyd [this message] 2015-08-12 21:57 ` Stephen Boyd 2015-08-13 4:14 ` Bjorn Andersson 2015-08-13 4:14 ` Bjorn Andersson 2015-08-14 0:46 ` Stephen Boyd 2015-08-14 0:46 ` Stephen Boyd 2015-07-08 9:47 ` [PATCH 6/9] arm: dts: msm8974: Add thermal zones, tsens and eeprom nodes Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 7/9] arm: dts: apq8064: " Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 8/9] arm: dts: apq8084: " Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-07-08 9:47 ` [PATCH 9/9] arm64: dts: msm8916: " Rajendra Nayak 2015-07-08 9:47 ` Rajendra Nayak 2015-08-11 8:26 ` [PATCH 0/9] qcom: Add support for TSENS driver Srinivas Kandagatla 2015-08-11 8:26 ` Srinivas Kandagatla
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=55CBC14B.8000509@codeaurora.org \ --to=sboyd@codeaurora.org \ --cc=bjorn.andersson@sonymobile.com \ --cc=lina.iyer@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=nrajan@codeaurora.org \ --cc=rnayak@codeaurora.org \ --cc=srinivas.kandagatla@linaro.org \ /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: linkBe 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.