remoteproc: imx_rproc: initial support for mutilple start/stop method
Add three methods IMX_RPROC_NONE(no need start/stop), IMX_RPROC_MMIO (start/stop through mmio) and IMX_RPROC_SMC(start/stop through ARM SMCCC). The current SoCs supported are all using IMX_RPROC_MMIO. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> Link: https://lore.kernel.org/r/1620274123-1461-6-git-send-email-peng.fan@oss.nxp.com Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
e13d1a43aa
commit
52bda8d375
|
@ -74,6 +74,15 @@ struct imx_rproc_att {
|
|||
int flags;
|
||||
};
|
||||
|
||||
/* Remote core start/stop method */
|
||||
enum imx_rproc_method {
|
||||
IMX_RPROC_NONE,
|
||||
/* Through syscon regmap */
|
||||
IMX_RPROC_MMIO,
|
||||
/* Through ARM SMCCC */
|
||||
IMX_RPROC_SMC,
|
||||
};
|
||||
|
||||
struct imx_rproc_dcfg {
|
||||
u32 src_reg;
|
||||
u32 src_mask;
|
||||
|
@ -81,6 +90,7 @@ struct imx_rproc_dcfg {
|
|||
u32 src_stop;
|
||||
const struct imx_rproc_att *att;
|
||||
size_t att_size;
|
||||
enum imx_rproc_method method;
|
||||
};
|
||||
|
||||
struct imx_rproc {
|
||||
|
@ -183,6 +193,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq = {
|
|||
.src_stop = IMX7D_M4_STOP,
|
||||
.att = imx_rproc_att_imx8mq,
|
||||
.att_size = ARRAY_SIZE(imx_rproc_att_imx8mq),
|
||||
.method = IMX_RPROC_MMIO,
|
||||
};
|
||||
|
||||
static const struct imx_rproc_dcfg imx_rproc_cfg_imx7d = {
|
||||
|
@ -192,6 +203,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx7d = {
|
|||
.src_stop = IMX7D_M4_STOP,
|
||||
.att = imx_rproc_att_imx7d,
|
||||
.att_size = ARRAY_SIZE(imx_rproc_att_imx7d),
|
||||
.method = IMX_RPROC_MMIO,
|
||||
};
|
||||
|
||||
static const struct imx_rproc_dcfg imx_rproc_cfg_imx6sx = {
|
||||
|
@ -201,6 +213,7 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx6sx = {
|
|||
.src_stop = IMX6SX_M4_STOP,
|
||||
.att = imx_rproc_att_imx6sx,
|
||||
.att_size = ARRAY_SIZE(imx_rproc_att_imx6sx),
|
||||
.method = IMX_RPROC_MMIO,
|
||||
};
|
||||
|
||||
static int imx_rproc_start(struct rproc *rproc)
|
||||
|
|
Loading…
Reference in New Issue