Part Number: AM3358
Other Parts Discussed in Thread: PCM5102A
Tool/software: Linux
Hi, I have successfully set up a 4-channel audio output system with an AM335X (BeagleBone Black) inside Linux using 2 identical stereo DACs (TI PCM5102a) and my own glue kernel module based on davinci-evm.c (see here). The McASP0 is bit clock and frame sync-clock master and I'm transmitting data in I2S mode on AXR0 and AXR1.
Anyway, the only remaining part I'm trying to figure out is how I specify which role each channel fills. Currently I'm doing nothing special so it is non-deterministic from an external perspective (though I don't expect it will ever be different). For example, does AXR0.0 mean "Front Left" or "Rear Right?" Currently, I'm using a custom asound.conf file to remap the channels in userspace but I'd like to be able to set this up inside the kernel module to eliminate any initial confusion and possibly add device tree features to my module to allow this to be customized from the DTS file. My desired mapping is AXR0.0=Front Left, AXR0.1=Front Right, AXR1.0=Rear Left, AXR1.1=Rear Right but I can't figure out what part of the ALSA kernel-side API I need to use to establish this mapping.
Has anyone done anything in this area and have any information to offer? Thanks.