Sorry it's taken a while to respond, but that was quite a while ago and I'm still trying to remember what I did. It doesn't readily take the form of a "patch" and in the end, there's very little, if anything, different in fsl_sai.c, and a whole lot of changes in other places. The sai driver is, I think, set up to handle tdm mode, the trick is to create a codec driver that configures the sai driver with the proper parameters. In the end, I created a new imx- "codec" file based on an existing codec, added my own parameters for my codec in the devicetree so that I could set the format and the tdm width from the devicetree, and then added the codec to the kernel config so it could be selected and built in the kernel configuration and build.
You might be able to shorten some of those steps by creating your own imx-codec file, but simply hardcode the slots, width and fmt into the imx_(yourcodecname)_hw_params() function. Take a look at imx-ak4485.c and the calls to snd_soc_dai_set_fmt() and snd_soc_dai_set_tdm_slot().
Hope this helps. If you still want to see my version of the "not a codec" codec driver, I can provide it, but it may take me a while to clean up the code to be presentable.
John