[alsa-devel] [PATCH v5] ASoC: cs53l30: Add support for Cirrus Logic CS53L30
Nicolin Chen
nicoleotsuka at gmail.com
Wed May 18 01:43:33 CEST 2016
Hi Mark,
I have two quick questions regarding the DAI and its TDM support.
On Tue, Mar 15, 2016 at 05:47:46PM -0500, tim.howe at cirrus.com wrote:
> +static const struct snd_soc_dapm_route cs53l30_audio_map[] = {
> +
> + /* ADC Input Paths */
> + {"ADC1A", NULL, "IN1_DMIC1"},
> + {"Input Mux 1", "ADC1_SEL", "ADC1A"},
> + {"ADC1B", NULL, "IN2"},
> +
> + {"ADC2A", NULL, "IN3_DMIC2"},
> + {"Input Mux 2", "ADC2_SEL", "ADC2A"},
> + {"ADC2B", NULL, "IN4"},
> +
> + /* MIC Bias Paths */
> + {"ADC1A", NULL, "MIC1 Bias"},
> + {"ADC1B", NULL, "MIC2 Bias"},
> + {"ADC2A", NULL, "MIC3 Bias"},
> + {"ADC2B", NULL, "MIC4 Bias"},
> +
> + /* DMIC Paths */
> + {"DMIC1", NULL, "IN1_DMIC1"},
> + {"Input Mux 1", "DMIC1_SEL", "DMIC1"},
> +
> + {"DMIC2", NULL, "IN3_DMIC2"},
> + {"Input Mux 2", "DMIC2_SEL", "DMIC2"},
> +
> + /* Output Paths */
> + {"ASP_SDOUT1", NULL, "ADC1A" },
> + {"ASP_SDOUT1", NULL, "Input Mux 1"},
> + {"ASP_SDOUT1", NULL, "ADC1B"},
> +
> + {"ASP_SDOUT2", NULL, "ADC2A"},
> + {"ASP_SDOUT2", NULL, "Input Mux 2"},
> + {"ASP_SDOUT2", NULL, "ADC2B"},
> +
> + {"ASP1 Capture", NULL, "ASP_SDOUT1"},
> + {"ASP2 Capture", NULL, "ASP_SDOUT2"},
> +};
This codec chip has two SDOUT (Serial Data Output) pins while sharing
one serial port -- there's only one pair of bit clock and fsync clock.
> +static struct snd_soc_dai_driver cs53l30_dai[] = {
> + {
> + .name = "cs53l30-asp1",
> + .id = CS53L30_ASP1,
> + .capture = {
> + .stream_name = "ASP1 Capture",
> + .channels_min = 1,
> + .channels_max = 2,
> + .rates = CS53L30_RATES,
> + .formats = CS53L30_FORMATS,
> + },
> + .ops = &cs53l30_ops,
> + .symmetric_rates = 1,
> + },
> + {
> + .name = "cs53l30-asp2",
> + .id = CS53L30_ASP2,
> + .capture = {
> + .stream_name = "ASP2 Capture",
> + .channels_min = 1,
> + .channels_max = 2,
> + .rates = CS53L30_RATES,
> + .formats = CS53L30_FORMATS,
> + },
> + .ops = &cs53l30_ops,
> + .symmetric_rates = 1,
> + }
> +};
In this case, would it be more appropriate to create one single DAI
with channels_max = 4 over here?
Another question is for its TDM support. This chip outputs 4-channel
data on two data output pins (SDOUT1 and SDOUT2) as normal mode; it
outputs 4-channel data on one data output pin (SDOUT1) as TDM mode.
However, the mode selection for a 4-channel recording should depend
on the hardware design: whether the SDOUT2 is connected or not. So
I am wondering if there is a common way or existing way to indicate
this hardware design. Or just by simply defining a new DT property?
Thank you
Nicolin
More information about the Alsa-devel
mailing list