Part Number: AM5728
Other Parts Discussed in Thread: BEAGLEBOARD-X15
Tool/software: Linux
All,
I'm porting the wm8994 audio codec on the AM5728 EVM.
It is now displayed in the list of audio cards.
-------------------------
root@am57xx-evm:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: AM5728EVM [AM5728-EVM], device 0: davinci-mcasp.0-wm8994-aif1 wm8994-aif1-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: BeagleBoardX15 [BeagleBoard-X15], device 0: davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
root@am57xx-evm:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AM5728EVM [AM5728-EVM], device 0: davinci-mcasp.0-wm8994-aif1 wm8994-aif1-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: BeagleBoardX15 [BeagleBoard-X15], device 0: davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: H58040000encode [HDMI 58040000.encoder], device 0: HDMI 58040000.encoder snd-soc-dummy-dai-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
root@am57xx-evm:~#
-----------------------------------
But I want to use mcasp2_ahclkx as MCLK, but the clock does not come out when playing audio.
--------- am57xx-beagle-x15-common.dtsi
sound0: sound@0 {
compatible = "simple-audio-card";
simple-audio-card,name = "AM5728-EVM";
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 = <&mcasp2>;
};
sound0_master: simple-audio-card,codec {
sound-dai = <&wm8994>;
clocks = <&clkout2_clk>;
system-clock-id = <1>;
};
};
///////////
&mcasp2 {
#sound-dai-cells = <0>;
assigned-clocks = <&mcasp2_ahclkx_mux>;
assigned-clock-parents = <&sys_clkin2>;
pinctrl-names = "default";
pinctrl-0 = <&mcasp2_pins>;
status = "okay";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <4>;
/* 4 serializers */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1 2 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};
////////////
mcasp2_pins:mcasp2_pins {
pinctrl-single,pins = <
//DRA7XX_CORE_IOPAD(0x36A0, (PIN_OUTPUT_PULLDOWN | MUX_MODE9)) /* xref_clk3 */
DRA7XX_CORE_IOPAD(0x3698, (PIN_OUTPUT_PULLDOWN | MUX_MODE3)) /* xref_clk1.mcasp2_ahclkx (MCLK) */
DRA7XX_CORE_IOPAD(0x36F4, (PIN_INPUT_PULLDOWN | MUX_MODE0)) /* mcasp2_aclkx */
DRA7XX_CORE_IOPAD(0x36F8, (PIN_INPUT_PULLDOWN | MUX_MODE0)) /* mcasp2_fsx */
DRA7XX_CORE_IOPAD(0x3704, (PIN_OUTPUT_PULLDOWN | MUX_MODE0)) /* mcasp2_ax0 (DACDAT) */
DRA7XX_CORE_IOPAD(0x36FC, (PIN_INPUT_PULLDOWN | MUX_MODE0)) /* mcasp2_aclkr (BCLK) */
DRA7XX_CORE_IOPAD(0x3700, (PIN_INPUT_PULLDOWN | MUX_MODE0)) /* mcasp2_fsr (WCLK) */
DRA7XX_CORE_IOPAD(0x3708, (PIN_INPUT_PULLDOWN | MUX_MODE0)) /* mcasp2_ax1 (ADCDAT) */
>;
};
//////////
&i2c4 {
status = "okay";
clock-frequency = <400000>;
wm8994: wm8994@1a {
#sound-dai-cells = <0>;
compatible = "wlf,wm8994";
reg = <0x1a>;
assigned-clocks = <&clkoutmux2_clk_mux>;
assigned-clock-parents = <&sys_clk2_dclk_div>;
/* Regulators */
AVDD2-supply = <&vdd>;
CPVDD-supply = <&vdd>;
DBVDD-supply = <&dbvdd>;
SPKVDD1-supply = <&spkvdd>;
SPKVDD2-supply = <&spkvdd>;
status = "okay";
};
};
When playing using aplay command, CLKOUT2 still shows MCLK,
but I want to know how to use CLKOUT3 (pin 41) or GPIO6_18 (pin58) of the P17 connector on the processor board as MCLK.
Best Regards,
Kim