linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Aisheng Dong <aisheng.dong@nxp.com>
To: Peng Fan <peng.fan@nxp.com>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"sboyd@kernel.org" <sboyd@kernel.org>
Cc: "kernel@pengutronix.de" <kernel@pengutronix.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	dl-linux-imx <linux-imx@nxp.com>,
	Anson Huang <anson.huang@nxp.com>, Abel Vesa <abel.vesa@nxp.com>,
	"linux-clk@vger.kernel.org" <linux-clk@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH] clk: imx: introduce imx_clk_hw_critical
Date: Thu, 23 Apr 2020 14:03:09 +0000	[thread overview]
Message-ID: <AM6PR04MB4966460FE849E557FDA754F980D30@AM6PR04MB4966.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <DB6PR0402MB2760793865AA2E67E1C33F4488D30@DB6PR0402MB2760.eurprd04.prod.outlook.com>

> From: Peng Fan <peng.fan@nxp.com>
> Sent: Thursday, April 23, 2020 6:54 PM
> 
> > Subject: RE: [PATCH] clk: imx: introduce imx_clk_hw_critical
> >
> > > From: Peng Fan <peng.fan@nxp.com>
> > > Sent: Thursday, April 23, 2020 2:52 PM
> > >
> > > To i.MX8M SoC, there is an case is when running dual OSes with
> > > hypervisor, the clk of the hardware that passthrough to the 2nd OS
> > > needs to be setup by 1st Linux OS.
> > > So detect clock-critical from ccm node and enable the clocks to let
> > > the 2nd OS could use the hardware without touch CCM module.
> > >
> > > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > > ---
> > >  drivers/clk/imx/clk.c | 19 +++++++++++++++++++
> > > drivers/clk/imx/clk.h
> > > |  1
> > > +
> > >  2 files changed, 20 insertions(+)
> > >
> > > diff --git a/drivers/clk/imx/clk.c b/drivers/clk/imx/clk.c index
> > > 87ab8db3d282..ec7d422540c1 100644
> > > --- a/drivers/clk/imx/clk.c
> > > +++ b/drivers/clk/imx/clk.c
> > > @@ -177,3 +177,22 @@ static int __init imx_clk_disable_uart(void)
> > >  	return 0;
> > >  }
> > >  late_initcall_sync(imx_clk_disable_uart);
> > > +
> > > +int imx_clk_hw_critical(struct device_node *np, struct clk_hw *
> > > +const
> > > +hws[]) {
> > > +	struct property *prop;
> > > +	const __be32 *cur;
> > > +	u32 idx;
> > > +	int ret;
> > > +
> > > +	if (!np || !hws)
> > > +		return -EINVAL;
> > > +
> > > +	of_property_for_each_u32(np, "clock-critical", prop, cur, idx) {
> >
> > Is there a binding for it already?
> 
> I think clock-critical is a common bindings? See of_clk_detect_critical.
> Please review whether this approach is acceptable, if do need bindings, I could
> add that in v2.
> 

I'm ok if it's a common binding already supported by current clk framework.
But it seems to be more like a common clk feature rather than platform feature.
Also a bit strange that why I did not find the binding doc in latest kernel.
Maybe Stephen could comment more.

BTW, if using this for dual OSes case, will those critical clocks affect the normal users that
not booting the second OS?

Regards
Aisheng

> Thanks,
> Peng.
> 
> >
> > Regards
> > Aisheng
> >
> > > +		ret = clk_prepare_enable(hws[idx]->clk);
> > > +		if (ret)
> > > +			return ret;
> > > +	}
> > > +
> > > +	return 0;
> > > +}
> > > diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h index
> > > d4ea1609bcb7..701d7440f98c 100644
> > > --- a/drivers/clk/imx/clk.h
> > > +++ b/drivers/clk/imx/clk.h
> > > @@ -9,6 +9,7 @@ extern spinlock_t imx_ccm_lock;
> > >
> > >  void imx_check_clocks(struct clk *clks[], unsigned int count);
> > > void imx_check_clk_hws(struct clk_hw *clks[], unsigned int count);
> > > +int imx_clk_hw_critical(struct device_node *np, struct clk_hw *
> > > +const hws[]);
> > >  void imx_register_uart_clocks(struct clk ** const clks[]);  void
> > > imx_mmdc_mask_handshake(void __iomem *ccm_base, unsigned int chn);
> > > void imx_unregister_clocks(struct clk *clks[], unsigned int count);
> > > --
> > > 2.16.4


  reply	other threads:[~2020-04-23 14:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-23  6:52 [PATCH] clk: imx: introduce imx_clk_hw_critical peng.fan
2020-04-23 10:42 ` Aisheng Dong
2020-04-23 10:53   ` Peng Fan
2020-04-23 14:03     ` Aisheng Dong [this message]
2020-04-24  1:07       ` Peng Fan
2020-04-24  1:59         ` Aisheng Dong
2020-04-24  2:02           ` Peng Fan
2020-04-27  8:43           ` Peng Fan

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=AM6PR04MB4966460FE849E557FDA754F980D30@AM6PR04MB4966.eurprd04.prod.outlook.com \
    --to=aisheng.dong@nxp.com \
    --cc=abel.vesa@nxp.com \
    --cc=anson.huang@nxp.com \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peng.fan@nxp.com \
    --cc=s.hauer@pengutronix.de \
    --cc=sboyd@kernel.org \
    --cc=shawnguo@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).