Message ID | 20201014145418.31838-1-rf@opensource.cirrus.com (mailing list archive) |
---|---|
Headers | show |
Series | Add dts for Rpi4 + Cirrus Lochnagar and codecs | expand |
On Wed, Oct 14, 2020 at 03:54:11PM +0100, Richard Fitzgerald wrote: > This set of patches provides support for using the Cirrus Logic > Lochnagar audio development platform plus Cirrus Logic Madera/Arizona > codecs with the simple-card machine driver and a Raspberry Pi4. The > ultimate aim is to provide the dts file but some updates are needed to > the simple-card machine driver. Why extend simple-card and not the more modern and flexible audio-graph-card?
On 14/10/2020 19:56, Mark Brown wrote: > On Wed, Oct 14, 2020 at 03:54:11PM +0100, Richard Fitzgerald wrote: >> This set of patches provides support for using the Cirrus Logic >> Lochnagar audio development platform plus Cirrus Logic Madera/Arizona >> codecs with the simple-card machine driver and a Raspberry Pi4. The >> ultimate aim is to provide the dts file but some updates are needed to >> the simple-card machine driver. > > Why extend simple-card and not the more modern and flexible > audio-graph-card? > I'm struggling to understand how to use audio-graph-card where there are multiple alternative codecs. The host I2S endpoint has to point back to the codec endpoint, like this: cpu_i2s_ep_cs47l15: endpoint { remote-endpoint = <&cs47l15_aif1>; }; But obviously that depends on which codec node was enabled. Listing multiple endpoints makes the whole port node disabled if any remote endpoint is in a disabled node. I've tried adding status="disabled" to endpoints or multiple port definitions with status="disabled" but I haven't figured out a solution.
On Fri, Oct 16, 2020 at 02:30:08PM +0100, Richard Fitzgerald wrote: > On 14/10/2020 19:56, Mark Brown wrote: > > Why extend simple-card and not the more modern and flexible > > audio-graph-card? > I'm struggling to understand how to use audio-graph-card where there are > multiple alternative codecs. The host I2S endpoint has to point back to > the codec endpoint, like this: OK, this seems like a more urgent problem to address given that the graph card is supposed to be able to support things like TDM. However... > cpu_i2s_ep_cs47l15: endpoint { > remote-endpoint = <&cs47l15_aif1>; > }; > But obviously that depends on which codec node was enabled. Listing > multiple endpoints makes the whole port node disabled if any remote > endpoint is in a disabled node. I've tried adding status="disabled" > to endpoints or multiple port definitions with status="disabled" but > I haven't figured out a solution. ...it seems like the issue here is that you're essentially trying to define multiple cards at once in the same overlay. TBH this feels like you want two nested levels of overlay, with the extra layer patching the CODEC compatible. Or if this is mainly as an example for people you could just pick one and use that?
On Fri, Oct 16, 2020 at 02:30:08PM +0100, Richard Fitzgerald wrote: > On 14/10/2020 19:56, Mark Brown wrote: > > On Wed, Oct 14, 2020 at 03:54:11PM +0100, Richard Fitzgerald wrote: > > > This set of patches provides support for using the Cirrus Logic > > > Lochnagar audio development platform plus Cirrus Logic Madera/Arizona > > > codecs with the simple-card machine driver and a Raspberry Pi4. The > > > ultimate aim is to provide the dts file but some updates are needed to > > > the simple-card machine driver. > > > > Why extend simple-card and not the more modern and flexible > > audio-graph-card? > > > > I'm struggling to understand how to use audio-graph-card where there are > multiple alternative codecs. The host I2S endpoint has to point back to > the codec endpoint, like this: > > cpu_i2s_ep_cs47l15: endpoint { > remote-endpoint = <&cs47l15_aif1>; > }; > > But obviously that depends on which codec node was enabled. Listing > multiple endpoints makes the whole port node disabled if any remote > endpoint is in a disabled node. I've tried adding status="disabled" > to endpoints or multiple port definitions with status="disabled" but > I haven't figured out a solution. Multiple endpoints is what you should do. And 'status' goes in the device nodes (not the graph nodes). Rob