]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
authorLaurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Tue, 11 Nov 2025 12:00:22 +0000 (04:00 -0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 17 Nov 2025 00:56:56 +0000 (08:56 +0800)
The DSP needs to access peripherals on AIPSTZ5 (to communicate with
the AP using AUDIOMIX MU, for instance). To do so, the security-related
registers of the bridge have to be configured before the DSP is started.
Enforce a dependency on AIPSTZ5 by adding the 'access-controllers'
property to the 'dsp' node.

Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mp-aipstz.h [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp.dtsi

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h b/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
new file mode 100644 (file)
index 0000000..6481c48
--- /dev/null
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright 2025 NXP
+ */
+
+#ifndef __IMX8MP_AIPSTZ_H
+#define __IMX8MP_AIPSTZ_H
+
+/* consumer type - master or peripheral */
+#define IMX8MP_AIPSTZ_MASTER           0x0
+#define IMX8MP_AIPSTZ_PERIPH           0x1
+
+/* master configuration options */
+#define IMX8MP_AIPSTZ_MPL              (1 << 0)
+#define IMX8MP_AIPSTZ_MTW              (1 << 1)
+#define IMX8MP_AIPSTZ_MTR              (1 << 2)
+#define IMX8MP_AIPSTZ_MBW              (1 << 3)
+
+/* peripheral configuration options */
+#define IMX8MP_AIPSTZ_TP               (1 << 0)
+#define IMX8MP_AIPSTZ_WP               (1 << 1)
+#define IMX8MP_AIPSTZ_SP               (1 << 2)
+#define IMX8MP_AIPSTZ_BW               (1 << 3)
+
+/* master ID definitions */
+#define IMX8MP_AIPSTZ_EDMA             0 /* AUDIOMIX EDMA */
+#define IMX8MP_AIPSTZ_CA53             1 /* Cortex-A53 cluster */
+#define IMX8MP_AIPSTZ_SDMA2            3 /* AUDIOMIX SDMA2 */
+#define IMX8MP_AIPSTZ_SDMA3            3 /* AUDIOMIX SDMA3 */
+#define IMX8MP_AIPSTZ_HIFI4            5 /* HIFI4 DSP */
+#define IMX8MP_AIPSTZ_CM7              6 /* Cortex-M7 */
+
+#endif /* __IMX8MP_AIPSTZ_H */
index c4350cfd6e7322d545255d0d6ccab7c592a48421..9b2b3a9bf9e80ca836d63b4d4d3801f859fc19d6 100644 (file)
@@ -13,6 +13,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/thermal/thermal.h>
 
+#include "imx8mp-aipstz.h"
 #include "imx8mp-pinfunc.h"
 
 / {
                        firmware-name = "imx/dsp/hifi4.bin";
                        resets = <&audio_blk_ctrl IMX8MP_AUDIOMIX_DSP_RUNSTALL>;
                        reset-names = "runstall";
+                       access-controllers = <&aips5
+                               IMX8MP_AIPSTZ_HIFI4
+                               IMX8MP_AIPSTZ_MASTER
+                               (IMX8MP_AIPSTZ_MPL | IMX8MP_AIPSTZ_MTW | IMX8MP_AIPSTZ_MTR)
+                       >;
                        status = "disabled";
                };
        };