[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZvS5J/DAc29JmJ4m@lizhi-Precision-Tower-5810>
Date: Wed, 25 Sep 2024 21:30:15 -0400
From: Frank Li <Frank.li@....com>
To: Laurentiu Mihalcea <laurentiumihalcea111@...il.com>
Cc: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Daniel Baluta <daniel.baluta@....com>,
Shengjiu Wang <shengjiu.wang@....com>,
Iuliana Prodan <iuliana.prodan@....com>, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v2 3/6] arm64: dts: imx8qxp: configure dsp node for rproc
usage
On Wed, Sep 25, 2024 at 07:20:05PM -0400, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@....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@....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@...90000 {
> };
>
> dsp: dsp@...e8000 {
> - 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@...00000 {
> status = "disabled";
> };
>
> + dsp_vdev0vring0: vdev0vring0@...f0000 {
> + 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@...f8000 {
> + reg = <0 0x942f8000 0 0x8000>;
> + no-map;
> + status = "disabled";
> + };
> +
> + dsp_vdev0buffer: vdev0buffer@...00000 {
> + compatible = "shared-dma-pool";
> + reg = <0 0x94300000 0 0x100000>;
> + no-map;
> + status = "disabled";
> + };
> +
> encoder_rpc: encoder-rpc@...00000 {
> reg = <0 0x94400000 0 0x700000>;
> no-map;
> --
> 2.34.1
>
Powered by blists - more mailing lists