Hi Mark
Thank you for your help. But I still want to ask about TDM settings
Thanks. We can have total channel number. Then do we have common DT settings/method to indicate below ?
There's some stuff already supported for simple-card - see snd_soc_of_parse_tdm_slot(). This won't cover all uses but it should be good for simple uses.
In my check, it is caring about - tdm slot : total channel number - tdm slot width : bit width for each channel (?) - tdm tx/rx mask : active slot (?)
tx/rx mask seems care about active/non-active. We can use it if it sends 6ch sound by using 8ch slot (?).
But it doesn't care about dai connection (?) (= I mean 6ch x 1 or 2ch x 3 etc) "simple card" should be simple, but CPU/Codec need this "dai connection" information ? Otherwise, my CPU/Codec can't setup for TDM (= 6ch x 1 or 2ch x 3 etc). I guess this can be common method, but what do you think ?
And this snd_soc_of_parse_tdm_slot() is called under asoc_simple_card_sub_parse_of(). This means DT is like this ?
sound { compatible = "simple-audio-card"; ...
cpu { sound-dai = <&xxx>; dai-tdm-slot-xxx = <xx>; dai-tdm-slot-xxx = <xx>; }; codec { sound-dai = <&xxx>; dai-tdm-slot-xxx = <xx>; dai-tdm-slot-xxx = <xx>; }; };
But I wonder it should be this ?
sound { compatible = "simple-audio-card"; ...
dai-tdm-slot-xxx = <xx>; dai-tdm-slot-xxx = <xx>;
cpu { sound-dai = <&xxx>; }; codec { sound-dai = <&xxx>; }; };
In my check this "dai-tdm-slot-xxx" is implemented, but no one is using ? ${LINUX}/Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt is including dai-tdm-slot-width, but it seems it is ignored today ?
I would like to expand dai-tdm-slot-xxx 1) use common settings for both CPU/Codec 2) add dai connect information
Best regards --- Kuninori Morimoto