Message ID | 20241023162114.3354-5-laurentiumihalcea111@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | add sof support on imx95 | expand |
On Wed, Oct 23, 2024 at 12:21:14PM -0400, Laurentiu Mihalcea wrote: > From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > > Add imx95 DTS for SOF usage. > > Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > --- > arch/arm64/boot/dts/freescale/Makefile | 1 + > .../dts/freescale/imx95-19x19-evk-sof.dts | 86 +++++++++++++++++++ > 2 files changed, 87 insertions(+) > create mode 100644 arch/arm64/boot/dts/freescale/imx95-19x19-evk-sof.dts > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index 2a69b7ec6d6d..94660e3e8b2b 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -267,6 +267,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxca.dtb > dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxla.dtb > dtb-$(CONFIG_ARCH_MXC) += imx93-var-som-symphony.dtb > dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb > +dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb > > imx8mm-kontron-dl-dtbs := imx8mm-kontron-bl.dtb imx8mm-kontron-dl.dtbo > > diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk-sof.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk-sof.dts > new file mode 100644 > index 000000000000..b10dc1af5ce2 > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk-sof.dts > @@ -0,0 +1,86 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright 2024 NXP > + */ > + > +/dts-v1/; > + > +#include "imx95-19x19-evk.dts" > + > +/ { > + reserved-memory { > + adma_res: memory@86100000 { > + compatible = "shared-dma-pool"; > + reg = <0x0 0x86100000 0x0 0x100000>; > + no-map; > + }; > + }; > + > + sound-wm8962 { > + status = "disabled"; > + }; > + > + sof-sound-wm8962 { > + compatible = "audio-graph-card2"; > + > + links = <&cpu>; > + label = "wm8962-audio"; > + > + hp-det-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_hp>; > + > + widgets = > + "Headphone", "Headphones", > + "Microphone", "Headset Mic"; > + routing = > + "Headphones", "HPOUTL", > + "Headphones", "HPOUTR", > + "Headset Mic", "MICBIAS", > + "IN3R", "Headset Mic", > + "IN1R", "Headset Mic"; > + }; > + > + sof_cpu: cm7-cpu@80000000 { > + compatible = "fsl,imx95-cm7-sof"; needn't space, and remove other extra space. Can you try https://github.com/lznuaa/dt-format to order these nodes and properties. Frank > + > + reg = <0x0 0x80000000 0x0 0x400000>, > + <0x0 0x86000000 0x0 0x3000>; > + reg-names = "dram", "mailbox"; > + > + memory-region = <&adma_res>; > + > + mboxes = <&mu7 2 0>, <&mu7 2 1>, <&mu7 3 0>, <&mu7 3 1>; > + mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; > + > + cpu: port { > + cpu_ep: endpoint { remote-endpoint = <&codec_ep>; }; > + }; > + }; > +}; > + > +&wm8962 { > + assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, > + <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, > + <&scmi_clk IMX95_CLK_AUDIOPLL1>, > + <&scmi_clk IMX95_CLK_AUDIOPLL2>, > + <&scmi_clk IMX95_CLK_SAI3>; > + assigned-clock-parents = <0>, <0>, <0>, <0>, <&scmi_clk IMX95_CLK_AUDIOPLL1>; > + assigned-clock-rates = <3932160000>, <3612672000>, > + <393216000>, <361267200>, > + <12288000>; > + status = "okay"; > + > + port { > + codec_ep: endpoint { remote-endpoint = <&cpu_ep>; }; > + }; > +}; > + > +&edma2 { > + dma-channel-mask = <0x3fffffff>, <0xffffffff>; > +}; > + > +&sai3 { > + status = "disabled"; > +}; > -- > 2.34.1 >
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 2a69b7ec6d6d..94660e3e8b2b 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -267,6 +267,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxca.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxla.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-var-som-symphony.dtb dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb +dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb imx8mm-kontron-dl-dtbs := imx8mm-kontron-bl.dtb imx8mm-kontron-dl.dtbo diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk-sof.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk-sof.dts new file mode 100644 index 000000000000..b10dc1af5ce2 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk-sof.dts @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2024 NXP + */ + +/dts-v1/; + +#include "imx95-19x19-evk.dts" + +/ { + reserved-memory { + adma_res: memory@86100000 { + compatible = "shared-dma-pool"; + reg = <0x0 0x86100000 0x0 0x100000>; + no-map; + }; + }; + + sound-wm8962 { + status = "disabled"; + }; + + sof-sound-wm8962 { + compatible = "audio-graph-card2"; + + links = <&cpu>; + label = "wm8962-audio"; + + hp-det-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hp>; + + widgets = + "Headphone", "Headphones", + "Microphone", "Headset Mic"; + routing = + "Headphones", "HPOUTL", + "Headphones", "HPOUTR", + "Headset Mic", "MICBIAS", + "IN3R", "Headset Mic", + "IN1R", "Headset Mic"; + }; + + sof_cpu: cm7-cpu@80000000 { + compatible = "fsl,imx95-cm7-sof"; + + reg = <0x0 0x80000000 0x0 0x400000>, + <0x0 0x86000000 0x0 0x3000>; + reg-names = "dram", "mailbox"; + + memory-region = <&adma_res>; + + mboxes = <&mu7 2 0>, <&mu7 2 1>, <&mu7 3 0>, <&mu7 3 1>; + mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; + + cpu: port { + cpu_ep: endpoint { remote-endpoint = <&codec_ep>; }; + }; + }; +}; + +&wm8962 { + assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, + <&scmi_clk IMX95_CLK_AUDIOPLL1>, + <&scmi_clk IMX95_CLK_AUDIOPLL2>, + <&scmi_clk IMX95_CLK_SAI3>; + assigned-clock-parents = <0>, <0>, <0>, <0>, <&scmi_clk IMX95_CLK_AUDIOPLL1>; + assigned-clock-rates = <3932160000>, <3612672000>, + <393216000>, <361267200>, + <12288000>; + status = "okay"; + + port { + codec_ep: endpoint { remote-endpoint = <&cpu_ep>; }; + }; +}; + +&edma2 { + dma-channel-mask = <0x3fffffff>, <0xffffffff>; +}; + +&sai3 { + status = "disabled"; +};