[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b0d9eae3-0f3d-acf1-8553-0a80e6f6c96f@kontron.de>
Date: Thu, 6 May 2021 08:56:35 +0200
From: Frieder Schrempf <frieder.schrempf@...tron.de>
To: "Peng Fan (OSS)" <peng.fan@....nxp.com>, robh+dt@...nel.org,
shawnguo@...nel.org, s.hauer@...gutronix.de
Cc: kernel@...gutronix.de, festevam@...il.com, linux-imx@....com,
p.zabel@...gutronix.de, l.stach@...gutronix.de, krzk@...nel.org,
agx@...xcpu.org, marex@...x.de, andrew.smirnov@...il.com,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, ping.bai@....com, aford173@...il.com,
abel.vesa@....com, Peng Fan <peng.fan@....com>
Subject: Re: [PATCH V2 13/13] soc: imx: gpcv2: move reset assert after
requesting domain power up
On 06.05.21 03:04, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@....com>
>
> The i.MX8MM VPU power up sequence is a bit special, it must follow:
> 1. request power up
> 2. reset assert
> 3. reset deassert
>
> This change in this patch will not affect other domains, because
> the power domain default is in asserted state, unless bootloader
> deassert the reset. It also applies to GPU power domain.
>
> Signed-off-by: Peng Fan <peng.fan@....com>
I don't really like that there is a dependency on TF-A/bootloader as we never really know what they will do, but from my point of view the approach is ok and it seems to work properly as far as I have tested it (only with GPU).
Reviewed-by: Frieder Schrempf <frieder.schrempf@...tron.de>
Tested-by: Frieder Schrempf <frieder.schrempf@...tron.de>
> ---
> drivers/soc/imx/gpcv2.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c
> index 65b562cbcc6d..325a34833ffa 100644
> --- a/drivers/soc/imx/gpcv2.c
> +++ b/drivers/soc/imx/gpcv2.c
> @@ -217,8 +217,6 @@ static int imx_pgc_power_up(struct generic_pm_domain *genpd)
> goto out_regulator_disable;
> }
>
> - reset_control_assert(domain->reset);
> -
> if (domain->bits.pxx) {
> /* request the domain to power up */
> regmap_update_bits(domain->regmap, GPC_PU_PGC_SW_PUP_REQ,
> @@ -241,6 +239,8 @@ static int imx_pgc_power_up(struct generic_pm_domain *genpd)
> GPC_PGC_CTRL_PCR);
> }
>
> + reset_control_assert(domain->reset);
> +
> /* delay for reset to propagate */
> udelay(5);
>
>
Powered by blists - more mailing lists