From: Dinh Nguyen <dinh.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: zhangfei <zhangfei.gao-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
dinguyen-EIB2kfCEclfQT0dZR+AlfA@public.gmane.org,
arnd-r2nGTMty4D4@public.gmane.org,
cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org,
jh80.chung-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
tgih.jun-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org,
dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
alim.akhtar-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
bzhao-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org,
rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org,
pawel.moll-5wv7dgnIgG8@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
ian.campbell-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org,
mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-mmc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCHv6 1/5] mmc: dw_mmc: Add support to set the SDR and DDR timing through clock framework
Date: Sun, 15 Dec 2013 21:24:40 -0600 [thread overview]
Message-ID: <52AE7278.1080506@gmail.com> (raw)
In-Reply-To: <52AD320A.4030502-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
On 12/14/13 10:37 PM, zhangfei wrote:
>
>
> On 12/15/2013 11:16 AM, Dinh Nguyen wrote:
>> Hi Zhangfei,
>>
>>>> @@ -2478,6 +2480,27 @@ int dw_mci_probe(struct dw_mci *host)
>>>> dev_dbg(host->dev, "ciu clock not available\n");
>>>> host->bus_hz = host->pdata->bus_hz;
>>>> } else {
>>>> + /* If the CIU clk is available, we check for SDR and DDR
>>>> + * timing phase shift settings. But not all platforms
>>>> + * may have populated these settings, the driver will not
>>>> fail
>>>> + * if these settings are not specified.
>>>> + */
>>>> + if (host->pdata->sdr_timing) {
>>>> + host->sdr_clk = devm_clk_get(host->dev, "sdr_mmc_clk");
>>>> + if (IS_ERR(host->sdr_clk))
>>>> + dev_dbg(host->dev, "sdr_mmc clock not available\n");
>>>> + else
>>>> + clk_set_rate(host->sdr_clk, host->pdata->sdr_timing);
>>>> + }
>>>> +
>>>> + if (host->pdata->ddr_timing) {
>>>> + host->ddr_clk = devm_clk_get(host->dev, "ddr_mmc_clk");
>>>> + if (IS_ERR(host->ddr_clk))
>>>> + dev_dbg(host->dev, "ddr_mmc clock not available\n");
>>>> + else
>>>> + clk_set_rate(host->ddr_clk, host->pdata->ddr_timing);
>>>> + }
>>>> +
>>>
>>> Just curious, does pdata->sdr_timing and pdata->ddr_timing are fixed,
>>> fixed as each controller, or different with different board.
>> Yes, they are fixed for each controller per SoC.
>>> In case they are fixed, or fixed in each controller, and only required
>>> to be set in probe only once, maybe they can be hide in
>>> clk_mmc_ops.prepare
>>> And the clock can be used as ciu_clock, or parent of ciu_clock, which
>>> is called in dw_mmc.c, maybe these code can be ignored.
>>>
>> Please see v5 of this patch: https://patchwork.kernel.org/patch/3311121/
>> The issue with V5 was that there is no way for the dw_mmc driver to pass
>> the clock phase settings
>> in the clk_mmc_ops.prepare function.
>
> Personally, I think v5 is simpler :)
I agree...
>
> Could these fixed para be used as internal para when register.
> Like
> socfpga_gate_clk_init
> rc = of_property_read_u32_array(node, "clk-gate", clk_gate, 2);
> compatible = "altr,socfpga-gate-clk";
> clocks = <&mainclk>;
> div-reg = <0x64 0 2>;
> clk-gate = <0x60 1>;
> Could we also define mmc-ciu-clock with para clk-init.
Hmm..this was one of Arnd's suggestion. Will this also work for you? If
so then I think I can
proceed down this path, as I think this should be the most direct and
simplest.
Thanks,
Dinh
>
> Thanks
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: dinh.linux@gmail.com (Dinh Nguyen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv6 1/5] mmc: dw_mmc: Add support to set the SDR and DDR timing through clock framework
Date: Sun, 15 Dec 2013 21:24:40 -0600 [thread overview]
Message-ID: <52AE7278.1080506@gmail.com> (raw)
In-Reply-To: <52AD320A.4030502@linaro.org>
On 12/14/13 10:37 PM, zhangfei wrote:
>
>
> On 12/15/2013 11:16 AM, Dinh Nguyen wrote:
>> Hi Zhangfei,
>>
>>>> @@ -2478,6 +2480,27 @@ int dw_mci_probe(struct dw_mci *host)
>>>> dev_dbg(host->dev, "ciu clock not available\n");
>>>> host->bus_hz = host->pdata->bus_hz;
>>>> } else {
>>>> + /* If the CIU clk is available, we check for SDR and DDR
>>>> + * timing phase shift settings. But not all platforms
>>>> + * may have populated these settings, the driver will not
>>>> fail
>>>> + * if these settings are not specified.
>>>> + */
>>>> + if (host->pdata->sdr_timing) {
>>>> + host->sdr_clk = devm_clk_get(host->dev, "sdr_mmc_clk");
>>>> + if (IS_ERR(host->sdr_clk))
>>>> + dev_dbg(host->dev, "sdr_mmc clock not available\n");
>>>> + else
>>>> + clk_set_rate(host->sdr_clk, host->pdata->sdr_timing);
>>>> + }
>>>> +
>>>> + if (host->pdata->ddr_timing) {
>>>> + host->ddr_clk = devm_clk_get(host->dev, "ddr_mmc_clk");
>>>> + if (IS_ERR(host->ddr_clk))
>>>> + dev_dbg(host->dev, "ddr_mmc clock not available\n");
>>>> + else
>>>> + clk_set_rate(host->ddr_clk, host->pdata->ddr_timing);
>>>> + }
>>>> +
>>>
>>> Just curious, does pdata->sdr_timing and pdata->ddr_timing are fixed,
>>> fixed as each controller, or different with different board.
>> Yes, they are fixed for each controller per SoC.
>>> In case they are fixed, or fixed in each controller, and only required
>>> to be set in probe only once, maybe they can be hide in
>>> clk_mmc_ops.prepare
>>> And the clock can be used as ciu_clock, or parent of ciu_clock, which
>>> is called in dw_mmc.c, maybe these code can be ignored.
>>>
>> Please see v5 of this patch: https://patchwork.kernel.org/patch/3311121/
>> The issue with V5 was that there is no way for the dw_mmc driver to pass
>> the clock phase settings
>> in the clk_mmc_ops.prepare function.
>
> Personally, I think v5 is simpler :)
I agree...
>
> Could these fixed para be used as internal para when register.
> Like
> socfpga_gate_clk_init
> rc = of_property_read_u32_array(node, "clk-gate", clk_gate, 2);
> compatible = "altr,socfpga-gate-clk";
> clocks = <&mainclk>;
> div-reg = <0x64 0 2>;
> clk-gate = <0x60 1>;
> Could we also define mmc-ciu-clock with para clk-init.
Hmm..this was one of Arnd's suggestion. Will this also work for you? If
so then I think I can
proceed down this path, as I think this should be the most direct and
simplest.
Thanks,
Dinh
>
> Thanks
next prev parent reply other threads:[~2013-12-16 3:24 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-12 20:30 [PATCHv6 0/5] socfpga: Enable SD/MMC support dinguyen
2013-12-12 20:30 ` dinguyen at altera.com
2013-12-12 20:30 ` [PATCHv6 1/5] mmc: dw_mmc: Add support to set the SDR and DDR timing through clock framework dinguyen
2013-12-12 20:30 ` dinguyen at altera.com
2013-12-15 2:05 ` zhangfei
2013-12-15 2:05 ` zhangfei
2013-12-15 3:16 ` Dinh Nguyen
2013-12-15 3:16 ` Dinh Nguyen
2013-12-15 4:37 ` zhangfei
2013-12-15 4:37 ` zhangfei
[not found] ` <52AD320A.4030502-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-12-16 3:24 ` Dinh Nguyen [this message]
2013-12-16 3:24 ` Dinh Nguyen
2013-12-16 3:38 ` Zhangfei Gao
2013-12-16 3:38 ` Zhangfei Gao
2013-12-16 4:20 ` Seungwon Jeon
2013-12-16 4:20 ` Seungwon Jeon
[not found] ` <1386880245-10192-1-git-send-email-dinguyen-EIB2kfCEclfQT0dZR+AlfA@public.gmane.org>
2013-12-12 20:30 ` [PATCHv6 2/5] clk: socfpga: Add a clock type for the SD/MMC driver dinguyen-EIB2kfCEclfQT0dZR+AlfA
2013-12-12 20:30 ` dinguyen at altera.com
2013-12-14 21:33 ` Arnd Bergmann
2013-12-14 21:33 ` Arnd Bergmann
2013-12-15 2:18 ` zhangfei
2013-12-15 2:18 ` zhangfei
2013-12-15 4:51 ` Mike Turquette
2013-12-15 4:51 ` Mike Turquette
2013-12-16 20:55 ` Emilio López
2013-12-16 20:55 ` Emilio López
2013-12-16 21:06 ` Hans de Goede
2013-12-16 21:06 ` Hans de Goede
2013-12-16 21:54 ` David Lanzendörfer
2013-12-16 21:54 ` David Lanzendörfer
2013-12-18 20:10 ` Mike Turquette
2013-12-18 20:10 ` Mike Turquette
2013-12-17 2:17 ` Chen-Yu Tsai
2013-12-17 2:17 ` Chen-Yu Tsai
2013-12-12 20:30 ` [PATCHv6 3/5] dts: socfpga: Add support for SD/MMC on the SOCFPGA platform dinguyen
2013-12-12 20:30 ` dinguyen at altera.com
2013-12-12 20:30 ` [PATCHv6 4/5] mmc: dw_mmc-socfpga: Remove the SOCFPGA specific platform for dw_mmc dinguyen
2013-12-12 20:30 ` dinguyen at altera.com
2013-12-12 20:30 ` [PATCHv6 5/5] ARM: socfpga_defconfig: enable SD/MMC support dinguyen
2013-12-12 20:30 ` dinguyen at altera.com
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=52AE7278.1080506@gmail.com \
--to=dinh.linux-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=alim.akhtar-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=bzhao-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org \
--cc=cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=dinguyen-EIB2kfCEclfQT0dZR+AlfA@public.gmane.org \
--cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
--cc=ian.campbell-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org \
--cc=jh80.chung-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-mmc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
--cc=tgih.jun-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=zhangfei.gao-QSEj5FYQhm4dnm+yROfE0A@public.gmane.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: 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.