sound { compatible = "simple-audio-card"; simple-audio-card,name = "tlv320aic31xx-codec"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&dailink_master>; simple-audio-card,frame-master = <&dailink_master>; simple-audio-card,bitclock-inversion; simple-audio-card,widgets = "Microphone", "Microphone Jack", "Headphone", "Headphone Jack", "Speaker", "Speaker"; simple-audio-card,routing = "MIC1LP", "Microphone Jack", "MIC1RP", "Microphone Jack", "MIC1LP", "MICBIAS", "MIC1RP", "MICBIAS", "Headphone Jack", "HPL", "Headphone Jack", "HPR", "Speaker", "SPL", "Speaker", "SPR"; simple-audio-card,cpu { sound-dai = <&sai1>; /*system-clock-frequency = <12000000>;*/ }; dailink_master: simple-audio-card,codec { sound-dai = <&codec>; clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>; /*system-clock-frequency = <12000000>;*/ }; }; &sai1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai1>; assigned-clocks = <&clks IMX7D_SAI1_ROOT_SRC>, <&clks IMX7D_PLL_AUDIO_POST_DIV>, <&clks IMX7D_SAI1_ROOT_CLK>; assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>; assigned-clock-rates = <0>, <884736000>, <36864000>; status = "okay"; }; pinctrl_sai1: sai1grp { fsl,pins = < MX7D_PAD_SAI1_RX_DATA__SAI1_RX_DATA0 0x1f MX7D_PAD_SAI1_TX_BCLK__SAI1_TX_BCLK 0x1f MX7D_PAD_SAI1_TX_SYNC__SAI1_TX_SYNC 0x1f MX7D_PAD_SAI1_TX_DATA__SAI1_TX_DATA0 0x30 MX7D_PAD_SAI1_MCLK__SAI1_MCLK 0x1f >; }; &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1>; clock-frequency = <100000>; status = "okay"; codec: codec@18 { #sound-dai-cells = <0>; reg = <0x18>; compatible = "ti,tlv320aic3110"; ai3x-micbias-vg = <2>; HPVDD-supply = <®_3p3v>; AVDD-supply = <®_3p3v>; SPRVDD-supply = <®_3p3v>; SPLVDD-supply = <®_3p3v>; IOVDD-supply = <®_3p3v>; DVDD-supply = <®_1p8v>; }; }