sound {
compatible = "simple-audio-card";
simple-audio-card,name = "tlv-audio";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
simple-audio-card,mclk-fs = <32>;
simple-audio-card,widgets =
"Headphone", "Headphone Jack",
"Microphone", "Mic Jack";
simple-audio-card,routing =
"Headphone Jack", "HPROUT",
"Headphone Jack", "HPLOUT",
"LINE2L", "Mic Jack",
"LINE2R", "Mic Jack",
"Mic Jack", "Mic Bias";
cpu_dai: simple-audio-card,cpu {
sound-dai = <&sai3>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&tlv320aic3x>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>;
};
};
&sai3 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
status = "okay";
tlv320aic3x: tlv320aic3x@18 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3x";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_tlv>;
reset-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
reg = <0x18>;
DVDD-supply = <®_snd_1v8>;
IOVDD-supply = <®_snd_3v3>;
AVDD-supply = <®_snd_3v3>;
DRVDD-supply = <®_snd_3v3>;
status = "okay";
};
pinctrl_tlv: tlvgrp {
fsl,pins = <
MX8MP_IOMUXC_SD2_WP__GPIO2_IO20 0x0
>;
};
pinctrl_sai3: sai3grp {
fsl,pins = <
MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK 0xD6
MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC 0xD6
MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK 0xD6
MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0xD6
MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0xD6
>;
};