On Mon, 9 Dec 2024 01:58:59 +0000 Kuninori Morimoto wrote: > Hi Stephen > > > > You should use one of the audio-graph-card bindings for anything > > > new. > > Using audio-graph-card is good idea, but all > simple_card/audio-graph-card/audio-graph-card2 are using same logic > around here. So, you will have same issue on audio-graph-card too. > > > > > Basically, simple_card appears to set the CPU as producer if you > > > > don't specify a producer. I am not sure whether this is a bug. > > > > > > > > > > Well, if nothing is configured it's got to pick a default? > > If my understand was correct, your issue can be solved... > > dailink_out_master: simple-audio-card,dai-link@0 { > ... > => pcm3168_playback: codec { > ... > }; > }; > dailink_in_slave: simple-audio-card,dai-link@1 { > => bitclock-master = <&pcm3168_playback>; > => frame-master = <&pcm3168_playback>; > ... > }; > > asoc_simple_parse_daifmt() is just checking where the node was codec > node or not. So, if bitclock-master/frame-master were produced, but > was not codec, both CPU/Codec can be consumer ? > > # Clock producer/consumer settings is very confusable, because it was > # Codec base, and has flip, etc... > > Thank you for your help !! > > Best regards > --- > Kuninori Morimoto Hi Morimoto-san, This is one of the things I tried initially, but I wasn't sure if it was a valid configuration. I just tried it again with debug enabled (see dt_snippet.txt) and I get the attached (see dbgout.txt) in dmesg. It is trying to set the CPU end as producer. I think it's because asoc_simple_parse_daifmt() checks whether the bit/frame phandles passed match the codec phandle - since it doesn't (it's a different codec), it sets the DAI link as "consumer mode" (i.e. clocks come from CPU). Therefore, the CPU side gets configured as producer. I am using the version from 6.12.3 as that is the latest I can build. Regards Stephen