lkml.org 
[lkml]   [2022]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] clk: gcc-sc8280xp: use retention for USB power domains
From

On 9/29/2022 9:41 PM, Johan Hovold wrote:
> Since commit d399723950c4 ("clk: qcom: gdsc: Fix the handling of
> PWRSTS_RET support) retention mode can be used on sc8280xp to maintain
> state during suspend instead of leaving the domain always on.
>
> This is needed to eventually allow the parent CX domain to be powered
> down during suspend.
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
> drivers/clk/qcom/gcc-sc8280xp.c | 13 +++----------
> 1 file changed, 3 insertions(+), 10 deletions(-)
>
> While we're not yet able to fully test this (since we're not hitting CX
> power down) this can still go in as we'll need it in some form
> eventually.

If sc8280xp supports CX power down, it would be good to also put in the
cxcs offsets so USB RET still works even when you do hit CX power down some
time in the future.

>
> Note that the PCIe domains should remain always-on until we have driver
> support for suspend in place.
>
> Johan
>
>
> diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c
> index 7768e6901dcc..a18ed88f3b82 100644
> --- a/drivers/clk/qcom/gcc-sc8280xp.c
> +++ b/drivers/clk/qcom/gcc-sc8280xp.c
> @@ -6843,17 +6843,12 @@ static struct gdsc ufs_phy_gdsc = {
> .pwrsts = PWRSTS_OFF_ON,
> };
>
> -/*
> - * The Qualcomm DWC3 driver suspend implementation appears to be incomplete
> - * for sc8280xp so keep the USB power domains always-on for now.
> - */
> static struct gdsc usb30_mp_gdsc = {
> .gdscr = 0xab004,
> .pd = {
> .name = "usb30_mp_gdsc",
> },
> - .pwrsts = PWRSTS_OFF_ON,
> - .flags = ALWAYS_ON,
> + .pwrsts = PWRSTS_RET_ON,
> };
>
> static struct gdsc usb30_prim_gdsc = {
> @@ -6861,8 +6856,7 @@ static struct gdsc usb30_prim_gdsc = {
> .pd = {
> .name = "usb30_prim_gdsc",
> },
> - .pwrsts = PWRSTS_OFF_ON,
> - .flags = ALWAYS_ON,
> + .pwrsts = PWRSTS_RET_ON,
> };
>
> static struct gdsc usb30_sec_gdsc = {
> @@ -6870,8 +6864,7 @@ static struct gdsc usb30_sec_gdsc = {
> .pd = {
> .name = "usb30_sec_gdsc",
> },
> - .pwrsts = PWRSTS_OFF_ON,
> - .flags = ALWAYS_ON,
> + .pwrsts = PWRSTS_RET_ON,
> };
>
> static struct clk_regmap *gcc_sc8280xp_clocks[] = {

\
 
 \ /
  Last update: 2022-09-30 13:59    [W:0.045 / U:3.792 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site