Nevermind, figured it out. The problem was i had only set 2 TDM Slots in my board file in the kernel (arch/arm/mach-omap2/board-am335xevm.c). This was the culprit:
diff -r 9790044f6d7e arch/arm/mach-omap2/board-am335xevm.c --- a/arch/arm/mach-omap2/board-am335xevm.c Fri Dec 13 14:48:46 2013 -0500 +++ b/arch/arm/mach-omap2/board-am335xevm.c Wed Jan 08 17:54:46 2014 -0500 @@ -147,7 +155,7 @@ .rx_dma_offset = 0x46000000, .op_mode = DAVINCI_MCASP_IIS_MODE, .num_serializer = ARRAY_SIZE(am335x_iis_serializer_direction0), - .tdm_slots = 2, + .tdm_slots = 4, .serial_dir = am335x_iis_serializer_direction0, .asp_chan_q = EVENTQ_2, .version = MCASP_VERSION_3, @@ -211,7 +219,7 @@ };
I also changed this in sound/soc/davinci/davinci-mcasp.c (although i don't know if it has any bearing on the actual channel limit of mcasp0 or not):
diff -r 9790044f6d7e sound/soc/davinci/davinci-mcasp.c --- a/sound/soc/davinci/davinci-mcasp.c Fri Dec 13 14:48:46 2013 -0500 +++ b/sound/soc/davinci/davinci-mcasp.c Wed Jan 08 17:54:46 2014 -0500 @@ -881,7 +881,7 @@ .name = "davinci-mcasp.0", .playback = { .channels_min = 2, - .channels_max = 2, + .channels_max = 4, .rates = DAVINCI_MCASP_RATES, .formats = DAVINCI_MCASP_PCM_FMTS, },
I can now work VOUT1 and VOUT2 : ) i am going to up these to 6 and see if i can't get all of them going now!
I swear half the time i post something i figure it out right after... doh!