On 24.08.2019 23:26, Michał Mirosław wrote: > SSC driver allows only synchronous TX and RX. In slave mode for BCLK > it uses only one of TK or RK pin, but for LRCLK it configured separate > inputs from TF and RF pins. Allow configuration with common FS signal. > > Signed-off-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx> > > --- > v2: use alternate DT binding > split DT and drivers/misc changes > > --- > sound/soc/atmel/atmel_ssc_dai.c | 26 ++++++++++++++++++++++---- > 1 file changed, 22 insertions(+), 4 deletions(-) > > diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c > index 48e9eef34c0f..035d4da58f2b 100644 > --- a/sound/soc/atmel/atmel_ssc_dai.c > +++ b/sound/soc/atmel/atmel_ssc_dai.c > @@ -605,14 +605,32 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream, > return -EINVAL; > } > > - if (!atmel_ssc_cfs(ssc_p)) { > + if (atmel_ssc_cfs(ssc_p)) { > + /* > + * SSC provides LRCLK > + * > + * Both TF and RF are generated, so use them directly. > + */ > + rcmr |= SSC_BF(RCMR_START, fs_edge); > + tcmr |= SSC_BF(TCMR_START, fs_edge); Hmm, how would this work if capture and playback start/run at the same time? > + } else { > fslen = fslen_ext = 0; > rcmr_period = tcmr_period = 0; > fs_osync = SSC_FSOS_NONE; > - } > > - rcmr |= SSC_BF(RCMR_START, fs_edge); > - tcmr |= SSC_BF(TCMR_START, fs_edge); > + if (ssc->lrclk_from_tf_pin) { > + rcmr |= SSC_BF(RCMR_START, SSC_START_TX_RX); > + tcmr |= SSC_BF(TCMR_START, fs_edge); > + } else if (ssc->lrclk_from_rf_pin) { > + /* assume RF is to be used when RK is used as BCLK input */ This comment is not longer true... > + /* Note: won't work correctly on SAMA5D2 due to errata */ > + rcmr |= SSC_BF(RCMR_START, fs_edge); > + tcmr |= SSC_BF(TCMR_START, SSC_START_TX_RX); > + } else { > + rcmr |= SSC_BF(RCMR_START, fs_edge); > + tcmr |= SSC_BF(TCMR_START, fs_edge); > + } > + } > > if (atmel_ssc_cbs(ssc_p)) { > /* > Thanks and best regards, Codrin _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel