public inbox for linux-clk@vger.kernel.org
 help / color / mirror / Atom feed
From: "Heiko Stübner" <heiko@sntech.de>
To: Frank Wang <frank.wang@rock-chips.com>
Cc: Xing Zheng <zhengxing@rock-chips.com>,
	linux-rockchip@lists.infradead.org, dianders@chromium.org,
	briannorris@chromium.org, huangtao@rock-chips.com,
	zhangqing@rock-chips.com, wulf@rock-chips.com,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, daniel.meng@rock-chips.com
Subject: Re: [PATCH v3 2/7] clk: rockchip: rk3399: export 480M_SRC clock id for usbphy0/usbphy1
Date: Fri, 05 Aug 2016 18:05:51 +0200	[thread overview]
Message-ID: <1570410.dThJclhmJd@diego> (raw)
In-Reply-To: <cba79ba6-7f41-5398-389c-7fd3fe5e0089@rock-chips.com>

Hi Frank,

Am Freitag, 5. August 2016, 16:34:42 schrieb Frank Wang:
> On 2016/8/5 3:10, Heiko St=FCbner wrote:
> > Am Dienstag, 2. August 2016, 15:19:56 schrieb Xing Zheng:
> >> Export these source clocks for usbphy.
> >>=20
> >> Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
> >=20
> > can you please provide a rationale why you need manual control over=
 that
> > intermediate clock?
>=20
> Well, From below graph, you can see that 'clk_usbphyX_480m' is genera=
ted
> from usb2phy, and 'clk_usbphy_480m' which select from
> clk_usbphyX_480m_src via a gate (G13[12])  provided 480M clock to oth=
er
> modules.
>=20
>    xin24m
>=20
>        |__ clk_usb2phy0_ref
>        |
>        |                 |__ clk_usbphy0_480m
>        |                 |
>        |                                   |__clk_usbphy0_480m_src
>        | |
>        | |__clk_usbphy_480m
>        | |
>        |         |__ ... ...
>        |
>        |__ clk_usb2phy1_ref
>        |
>                           |__ clk_usbphy1_480m
>                           |
>                                           |__clk_usbphy1_480m_src
> >=20
> > The two usbphys seem to use the  clk_usb2phyX_ref clocks, generate =
the
> > 480m
> > clocks, but do not seem to need the clk_usbphyX_480m_src gates.
>=20
> Yeah, they used to be. However, the story went something like this,
>=20
> Some PM suspend process related ehci/ohci controller are base on 480m=

> clocks, unfortunately, usb2-phy suspended earlier than ehci/ohci
> (usb2-phy will be auto suspended if no devices plug-in), and the
> clk-480m provided by it was disabled if no module used. As a result, =
the
> PM suspend process was blocked when it run into ehci/ohci module.

ah, so the ehci controller needs that 480m clock as well? Do you happen=
 to=20
have example patches for the ehci/ohci side already? I'd like to peak a=
t what=20
you mean with "some PM suspend process related" things.

Depending on what is actually needed, you could also pull the usbphy ou=
t of=20
autosuspend in a pm-prepare callback of the phy driver itself ... see=20=

http://lxr.free-electrons.com/source/include/linux/pm.h#L86

Like=20
- in the .prepare callback make sure to unsuspend the phy
  and deactivate the autosuspend
- ehci/ohci will poweroff the phy in it s suspend callback (already doe=
s that)
- suspend -> resume
- ehci/ohci will poweron the phy
- in the phy's .complete callback you can reactivate the autosuspend ti=
mer

Because it looks more like you actually need the phy and not the clock =
alone.
So it would be nicer to use mechanisms already in place instead of crea=
ting=20
new dependencies.


> Hence, we are planing to refer clk_usbphyX_480m_src into each ehci/oh=
ci
> driver. Maybe you will challenge why not refer clk_usbphy_480m direct=
ly?
> because there are two ehci/ohci connected in the different usb2phy, a=
nd
> only one clk_usbphy_480m clock was selected in clock tree.

Nope, no argument from me as I fully understand that each phy provides =
its own=20
480m clock :-) .


Heiko

  reply	other threads:[~2016-08-05 16:05 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-02  7:19 [PATCH v3 0/7] fix and optimize some clock configuration for the RK3399 platfom Xing Zheng
2016-08-02  7:19 ` [PATCH v3 2/7] clk: rockchip: rk3399: export 480M_SRC clock id for usbphy0/usbphy1 Xing Zheng
2016-08-04 19:10   ` Heiko Stübner
2016-08-05  8:34     ` Frank Wang
2016-08-05 16:05       ` Heiko Stübner [this message]
2016-08-08  9:55         ` Frank Wang
2016-08-16  6:34           ` Frank Wang
2016-08-02  7:19 ` [PATCH v3 3/7] clk: rockchip: rk3399: fix incorrect GATE bits for {c, g}pll_aclk_perihp_src Xing Zheng
2016-08-12 16:30   ` Heiko Stübner
2016-08-02  7:19 ` [PATCH v3 4/7] clk: rockchip: rk3399: fix incorrect aclk_emmc source gate bits Xing Zheng
2016-08-12  8:05   ` Heiko Stübner
2016-08-02  7:22 ` [PATCH v3 5/7] clk: rockchip: rk3399: add 65MHz and 106.5MHz clocks for HDMI Xing Zheng
2016-08-04 19:05   ` Heiko Stübner
2016-08-02  7:22 ` [PATCH v3 6/7] clk: rockchip: rk3399: delete the CLK_IGNORE_UNUSED for aclk_pcie Xing Zheng
2016-08-04 19:06   ` Heiko Stübner
2016-08-02  7:22 ` [PATCH v3 7/7] clk: rockchip: rk3399: Add support frac mode frequencies Xing Zheng
2016-08-04 19:19   ` Heiko Stübner
2016-08-05  2:26     ` Xing Zheng
2016-08-05  8:48       ` Heiko Stübner
2016-08-05 13:23         ` Xing Zheng
2016-08-05 13:26           ` Heiko Stübner

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=1570410.dThJclhmJd@diego \
    --to=heiko@sntech.de \
    --cc=briannorris@chromium.org \
    --cc=daniel.meng@rock-chips.com \
    --cc=dianders@chromium.org \
    --cc=frank.wang@rock-chips.com \
    --cc=huangtao@rock-chips.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@codeaurora.org \
    --cc=wulf@rock-chips.com \
    --cc=zhangqing@rock-chips.com \
    --cc=zhengxing@rock-chips.com \
    /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