Hi Daniel,
Thanks for testing.
One thing that has to be considered by users of the driver is that the 'serial-dir' DT property has to contain enough '1' entries for multichannel playback (or enough '2's for multichannel record). So this information is not actually something that describes the hardware, but rather some resource that can be and should be allocated dynamically by the driver at run-time. Should we consider dropping this property?
Not really, ' serial-dir' also configures specific serializer binded with certain AXR pin . That means, when you have harware, which do not have aviable AXR0, you can enable other ARX pin.
example:
serial-dir = < 1 0 0 0 >; /* 0: INACTIVE, 1: TX, 2: RX */ // activate serializer 0, active pin ARX0 in Transmit mode, first audio // channels are played on ARX0 pin
serial-dir = < 0 1 1 2 >; /* 0: INACTIVE, 1: TX, 2: RX */ // activate serializer 1,2,3 active pin ARX1 in TX mode, ARX2, in TX mode, // ARX3 in RX mode
In this case, if you are using TDM mode with 2 slots, first two channels will be played on ARX1 and second two on ARX2.
McAsp fills data for serializers in loop (receive and playback has separate loop), so if you have configuration:
serial-dir = < 1 2 0 1 >; /* 0: INACTIVE, 1: TX, 2: RX */ // first two channels are played on ARX0 pin, and second two on ARX3
Best, Michal