Hi, Tien,
As you said that the GSM module supports slave mode, and I2S mode or normal mode. I suppose that you use K60 which has two SAI modules:SAI0 and SAI1.
This is the connection:
SAI0_TX_BCLK: GSM0 and GSM1 Receiver bit clock
SAI0_TX_SYNC:GSM0 and GSM1 Receiver Frame clock
SAI0_TX_DATA0: GSM0 Rx
SAI0_TX_DATA1:GSM1 RX
SAI0_RX_BCLK: GSM0 and GSM1 Transmitter bit clock
SAI0_RX_SYNC:GSM0 and GSM1 transmitter Frame clock
SAI0_RX_DATA0: GSM0 Tx
SAI0_RX_DATA1:GSM1 TX
If the GSM module use the same bit clock and frame clock for both transmitter and receiver, you just need to conncet SAI0_TX_BCLK to SAI0_RX_BCLK, SAI0_TX_SYNC to SAI0_RX_SYNC, while set the SAI0 transmitter as master, set SAI0 receiver as slave, it is okay.
For SAI1 module, it is connected to GSM2 and GSM3, pls refer to SAI0 connection.
Regarding the mode, from the description you gave, the GSM module supports mono mode, in other words, it only supports single channel. If you use I2S mode, you can fill the second channel with a dummy data.
If you use I2S mode, each frame convers two channel(first channel is valid data, second channel is dummy data), assume one bit frame clock, sample rate is 48KHz, the required I2S bit clock frequency:
48KHz*17bits*2=1.632MHz. The bit clock frqeuency is not related to data channel, it is only related to slots number
If you can generate 1.632MHz or integer times frequency of 1.632MHz as MCLK, it is okay.
From your description, the GSM module only support I2S or normal mode, i do not know if it can support TDM mode.
In I2S mode, there are only two slots: first slot and second slot.
in normal mode, there are multiple slots, but only first slot includes valid data, the other slots includes dummy data.
In TDM mode, there are multiple slots, all slots includes valid data, but the GSM must be set to know which slot is a valid slot for itself.
I think there can be one slot in normal mode for GSM module, in the case, the required bit clock is 48KHz*17bits=816KHz
Hope it can help you
BR
Xiangjun Rong