Re: [PATCH 5/6] dt-bindings: tlv320adcx140: Add slot programming property

From: Dan Murphy
Date: Thu Sep 17 2020 - 11:42:50 EST


On 9/17/20 8:02 AM, Mark Brown wrote:
On Tue, Sep 15, 2020 at 02:06:05PM -0500, Dan Murphy wrote:

+ ti,slot-mapping:
+ type: boolean
+ description: |
+ Each channel can be assigned a specific TDM slot for either a left or
+ right channel. The left channel values are from 0-31d and the right
+ channel values are from 32-63d. If the right channel value is 32 then the
+ right channel slot will be slot 31.
+ The array index is sequential audio channel to be set.
+ [ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8]
+ If the channel is not to be used then the channel should be set to it's
+ default value.
This is something I'd expect to be done by the machine driver rather
than in the CODEC specific DT bindings, and apart from anything else
everything involved in the DAI will need to agree on the mapping so this
doesn't look like something that should be done in a device specific

Here is the use case from our customers

Customers need the ability to not transmit on a TDM slot, since another device could be using the slot.
For example, the customer has an amp and dig microphone sharing one TDM bus. The amp uses slot 0 while dig microphone use slots 1-3.
In another example, customers use 2 dig microphones. One device transmits on slots 0-3, the second device transmits on slots 4-7.
In a third example, customers use 4 dig microphones. Device 1 uses Slots 0-3, Device 2 uses Slots 4-7, Device 3 uses Slots 8-11, and Device 4 uses Slots 12-15.

The dai-tdm-slot-num would be a good candidate to add to the sound card to define the slot number but it's definition is "Number of slots in use." So it is not really setting the needed slot.
I am not finding any good way to assign specific slots to specific channels.

I can add DAI slot numbering parameter for specific codecs.