
set_tdm_slot()
We will register multiple codecs inside a single dai_link and differentiate these codecs by of_node. And the adc_slot and the dac_slot may be different, they can be decided by the user.If we use set_tdm_slot,the adc_slot and the dac_slot will be same.
No, the machine driver should be configuring different TDM slots for each device - that's the whole point of the API.
We are using multiple codecs as a single device.So we can't use set_tdm_slot to configure different slots for multiple codecs under one device.
ret = clk_prepare_enable(es8389->mclk);
if (ret) {
dev_err(codec->dev, "%s, unable to enable mclk\n", __func__);
return ret;
}
- }
Making the use of a MCLK depend on the configuration of a TDM slot for the ADC seems *very* unusual, what's going on there?
Because we are associating multiple codecs under a single dai_link, we will be executing probe and init many times during initialization.But MCLK only needs to be used once.So we decided making the use of a MCLK depend on the configuration of a TDM slot for the ADC
No, each device should just get and enable the MCLK itself - the clock API does reference counting so there's no problem with this, it's normal for a clok to have multiple consumers.
ok,I'll fix it