se70-dmesg-alc5640-20210602.txt (59.1 KB)
se70-uart-alc5640-20210602.txt (85.8 KB)
tegra_machine_driver_mobile.c (22.7 KB)
tegra194-audio-se70.dtsi (2.4 KB)
The Audio CODEC ALC5640 can’t work on our designed carrier board with I2C2 and I2S0.
ALC5640 connect to I2S0 and I2C2 interfaces , and using GPIO09 for AUD_MCLK.
The PINMUX setup as below in DTS.
pinmux@2430000 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&hdr40_pinmux>;
hdr40_pinmux: header-40pin-pinmux {
pin7 {
nvidia,pins = HDR40_PIN7;
nvidia,function = HDR40_CLK;
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
};
pin12 {
nvidia,pins = HDR40_PIN12;
nvidia,function = HDR40_I2S;
nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
};
pin35 {
nvidia,pins = HDR40_PIN35;
nvidia,function = HDR40_I2S;
nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
};
pin38 {
nvidia,pins = HDR40_PIN38;
nvidia,function = HDR40_I2S;
nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
};
pin40 {
nvidia,pins = HDR40_PIN40;
nvidia,function = HDR40_I2S;
nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
};
};
};
Also setup ALC5640 to fit Kernel driver “rt5640.c” in DTS.
i2c@316000 {
status = "okay";
rt5640_codec: rt5640_codec@1c {
compatible = "realtek,rt5640";
reg = <0x1c>;
status = "okay";
};
};
And,
setup tegra_sound in DTS file “ tegra194-audio-se70.dtsi” as attachment.
Modify machine driver implement with rt5640 as attachment “tegra_machine_driver_mobile.c”.
Now,
Kernel log show “CODEC DAI rt5640_codec not registered” as attachment “se70-uart-alc5640-20210602.txt”.
Dmesg display the same info also, as attachment “se70-dmesg-alc5640-20210602.txt”.
Any opinion?