mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
remoteproc: imx_rproc: support i.MX8MQ/M
Add i.MX8MQ dev/sys addr map and configuration data structure i.MX8MM share i.MX8MQ settings. Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com> Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> Link: https://lore.kernel.org/r/1615029865-23312-9-git-send-email-peng.fan@oss.nxp.com Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
b29b4249f8
commit
4ab8f9607a
@ -24,11 +24,11 @@ config REMOTEPROC_CDEV
|
||||
It's safe to say N if you don't want to use this interface.
|
||||
|
||||
config IMX_REMOTEPROC
|
||||
tristate "IMX6/7 remoteproc support"
|
||||
tristate "i.MX remoteproc support"
|
||||
depends on ARCH_MXC
|
||||
help
|
||||
Say y here to support iMX's remote processors (Cortex M4
|
||||
on iMX7D) via the remote processor framework.
|
||||
Say y here to support iMX's remote processors via the remote
|
||||
processor framework.
|
||||
|
||||
It's safe to say N here.
|
||||
|
||||
|
@ -88,6 +88,34 @@ struct imx_rproc {
|
||||
struct clk *clk;
|
||||
};
|
||||
|
||||
static const struct imx_rproc_att imx_rproc_att_imx8mq[] = {
|
||||
/* dev addr , sys addr , size , flags */
|
||||
/* TCML - alias */
|
||||
{ 0x00000000, 0x007e0000, 0x00020000, 0 },
|
||||
/* OCRAM_S */
|
||||
{ 0x00180000, 0x00180000, 0x00008000, 0 },
|
||||
/* OCRAM */
|
||||
{ 0x00900000, 0x00900000, 0x00020000, 0 },
|
||||
/* OCRAM */
|
||||
{ 0x00920000, 0x00920000, 0x00020000, 0 },
|
||||
/* QSPI Code - alias */
|
||||
{ 0x08000000, 0x08000000, 0x08000000, 0 },
|
||||
/* DDR (Code) - alias */
|
||||
{ 0x10000000, 0x80000000, 0x0FFE0000, 0 },
|
||||
/* TCML */
|
||||
{ 0x1FFE0000, 0x007E0000, 0x00020000, ATT_OWN },
|
||||
/* TCMU */
|
||||
{ 0x20000000, 0x00800000, 0x00020000, ATT_OWN },
|
||||
/* OCRAM_S */
|
||||
{ 0x20180000, 0x00180000, 0x00008000, ATT_OWN },
|
||||
/* OCRAM */
|
||||
{ 0x20200000, 0x00900000, 0x00020000, ATT_OWN },
|
||||
/* OCRAM */
|
||||
{ 0x20220000, 0x00920000, 0x00020000, ATT_OWN },
|
||||
/* DDR (Data) */
|
||||
{ 0x40000000, 0x40000000, 0x80000000, 0 },
|
||||
};
|
||||
|
||||
static const struct imx_rproc_att imx_rproc_att_imx7d[] = {
|
||||
/* dev addr , sys addr , size , flags */
|
||||
/* OCRAM_S (M4 Boot code) - alias */
|
||||
@ -138,6 +166,15 @@ static const struct imx_rproc_att imx_rproc_att_imx6sx[] = {
|
||||
{ 0x80000000, 0x80000000, 0x60000000, 0 },
|
||||
};
|
||||
|
||||
static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq = {
|
||||
.src_reg = IMX7D_SRC_SCR,
|
||||
.src_mask = IMX7D_M4_RST_MASK,
|
||||
.src_start = IMX7D_M4_START,
|
||||
.src_stop = IMX7D_M4_STOP,
|
||||
.att = imx_rproc_att_imx8mq,
|
||||
.att_size = ARRAY_SIZE(imx_rproc_att_imx8mq),
|
||||
};
|
||||
|
||||
static const struct imx_rproc_dcfg imx_rproc_cfg_imx7d = {
|
||||
.src_reg = IMX7D_SRC_SCR,
|
||||
.src_mask = IMX7D_M4_RST_MASK,
|
||||
@ -496,6 +533,8 @@ static int imx_rproc_remove(struct platform_device *pdev)
|
||||
static const struct of_device_id imx_rproc_of_match[] = {
|
||||
{ .compatible = "fsl,imx7d-cm4", .data = &imx_rproc_cfg_imx7d },
|
||||
{ .compatible = "fsl,imx6sx-cm4", .data = &imx_rproc_cfg_imx6sx },
|
||||
{ .compatible = "fsl,imx8mq-cm4", .data = &imx_rproc_cfg_imx8mq },
|
||||
{ .compatible = "fsl,imx8mm-cm4", .data = &imx_rproc_cfg_imx8mq },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, imx_rproc_of_match);
|
||||
@ -512,5 +551,5 @@ static struct platform_driver imx_rproc_driver = {
|
||||
module_platform_driver(imx_rproc_driver);
|
||||
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DESCRIPTION("IMX6SX/7D remote processor control driver");
|
||||
MODULE_DESCRIPTION("i.MX remote processor control driver");
|
||||
MODULE_AUTHOR("Oleksij Rempel <o.rempel@pengutronix.de>");
|
||||
|
Loading…
Reference in New Issue
Block a user