[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200514050333.GK16107@builder.lan>
Date: Wed, 13 May 2020 22:03:33 -0700
From: Bjorn Andersson <bjorn.andersson@...aro.org>
To: Mathieu Poirier <mathieu.poirier@...aro.org>
Cc: ohad@...ery.com, mcoquelin.stm32@...il.com,
alexandre.torgue@...com, loic.pallardy@...com,
arnaud.pouliquen@...com, linux-remoteproc@...r.kernel.org,
linux-stm32@...md-mailman.stormreply.com,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 05/12] remoteproc: stm32: Parse syscon that will
manage M4 synchronisation
On Fri 24 Apr 13:24 PDT 2020, Mathieu Poirier wrote:
> Get from the DT the syncon to probe the state of the remote processor
> and the location of the resource table.
>
> Mainly based on the work published by Arnaud Pouliquen [1].
>
> [1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=239877
>
> Signed-off-by: Mathieu Poirier <mathieu.poirier@...aro.org>
> Reviewed-by: Loic Pallardy <loic.pallardy@...com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@...aro.org>
> ---
> drivers/remoteproc/stm32_rproc.c | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rproc.c
> index 658439d4b00a..a285f338bed8 100644
> --- a/drivers/remoteproc/stm32_rproc.c
> +++ b/drivers/remoteproc/stm32_rproc.c
> @@ -70,6 +70,8 @@ struct stm32_rproc {
> struct reset_control *rst;
> struct stm32_syscon hold_boot;
> struct stm32_syscon pdds;
> + struct stm32_syscon m4_state;
> + struct stm32_syscon rsctbl;
> int wdg_irq;
> u32 nb_rmems;
> struct stm32_rproc_mem *rmems;
> @@ -606,6 +608,30 @@ static int stm32_rproc_parse_dt(struct platform_device *pdev,
>
> *auto_boot = of_property_read_bool(np, "st,auto-boot");
>
> + /*
> + * See if we can check the M4 status, i.e if it was started
> + * from the boot loader or not.
> + */
> + err = stm32_rproc_get_syscon(np, "st,syscfg-m4-state",
> + &ddata->m4_state);
> + if (err) {
> + /* remember this */
> + ddata->m4_state.map = NULL;
> + /* no coprocessor state syscon (optional) */
> + dev_warn(dev, "m4 state not supported\n");
> +
> + /* no need to go further */
> + return 0;
> + }
> +
> + /* See if we can get the resource table */
> + err = stm32_rproc_get_syscon(np, "st,syscfg-rsc-tbl",
> + &ddata->rsctbl);
> + if (err) {
> + /* no rsc table syscon (optional) */
> + dev_warn(dev, "rsc tbl syscon not supported\n");
> + }
> +
> return 0;
> }
>
> --
> 2.20.1
>
Powered by blists - more mailing lists