All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [PATCH v2 05/21] clk: imx: pllv3: add enable() support
Date: Tue, 28 Jan 2020 09:14:20 +0100	[thread overview]
Message-ID: <20200128091420.059c8e16@jawa> (raw)
In-Reply-To: <20200110144711.81938-6-giulio.benetti@benettiengineering.com>

Hi Giulio,

> Before set_rate() pllv3 needs enable() to power the pll up.
> Add enable() taking into account different power_bit and
> different powerup_set, because some pll needs its power_bit to be
> set or reset to be powered on.

I do guess that this code is similar to what we do have in the Linux
kernel (and which I've probably omitted as it was not needed in the
i.MX6Q use case)?

> 
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> ---
>  drivers/clk/imx/clk-pllv3.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/drivers/clk/imx/clk-pllv3.c b/drivers/clk/imx/clk-pllv3.c
> index 02c75c37ea..d8cbe3dd4e 100644
> --- a/drivers/clk/imx/clk-pllv3.c
> +++ b/drivers/clk/imx/clk-pllv3.c
> @@ -16,9 +16,13 @@
>  #define UBOOT_DM_CLK_IMX_PLLV3_GENERIC	"imx_clk_pllv3_generic"
>  #define UBOOT_DM_CLK_IMX_PLLV3_USB	"imx_clk_pllv3_usb"
>  
> +#define BM_PLL_POWER		(0x1 << 12)
> +
>  struct clk_pllv3 {
>  	struct clk	clk;
>  	void __iomem	*base;
> +	u32		power_bit;
> +	bool		powerup_set;
>  	u32		div_mask;
>  	u32		div_shift;
>  };
> @@ -35,8 +39,24 @@ static ulong clk_pllv3_generic_get_rate(struct clk
> *clk) return (div == 1) ? parent_rate * 22 : parent_rate * 20;
>  }
>  
> +static int clk_pllv3_generic_enable(struct clk *clk)
> +{
> +	struct clk_pllv3 *pll = to_clk_pllv3(clk);
> +	u32 val;
> +
> +	val = readl(pll->base);
> +	if (pll->powerup_set)
> +		val |= pll->power_bit;
> +	else
> +		val &= ~pll->power_bit;
> +	writel(val, pll->base);
> +
> +	return 0;
> +}
> +
>  static const struct clk_ops clk_pllv3_generic_ops = {
>  	.get_rate	= clk_pllv3_generic_get_rate,
> +	.enable		= clk_pllv3_generic_enable,
>  };
>  
>  struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
> @@ -52,14 +72,18 @@ struct clk *imx_clk_pllv3(enum imx_pllv3_type
> type, const char *name, if (!pll)
>  		return ERR_PTR(-ENOMEM);
>  
> +	pll->power_bit = BM_PLL_POWER;
> +
>  	switch (type) {
>  	case IMX_PLLV3_GENERIC:
>  		drv_name = UBOOT_DM_CLK_IMX_PLLV3_GENERIC;
>  		pll->div_shift = 0;
> +		pll->powerup_set = false;
>  		break;
>  	case IMX_PLLV3_USB:
>  		drv_name = UBOOT_DM_CLK_IMX_PLLV3_USB;
>  		pll->div_shift = 1;
> +		pll->powerup_set = true;
>  		break;
>  	default:
>  		kfree(pll);




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200128/ccfb34a9/attachment.sig>

  parent reply	other threads:[~2020-01-28  8:14 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-10 14:46 [PATCH v2 00/21] Add i.MXRT family support Giulio Benetti
2020-01-10 14:46 ` [PATCH v2 01/21] spl: fix entry_point equal to load_addr Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-28  8:09   ` Lukasz Majewski
2020-01-28 16:37     ` Giulio Benetti
2020-01-29  8:33       ` Lukasz Majewski
2020-01-10 14:46 ` [PATCH v2 02/21] armv7m: cache: add mmu_set_region_dcache_behaviour() stub for compatibility Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-28  8:10   ` Lukasz Majewski
2020-01-28 16:50     ` Giulio Benetti
2020-01-29  8:36       ` Lukasz Majewski
2020-01-10 14:46 ` [PATCH v2 03/21] clk: imx: pllv3: register PLLV3 GENERIC and USB as 2 different clocks Giulio Benetti
2020-01-15 12:47   ` sbabic at denx.de
2020-01-10 14:46 ` [PATCH v2 04/21] clk: imx: pllv3: set div_mask differently if PLLV3 is GENERIC or USB Giulio Benetti
2020-01-15 12:47   ` sbabic at denx.de
2020-01-10 14:46 ` [PATCH v2 05/21] clk: imx: pllv3: add enable() support Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-28  8:14   ` Lukasz Majewski [this message]
2020-01-28 18:46     ` Giulio Benetti
2020-01-10 14:46 ` [PATCH v2 06/21] clk: imx: pllv3: add disable() support Giulio Benetti
2020-01-15 12:47   ` sbabic at denx.de
2020-01-10 14:46 ` [PATCH v2 07/21] clk: imx: pllv3: add set_rate() support Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-10 14:46 ` [PATCH v2 08/21] clk: imx: pllv3: add PLLV3_SYS support Giulio Benetti
2020-01-15 12:47   ` sbabic at denx.de
2020-01-10 14:46 ` [PATCH v2 09/21] clk: imx: pllv3: add support for PLLV3_AV type Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-28  8:20   ` Lukasz Majewski
2020-01-31 13:50     ` Giulio Benetti
2020-01-10 14:47 ` [PATCH v2 10/21] clk: imx: pfd: add set_rate() Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-10 14:47 ` [PATCH v2 11/21] clk: imx: add i.IMXRT1050 clk driver Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-28  8:23   ` Lukasz Majewski
2020-01-10 14:47 ` [PATCH v2 12/21] pinctrl: add i.MXRT driver Giulio Benetti
2020-01-15 12:47   ` sbabic at denx.de
2020-01-28  8:27   ` Lukasz Majewski
2020-01-10 14:47 ` [PATCH v2 13/21] gpio: mxc_gpio: add support for i.MXRT1050 Giulio Benetti
2020-01-15 12:46   ` sbabic at denx.de
2020-01-28  8:27   ` Lukasz Majewski
2020-01-10 14:47 ` [PATCH v2 14/21] ARM: dts: imxrt1050: add dtsi file Giulio Benetti
2020-01-15 12:47   ` sbabic at denx.de
2020-01-28  8:31   ` Lukasz Majewski
2020-01-28 18:48     ` Giulio Benetti
2020-01-10 14:47 ` [PATCH v2 15/21] serial_lpuart: add clock enable if CONFIG_CLK is defined Giulio Benetti
2020-01-15 12:47   ` sbabic at denx.de
2020-01-28  8:36   ` Lukasz Majewski
2020-01-28 18:49     ` Giulio Benetti
2020-01-31 13:39       ` [PATCH] serial_lpuart: make clock failure less verbose Giulio Benetti
2020-01-31 18:14         ` Simon Glass
2020-01-31 20:24           ` Giulio Benetti
2020-02-01 12:48             ` Lukasz Majewski
2020-02-10 22:17               ` Giulio Benetti
2020-03-10 15:31         ` sbabic at denx.de

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=20200128091420.059c8e16@jawa \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /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.