From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaehoon Chung Date: Fri, 07 Aug 2015 14:51:23 +0900 Subject: [U-Boot] [PATCH v4 2/3] mmc: dw_mmc: Support bypass mode with the get_mmc_clk() method In-Reply-To: <201508070507.13010.marex@denx.de> References: <1438913789-22308-1-git-send-email-sjg@chromium.org> <201508070458.02625.marex@denx.de> <201508070507.13010.marex@denx.de> Message-ID: <55C4475B.80102@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On 08/07/2015 12:07 PM, Marek Vasut wrote: > On Friday, August 07, 2015 at 05:00:24 AM, Simon Glass wrote: >> Hi Marek, > > Hi Simon, > >> On 6 August 2015 at 20:58, Marek Vasut wrote: >>> On Friday, August 07, 2015 at 04:54:42 AM, Simon Glass wrote: >>>> Hi Marek, >>> >>> Hi Simon, >>> >>>> On 6 August 2015 at 20:51, Marek Vasut wrote: >>>>> On Friday, August 07, 2015 at 04:16:28 AM, Simon Glass wrote: >>>>>> Some SoCs want to adjust the input clock to the DWMMC block as a way >>>>>> of controlling the MMC bus clock. Update the get_mmc_clk() method to >>>>>> support this. >>>>>> >>>>>> Signed-off-by: Simon Glass >>>>> >>>>> Hi Simon, >>>>> >>>>>> --- >>>>>> >>>>>> Changes in v4: >>>>>> - Update commit message to indicate this patch is for the dw_mmc >>>>>> driver >>>>>> >>>>>> drivers/mmc/dw_mmc.c | 2 +- >>>>>> drivers/mmc/exynos_dw_mmc.c | 2 +- >>>>>> include/dwmmc.h | 16 +++++++++++++++- >>>>>> 3 files changed, 17 insertions(+), 3 deletions(-) >>>>>> >>>>>> diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c >>>>>> index 8f28d7e..a034c3f 100644 >>>>>> --- a/drivers/mmc/dw_mmc.c >>>>>> +++ b/drivers/mmc/dw_mmc.c >>>>>> @@ -248,7 +248,7 @@ static int dwmci_setup_bus(struct dwmci_host >>>>>> *host, u32 freq) * host->bus_hz should be set by user. >>>>>> >>>>>> */ >>>>>> >>>>>> if (host->get_mmc_clk) >>>>>> >>>>>> - sclk = host->get_mmc_clk(host); >>>>>> + sclk = host->get_mmc_clk(host, freq); >>>>> >>>>> Why are you passing the @freq into get_mmc_clk() ? Shouldn't you call >>>>> some clock framework function to determine the input frequency of the >>>>> DWMMC block from within the get_mmc_clk() implementation instead ? >>>>> What do you think please ? >>>> >>>> Well, yes. If such a clock frame work existed I would call it :-) We >>>> do have a uclass now so we are getting there. >>> >>> Excellent, so do you really need this kind of patch ? :) Why don't you >>> make just some kind of function -- get_dwmmc_clock() -- and call it >>> instead ? >> >> This is sort-of what is happening. It is calling a function in the >> host controller - i.e. the SoC's MMC controller. It is one step closer >> to knowing the input clock to the dwmmc input clock. Note that it is >> not the clock of the MMC bus itself, but the input clock to the dwmmc >> logic block. > > I don't think I quite understand wha,t you mean here. We're talking about > obtaining the frequency of the clock which go into the DWMMC IP block, > right ? > > So, if you implement a function, say -- dwmmc_get_upstream_clock() -- and > call it from within the implementation of the .get_mmc_clk(), which is > specific for that particular chip of yours*, you don't need this patch. > Or am I really missing something fundamental ? Hmm. I don't know what purpose @freq is...just bypass? @freq doesn't use wherever..I'm checking with u-boot-dm repository(mmc-working branch) I wonder i'm also missing something like Marek. Best Regards, Jaehoon Chung > > *the .get_mmc_clk() is specific to a chip, see for example exynos_dw_mmc.c > > Best regards, > Marek Vasut >