• Kuninori Morimoto's avatar
    ASoC: rsnd: enable multi Component support for Audio Graph Card/Card2 · 547b02f7
    Kuninori Morimoto authored
    	+-- Basic Board ---------+
    	|+--------+      +------+|
    	|| CPU ch0| <--> |CodecA||
    	||     ch1| <-+  +------+|
    	|+--------+   |          |
    	+-------------|----------+
    	+-- expansion board -----+
    	|             |  +------+|
    	|             +->|CodecB||
    	|                +------+|
    	+------------------------+
    
    In above HW connection case, we intuitively think we want to handle these
    as "2 Sound Cards".
    
    	card0,0: CPU-ch0 - CodecA
    	card1,0: CPU-ch1 - CodecB
    
    But, we needed to handle it as "1 big Sound Card", because of
    Component vs Card limitation.
    
    	card0,0: CPU-ch0 - CodecA
    	card0,1: CPU-ch1 - CodecB
    
    This patch enables multi Component to handle multi Cards.
    To support it, it needs
    
    	- Fill dai_args for each DAI on snd_soc_dai_driver
    	- Parse DT for each Component (Simple Card/Audio Graph Card)
    
    Ex) Simple Card
    
    	rcar_sound {
    		...
    
    		/* Component0 */
    		rcar_sound,dai@0 {
    			...
    		};
    
    		/* Component1 */
    		rcar_sound,dai@1 {
    			...
    		};
    	};
    
    Ex) Audio Graph Card/Card2
    
    	rcar_sound {
    		/* Component0 */
    		ports@0 {
    			...
    		};
    
    		/* Component1 */
    		ports@1 {
    			...
    		};
    	};
    Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/87tttub1m4.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    547b02f7
core.c 48.3 KB