[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20260123084844.4051570-1-shengjiu.wang@nxp.com>
Date: Fri, 23 Jan 2026 16:48:44 +0800
From: Shengjiu Wang <shengjiu.wang@....com>
To: shawnguo@...nel.org,
s.hauer@...gutronix.de,
kernel@...gutronix.de,
festevam@...il.com,
laurentiu.mihalcea@....com,
daniel.baluta@....com,
imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org,
shengjiu.wang@...il.com
Subject: [PATCH] bus: imx-aipstz: set default value for opacr registers
The sdma script app_2_mcu needs the permission to access the peripheral
devices, so need to clear the Supervisor Protect bit of SPBA2, otherwise
the sdma script can't work.
As the imx-aipstz is a common driver for all apis bus, so set default
value for all opacr registers, that the peripheral does not require
supervisor privilege level for accesses.
Signed-off-by: Shengjiu Wang <shengjiu.wang@....com>
---
drivers/bus/imx-aipstz.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/bus/imx-aipstz.c b/drivers/bus/imx-aipstz.c
index 5fdf377f5d06..b6cb47c06900 100644
--- a/drivers/bus/imx-aipstz.c
+++ b/drivers/bus/imx-aipstz.c
@@ -11,9 +11,19 @@
#include <linux/regmap.h>
#define IMX_AIPSTZ_MPR0 0x0
+#define IMX_AIPSTZ_OPACR0 0x40
+#define IMX_AIPSTZ_OPACR1 0x44
+#define IMX_AIPSTZ_OPACR2 0x48
+#define IMX_AIPSTZ_OPACR3 0x4c
+#define IMX_AIPSTZ_OPACR4 0x50
struct imx_aipstz_config {
u32 mpr0;
+ u32 opacr0;
+ u32 opacr1;
+ u32 opacr2;
+ u32 opacr3;
+ u32 opacr4;
};
struct imx_aipstz_data {
@@ -24,6 +34,11 @@ struct imx_aipstz_data {
static void imx_aipstz_apply_default(struct imx_aipstz_data *data)
{
writel(data->default_cfg->mpr0, data->base + IMX_AIPSTZ_MPR0);
+ writel(data->default_cfg->opacr0, data->base + IMX_AIPSTZ_OPACR0);
+ writel(data->default_cfg->opacr1, data->base + IMX_AIPSTZ_OPACR1);
+ writel(data->default_cfg->opacr2, data->base + IMX_AIPSTZ_OPACR2);
+ writel(data->default_cfg->opacr3, data->base + IMX_AIPSTZ_OPACR3);
+ writel(data->default_cfg->opacr4, data->base + IMX_AIPSTZ_OPACR4);
}
static const struct of_device_id imx_aipstz_match_table[] = {
@@ -84,6 +99,11 @@ static const struct dev_pm_ops imx_aipstz_pm_ops = {
*/
static const struct imx_aipstz_config imx8mp_aipstz_default_cfg = {
.mpr0 = 0x77777777,
+ .opacr0 = 0x0,
+ .opacr1 = 0x0,
+ .opacr2 = 0x0,
+ .opacr3 = 0x0,
+ .opacr4 = 0x0,
};
static const struct of_device_id imx_aipstz_of_ids[] = {
--
2.34.1
Powered by blists - more mailing lists