Hi,
We are trying to integrate MAXIM 98089 (Audio codec) into our Linux product build. This has 2 DAI's available with it - DAI1 with both Playback and Capture facility and DAI2 with Playback capability alone.
When we use this codec in our build, we find that the dai1_hw_params and dai1_set_fmt functions never gets called but it is always dai2_hw_params and dai2_set_fmt function that gets called because of which apparently, we are able to hear the voice that is incoming but not able to capture the voice and send it out externally.
Here are our definitions:
static struct snd_soc_dai_driver max98089_dai[] = { { .name = "max98089.0", .playback = { .stream_name = "Playback", .channels_min = 1, .channels_max = 2, .rates = MAX98089_RATES, .formats = MAX98089_FORMATS, }, .capture = { .stream_name = "Capture", .channels_min = 1, .channels_max = 2, .rates = MAX98089_RATES, .formats = MAX98089_FORMATS, }, .ops = &max98089_dai1_ops, }, { .name = "max98089.1", .playback = { .stream_name = "Aux Playback", .channels_min = 1, .channels_max = 2, .rates = MAX98089_RATES, .formats = MAX98089_FORMATS, }, .ops = &max98089_dai2_ops, .symmetric_rates = 1, } };
The codec specific registers only when we put in dai2_ops functions, we are able to see the effects but there is no effect if we put it in dai1_ops functions.
Is there any specific way of referring to DAI when we have multiple DAI support in the codec that we are using?
Thanks in advance for your inputs
VS