Re: [PATCH 1/3] arm64: dts: imx93-9x9-qsb: Enable sound-wm8962 sound card
From: Frank Li
Date: Tue Sep 10 2024 - 11:41:10 EST
On Tue, Sep 10, 2024 at 03:19:30PM +0800, Shengjiu Wang wrote:
> Add wm8962 sound card which connects to sai3. The connection
> of SAI3 and wm8962 is controlled by PCAL6524HEAZ module, add
> gpio-hog for it.
>
> Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx>
> ---
> .../boot/dts/freescale/imx93-9x9-qsb.dts | 74 +++++++++++++++++++
> 1 file changed, 74 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
> index f8a73612fa05..336333919a74 100644
> --- a/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts
> @@ -61,6 +61,15 @@ vdevbuffer: vdevbuffer@a4020000 {
>
> };
>
> + reg_audio_pwr: regulator-audio-pwr {
> + compatible = "regulator-fixed";
> + regulator-name = "audio-pwr";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + gpio = <&pcal6524 16 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
sort by node name, it should be after regulator-adc-vref.
> reg_vref_1v8: regulator-adc-vref {
> compatible = "regulator-fixed";
> regulator-name = "VREF_1V8";
> @@ -88,6 +97,22 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
> enable-active-high;
> off-on-delay-us = <12000>;
> };
> +
> + sound-wm8962 {
> + compatible = "fsl,imx-audio-wm8962";
> + model = "wm8962-audio";
> + audio-cpu = <&sai3>;
> + audio-codec = <&wm8962>;
> + hp-det-gpio = <&pcal6524 4 GPIO_ACTIVE_HIGH>;
> + audio-routing =
> + "Headphone Jack", "HPOUTL",
> + "Headphone Jack", "HPOUTR",
> + "Ext Spk", "SPKOUTL",
> + "Ext Spk", "SPKOUTR",
> + "AMIC", "MICBIAS",
> + "IN3R", "AMIC",
> + "IN1R", "AMIC";
> + };
> };
>
> &adc1 {
> @@ -136,6 +161,28 @@ &lpi2c1 {
> pinctrl-0 = <&pinctrl_lpi2c1>;
> status = "okay";
>
> + wm8962: codec@1a {
> + compatible = "wlf,wm8962";
> + reg = <0x1a>;
> + clocks = <&clk IMX93_CLK_SAI3_GATE>;
> + DCVDD-supply = <®_audio_pwr>;
> + DBVDD-supply = <®_audio_pwr>;
> + AVDD-supply = <®_audio_pwr>;
> + CPVDD-supply = <®_audio_pwr>;
> + MICVDD-supply = <®_audio_pwr>;
> + PLLVDD-supply = <®_audio_pwr>;
> + SPKVDD1-supply = <®_audio_pwr>;
> + SPKVDD2-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 */
> + >;
> + };
> +
> ptn5110: tcpc@50 {
> compatible = "nxp,ptn5110", "tcpci";
> reg = <0x50>;
> @@ -194,6 +241,12 @@ pcal6524: gpio@22 {
> interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_pcal6524>;
> +
> + exp-sel-hog {
> + gpio-hog;
> + gpios = <22 GPIO_ACTIVE_HIGH>;
> + output-low;
> + };
> };
>
> pmic@25 {
> @@ -286,6 +339,17 @@ &mu2 {
> status = "okay";
> };
>
> +&sai3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_sai3>;
> + assigned-clocks = <&clk IMX93_CLK_SAI3>;
> + assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
> + assigned-clock-rates = <12288000>;
> + fsl,sai-mclk-direction-output;
> + fsl,sai-synchronous-rx;
> + status = "okay";
> +};
> +
> &usbotg1 {
> dr_mode = "otg";
> hnp-disable;
> @@ -443,6 +507,16 @@ MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x31e
> >;
> };
>
> + pinctrl_sai3: sai3grp {
> + fsl,pins = <
> + MX93_PAD_GPIO_IO12__SAI3_RX_SYNC 0x31e
> + MX93_PAD_GPIO_IO18__SAI3_RX_BCLK 0x31e
> + MX93_PAD_GPIO_IO17__SAI3_MCLK 0x31e
> + MX93_PAD_GPIO_IO19__SAI3_TX_DATA00 0x31e
> + MX93_PAD_GPIO_IO20__SAI3_RX_DATA00 0x31e
> + >;
> + };
> +
> pinctrl_usdhc2_gpio: usdhc2gpiogrp {
> fsl,pins = <
> MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e
> --
> 2.34.1
>