...
...
15
15
16
Other masters should use the 'access-controllers' property to enforce
16
Other masters should use the 'access-controllers' property to enforce
17
a dependency between their device and the bridge device (see the DSP,
17
a dependency between their device and the bridge device (see the DSP,
18
for example).
18
for example).
19
19
20
At the moment, we only want to apply a default, more relaxed
21
configuration, which is why the number of access controller cells
22
is 0.
23
24
The initial version of the series can be found at [1]. The new version
20
The initial version of the series can be found at [1]. The new version
25
should provide better management of the device dependencies.
21
should provide better management of the device dependencies.
26
22
27
[1]: https://lore.kernel.org/linux-arm-kernel/20241119130726.2761726-1-daniel.baluta@nxp.com/
23
[1]: https://lore.kernel.org/linux-arm-kernel/20241119130726.2761726-1-daniel.baluta@nxp.com/
28
24
25
---
26
Changes in v4:
27
* AIPS5 node now only contains a single memory region: that of the AC
28
(just like in V2). 'reg-names' property is dropped.
29
* AIPS5 node now uses 'ranges' property to restrict the size of the bus
30
(1:1 mapping)
31
* change the number of AC cells from 0 to 3
32
* add binding headers
33
* link to v3: https://lore.kernel.org/lkml/20250324162556.30972-1-laurentiumihalcea111@gmail.com/
29
34
30
Laurentiu Mihalcea (5):
35
Changes in v3:
36
* make '#address-cells' and '#size-cells' constants and equal to 1 in the
37
binding. The bus is 32-bit.
38
* add child node in the example DT snippet.
39
* the 'aips5' DT node now contains 2 memory regions: that of the
40
peripherals accessible via this bridge and that of the access controller.
41
* link to v2: https://lore.kernel.org/lkml/20250226165314.34205-1-laurentiumihalcea111@gmail.com/
42
43
Changes in v2:
44
* adress Frank Li's comments
45
* pick up some A-b/R-b's
46
* don't use "simple-bus" as the second compatible. As per Krzysztof's
47
comment, AIPSTZ is not a "simple-bus".
48
* link to v1: https://lore.kernel.org/lkml/20250221191909.31874-1-laurentiumihalcea111@gmail.com/
49
---
50
51
Laurentiu Mihalcea (6):
31
dt-bindings: bus: add documentation for the IMX AIPSTZ bridge
52
dt-bindings: bus: add documentation for the IMX AIPSTZ bridge
32
dt-bindings: dsp: fsl,dsp: document 'access-controllers' property
53
dt-bindings: dsp: fsl,dsp: document 'access-controllers' property
33
bus: add driver for IMX AIPSTZ bridge
54
bus: add driver for IMX AIPSTZ bridge
34
arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
55
arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
56
arm64: dts: imx8mp: add aipstz master ID definitions
35
arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
57
arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
36
58
37
.../bindings/bus/fsl,imx8mp-aipstz.yaml | 62 +++++++++++++
59
.../bindings/bus/fsl,imx8mp-aipstz.yaml | 104 ++++++++++++++++++
38
.../devicetree/bindings/dsp/fsl,dsp.yaml | 3 +
60
.../devicetree/bindings/dsp/fsl,dsp.yaml | 3 +
39
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 9 +-
61
arch/arm64/boot/dts/freescale/imx8mp-aipstz.h | 25 +++++
40
drivers/bus/Kconfig | 6 ++
62
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 12 +-
41
drivers/bus/Makefile | 1 +
63
drivers/bus/Kconfig | 6 +
42
drivers/bus/imx-aipstz.c | 92 +++++++++++++++++++
64
drivers/bus/Makefile | 1 +
43
6 files changed, 170 insertions(+), 3 deletions(-)
65
drivers/bus/imx-aipstz.c | 92 ++++++++++++++++
66
include/dt-bindings/bus/imx-aipstz.h | 25 +++++
67
8 files changed, 264 insertions(+), 4 deletions(-)
44
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
68
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
69
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
45
create mode 100644 drivers/bus/imx-aipstz.c
70
create mode 100644 drivers/bus/imx-aipstz.c
71
create mode 100644 include/dt-bindings/bus/imx-aipstz.h
46
72
47
--
73
--
48
2.34.1
74
2.34.1
diff view generated by jsdifflib
...
...
4
4
5
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
5
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
6
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
6
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
7
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
7
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
8
---
8
---
9
.../bindings/bus/fsl,imx8mp-aipstz.yaml | 62 +++++++++++++++++++
9
.../bindings/bus/fsl,imx8mp-aipstz.yaml | 104 ++++++++++++++++++
10
1 file changed, 62 insertions(+)
10
include/dt-bindings/bus/imx-aipstz.h | 25 +++++
11
2 files changed, 129 insertions(+)
11
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
12
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
13
create mode 100644 include/dt-bindings/bus/imx-aipstz.h
12
14
13
diff --git a/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml b/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
15
diff --git a/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml b/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
14
new file mode 100644
16
new file mode 100644
15
index XXXXXXX..XXXXXXX
17
index XXXXXXX..XXXXXXX
16
--- /dev/null
18
--- /dev/null
...
...
23
+$schema: http://devicetree.org/meta-schemas/core.yaml#
25
+$schema: http://devicetree.org/meta-schemas/core.yaml#
24
+
26
+
25
+title: Secure AHB to IP Slave bus (AIPSTZ) bridge
27
+title: Secure AHB to IP Slave bus (AIPSTZ) bridge
26
+
28
+
27
+description:
29
+description:
28
+ The secure AIPS bridge (AIPSTZ) acts as a bridge for AHB masters
30
+ The secure AIPS bridge (AIPSTZ) acts as a bridge for AHB masters issuing
29
+ issuing transactions to IP Slave peripherals. Additionally, this module
31
+ transactions to IP Slave peripherals. Additionally, this module offers access
30
+ offers access control configurations meant to restrict which peripherals
32
+ control configurations meant to restrict which peripherals a master can
31
+ a master can access.
33
+ access.
32
+
34
+
33
+maintainers:
35
+maintainers:
34
+ - Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
36
+ - Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
35
+
37
+
36
+select:
37
+ properties:
38
+ compatible:
39
+ contains:
40
+ const: fsl,imx8mp-aipstz
41
+ required:
42
+ - compatible
43
+
44
+properties:
38
+properties:
45
+ compatible:
39
+ compatible:
46
+ items:
40
+ const: fsl,imx8mp-aipstz
47
+ - const: fsl,imx8mp-aipstz
48
+ - const: simple-bus
49
+
41
+
50
+ reg:
42
+ reg:
51
+ maxItems: 1
43
+ maxItems: 1
52
+
44
+
53
+ power-domains:
45
+ power-domains:
54
+ maxItems: 1
46
+ maxItems: 1
55
+
47
+
48
+ "#address-cells":
49
+ const: 1
50
+
51
+ "#size-cells":
52
+ const: 1
53
+
56
+ "#access-controller-cells":
54
+ "#access-controller-cells":
57
+ const: 0
55
+ const: 3
56
+ description:
57
+ The first cell consists of the consumer type (master or peripheral).
58
+ The second cell consists of the consumer ID.
59
+ The third cell consists of the configuration value.
60
+
61
+ ranges: true
62
+
63
+# borrowed from simple-bus.yaml, no additional requirements for children
64
+patternProperties:
65
+ "@(0|[1-9a-f][0-9a-f]*)$":
66
+ type: object
67
+ additionalProperties: true
68
+ properties:
69
+ reg:
70
+ items:
71
+ minItems: 2
72
+ maxItems: 4
73
+ minItems: 1
74
+ maxItems: 1024
75
+ ranges:
76
+ oneOf:
77
+ - items:
78
+ minItems: 3
79
+ maxItems: 7
80
+ minItems: 1
81
+ maxItems: 1024
82
+ - $ref: /schemas/types.yaml#/definitions/flag
83
+ anyOf:
84
+ - required:
85
+ - reg
86
+ - required:
87
+ - ranges
58
+
88
+
59
+required:
89
+required:
60
+ - compatible
90
+ - compatible
61
+ - reg
91
+ - reg
62
+ - power-domains
92
+ - power-domains
93
+ - "#address-cells"
94
+ - "#size-cells"
63
+ - "#access-controller-cells"
95
+ - "#access-controller-cells"
96
+ - ranges
64
+
97
+
65
+allOf:
98
+additionalProperties: false
66
+ - $ref: /schemas/simple-bus.yaml#
67
+
68
+unevaluatedProperties: false
69
+
99
+
70
+examples:
100
+examples:
71
+ - |
101
+ - |
102
+ #include <dt-bindings/clock/imx8mp-clock.h>
103
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
104
+
72
+ bus@30df0000 {
105
+ bus@30df0000 {
73
+ compatible = "fsl,imx8mp-aipstz", "simple-bus";
106
+ compatible = "fsl,imx8mp-aipstz";
74
+ reg = <0x30df0000 0x10000>;
107
+ reg = <0x30df0000 0x10000>;
75
+ power-domains = <&pgc_audio>;
108
+ power-domains = <&pgc_audio>;
76
+ #address-cells = <1>;
109
+ #address-cells = <1>;
77
+ #size-cells = <1>;
110
+ #size-cells = <1>;
78
+ #access-controller-cells = <0>;
111
+ #access-controller-cells = <3>;
79
+ ranges;
112
+ ranges = <0x30c00000 0x30c00000 0x400000>;
113
+
114
+ dma-controller@30e00000 {
115
+ compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
116
+ reg = <0x30e00000 0x10000>;
117
+ #dma-cells = <3>;
118
+ clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>,
119
+ <&clk IMX8MP_CLK_AUDIO_ROOT>;
120
+ clock-names = "ipg", "ahb";
121
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
122
+ fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
123
+ };
80
+ };
124
+ };
125
diff --git a/include/dt-bindings/bus/imx-aipstz.h b/include/dt-bindings/bus/imx-aipstz.h
126
new file mode 100644
127
index XXXXXXX..XXXXXXX
128
--- /dev/null
129
+++ b/include/dt-bindings/bus/imx-aipstz.h
130
@@ -XXX,XX +XXX,XX @@
131
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
132
+/*
133
+ * Copyright 2025 NXP
134
+ */
135
+
136
+#ifndef _DT_BINDINGS_BUS_IMX_AIPSTZ_H
137
+#define _DT_BINDINGS_BUS_IMX_AIPSTZ_H
138
+
139
+/* consumer type - master or peripheral */
140
+#define IMX_AIPSTZ_MASTER 0x0
141
+#define IMX_AIPSTZ_PERIPH 0x1
142
+
143
+/* master configuration options */
144
+#define IMX_AIPSTZ_MPL 0x1
145
+#define IMX_AIPSTZ_MTW 0x2
146
+#define IMX_AIPSTZ_MTR 0x4
147
+#define IMX_AIPSTZ_MBW 0x8
148
+
149
+/* peripheral configuration options */
150
+#define IMX_AIPSTZ_TP 0x1
151
+#define IMX_AIPSTZ_WP 0x2
152
+#define IMX_AIPSTZ_SP 0x4
153
+#define IMX_AIPSTZ_BW 0x8
154
+
155
+#endif /* _DT_BINDINGS_BUS_IMX_AIPSTZ_H */
81
--
156
--
82
2.34.1
157
2.34.1
diff view generated by jsdifflib
...
...
6
6
7
Add the optional 'access-controllers' property, which may be used
7
Add the optional 'access-controllers' property, which may be used
8
in such cases.
8
in such cases.
9
9
10
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
10
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
11
Reviewed-by: Frank Li <Frank.Li@nxp.com>
12
Acked-by: Rob Herring (Arm) <robh@kernel.org>
11
---
13
---
12
Documentation/devicetree/bindings/dsp/fsl,dsp.yaml | 3 +++
14
Documentation/devicetree/bindings/dsp/fsl,dsp.yaml | 3 +++
13
1 file changed, 3 insertions(+)
15
1 file changed, 3 insertions(+)
14
16
15
diff --git a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
17
diff --git a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
16
index XXXXXXX..XXXXXXX 100644
18
index XXXXXXX..XXXXXXX 100644
17
--- a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
19
--- a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
18
+++ b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
20
+++ b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
19
@@ -XXX,XX +XXX,XX @@ properties:
21
@@ -XXX,XX +XXX,XX @@ properties:
20
description:
22
- const: runstall
21
Phandle to syscon block which provide access for processor enablement
23
- const: softreset
22
24
23
+ access-controllers:
25
+ access-controllers:
24
+ maxItems: 1
26
+ maxItems: 1
25
+
27
+
26
required:
28
required:
27
- compatible
29
- compatible
28
- reg
30
- reg
29
--
31
--
30
2.34.1
32
2.34.1
diff view generated by jsdifflib
...
...
15
access controllers (and since there's currently no need for having
15
access controllers (and since there's currently no need for having
16
flexibility w.r.t the configurations) all this driver does is it
16
flexibility w.r.t the configurations) all this driver does is it
17
applies a relaxed, "default" configuration, in which all masters
17
applies a relaxed, "default" configuration, in which all masters
18
are trusted for R/W.
18
are trusted for R/W.
19
19
20
Note that some instances of this IP may be tied to a power domain and may
20
Note that some instances of this IP (e.g: AIPSTZ5 on i.MX8MP) may be tied
21
lose their configuration when the domain is powered off. This is why the
21
to a power domain and may lose their configuration when the domain is
22
configuration has to be restored when the domain is powered on.
22
powered off. This is why the configuration has to be restored when the
23
domain is powered on.
23
24
24
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
25
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
25
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
26
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
26
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
27
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
27
---
28
---
...
...
90
+    writel(default_cfg->mpr0, base + IMX_AIPSTZ_MPR0);
91
+    writel(default_cfg->mpr0, base + IMX_AIPSTZ_MPR0);
91
+}
92
+}
92
+
93
+
93
+static int imx_aipstz_probe(struct platform_device *pdev)
94
+static int imx_aipstz_probe(struct platform_device *pdev)
94
+{
95
+{
96
+    const struct imx_aipstz_config *default_cfg;
95
+    void __iomem *base;
97
+    void __iomem *base;
96
+    const struct imx_aipstz_config *default_cfg;
97
+
98
+
98
+    base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
99
+    base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
99
+    if (IS_ERR(base))
100
+    if (IS_ERR(base))
100
+        return dev_err_probe(&pdev->dev, -ENOMEM,
101
+        return dev_err_probe(&pdev->dev, -ENOMEM,
101
+                 "failed to get/ioremap memory\n");
102
+                 "failed to get/ioremap AC memory\n");
102
+
103
+
103
+    default_cfg = of_device_get_match_data(&pdev->dev);
104
+    default_cfg = of_device_get_match_data(&pdev->dev);
104
+
105
+
105
+    imx_aipstz_apply_default(base, default_cfg);
106
+    imx_aipstz_apply_default(base, default_cfg);
106
+
107
+
...
...
112
+    return devm_of_platform_populate(&pdev->dev);
113
+    return devm_of_platform_populate(&pdev->dev);
113
+}
114
+}
114
+
115
+
115
+static int imx_aipstz_runtime_resume(struct device *dev)
116
+static int imx_aipstz_runtime_resume(struct device *dev)
116
+{
117
+{
118
+    const struct imx_aipstz_config *default_cfg;
117
+    void __iomem *base;
119
+    void __iomem *base;
118
+    const struct imx_aipstz_config *default_cfg;
119
+
120
+
120
+    base = dev_get_drvdata(dev);
121
+    base = dev_get_drvdata(dev);
121
+    default_cfg = of_device_get_match_data(dev);
122
+    default_cfg = of_device_get_match_data(dev);
122
+
123
+
123
+    /* restore potentially lost configuration during domain power-off */
124
+    /* restore potentially lost configuration during domain power-off */
...
...
diff view generated by jsdifflib
...
...
16
16
17
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
17
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
18
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
18
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
19
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
19
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
20
---
20
---
21
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 8 +++++---
21
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 10 ++++++----
22
1 file changed, 5 insertions(+), 3 deletions(-)
22
1 file changed, 6 insertions(+), 4 deletions(-)
23
23
24
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
24
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
25
index XXXXXXX..XXXXXXX 100644
25
index XXXXXXX..XXXXXXX 100644
26
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
26
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
27
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
27
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
...
...
31
31
32
-        aips5: bus@30c00000 {
32
-        aips5: bus@30c00000 {
33
-            compatible = "fsl,aips-bus", "simple-bus";
33
-            compatible = "fsl,aips-bus", "simple-bus";
34
-            reg = <0x30c00000 0x400000>;
34
-            reg = <0x30c00000 0x400000>;
35
+        aips5: bus@30df0000 {
35
+        aips5: bus@30df0000 {
36
+            compatible = "fsl,imx8mp-aipstz", "simple-bus";
36
+            compatible = "fsl,imx8mp-aipstz";
37
+            reg = <0x30df0000 0x10000>;
37
+            reg = <0x30df0000 0x10000>;
38
+            power-domains = <&pgc_audio>;
38
+            power-domains = <&pgc_audio>;
39
            #address-cells = <1>;
39
            #address-cells = <1>;
40
            #size-cells = <1>;
40
            #size-cells = <1>;
41
+            #access-controller-cells = <0>;
41
-            ranges;
42
            ranges;
42
+            #access-controller-cells = <3>;
43
+            ranges = <0x30c00000 0x30c00000 0x400000>;
43
44
44
            spba-bus@30c00000 {
45
            spba-bus@30c00000 {
46
                compatible = "fsl,spba-bus", "simple-bus";
45
--
47
--
46
2.34.1
48
2.34.1
diff view generated by jsdifflib
New patch
1
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
1
2
3
Add header file with master ID definitions for i.MX8MP's AIPSTZ.
4
5
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
6
---
7
arch/arm64/boot/dts/freescale/imx8mp-aipstz.h | 25 +++++++++++++++++++
8
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 1 +
9
2 files changed, 26 insertions(+)
10
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
11
12
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h b/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
13
new file mode 100644
14
index XXXXXXX..XXXXXXX
15
--- /dev/null
16
+++ b/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
17
@@ -XXX,XX +XXX,XX @@
18
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
19
+/*
20
+ * Copyright 2025 NXP
21
+ */
22
+
23
+#ifndef __IMX8MP_AIPSTZ_H
24
+#define __IMX8MP_AIPSTZ_H
25
+
26
+#include <dt-bindings/bus/imx-aipstz.h>
27
+
28
+/* master ID definitions */
29
+#define IMX8MP_AIPSTZ_EDMA 0 /* AUDIOMIX EDMA */
30
+#define IMX8MP_AIPSTZ_CA53 1 /* Cortex-A53 cluster */
31
+#define IMX8MP_AIPSTZ_SDMA2 3 /* AUDIOMIX SDMA2 */
32
+#define IMX8MP_AIPSTZ_SDMA3 3 /* AUDIOMIX SDMA3 */
33
+#define IMX8MP_AIPSTZ_HIFI4 5 /* HIFI4 DSP */
34
+#define IMX8MP_AIPSTZ_CM7 6 /* Cortex-M7 */
35
+
36
+/* helper macros */
37
+#define IMX8MP_AIPSTZ_HIFI4_T_RW_PL                \
38
+    IMX_AIPSTZ_MASTER                    \
39
+    IMX8MP_AIPSTZ_HIFI4                    \
40
+    (IMX_AIPSTZ_MPL | IMX_AIPSTZ_MTW | IMX_AIPSTZ_MTR)
41
+
42
+#endif /* __IMX8MP_AIPSTZ_H */
43
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
44
index XXXXXXX..XXXXXXX 100644
45
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
46
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
47
@@ -XXX,XX +XXX,XX @@
48
#include <dt-bindings/interrupt-controller/arm-gic.h>
49
#include <dt-bindings/thermal/thermal.h>
50
51
+#include "imx8mp-aipstz.h"
52
#include "imx8mp-pinfunc.h"
53
54
/ {
55
--
56
2.34.1
diff view generated by jsdifflib
1
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
1
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2
2
3
The DSP may want to access peripherals on AIPSTZ5. To do so, the
3
The DSP needs to access peripherals on AIPSTZ5 (to communicate with
4
security-related registers of the bridge have to be configured before
4
the AP using AUDIOMIX MU, for instance). To do so, the security-related
5
the DSP is started. Enforce a dependency on AIPSTZ5 by adding the
5
registers of the bridge have to be configured before the DSP is started.
6
'access-controllers' property to the 'dsp' node.
6
Enforce a dependency on AIPSTZ5 by adding the 'access-controllers'
7
property to the 'dsp' node.
7
8
8
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
9
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
9
---
10
---
10
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 1 +
11
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 1 +
11
1 file changed, 1 insertion(+)
12
1 file changed, 1 insertion(+)
...
...
16
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
17
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
17
@@ -XXX,XX +XXX,XX @@ dsp: dsp@3b6e8000 {
18
@@ -XXX,XX +XXX,XX @@ dsp: dsp@3b6e8000 {
18
            mboxes = <&mu2 2 0>, <&mu2 2 1>,
19
            mboxes = <&mu2 2 0>, <&mu2 2 1>,
19
                <&mu2 3 0>, <&mu2 3 1>;
20
                <&mu2 3 0>, <&mu2 3 1>;
20
            memory-region = <&dsp_reserved>;
21
            memory-region = <&dsp_reserved>;
21
+            access-controllers = <&aips5>;
22
+            access-controllers = <&aips5 IMX8MP_AIPSTZ_HIFI4_T_RW_PL>;
22
            status = "disabled";
23
            status = "disabled";
23
        };
24
        };
24
    };
25
    };
25
--
26
--
26
2.34.1
27
2.34.1
diff view generated by jsdifflib