Hello!
I'm having a very confusing time trying to get linux to recognise two mics coming into one McASP.
First of all, what works:
sound1: sound1 {
compatible = "simple-audio-card";
simple-audio-card,name = "JOTRON";
simple-audio-card,widgets =
"Microphone", "Main Mic";
mclk-fs = <64>;
simple-audio-card,dai-link@0 {
reg = <0>;
format = "i2s";
bitclock-master = <&sound1_master>;
frame-master = <&sound1_master>;
sound1_master: cpu {
sound-dai = <&mcasp7>;
clocks = <&clkout2_clk>;
system-clock-direction = "out";
/* system-clock-frequency = <24576000>; */
/* clocks = <&clk_mcasp7>; */
};
codec {
reg = <0>;
sound-dai = <&sph0645lm4h_b>;
clocks = <&clkout2_clk>;
#sound-dai-cells = <0>;
};
};
};
sph0645lm4h_b: sph0645lm4h_b {
#sound-dai-cells = <0>;
compatible = "knowles,sph0645lm4h-b";
status = "okay";
};
&mcasp7 {
#sound-dai-cells = <0>;
assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP7_CLKCTRL 24>;
assigned-clock-parents = <&sys_clkin2>;
status = "okay";
pinctrl-names = "default";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
auxclk-fs-ratio = <64>;
/* 16 serializers */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
2 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};
So this works just fine. I'm no hardware guy but I get that the I2S line is coming into AXR0.
The issue I have is that I have another mic (single channel this time) coming in on AXR1. What I know for sure is that I have to change the `serial-dir` to <2 2 0 0 ...> but that is all I have worked out
I have no idea how to deal with the routing and how to get this second mic to show up in ALSA. I'm very lost here.
I have tried adding another dai-link to the simple audio card, adding another codec block etc etc but I cannot seem to work out how I am meant to get this other mic to work and be accessible from linux