From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Currently, the dsp node is configured for SOF usage, which is not the
"default" case and should be done in a separate SOF DTS. As such,
configure the dsp node for rproc usage, which is the "default" case.
This also includes the addition of the 2 optional power domains which
may be required by some applications.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
.../boot/dts/freescale/imx8-ss-audio.dtsi | 20 +++++++++----------
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 15 +++++++++++++-
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 19 ++++++++++++++++++
3 files changed, 42 insertions(+), 12 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi
index ff5df0fed9e9..28970211dd67 100644
--- a/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi
@@ -431,22 +431,20 @@ dsp_ram_lpcg: clock-controller@59590000 {
};
dsp: dsp@596e8000 {
- compatible = "fsl,imx8qxp-dsp";
+ compatible = "fsl,imx8qxp-hifi4";
reg = <0x596e8000 0x88000>;
clocks = <&dsp_lpcg IMX_LPCG_CLK_5>,
<&dsp_ram_lpcg IMX_LPCG_CLK_4>,
<&dsp_lpcg IMX_LPCG_CLK_7>;
clock-names = "ipg", "ocram", "core";
- power-domains = <&pd IMX_SC_R_MU_13A>,
- <&pd IMX_SC_R_MU_13B>,
- <&pd IMX_SC_R_DSP>,
- <&pd IMX_SC_R_DSP_RAM>;
- mbox-names = "txdb0", "txdb1",
- "rxdb0", "rxdb1";
- mboxes = <&lsio_mu13 2 0>,
- <&lsio_mu13 2 1>,
- <&lsio_mu13 3 0>,
- <&lsio_mu13 3 1>;
+ power-domains = <&pd IMX_SC_R_MU_13B>,
+ <&pd IMX_SC_R_IRQSTR_DSP>,
+ <&pd IMX_SC_R_MU_2A>;
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&lsio_mu13 0 0>,
+ <&lsio_mu13 1 0>,
+ <&lsio_mu13 3 0>;
+ firmware-name = "imx/dsp/hifi4.bin";
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
index 936ba5ecdcac..527933a3eb5c 100644
--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
+++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
@@ -63,7 +63,8 @@ sound-wm8960 {
};
&dsp {
- memory-region = <&dsp_reserved>;
+ memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>,
+ <&dsp_vdev0vring1>, <&dsp_reserved>;
status = "okay";
};
@@ -71,6 +72,18 @@ &dsp_reserved {
status = "okay";
};
+&dsp_vdev0buffer {
+ status = "okay";
+};
+
+&dsp_vdev0vring0 {
+ status = "okay";
+};
+
+&dsp_vdev0vring1 {
+ status = "okay";
+};
+
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_fec1>;
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
index 0313f295de2e..9522a65b3e22 100644
--- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
@@ -186,6 +186,25 @@ dsp_reserved: dsp@92400000 {
status = "disabled";
};
+ dsp_vdev0vring0: vdev0vring0@942f0000 {
+ reg = <0 0x942f0000 0 0x8000>;
+ no-map;
+ status = "disabled";
+ };
+
+ dsp_vdev0vring1: vdev0vring1@942f8000 {
+ reg = <0 0x942f8000 0 0x8000>;
+ no-map;
+ status = "disabled";
+ };
+
+ dsp_vdev0buffer: vdev0buffer@94300000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x94300000 0 0x100000>;
+ no-map;
+ status = "disabled";
+ };
+
encoder_rpc: encoder-rpc@94400000 {
reg = <0 0x94400000 0 0x700000>;
no-map;
--
2.34.1
On Wed, Sep 25, 2024 at 07:20:05PM -0400, Laurentiu Mihalcea wrote: > From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > > Currently, the dsp node is configured for SOF usage, which is not the > "default" case and should be done in a separate SOF DTS. As such, > configure the dsp node for rproc usage, which is the "default" case. You should descript the reason why SOF is not default one. > > This also includes the addition of the 2 optional power domains which > may be required by some applications. > > Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > --- > .../boot/dts/freescale/imx8-ss-audio.dtsi | 20 +++++++++---------- > arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 15 +++++++++++++- > arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 19 ++++++++++++++++++ > 3 files changed, 42 insertions(+), 12 deletions(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi > index ff5df0fed9e9..28970211dd67 100644 > --- a/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi > @@ -431,22 +431,20 @@ dsp_ram_lpcg: clock-controller@59590000 { > }; > > dsp: dsp@596e8000 { > - compatible = "fsl,imx8qxp-dsp"; > + compatible = "fsl,imx8qxp-hifi4"; > reg = <0x596e8000 0x88000>; > clocks = <&dsp_lpcg IMX_LPCG_CLK_5>, > <&dsp_ram_lpcg IMX_LPCG_CLK_4>, > <&dsp_lpcg IMX_LPCG_CLK_7>; > clock-names = "ipg", "ocram", "core"; > - power-domains = <&pd IMX_SC_R_MU_13A>, > - <&pd IMX_SC_R_MU_13B>, > - <&pd IMX_SC_R_DSP>, > - <&pd IMX_SC_R_DSP_RAM>; > - mbox-names = "txdb0", "txdb1", > - "rxdb0", "rxdb1"; > - mboxes = <&lsio_mu13 2 0>, > - <&lsio_mu13 2 1>, > - <&lsio_mu13 3 0>, > - <&lsio_mu13 3 1>; > + power-domains = <&pd IMX_SC_R_MU_13B>, > + <&pd IMX_SC_R_IRQSTR_DSP>, > + <&pd IMX_SC_R_MU_2A>; > + mbox-names = "tx", "rx", "rxdb"; > + mboxes = <&lsio_mu13 0 0>, > + <&lsio_mu13 1 0>, > + <&lsio_mu13 3 0>; > + firmware-name = "imx/dsp/hifi4.bin"; > status = "disabled"; > }; > > diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts > index 936ba5ecdcac..527933a3eb5c 100644 > --- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts > +++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts Shawn's requirement: board dts should be sperated patch. > @@ -63,7 +63,8 @@ sound-wm8960 { > }; > > &dsp { > - memory-region = <&dsp_reserved>; > + memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>, > + <&dsp_vdev0vring1>, <&dsp_reserved>; > status = "okay"; > }; > > @@ -71,6 +72,18 @@ &dsp_reserved { > status = "okay"; > }; > > +&dsp_vdev0buffer { > + status = "okay"; > +}; > + > +&dsp_vdev0vring0 { > + status = "okay"; > +}; > + > +&dsp_vdev0vring1 { > + status = "okay"; > +}; > + > &fec1 { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_fec1>; > diff --git a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi > index 0313f295de2e..9522a65b3e22 100644 > --- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi > @@ -186,6 +186,25 @@ dsp_reserved: dsp@92400000 { > status = "disabled"; > }; > > + dsp_vdev0vring0: vdev0vring0@942f0000 { > + reg = <0 0x942f0000 0 0x8000>; > + no-map; > + status = "disabled"; > + }; This should move into board file like imx8qm-mek.dts because diffference board has difference memory layout. And node name 'vdev0vring0' should be common name 'memory'. I forget reply your email. Driver should use phandle to get it. Node name doesn't impact your driver if driver implement is correct. Frank > + > + dsp_vdev0vring1: vdev0vring1@942f8000 { > + reg = <0 0x942f8000 0 0x8000>; > + no-map; > + status = "disabled"; > + }; > + > + dsp_vdev0buffer: vdev0buffer@94300000 { > + compatible = "shared-dma-pool"; > + reg = <0 0x94300000 0 0x100000>; > + no-map; > + status = "disabled"; > + }; > + > encoder_rpc: encoder-rpc@94400000 { > reg = <0 0x94400000 0 0x700000>; > no-map; > -- > 2.34.1 >
© 2016 - 2024 Red Hat, Inc.