* [PATCH v2 0/6] arm64: dts: imx943: Add sound card support
@ 2025-05-28 1:58 Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 1/6] arm64: dts: imx94: Add micfil and mqs device nodes Shengjiu Wang
` (6 more replies)
0 siblings, 7 replies; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-28 1:58 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
Add sound card and related i2c device support
- micfil
- bt-sco
- wm8962
changes in v2:
- use (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)
Carlos Song (2):
arm64: dts: imx943-evk: add lpi2c support
arm64: dts: imx943-evk: add i2c io expander support
Shengjiu Wang (4):
arm64: dts: imx94: Add micfil and mqs device nodes
arm64: dts: imx943-evk: add sound-wm8962 support
arm64: dts: imx943-evk: add bt-sco sound card support
arm64: dts: imx943-evk: Add PDM microphone sound card support
arch/arm64/boot/dts/freescale/imx94.dtsi | 30 ++
arch/arm64/boot/dts/freescale/imx943-evk.dts | 432 +++++++++++++++++++
2 files changed, 462 insertions(+)
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 1/6] arm64: dts: imx94: Add micfil and mqs device nodes
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
@ 2025-05-28 1:58 ` Shengjiu Wang
2025-05-28 15:11 ` Frank Li
2025-05-28 1:58 ` [PATCH v2 2/6] arm64: dts: imx943-evk: add lpi2c support Shengjiu Wang
` (5 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-28 1:58 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
Add micfil and mqs device nodes
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
---
arch/arm64/boot/dts/freescale/imx94.dtsi | 30 ++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx94.dtsi b/arch/arm64/boot/dts/freescale/imx94.dtsi
index 3661ea48d7d2..66ce94705ba9 100644
--- a/arch/arm64/boot/dts/freescale/imx94.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx94.dtsi
@@ -108,6 +108,16 @@ scmi_misc: protocol@84 {
};
};
+ mqs1: mqs1 {
+ compatible = "fsl,imx943-aonmix-mqs";
+ status = "disabled";
+ };
+
+ mqs2: mqs2 {
+ compatible = "fsl,imx943-wakeupmix-mqs";
+ status = "disabled";
+ };
+
pmu {
compatible = "arm,cortex-a55-pmu";
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
@@ -1045,6 +1055,26 @@ sai1: sai@443b0000 {
status = "disabled";
};
+ micfil: micfil@44520000 {
+ compatible = "fsl,imx943-micfil";
+ reg = <0x44520000 0x10000>;
+ interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&scmi_clk IMX94_CLK_BUSAON>,
+ <&scmi_clk IMX94_CLK_PDM>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2>,
+ <&dummy>;
+ clock-names = "ipg_clk", "ipg_clk_app",
+ "pll8k", "pll11k", "clkext3";
+ dmas = <&edma1 6 0 (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)>;
+ dma-names = "rx";
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
adc1: adc@44530000 {
compatible = "nxp,imx94-adc", "nxp,imx93-adc";
reg = <0x44530000 0x10000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 2/6] arm64: dts: imx943-evk: add lpi2c support
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 1/6] arm64: dts: imx94: Add micfil and mqs device nodes Shengjiu Wang
@ 2025-05-28 1:58 ` Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 3/6] arm64: dts: imx943-evk: add i2c io expander support Shengjiu Wang
` (4 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-28 1:58 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
From: Carlos Song <carlos.song@nxp.com>
Add lpi2c and i2c-mux support for imx943 evk board.
Signed-off-by: Carlos Song <carlos.song@nxp.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 132 +++++++++++++++++++
1 file changed, 132 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index cc8f3e6a1789..a566b9d8b813 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -12,6 +12,9 @@ / {
model = "NXP i.MX943 EVK board";
aliases {
+ i2c2 = &lpi2c3;
+ i2c3 = &lpi2c4;
+ i2c5 = &lpi2c6;
mmc0 = &usdhc1;
mmc1 = &usdhc2;
serial0 = &lpuart1;
@@ -53,6 +56,113 @@ memory@80000000 {
};
};
+&lpi2c3 {
+ clock-frequency = <400000>;
+ pinctrl-0 = <&pinctrl_lpi2c3>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ pca9548_i2c3: i2c-mux@77 {
+ compatible = "nxp,pca9548";
+ reg = <0x77>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@1 {
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@2 {
+ reg = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@3 {
+ reg = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@4 {
+ reg = <4>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@5 {
+ reg = <5>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@6 {
+ reg = <6>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@7 {
+ reg = <7>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+};
+
+&lpi2c4 {
+ clock-frequency = <400000>;
+ pinctrl-0 = <&pinctrl_lpi2c4>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&lpi2c6 {
+ clock-frequency = <400000>;
+ pinctrl-0 = <&pinctrl_lpi2c6>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ pca9544_i2c6: i2c-mux@77 {
+ compatible = "nxp,pca9544";
+ reg = <0x77>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@1 {
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@2 {
+ reg = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@3 {
+ reg = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+};
+
&lpuart1 {
pinctrl-0 = <&pinctrl_uart1>;
pinctrl-names = "default";
@@ -60,6 +170,28 @@ &lpuart1 {
};
&scmi_iomuxc {
+
+ pinctrl_lpi2c3: lpi2c3grp {
+ fsl,pins = <
+ IMX94_PAD_GPIO_IO16__LPI2C3_SDA 0x40000b9e
+ IMX94_PAD_GPIO_IO17__LPI2C3_SCL 0x40000b9e
+ >;
+ };
+
+ pinctrl_lpi2c4: lpi2c4grp {
+ fsl,pins = <
+ IMX94_PAD_GPIO_IO18__LPI2C4_SDA 0x40000b9e
+ IMX94_PAD_GPIO_IO19__LPI2C4_SCL 0x40000b9e
+ >;
+ };
+
+ pinctrl_lpi2c6: lpi2c6grp {
+ fsl,pins = <
+ IMX94_PAD_GPIO_IO29__LPI2C6_SDA 0x40000b9e
+ IMX94_PAD_GPIO_IO28__LPI2C6_SCL 0x40000b9e
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
IMX94_PAD_UART1_TXD__LPUART1_TX 0x31e
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 3/6] arm64: dts: imx943-evk: add i2c io expander support
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 1/6] arm64: dts: imx94: Add micfil and mqs device nodes Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 2/6] arm64: dts: imx943-evk: add lpi2c support Shengjiu Wang
@ 2025-05-28 1:58 ` Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support Shengjiu Wang
` (3 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-28 1:58 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
From: Carlos Song <carlos.song@nxp.com>
Add i2c io expander support for imx943 evk board.
Signed-off-by: Carlos Song <carlos.song@nxp.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 105 +++++++++++++++++++
1 file changed, 105 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index a566b9d8b813..ff6e9ac5477f 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -62,6 +62,13 @@ &lpi2c3 {
pinctrl-names = "default";
status = "okay";
+ pca9670_i2c3: gpio@23 {
+ compatible = "nxp,pca9670";
+ reg = <0x23>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ };
+
pca9548_i2c3: i2c-mux@77 {
compatible = "nxp,pca9548";
reg = <0x77>;
@@ -102,18 +109,63 @@ i2c@5 {
reg = <5>;
#address-cells = <1>;
#size-cells = <0>;
+
+ pcal6416_i2c3_u46: gpio@20 {
+ compatible = "nxp,pcal6416";
+ reg = <0x20>;
+ #gpio-cells = <2>;
+ gpio-controller;
+
+ sd-card-on-hog {
+ gpios = <13 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
+ };
+
+ pcal6416_i2c3_u171: gpio@21 {
+ compatible = "nxp,pcal6416";
+ reg = <0x21>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ };
};
i2c@6 {
reg = <6>;
#address-cells = <1>;
#size-cells = <0>;
+
+ pcal6416_i2c3_u48: gpio@20 {
+ compatible = "nxp,pcal6416";
+ reg = <0x20>;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupt-parent = <&gpio3>;
+ interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ pinctrl-0 = <&pinctrl_ioexpander_int>;
+ pinctrl-names = "default";
+ };
};
i2c@7 {
reg = <7>;
#address-cells = <1>;
#size-cells = <0>;
+
+ pcal6408_i2c3_u172: gpio@20 {
+ compatible = "nxp,pcal6408";
+ reg = <0x20>;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupt-parent = <&gpio3>;
+ /* shared int pin with u48 */
+ interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ };
};
};
};
@@ -147,18 +199,59 @@ i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
+
+ pcal6416_i2c6_u50: gpio@21 {
+ compatible = "nxp,pcal6416";
+ reg = <0x21>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ };
};
i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
+
+ pcal6408_i2c6_u170: gpio@20 {
+ compatible = "nxp,pcal6408";
+ reg = <0x20>;
+ #interrupt-cells = <2>;
+ interrupt-controller;
+ interrupt-parent = <&gpio4>;
+ interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ pinctrl-0 = <&pinctrl_ioexpander_int2>;
+ pinctrl-names = "default";
+ };
};
i2c@3 {
reg = <3>;
#address-cells = <1>;
#size-cells = <0>;
+
+ pcal6416_i2c6_u44: gpio@20 {
+ compatible = "nxp,pcal6416";
+ reg = <0x20>;
+ #gpio-cells = <2>;
+ gpio-controller;
+
+ /* eMMC IOMUX selection */
+ sd1-sel-hog {
+ gpios = <0 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
+
+ /* SD card IOMUX selection */
+ sd2-sel-hog {
+ gpios = <1 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
+ };
};
};
};
@@ -171,6 +264,18 @@ &lpuart1 {
&scmi_iomuxc {
+ pinctrl_ioexpander_int2: ioexpanderint2grp {
+ fsl,pins = <
+ IMX94_PAD_CCM_CLKO4__GPIO4_IO3 0x31e
+ >;
+ };
+
+ pinctrl_ioexpander_int: ioexpanderintgrp {
+ fsl,pins = <
+ IMX94_PAD_GPIO_IO45__GPIO3_IO13 0x31e
+ >;
+ };
+
pinctrl_lpi2c3: lpi2c3grp {
fsl,pins = <
IMX94_PAD_GPIO_IO16__LPI2C3_SDA 0x40000b9e
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
` (2 preceding siblings ...)
2025-05-28 1:58 ` [PATCH v2 3/6] arm64: dts: imx943-evk: add i2c io expander support Shengjiu Wang
@ 2025-05-28 1:58 ` Shengjiu Wang
2025-05-28 8:37 ` Marco Felsch
2025-05-28 1:58 ` [PATCH v2 5/6] arm64: dts: imx943-evk: add bt-sco sound card support Shengjiu Wang
` (2 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-28 1:58 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
Add WM8962 codec connected to SAI1 interface.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 79 ++++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index ff6e9ac5477f..da08aaa95904 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -36,6 +36,15 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
enable-active-high;
};
+ reg_audio_pwr: regulator-wm8962-pwr {
+ compatible = "regulator-fixed";
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "audio-pwr";
+ gpio = <&pcal6416_i2c3_u171 12 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
reserved-memory {
ranges;
#address-cells = <2>;
@@ -50,6 +59,21 @@ linux,cma {
};
};
+ sound-wm8962 {
+ compatible = "fsl,imx-audio-wm8962";
+ audio-codec = <&wm8962>;
+ audio-cpu = <&sai1>;
+ audio-routing = "Headphone Jack", "HPOUTL",
+ "Headphone Jack", "HPOUTR",
+ "Ext Spk", "SPKOUTL",
+ "Ext Spk", "SPKOUTR",
+ "AMIC", "MICBIAS",
+ "IN3R", "AMIC",
+ "IN1R", "AMIC";
+ hp-det-gpio = <&pcal6416_i2c3_u48 14 GPIO_ACTIVE_HIGH>;
+ model = "wm8962-audio";
+ };
+
memory@80000000 {
reg = <0x0 0x80000000 0x0 0x80000000>;
device_type = "memory";
@@ -103,6 +127,28 @@ i2c@4 {
reg = <4>;
#address-cells = <1>;
#size-cells = <0>;
+
+ wm8962: codec@1a {
+ compatible = "wlf,wm8962";
+ reg = <0x1a>;
+ clocks = <&scmi_clk IMX94_CLK_SAI1>;
+ AVDD-supply = <®_audio_pwr>;
+ CPVDD-supply = <®_audio_pwr>;
+ DBVDD-supply = <®_audio_pwr>;
+ DCVDD-supply = <®_audio_pwr>;
+ gpio-cfg = <
+ 0x0000 /* 0:Default */
+ 0x0000 /* 1:Default */
+ 0x0000 /* 2:FN_DMICCLK */
+ 0x0000 /* 3:Default */
+ 0x0000 /* 4:FN_DMICCDAT */
+ 0x0000 /* 5:Default */
+ >;
+ MICVDD-supply = <®_audio_pwr>;
+ PLLVDD-supply = <®_audio_pwr>;
+ SPKVDD1-supply = <®_audio_pwr>;
+ SPKVDD2-supply = <®_audio_pwr>;
+ };
};
i2c@5 {
@@ -128,6 +174,12 @@ pcal6416_i2c3_u171: gpio@21 {
reg = <0x21>;
#gpio-cells = <2>;
gpio-controller;
+
+ audio-pwren-hog {
+ gpios = <12 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
};
};
@@ -262,6 +314,23 @@ &lpuart1 {
status = "okay";
};
+&sai1 {
+ assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2>,
+ <&scmi_clk IMX94_CLK_SAI1>;
+ assigned-clock-parents = <0>, <0>, <0>, <0>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL1>;
+ assigned-clock-rates = <3932160000>,
+ <3612672000>, <393216000>,
+ <361267200>, <12288000>;
+ pinctrl-0 = <&pinctrl_sai1>;
+ pinctrl-names = "default";
+ fsl,sai-mclk-direction-output;
+ status = "okay";
+};
+
&scmi_iomuxc {
pinctrl_ioexpander_int2: ioexpanderint2grp {
@@ -297,6 +366,16 @@ IMX94_PAD_GPIO_IO28__LPI2C6_SCL 0x40000b9e
>;
};
+ pinctrl_sai1: sai1grp {
+ fsl,pins = <
+ IMX94_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x31e
+ IMX94_PAD_SAI1_TXC__SAI1_TX_BCLK 0x31e
+ IMX94_PAD_SAI1_TXD0__SAI1_TX_DATA0 0x31e
+ IMX94_PAD_SAI1_RXD0__SAI1_RX_DATA0 0x31e
+ IMX94_PAD_I2C2_SDA__SAI1_MCLK 0x31e
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
IMX94_PAD_UART1_TXD__LPUART1_TX 0x31e
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 5/6] arm64: dts: imx943-evk: add bt-sco sound card support
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
` (3 preceding siblings ...)
2025-05-28 1:58 ` [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support Shengjiu Wang
@ 2025-05-28 1:58 ` Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 6/6] arm64: dts: imx943-evk: Add PDM microphone " Shengjiu Wang
2025-06-30 3:30 ` [PATCH v2 0/6] arm64: dts: imx943: Add " Shawn Guo
6 siblings, 0 replies; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-28 1:58 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
Add bt-sco sound card, which is used by BT HFP case.
It supports wb profile as default.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 56 ++++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index da08aaa95904..85cec644dd92 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -20,6 +20,11 @@ aliases {
serial0 = &lpuart1;
};
+ bt_sco_codec: bt-sco-codec {
+ compatible = "linux,bt-sco";
+ #sound-dai-cells = <1>;
+ };
+
chosen {
stdout-path = &lpuart1;
};
@@ -59,6 +64,25 @@ linux,cma {
};
};
+ sound-bt-sco {
+ compatible = "simple-audio-card";
+ simple-audio-card,bitclock-inversion;
+ simple-audio-card,bitclock-master = <&btcpu>;
+ simple-audio-card,format = "dsp_a";
+ simple-audio-card,frame-master = <&btcpu>;
+ simple-audio-card,name = "bt-sco-audio";
+
+ simple-audio-card,codec {
+ sound-dai = <&bt_sco_codec 1>;
+ };
+
+ btcpu: simple-audio-card,cpu {
+ dai-tdm-slot-num = <2>;
+ dai-tdm-slot-width = <16>;
+ sound-dai = <&sai3>;
+ };
+ };
+
sound-wm8962 {
compatible = "fsl,imx-audio-wm8962";
audio-codec = <&wm8962>;
@@ -290,6 +314,12 @@ pcal6416_i2c6_u44: gpio@20 {
#gpio-cells = <2>;
gpio-controller;
+ sai3-sel-hog {
+ gpios = <11 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
+
/* eMMC IOMUX selection */
sd1-sel-hog {
gpios = <0 GPIO_ACTIVE_HIGH>;
@@ -331,6 +361,23 @@ &sai1 {
status = "okay";
};
+&sai3 {
+ assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2>,
+ <&scmi_clk IMX94_CLK_SAI3>;
+ assigned-clock-parents = <0>, <0>, <0>, <0>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL1>;
+ assigned-clock-rates = <3932160000>,
+ <3612672000>, <393216000>,
+ <361267200>, <12288000>;
+ pinctrl-0 = <&pinctrl_sai3>;
+ pinctrl-names = "default";
+ fsl,sai-mclk-direction-output;
+ status = "okay";
+};
+
&scmi_iomuxc {
pinctrl_ioexpander_int2: ioexpanderint2grp {
@@ -376,6 +423,15 @@ IMX94_PAD_I2C2_SDA__SAI1_MCLK 0x31e
>;
};
+ pinctrl_sai3: sai3grp {
+ fsl,pins = <
+ IMX94_PAD_GPIO_IO42__SAI3_TX_BCLK 0x31e
+ IMX94_PAD_GPIO_IO56__SAI3_TX_SYNC 0x31e
+ IMX94_PAD_GPIO_IO46__SAI3_RX_DATA0 0x31e
+ IMX94_PAD_GPIO_IO47__SAI3_TX_DATA0 0x31e
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
IMX94_PAD_UART1_TXD__LPUART1_TX 0x31e
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 6/6] arm64: dts: imx943-evk: Add PDM microphone sound card support
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
` (4 preceding siblings ...)
2025-05-28 1:58 ` [PATCH v2 5/6] arm64: dts: imx943-evk: add bt-sco sound card support Shengjiu Wang
@ 2025-05-28 1:58 ` Shengjiu Wang
2025-06-30 3:30 ` [PATCH v2 0/6] arm64: dts: imx943: Add " Shawn Guo
6 siblings, 0 replies; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-28 1:58 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
Add PDM micphone sound card support, configure the pinmux.
This sound card supports recording sound from PDM microphone and convert
the PDM format data to PCM data.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 60 ++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index 85cec644dd92..c8c3eff9df1a 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -29,6 +29,11 @@ chosen {
stdout-path = &lpuart1;
};
+ dmic: dmic {
+ compatible = "dmic-codec";
+ #sound-dai-cells = <0>;
+ };
+
reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed";
off-on-delay-us = <12000>;
@@ -83,6 +88,24 @@ btcpu: simple-audio-card,cpu {
};
};
+ sound-micfil {
+ compatible = "fsl,imx-audio-card";
+ model = "micfil-audio";
+
+ pri-dai-link {
+ format = "i2s";
+ link-name = "micfil hifi";
+
+ codec {
+ sound-dai = <&dmic>;
+ };
+
+ cpu {
+ sound-dai = <&micfil>;
+ };
+ };
+ };
+
sound-wm8962 {
compatible = "fsl,imx-audio-wm8962";
audio-codec = <&wm8962>;
@@ -204,6 +227,12 @@ audio-pwren-hog {
gpio-hog;
output-high;
};
+
+ mqs-mic-sel-hog {
+ gpios = <11 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-low;
+ };
};
};
@@ -314,6 +343,13 @@ pcal6416_i2c6_u44: gpio@20 {
#gpio-cells = <2>;
gpio-controller;
+ /* pdm selection */
+ can-pdm-sel-hog {
+ gpios = <12 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-low;
+ };
+
sai3-sel-hog {
gpios = <11 GPIO_ACTIVE_HIGH>;
gpio-hog;
@@ -344,6 +380,22 @@ &lpuart1 {
status = "okay";
};
+&micfil {
+ assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2>,
+ <&scmi_clk IMX94_CLK_PDM>;
+ assigned-clock-parents = <0>, <0>, <0>, <0>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL1>;
+ assigned-clock-rates = <3932160000>,
+ <3612672000>, <393216000>,
+ <361267200>, <49152000>;
+ pinctrl-0 = <&pinctrl_pdm>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
&sai1 {
assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
@@ -413,6 +465,14 @@ IMX94_PAD_GPIO_IO28__LPI2C6_SCL 0x40000b9e
>;
};
+ pinctrl_pdm: pdmgrp {
+ fsl,pins = <
+ IMX94_PAD_PDM_CLK__PDM_CLK 0x31e
+ IMX94_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM0 0x31e
+ IMX94_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM1 0x31e
+ >;
+ };
+
pinctrl_sai1: sai1grp {
fsl,pins = <
IMX94_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x31e
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support
2025-05-28 1:58 ` [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support Shengjiu Wang
@ 2025-05-28 8:37 ` Marco Felsch
2025-05-30 2:21 ` Shengjiu Wang
0 siblings, 1 reply; 12+ messages in thread
From: Marco Felsch @ 2025-05-28 8:37 UTC (permalink / raw)
To: Shengjiu Wang
Cc: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
Hi,
On 25-05-28, Shengjiu Wang wrote:
> Add WM8962 codec connected to SAI1 interface.
>
> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> Reviewed-by: Frank Li <Frank.Li@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx943-evk.dts | 79 ++++++++++++++++++++
> 1 file changed, 79 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> index ff6e9ac5477f..da08aaa95904 100644
> --- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> @@ -36,6 +36,15 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
> enable-active-high;
> };
>
> + reg_audio_pwr: regulator-wm8962-pwr {
> + compatible = "regulator-fixed";
> + regulator-max-microvolt = <3300000>;
> + regulator-min-microvolt = <3300000>;
> + regulator-name = "audio-pwr";
> + gpio = <&pcal6416_i2c3_u171 12 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> reserved-memory {
> ranges;
> #address-cells = <2>;
> @@ -50,6 +59,21 @@ linux,cma {
> };
> };
>
> + sound-wm8962 {
> + compatible = "fsl,imx-audio-wm8962";
Out of curiosity did you considered making use of "audio-graph-card2"?
The "fsl,imx-audio-wm8962" seems like a pretty simple sound card which
could be added via the "audio-graph-card2" as well. Don't get me wrong,
it's not wrong what you're doing here but making use of the generic
sound card would be nice because it's very common to just copy'n'paste
the audio integration from the corresponding evk.dts file.
Regards,
Marco
> + audio-codec = <&wm8962>;
> + audio-cpu = <&sai1>;
> + audio-routing = "Headphone Jack", "HPOUTL",
> + "Headphone Jack", "HPOUTR",
> + "Ext Spk", "SPKOUTL",
> + "Ext Spk", "SPKOUTR",
> + "AMIC", "MICBIAS",
> + "IN3R", "AMIC",
> + "IN1R", "AMIC";
> + hp-det-gpio = <&pcal6416_i2c3_u48 14 GPIO_ACTIVE_HIGH>;
> + model = "wm8962-audio";
> + };
> +
> memory@80000000 {
> reg = <0x0 0x80000000 0x0 0x80000000>;
> device_type = "memory";
> @@ -103,6 +127,28 @@ i2c@4 {
> reg = <4>;
> #address-cells = <1>;
> #size-cells = <0>;
> +
> + wm8962: codec@1a {
> + compatible = "wlf,wm8962";
> + reg = <0x1a>;
> + clocks = <&scmi_clk IMX94_CLK_SAI1>;
> + AVDD-supply = <®_audio_pwr>;
> + CPVDD-supply = <®_audio_pwr>;
> + DBVDD-supply = <®_audio_pwr>;
> + DCVDD-supply = <®_audio_pwr>;
> + gpio-cfg = <
> + 0x0000 /* 0:Default */
> + 0x0000 /* 1:Default */
> + 0x0000 /* 2:FN_DMICCLK */
> + 0x0000 /* 3:Default */
> + 0x0000 /* 4:FN_DMICCDAT */
> + 0x0000 /* 5:Default */
> + >;
> + MICVDD-supply = <®_audio_pwr>;
> + PLLVDD-supply = <®_audio_pwr>;
> + SPKVDD1-supply = <®_audio_pwr>;
> + SPKVDD2-supply = <®_audio_pwr>;
> + };
> };
>
> i2c@5 {
> @@ -128,6 +174,12 @@ pcal6416_i2c3_u171: gpio@21 {
> reg = <0x21>;
> #gpio-cells = <2>;
> gpio-controller;
> +
> + audio-pwren-hog {
> + gpios = <12 GPIO_ACTIVE_HIGH>;
> + gpio-hog;
> + output-high;
> + };
> };
> };
>
> @@ -262,6 +314,23 @@ &lpuart1 {
> status = "okay";
> };
>
> +&sai1 {
> + assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
> + <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
> + <&scmi_clk IMX94_CLK_AUDIOPLL1>,
> + <&scmi_clk IMX94_CLK_AUDIOPLL2>,
> + <&scmi_clk IMX94_CLK_SAI1>;
> + assigned-clock-parents = <0>, <0>, <0>, <0>,
> + <&scmi_clk IMX94_CLK_AUDIOPLL1>;
> + assigned-clock-rates = <3932160000>,
> + <3612672000>, <393216000>,
> + <361267200>, <12288000>;
> + pinctrl-0 = <&pinctrl_sai1>;
> + pinctrl-names = "default";
> + fsl,sai-mclk-direction-output;
> + status = "okay";
> +};
> +
> &scmi_iomuxc {
>
> pinctrl_ioexpander_int2: ioexpanderint2grp {
> @@ -297,6 +366,16 @@ IMX94_PAD_GPIO_IO28__LPI2C6_SCL 0x40000b9e
> >;
> };
>
> + pinctrl_sai1: sai1grp {
> + fsl,pins = <
> + IMX94_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x31e
> + IMX94_PAD_SAI1_TXC__SAI1_TX_BCLK 0x31e
> + IMX94_PAD_SAI1_TXD0__SAI1_TX_DATA0 0x31e
> + IMX94_PAD_SAI1_RXD0__SAI1_RX_DATA0 0x31e
> + IMX94_PAD_I2C2_SDA__SAI1_MCLK 0x31e
> + >;
> + };
> +
> pinctrl_uart1: uart1grp {
> fsl,pins = <
> IMX94_PAD_UART1_TXD__LPUART1_TX 0x31e
> --
> 2.34.1
>
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/6] arm64: dts: imx94: Add micfil and mqs device nodes
2025-05-28 1:58 ` [PATCH v2 1/6] arm64: dts: imx94: Add micfil and mqs device nodes Shengjiu Wang
@ 2025-05-28 15:11 ` Frank Li
0 siblings, 0 replies; 12+ messages in thread
From: Frank Li @ 2025-05-28 15:11 UTC (permalink / raw)
To: Shengjiu Wang
Cc: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
On Wed, May 28, 2025 at 09:58:32AM +0800, Shengjiu Wang wrote:
> Add micfil and mqs device nodes
>
> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx94.dtsi | 30 ++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx94.dtsi b/arch/arm64/boot/dts/freescale/imx94.dtsi
> index 3661ea48d7d2..66ce94705ba9 100644
> --- a/arch/arm64/boot/dts/freescale/imx94.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx94.dtsi
> @@ -108,6 +108,16 @@ scmi_misc: protocol@84 {
> };
> };
>
> + mqs1: mqs1 {
> + compatible = "fsl,imx943-aonmix-mqs";
> + status = "disabled";
> + };
> +
> + mqs2: mqs2 {
> + compatible = "fsl,imx943-wakeupmix-mqs";
> + status = "disabled";
> + };
> +
> pmu {
> compatible = "arm,cortex-a55-pmu";
> interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
> @@ -1045,6 +1055,26 @@ sai1: sai@443b0000 {
> status = "disabled";
> };
>
> + micfil: micfil@44520000 {
> + compatible = "fsl,imx943-micfil";
> + reg = <0x44520000 0x10000>;
> + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&scmi_clk IMX94_CLK_BUSAON>,
> + <&scmi_clk IMX94_CLK_PDM>,
> + <&scmi_clk IMX94_CLK_AUDIOPLL1>,
> + <&scmi_clk IMX94_CLK_AUDIOPLL2>,
> + <&dummy>;
> + clock-names = "ipg_clk", "ipg_clk_app",
> + "pll8k", "pll11k", "clkext3";
> + dmas = <&edma1 6 0 (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)>;
> + dma-names = "rx";
> + #sound-dai-cells = <0>;
> + status = "disabled";
> + };
> +
> adc1: adc@44530000 {
> compatible = "nxp,imx94-adc", "nxp,imx93-adc";
> reg = <0x44530000 0x10000>;
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support
2025-05-28 8:37 ` Marco Felsch
@ 2025-05-30 2:21 ` Shengjiu Wang
2025-05-30 8:29 ` Marco Felsch
0 siblings, 1 reply; 12+ messages in thread
From: Shengjiu Wang @ 2025-05-30 2:21 UTC (permalink / raw)
To: Marco Felsch
Cc: Shengjiu Wang, robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel,
festevam, devicetree, imx, linux-arm-kernel, linux-kernel,
carlos.song
On Wed, May 28, 2025 at 4:37 PM Marco Felsch <m.felsch@pengutronix.de> wrote:
>
> Hi,
>
> On 25-05-28, Shengjiu Wang wrote:
> > Add WM8962 codec connected to SAI1 interface.
> >
> > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> > Reviewed-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > arch/arm64/boot/dts/freescale/imx943-evk.dts | 79 ++++++++++++++++++++
> > 1 file changed, 79 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> > index ff6e9ac5477f..da08aaa95904 100644
> > --- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> > @@ -36,6 +36,15 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
> > enable-active-high;
> > };
> >
> > + reg_audio_pwr: regulator-wm8962-pwr {
> > + compatible = "regulator-fixed";
> > + regulator-max-microvolt = <3300000>;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-name = "audio-pwr";
> > + gpio = <&pcal6416_i2c3_u171 12 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + };
> > +
> > reserved-memory {
> > ranges;
> > #address-cells = <2>;
> > @@ -50,6 +59,21 @@ linux,cma {
> > };
> > };
> >
> > + sound-wm8962 {
> > + compatible = "fsl,imx-audio-wm8962";
>
> Out of curiosity did you considered making use of "audio-graph-card2"?
>
> The "fsl,imx-audio-wm8962" seems like a pretty simple sound card which
> could be added via the "audio-graph-card2" as well. Don't get me wrong,
> it's not wrong what you're doing here but making use of the generic
> sound card would be nice because it's very common to just copy'n'paste
> the audio integration from the corresponding evk.dts file.
Thanks for the suggestion.
WM8962 has a function .set_pll(), which hasn't been supported in
audio-graph-card2. so we still use fsl,imx-audio-wm8962.
Best regards
Shengjiu Wang
>
> Regards,
> Marco
>
> > + audio-codec = <&wm8962>;
> > + audio-cpu = <&sai1>;
> > + audio-routing = "Headphone Jack", "HPOUTL",
> > + "Headphone Jack", "HPOUTR",
> > + "Ext Spk", "SPKOUTL",
> > + "Ext Spk", "SPKOUTR",
> > + "AMIC", "MICBIAS",
> > + "IN3R", "AMIC",
> > + "IN1R", "AMIC";
> > + hp-det-gpio = <&pcal6416_i2c3_u48 14 GPIO_ACTIVE_HIGH>;
> > + model = "wm8962-audio";
> > + };
> > +
> > memory@80000000 {
> > reg = <0x0 0x80000000 0x0 0x80000000>;
> > device_type = "memory";
> > @@ -103,6 +127,28 @@ i2c@4 {
> > reg = <4>;
> > #address-cells = <1>;
> > #size-cells = <0>;
> > +
> > + wm8962: codec@1a {
> > + compatible = "wlf,wm8962";
> > + reg = <0x1a>;
> > + clocks = <&scmi_clk IMX94_CLK_SAI1>;
> > + AVDD-supply = <®_audio_pwr>;
> > + CPVDD-supply = <®_audio_pwr>;
> > + DBVDD-supply = <®_audio_pwr>;
> > + DCVDD-supply = <®_audio_pwr>;
> > + gpio-cfg = <
> > + 0x0000 /* 0:Default */
> > + 0x0000 /* 1:Default */
> > + 0x0000 /* 2:FN_DMICCLK */
> > + 0x0000 /* 3:Default */
> > + 0x0000 /* 4:FN_DMICCDAT */
> > + 0x0000 /* 5:Default */
> > + >;
> > + MICVDD-supply = <®_audio_pwr>;
> > + PLLVDD-supply = <®_audio_pwr>;
> > + SPKVDD1-supply = <®_audio_pwr>;
> > + SPKVDD2-supply = <®_audio_pwr>;
> > + };
> > };
> >
> > i2c@5 {
> > @@ -128,6 +174,12 @@ pcal6416_i2c3_u171: gpio@21 {
> > reg = <0x21>;
> > #gpio-cells = <2>;
> > gpio-controller;
> > +
> > + audio-pwren-hog {
> > + gpios = <12 GPIO_ACTIVE_HIGH>;
> > + gpio-hog;
> > + output-high;
> > + };
> > };
> > };
> >
> > @@ -262,6 +314,23 @@ &lpuart1 {
> > status = "okay";
> > };
> >
> > +&sai1 {
> > + assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
> > + <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
> > + <&scmi_clk IMX94_CLK_AUDIOPLL1>,
> > + <&scmi_clk IMX94_CLK_AUDIOPLL2>,
> > + <&scmi_clk IMX94_CLK_SAI1>;
> > + assigned-clock-parents = <0>, <0>, <0>, <0>,
> > + <&scmi_clk IMX94_CLK_AUDIOPLL1>;
> > + assigned-clock-rates = <3932160000>,
> > + <3612672000>, <393216000>,
> > + <361267200>, <12288000>;
> > + pinctrl-0 = <&pinctrl_sai1>;
> > + pinctrl-names = "default";
> > + fsl,sai-mclk-direction-output;
> > + status = "okay";
> > +};
> > +
> > &scmi_iomuxc {
> >
> > pinctrl_ioexpander_int2: ioexpanderint2grp {
> > @@ -297,6 +366,16 @@ IMX94_PAD_GPIO_IO28__LPI2C6_SCL 0x40000b9e
> > >;
> > };
> >
> > + pinctrl_sai1: sai1grp {
> > + fsl,pins = <
> > + IMX94_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x31e
> > + IMX94_PAD_SAI1_TXC__SAI1_TX_BCLK 0x31e
> > + IMX94_PAD_SAI1_TXD0__SAI1_TX_DATA0 0x31e
> > + IMX94_PAD_SAI1_RXD0__SAI1_RX_DATA0 0x31e
> > + IMX94_PAD_I2C2_SDA__SAI1_MCLK 0x31e
> > + >;
> > + };
> > +
> > pinctrl_uart1: uart1grp {
> > fsl,pins = <
> > IMX94_PAD_UART1_TXD__LPUART1_TX 0x31e
> > --
> > 2.34.1
> >
> >
> >
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support
2025-05-30 2:21 ` Shengjiu Wang
@ 2025-05-30 8:29 ` Marco Felsch
0 siblings, 0 replies; 12+ messages in thread
From: Marco Felsch @ 2025-05-30 8:29 UTC (permalink / raw)
To: Shengjiu Wang
Cc: Shengjiu Wang, robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel,
festevam, devicetree, imx, linux-arm-kernel, linux-kernel,
carlos.song
On 25-05-30, Shengjiu Wang wrote:
> On Wed, May 28, 2025 at 4:37 PM Marco Felsch <m.felsch@pengutronix.de> wrote:
> >
> > Hi,
> >
> > On 25-05-28, Shengjiu Wang wrote:
> > > Add WM8962 codec connected to SAI1 interface.
> > >
> > > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> > > Reviewed-by: Frank Li <Frank.Li@nxp.com>
> > > ---
> > > arch/arm64/boot/dts/freescale/imx943-evk.dts | 79 ++++++++++++++++++++
> > > 1 file changed, 79 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> > > index ff6e9ac5477f..da08aaa95904 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
> > > +++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> > > @@ -36,6 +36,15 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
> > > enable-active-high;
> > > };
> > >
> > > + reg_audio_pwr: regulator-wm8962-pwr {
> > > + compatible = "regulator-fixed";
> > > + regulator-max-microvolt = <3300000>;
> > > + regulator-min-microvolt = <3300000>;
> > > + regulator-name = "audio-pwr";
> > > + gpio = <&pcal6416_i2c3_u171 12 GPIO_ACTIVE_HIGH>;
> > > + enable-active-high;
> > > + };
> > > +
> > > reserved-memory {
> > > ranges;
> > > #address-cells = <2>;
> > > @@ -50,6 +59,21 @@ linux,cma {
> > > };
> > > };
> > >
> > > + sound-wm8962 {
> > > + compatible = "fsl,imx-audio-wm8962";
> >
> > Out of curiosity did you considered making use of "audio-graph-card2"?
> >
> > The "fsl,imx-audio-wm8962" seems like a pretty simple sound card which
> > could be added via the "audio-graph-card2" as well. Don't get me wrong,
> > it's not wrong what you're doing here but making use of the generic
> > sound card would be nice because it's very common to just copy'n'paste
> > the audio integration from the corresponding evk.dts file.
>
> Thanks for the suggestion.
>
> WM8962 has a function .set_pll(), which hasn't been supported in
> audio-graph-card2. so we still use fsl,imx-audio-wm8962.
Thanks for the explanation.
Regards,
Marco
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/6] arm64: dts: imx943: Add sound card support
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
` (5 preceding siblings ...)
2025-05-28 1:58 ` [PATCH v2 6/6] arm64: dts: imx943-evk: Add PDM microphone " Shengjiu Wang
@ 2025-06-30 3:30 ` Shawn Guo
6 siblings, 0 replies; 12+ messages in thread
From: Shawn Guo @ 2025-06-30 3:30 UTC (permalink / raw)
To: Shengjiu Wang
Cc: robh, krzk+dt, conor+dt, shawnguo, s.hauer, kernel, festevam,
devicetree, imx, linux-arm-kernel, linux-kernel, shengjiu.wang,
carlos.song
On Wed, May 28, 2025 at 09:58:31AM +0800, Shengjiu Wang wrote:
> Add sound card and related i2c device support
> - micfil
> - bt-sco
> - wm8962
>
> changes in v2:
> - use (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)
>
> Carlos Song (2):
> arm64: dts: imx943-evk: add lpi2c support
> arm64: dts: imx943-evk: add i2c io expander support
>
> Shengjiu Wang (4):
> arm64: dts: imx94: Add micfil and mqs device nodes
> arm64: dts: imx943-evk: add sound-wm8962 support
> arm64: dts: imx943-evk: add bt-sco sound card support
> arm64: dts: imx943-evk: Add PDM microphone sound card support
Applied all, thanks!
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-06-30 3:31 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-28 1:58 [PATCH v2 0/6] arm64: dts: imx943: Add sound card support Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 1/6] arm64: dts: imx94: Add micfil and mqs device nodes Shengjiu Wang
2025-05-28 15:11 ` Frank Li
2025-05-28 1:58 ` [PATCH v2 2/6] arm64: dts: imx943-evk: add lpi2c support Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 3/6] arm64: dts: imx943-evk: add i2c io expander support Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 4/6] arm64: dts: imx943-evk: add sound-wm8962 support Shengjiu Wang
2025-05-28 8:37 ` Marco Felsch
2025-05-30 2:21 ` Shengjiu Wang
2025-05-30 8:29 ` Marco Felsch
2025-05-28 1:58 ` [PATCH v2 5/6] arm64: dts: imx943-evk: add bt-sco sound card support Shengjiu Wang
2025-05-28 1:58 ` [PATCH v2 6/6] arm64: dts: imx943-evk: Add PDM microphone " Shengjiu Wang
2025-06-30 3:30 ` [PATCH v2 0/6] arm64: dts: imx943: Add " Shawn Guo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).