主题中讨论的其他器件: TAS5805、 TAS2781
工具/软件:
我将使用两个以2.1主/从配置连接的 TAS5805M DAC 构建 Raspberry Pi HAT。 我使用的原理图非常接近 数据表建议值、可 在此处获取。 我遇到的问题是为该 Hat for Raspbian 构建正确的设备树。
我从 Raspberry Pi HAT 开始、具有一个 单路 TAS5805M DAC 以及 该主题中的驱动器实现。 我做了几个调整,使它构建为最新的内核版本 和设备树 , 可以 在这里找到 它运行得很好!
现在、我正在尝试添加一个 秒 但无法使其正常工作。 我得到的最接近的是这个旋转的设备树 主 DAC 使用 TAS5805M 驱动器、它可按预期播放音频。
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835";
fragment@0 {
target = <&i2s>;
__overlay__ {
status = "okay";
};
};
fragment@1 {
target = <&i2c1>;
__overlay__ {
status = "okay";
clock-frequency = <400000>;
#address-cells = <1>;
#size-cells = <0>;
tas5805m_master: tas5805m@2e {
#sound-dai-cells = <0>;
compatible = "ti,tas5805m";
reg = <0x2e>;
pvdd-supply = <&vdd_3v3_reg>;
pdn-gpios = <&gpio 4 0>;
ti,dsp-config-name = "2.0_basic";
sound-name-prefix = "Main";
};
tas5805m_slave: tas5805m@2f {
#sound-dai-cells = <0>;
compatible = "ti,tas5805m";
reg = <0x2f>;
pvdd-supply = <&vdd_3v3_reg>;
pdn-gpios = <&gpio 5 0>;
ti,dsp-config-name = "1.0_basic";
sound-name-prefix = "Woofer";
};
};
};
fragment@2 {
target = <&sound>;
__overlay__ {
status = "okay";
compatible = "simple-audio-card";
label = "Louder-Raspberry-2X";
simple-audio-card,widgets =
"Speaker", "Speaker";
simple-audio-card,routing =
"Speaker", "Main OUTA",
"Speaker", "Main OUTB";
// "Speaker", "Woofer OUTA",
// "Speaker", "Woofer OUTB";
simple-audio-card,dai-link {
format = "i2s";
bitclock-master = <&dailink_master>;
frame-master = <&dailink_master>;
dailink_master: simple-audio-card,cpu {
sound-dai = <&i2s>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
};
codec@0 {
sound-dai = <&tas5805m_master>;
};
// codec@1 {
// sound-dai = <&tas5805m_slave>;
// };
};
};
};
};
但只要我注释掉 codec@1
该段和相应的 routing
段、就会在初始化时报告错误
Apr 15 17:51:25 lab-louder-pi-04 kernel: tas5805m-amplifier-tas5805m-amplifier: substream tas5805m-amplifier-tas5805m-amplifier has no playback, no capture
Apr 15 17:51:25 lab-louder-pi-04 kernel: asoc-simple-card soc:sound: ASoC: can't create pcm tas5805m-amplifier-tas5805m-amplifier :-22
Apr 15 17:51:25 lab-louder-pi-04 kernel: asoc-simple-card: probe of soc:sound failed with error -22