Main Node: sound-tlv320aic31xx { compatible = "simple-audio-card"; simple-audio-card,name = "tlv320aic31xx-Codec"; simple-audio-card,format = "i2s"; simple-audio-card,frame-master = <&cpudai2>; simple-audio-card,bitclock-master = <&cpudai2>; simple-audio-card,widgets = "Speaker", "SpeakerOUT"; simple-audio-card,routing = "SpeakerOUT", "SPK"; cpudai2: simple-audio-card,cpu { sound-dai = <&sai1>; }; simple-audio-card,codec { system-clock-frequency = <12000000>; /*clocks = <&clk IMX8MM_CLK_SAI1_ROOT>;*/ }; }; reg_3p3v: regulator-3p3v { compatible = "regulator-fixed"; regulator-name = "3P3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; startup-delay-us = <300000>; regulator-always-on; }; reg_1p8v: regulator-1p8v { compatible = "regulator-fixed"; regulator-name = "1P8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; SAI NODE: &sai1 { pinctrl-names = "default", "dsd"; pinctrl-0 = <&pinctrl_sai1>; pinctrl-1 = <&pinctrl_sai1_dsd>; assigned-clocks = <&clk IMX8MM_CLK_SAI1>; assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>; assigned-clock-rates = <12000000>, <12500000>; status = "okay"; }; pinctrl_sai1: sai1grp { fsl,pins = < MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK 0xd6 /*MCLK*/ MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC 0xd6 /*WCLK*/ MX8MM_IOMUXC_SAI1_TXC_SAI1_TX_BCLK 0xd6 /*BCLK*/ MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0 0xd6 /*DIN*/ MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATA0 0xd6 /*DOUT*/ >; }; pinctrl_sai1_dsd: sai1grp_dsd { fsl,pins = < MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK 0xd6 /*MCLK*/ MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC 0xd6 /*WCLK*/ MX8MM_IOMUXC_SAI1_TXC_SAI1_TX_BCLK 0xd6 /*BCLK*/ MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0 0xd6 /*DIN*/ MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATA0 0xd6 /*DOUT*/ >; }; I2C2 Node: tlv320aic31xx: codec@18 { compatible = "ti,tlv320aic3100"; reg = <0x18>; pinctrl-0 = <&pinctrl_audio_reset_31xx>; reset-gpios = <&gpio4 1 GPIO_ACTIVE_LOW>; #sound-dai-cells = <0>; ai31xx-micbias-vg = ; HPVDD-supply = <®_3p3v>; SPRVDD-supply = <®_3p3v>; SPLVDD-supply = <®_3p3v>; AVDD-supply = <®_3p3v>; IOVDD-supply = <®_3p3v>; DVDD-supply = <®_1p8v>; }; pinctrl_audio_reset_31xx: pinctrl_audio_reset_31xx { fsl,pins = < MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x16 >; };