Other Parts Discussed in Thread: PCM5102A, PCM5102
Hello All,
I am trying to interface multiple I2S devices on beagle bone black for different audio codecs. I have successfully interfaced one one device using PCM5102A dummy codec driver. Now I want to use multiple I2S interfaced devices at same time. I have tried with doing some changes in ".dtsi" file But It doesn't work. Can anyone Please help me to sort out this issue.
1.There is only one sound card shown while I enters "arecord -l" command. I want multiple sound cards there.

2. The Working .dtsi file for PCM5102A is as follow. Should I have to made changes in the same file or create seperate .dtsi file for another I2S device?
&am33xx_pinmux {
mcasp1_pins: mcasp1_pins {
pinctrl-single,pins = <
/* sink must enable receivers */
AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* P9_42 mcasp1_aclkx - bit clock */
AM33XX_IOPAD(0x9a4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* P9_27 mcasp1_fsx - frame sync */
0x1a8 0x23 /* P9_41 mcasp1_axr0 - i2s input */
>;
};
};
&mcasp1 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&mcasp1_pins>;
status = "okay";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
num-serializer = <4>;
serial-dir = < /* 1 TX 2 RX 0 unused */
2 1 0 0
>;
rx-num-evt = <8>;
tx-num-evt = <8>;
};
/ {
pcm5102a: pcm5102a {
#sound-dai-cells = <0>;
compatible = "ti,pcm5102a";
status = "okay";
};
clk_mcasp1_fixed: clk_mcasp1_fixed {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <24576000>;
};
clk_mcasp1: clk_mcasp1 {
#clock-cells = <0>;
compatible = "gpio-gate-clock";
clocks = <&clk_mcasp1_fixed>;
enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */
};
sound1: sound@1 {
compatible = "simple-audio-card";
simple-audio-card,name = "PCM5102a";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sound1_master>;
simple-audio-card,frame-master = <&sound1_master>;
simple-audio-card,bitclock-inversion;
sound1_master: simple-audio-card,cpu {
sound-dai = <&mcasp1>;
system-clock-direction = "out";
system-clock-frequency = <24576000>;
clocks = <&clk_mcasp1>;
};
simple-audio-card,codec {
#sound-dai-cells = <0>;
sound-dai = <&pcm5102a>;
/*clocks = <&mcasp1_fck>;
clock-names = "mclk";*/
};
};
};
3. I have tried for different I2S pinmux i.e mcasp0. It is also working but only one device is shown at a time.
How to add the second audio card into the sound node in the kernel device tree? any examples?
Any help will be grateful!!!
Thanks,
Shantanu