• Kuninori Morimoto's avatar
    ASoC: soc-core: add snd_soc_daifmt_parse_format/clock_provider() · 7766861d
    Kuninori Morimoto authored
    snd_soc_of_parse_daifmt() parses daifmt, but bitclock/frame provider
    parsing part is one of headacke, because we are assuming below both cases.
    
    A)	node {
    		bitclock-master;
    		frame-master;
    		...
    	};
    
    B)	link {
    		bitclock-master = <&xxx>;
    		frame-master = <&xxx>;
    		...
    	};
    
    The original was style A), and style B) was added later
    by commit b3ca11ff ("ASoC: simple-card: Move dai-link level
    properties away from dai subnodes").
    
    snd_soc_of_parse_daifmt() parses it as style A),
    and user need to update it to style B) if needed.
    
    To handle it more flexibile, this patch adds new functions
    which separates snd_soc_of_parse_daifmt() helper function.
    
     snd_soc_daifmt_parse_format()			 :for DAI format
     snd_soc_daifmt_parse_clock_provider_as_flag()	 :for style A)
     snd_soc_daifmt_parse_clock_provider_as_phandl() :for style B)
     snd_soc_daifmt_parse_clock_provider_as_bitmap() :use with _from_bitmap
    
    This means
    
     snd_soc_of_parse_daifmt() ==
    	snd_soc_daifmt_parse_format() |
    	snd_soc_daifmt_parse_clock_provider_as_flag()
    
    This patch also indicate relatesionship comment for
    snd_soc_daifmt_clock_provider_from_bitmap().
    Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/877dixw9ej.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    7766861d
soc-core.c 85.1 KB