[{"id":1767565,"web_url":"http://patchwork.ozlabs.org/comment/1767565/","msgid":"<CAPnjgZ2UH2pNd3h4i6-QNLn-teiXtPGS+RLbX5fuwP_QO95j9w@mail.gmail.com>","list_archive_url":null,"date":"2017-09-13T04:28:02","subject":"Re: [U-Boot] [PATCH v5 4/9] ARM: at91: spl: Add mck function to\n\tlower rate while switching","submitter":{"id":6170,"url":"http://patchwork.ozlabs.org/api/people/6170/","name":"Simon Glass","email":"sjg@chromium.org"},"content":"On 12 September 2017 at 20:10, Wenyou Yang <wenyou.yang@microchip.com> wrote:\n> Refer to the commit 70f8c8316ad(PMC: add new mck function to lower\n> rate while switching) from AT91Bootstrap.\n>\n> While switching to a lower clock source, we must switch the clock\n> source first instead of last. Otherwise, we could end up with\n> too high frequency on internal bus and peripherals.\n> This happen on SAMA5D2 as we exit from ROM code @396MHz.\n>\n> Add a function pmc_mck_init_down() to allow this sequence.\n>\n> Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com>\n> ---\n>\n> Changes in v5: None\n> Changes in v4: None\n> Changes in v3: None\n> Changes in v2: None\n>\n>  arch/arm/mach-at91/armv7/clock.c              | 36 +++++++++++++++++++++++++++\n>  arch/arm/mach-at91/include/mach/at91_common.h |  1 +\n>  2 files changed, 37 insertions(+)\n\nReviewed-by: Simon Glass <sjg@chromium.org>\n\n>\n> diff --git a/arch/arm/mach-at91/armv7/clock.c b/arch/arm/mach-at91/armv7/clock.c\n> index 2e55953799..8ae01f4020 100644\n> --- a/arch/arm/mach-at91/armv7/clock.c\n> +++ b/arch/arm/mach-at91/armv7/clock.c\n> @@ -150,6 +150,42 @@ void at91_mck_init(u32 mckr)\n>                 ;\n>  }\n>\n> +void at91_mck_init_down(u32 mckr)\n> +{\n> +       struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;\n> +       u32 tmp;\n> +\n> +       tmp = readl(&pmc->mckr);\n> +       tmp &= (~AT91_PMC_MCKR_CSS_MASK);\n> +       tmp |= (mckr & AT91_PMC_MCKR_CSS_MASK);\n> +       writel(tmp, &pmc->mckr);\n> +\n> +       while (!(readl(&pmc->sr) & AT91_PMC_MCKRDY))\n> +               ;\n> +\n> +#ifdef CPU_HAS_H32MXDIV\n> +       tmp = readl(&pmc->mckr);\n> +       tmp &= (~AT91_PMC_MCKR_H32MXDIV);\n> +       tmp |= (mckr & AT91_PMC_MCKR_H32MXDIV);\n> +       writel(tmp, &pmc->mckr);\n> +#endif\n> +\n> +       tmp = readl(&pmc->mckr);\n> +       tmp &= (~AT91_PMC_MCKR_PLLADIV_MASK);\n> +       tmp |= (mckr & AT91_PMC_MCKR_PLLADIV_MASK);\n> +       writel(tmp, &pmc->mckr);\n> +\n> +       tmp = readl(&pmc->mckr);\n> +       tmp &= (~AT91_PMC_MCKR_MDIV_MASK);\n> +       tmp |= (mckr & AT91_PMC_MCKR_MDIV_MASK);\n> +       writel(tmp, &pmc->mckr);\n> +\n> +       tmp = readl(&pmc->mckr);\n> +       tmp &= (~AT91_PMC_MCKR_PRES_MASK);\n> +       tmp |= (mckr & AT91_PMC_MCKR_PRES_MASK);\n> +       writel(tmp, &pmc->mckr);\n> +}\n> +\n>  int at91_enable_periph_generated_clk(u32 id, u32 clk_source, u32 div)\n>  {\n>         struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;\n> diff --git a/arch/arm/mach-at91/include/mach/at91_common.h b/arch/arm/mach-at91/include/mach/at91_common.h\n> index 5416eb455d..0b09ce7b2e 100644\n> --- a/arch/arm/mach-at91/include/mach/at91_common.h\n> +++ b/arch/arm/mach-at91/include/mach/at91_common.h\n> @@ -25,6 +25,7 @@ void at91_lcd_hw_init(void);\n>  void at91_plla_init(u32 pllar);\n>  void at91_pllb_init(u32 pllar);\n>  void at91_mck_init(u32 mckr);\n> +void at91_mck_init_down(u32 mckr);\n\nFunction comment?\n\n>  void at91_pmc_init(void);\n>  void mem_init(void);\n>  void at91_phy_reset(void);\n> --\n> 2.13.0\n>","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=google.com header.i=@google.com\n\theader.b=\"bSIY5FVD\"; \n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"egJFBxDe\"; dkim-atps=neutral"],"Received":["from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xsTcy46FTz9sNV\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Sep 2017 14:45:54 +1000 (AEST)","by lists.denx.de (Postfix, from userid 105)\n\tid 3D736C22549; Wed, 13 Sep 2017 04:35:04 +0000 (UTC)","from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 1FBEBC22367;\n\tWed, 13 Sep 2017 04:33:59 +0000 (UTC)","by lists.denx.de (Postfix, from userid 105)\n\tid 52A97C224B1; Wed, 13 Sep 2017 04:28:28 +0000 (UTC)","from mail-qt0-f176.google.com (mail-qt0-f176.google.com\n\t[209.85.216.176])\n\tby lists.denx.de (Postfix) with ESMTPS id 11874C223A9\n\tfor <u-boot@lists.denx.de>; Wed, 13 Sep 2017 04:28:24 +0000 (UTC)","by mail-qt0-f176.google.com with SMTP id m35so29982483qte.1\n\tfor <u-boot@lists.denx.de>; Tue, 12 Sep 2017 21:28:24 -0700 (PDT)","by 10.200.37.200 with HTTP; Tue, 12 Sep 2017 21:28:02 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE,\n\tRCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,\n\tT_DKIM_INVALID autolearn=unavailable\n\tautolearn_force=no version=3.4.0","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=20161025; \n\th=mime-version:sender:in-reply-to:references:from:date:message-id\n\t:subject:to:cc;\n\tbh=+tsT/gHDHHeT+/G0p7recZtdUwutbOOTjgIOHv4Scl4=;\n\tb=bSIY5FVDols4vOj7zS4bb9hjqvOEdlGpACkh1rrdpExJkYlK2DGZeSoZuRMeeDFIR5\n\tcJxa6ShcrYp6JC4b4Hlv3h9236sb2IzESxx/6OL0Qyi29tqjy7XRtLwLjsWGSj1/T4Xh\n\tNYXPdovLaSyR/FW/FIp5791WAZceOuRXYb9nMpEufYDjvPBDtGhs3D3dZeobmnMxlRbr\n\tBZMSU0S5Kb+IoZUay7gV7yBPgQa3gqnHdaDfp4YjPckJoSh9d1Gg8tNWDI8GvURFgxIG\n\th4une4770OHhF+MUiXCQy5/iGM5/DMhCXihosJ8g1pqWQ1RvR8i8pB3bDn6F+WCwpXXU\n\tWfyQ==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:sender:in-reply-to:references:from:date:message-id\n\t:subject:to:cc;\n\tbh=+tsT/gHDHHeT+/G0p7recZtdUwutbOOTjgIOHv4Scl4=;\n\tb=egJFBxDezVHQr/6rCZMyxTAR97Y+L4uQimTBDp9rSz2h+Ad27HclKeUiQFOR9R1een\n\tHl3+OqTrO5dcXFYhohR+184q6Jay4RpfCXlrQyF+2mXiClagfNLyE0ksuAhN4y5AVQpZ\n\tpqTRKrJEvk1OSPxQrcaCBHMC4/EtZTIB91sr0="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:sender:in-reply-to:references:from\n\t:date:message-id:subject:to:cc;\n\tbh=+tsT/gHDHHeT+/G0p7recZtdUwutbOOTjgIOHv4Scl4=;\n\tb=gK1hfJW/tF9ARyHOMn6P2HYjAuEFQt0shiWeFgmHqV0jV2mi1RVzcA/M6/doic3dvA\n\t7d4T2WwCsPs9cDG7j6ov8yvtdUNayA6u6BgY8uhju/EXDgxZGkvHsX5APIhDx7sLFygC\n\tNuPVs5CEnbAlmcVYmZQZWckx9XpoN5GBrFIUx0yvrgkB+TDU6qPta4/+tXcpEE5B20xV\n\tadBEEkbL0aSSWyNnt9eM4rCLwdYAxItH3YSLms7tE+fmIf6yscjl5n2NcKy/qFnRaZ4s\n\tW0x29IgYDjgIxLGbKOggQXX8VQ+A6cgAkVY8SY2P5P1yIGhWutoW2SQ9/gyC2j5cQ6RK\n\tqfXQ==","X-Gm-Message-State":"AHPjjUjiX6MD31OuwwxB70C+3GLxYcVfApzebhmH8pLI7+5v6Iw+TPsk\n\tH/tCnBOG+UlxjsUuYD8oFwdxCVXU1e+eq/caRIs8pA==","X-Google-Smtp-Source":"AOwi7QC1PQEFpAk2lBdxiLtQpMGhcziJ8co2RozYe/mJLHDQBB5g2P4y0HbY0YVTBn6Fno/oxhs3N4TxiymDygXf+0M=","X-Received":"by 10.200.23.252 with SMTP id r57mr25507442qtk.76.1505276902761; \n\tTue, 12 Sep 2017 21:28:22 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<20170913021017.9764-5-wenyou.yang@microchip.com>","References":"<20170913021017.9764-1-wenyou.yang@microchip.com>\n\t<20170913021017.9764-5-wenyou.yang@microchip.com>","From":"Simon Glass <sjg@chromium.org>","Date":"Tue, 12 Sep 2017 22:28:02 -0600","X-Google-Sender-Auth":"uE-JTG9ZMty8PyOpiC-bfku5HRw","Message-ID":"<CAPnjgZ2UH2pNd3h4i6-QNLn-teiXtPGS+RLbX5fuwP_QO95j9w@mail.gmail.com>","To":"Wenyou Yang <wenyou.yang@microchip.com>","Cc":"Marek Vasut <marex@denx.de>, U-Boot Mailing List <u-boot@lists.denx.de>, \n\tTom Rini <trini@konsulko.com>","Subject":"Re: [U-Boot] [PATCH v5 4/9] ARM: at91: spl: Add mck function to\n\tlower rate while switching","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.18","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<http://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>"}}]