Hi,
Currently davinci-mcasp is hardwired for two configuration regarding to reference clock: McASP is master: AHCLKX is selected as source of the reference clock used to generate the FS and BCLK McASP is slave: AHCLKX is selected as output and the default AUXCLK is routed there.
This works in most of the boards, but not all configuration can be supported with this limitation. McASP uses it's internal AUXCLK as a reference clock. AUXCLK can be sourced from the external AHCLKX pin or from internal functional clock. If the board uses McASP as master and AHCLKX is not receiving clock, we need to be able to select the internal clock source to be able to generate the FS and BCLK.
Since we try to move all of our boards to simple-card instead of the davinci-evm custom machine driver, I have included Jyri's two patch to add the needed support for it to be able to select clocks and directions.
I remember the discussion regarding to clock IDs, and to try to move to common clock framework. I have taken a look at that path and I'm not convinced that by trying to add ASoC level common clock handling will simplify or makes things cleaner/simpler.
Regards, Peter --- Jyri Sarha (2): ASoC: simple-card: Add system-clock-direction DT parameter to dai nodes ASoC: simple-card: Support for selecting system clocks by ID
Peter Ujfalusi (2): ASoC: davinci-mcasp: Use defines for clkdiv IDs via DT binding header ASoC: davinci-mcasp: Improve the sysclk selection
.../devicetree/bindings/sound/simple-card.txt | 3 ++ include/dt-bindings/sound/ti-mcasp.h | 13 +++++++ include/sound/simple_card.h | 2 ++ sound/soc/davinci/davinci-mcasp.c | 42 ++++++++++++++++------ sound/soc/generic/simple-card.c | 17 ++++++++- 5 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 include/dt-bindings/sound/ti-mcasp.h