Hello,Sebi,
Let me explain this structure at first .
(1)Explanation of data structure
#define SABRESD_HEADPHONE_DET IMX_GPIO_NR(7, 8)
static struct mxc_audio_platform_data mx6_audio1_data = {
.ssi_num= 1,// (Which SSI will be used, SSI0,SSI1 or SSI2, here means we will use SSI1 )
.src_port = 2, // Internal connection is SSI1 to Port 2 of AUDMUX
.ext_port = 5, // External port of AUDMUX is No.5(AUD5). For i.mx6 cpu, AUD3,AUD4,AUD5 and AUD6 can be muxed to PADs to connect with external deivce)
.hp_gpio = SABRESD_HEADPHONE_DET,//here is a gpio used to detect if Headphone is input.
}
The following is diagram for SSIx and AUDMUX, you can see in reference manual:


SSI1/SSI2/SSI3 in diagram are SSI0/SSI1/SSI2 in BSP.
(2)Using 3 SSIs of I.MX6
In addition, From reference manual of I.MX6DQ, SDMA can access SSI0,SSI1 and SSI2 module, So they can be used to transimit High-bandwidth data. But on our evaluation board, we don't use 3 SSIs to connect 3 different devices. So we don't have corresponding experience to share with you. and not recommend you use 3 I2S of I.MX6 simultaneously.
(3) The following solution is recomended to you.(Using a audio code with 3 I2S Interfaces, such as WM8958)
Driver of WM895 has been supported in linux BSP, this can help you to save development time. The following is an example schematic. MCLK can be 24MHz that output from GPIO_0 on CPU.


I think maybe wm8958 can be suitable for your requirement.
Regards,
Weidong