This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCM1864EVM: Trying to record over I2S on Linux.

Part Number: PCM1864EVM
Other Parts Discussed in Thread: PCM1864

I am using the PCM1864 as the master using J8 and J10 jumpers as specified in the manual.

I set up a generic ALSA i2s device tree using 'simple-audio-card', I can see the device using arecord -l, and all the  controls in alsamixer. But, when trying to record anything using arecord I get Invalid Argument ALSA error (when calling snd_pcm_open I guess, its very instantaneous).

Here is the device tree (on a Raspberry Pi if that makes a difference).

compatible = "brcm,bcm2835";

fragment@0 {
target-path = "/";
__overlay__ {
evmclock: evmclock {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <49152000>;
};
};
};

fragment@1 {
target = <&i2s>;
__overlay__ {
#sound-dai-cells = <0>;
status = "okay";
};
};

fragment@2 {
target = <&i2c1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
evm: audio-codec@4a {
#sound-dai-cells = <0>;
compatible = "ti,pcm1864";
//clocks = <&evmclock>;
reg = <0x4a>;
status = "okay";
avdd-supply = <&vdd_3v3_reg>;
dvdd-supply = <&vdd_3v3_reg>;
iovdd-supply = <&vdd_3v3_reg>;
};
};
};

fragment@3 {
target = <&sound>;
HifiBettear: __overlay__ {
compatible = "simple-audio-card";
status = "okay";
simple-audio-card,name = "Hifi";
capture: simple-audio-card,dai-link@0 {
format = "i2s";
bitclock-master = <&cpu>;
frame-master = <&cpu>;
cpu: cpu {
sound-dai = <&evm>;
clocks = <&evmclock>;
dai-tdm-slot-num = <4>;
dai-tdm-slot-width = <32>;
};
codec {
sound-dai = <&evm>;
dai-tdm-slot-num = <4>;
dai-tdm-slot-width = <32>;
};
};
};
};

This device tree is made from bits and pieces from this forum and some googling. If you have a similar setup or can point me in the right direction that would be very appreciated. 


Let me know if you need anything else.
Thanks, Ran.