Other Parts Discussed in Thread: TLV320AIC3104, BEAGLEBOARD-X15
Tool/software: Linux
Hi,
We have a custom board based on am5718. The board design is based on am571x-idk with some additions from am572x-evm, for instance the Audio codec. Now I cannot get the sound card to work. I suspect that the clock setup for the sound card is incorrect because depending on setting the board does not boot properly. What should the correct clock settings be? Or are there any other obvious errors?
The differences from the am572x-evm design is that we use I2C_Bus3 instead of bus1 and we use MCASP1 with the following connections:
TLV320AIC3104 <--> am5718
MCLK <--> MCASP1_AHCLKX (XREF_CLK0)
WCLK <--> MCASP1_FSX
BCLK <--> MCASP1_ACLKX
DIN <--> MCASP1_AXR6
DOUT <--> MCASP1_AXR7
The device tree setting regarding the sound card is as follows:
sound0: sound0 {
compatible = "simple-audio-card";
simple-audio-card,name = "BeagleBoard-X15";
simple-audio-card,widgets =
"Headphone", "Headphone Jack",
"Line", "Line Out",
"Line", "Line In";
simple-audio-card,routing =
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"Line Out", "LLOUT",
"Line Out", "RLOUT",
"MIC2L", "Line In",
"MIC2R", "Line In";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&sound0_master>;
simple-audio-card,frame-master = <&sound0_master>;
simple-audio-card,bitclock-inversion;
simple-audio-card,cpu {
sound-dai = <&mcasp1>;
};
sound0_master: simple-audio-card,codec {
sound-dai = <&tlv320aic3104>;
clocks = <&clkout2_clk>;
};
};
&mcasp1 {
#sound-dai-cells = <0>;
assigned-clocks = <&mcasp1_ahclkx_mux>;
assigned-clock-parents = <&sys_clkin2>;
status = "okay";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
/* 16 serializers */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
0 0 0 0
0 0 1 2
0 0 0 0
0 0 0 0 >;
tx-num-evt = <32>;
rx-num-evt = <32>;
};
&i2c3 {
status = "okay";
clock-frequency = <400000>;
tlv320aic3104: tlv320aic3104@18 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3104";
reg = <0x18>;
assigned-clocks = <&mcasp1_ahclkx_mux>;
status = "okay";
adc-settle-ms = <40>;
AVDD-supply = <&v3_3d>;
IOVDD-supply = <&v3_3d>;
DRVDD-supply = <&v3_3d>;
DVDD-supply = <&aic_dvdd>;
};
};