Hi Richard Thank you for your patch. This is v3 patch, but I think this is the first time for me to receive patch... > Some codecs need plls and/or sysclks to be configured using the > snd_soc_component_set_[sysclk|pll] functions. These drivers cannot > necessarily be converted to use the clock framework. If the codec is on > a I2C/SPI bus, a nested clk_get would be needed to enable the bus clock. > But the clock framework does not support nested operations and this would > deadlock. > > This patch adds new dt properties that list phandles of components with > the pll/sysclk settings to be applied. Multiple settings can be given for > the same phandle to allow for components with multiple clocks and plls. > The plls and sysclks are enabled when the card bias level moves to STANDBY > and disabled when it moves to OFF. > > The implementation does not attempt to handle specifying complex clock > ordering interdependencies between components. The plls and sysclks are > applied to a component as it is passed to the card set_bias_level/ > set_bias_level_post callbacks. It follows from this that the order > components are configured is the order that they are passed to those > callbacks. > > Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxx> > --- > include/sound/simple_card_utils.h | 25 +++ > sound/soc/generic/audio-graph-card.c | 16 +- > sound/soc/generic/simple-card-utils.c | 236 ++++++++++++++++++++++++++ > 3 files changed, 275 insertions(+), 2 deletions(-) I understand that you need sysclk/pll and .set_bias_level_xxx(). But I guess makes it generic code is difficult (?). Thus, as Sameer doing on Tegra, creating custom audio-graph-card is better idea for you ? # Now I'm creating new audio-graph-card2 which also supports # overwriting/customizing each/all functions. # It is not full compatible with audio-graph-card, but almost same if you # uses normal connection. # I hope I can post it next year Thank you for your help !! Best regards --- Kuninori Morimoto