I don't think it's correct to declare 4-channel support at the individual codec DAI level when in practice each device will be provided with a TDM mask that selects two slots.
On this platform there is no TDM support, so there were two I2S data lines.
This is confusing device capabilities and TDM link configuration.
I see that in most of the use cases of multiple amps, we should use codecs and num_codecs of the link. But in this case we only want one codec to control the only GPIO shared by 4 max98357a amps I think we should be able to use 1 max98357 codec and 3 dummy codec to fulfill this use case. Not sure if the number of dummy codec would really matter. With num_codec > 1 we should be able to bypass the channel checking and just use the channel from CPU DAI.
Interesting, I haven't seen such 'multi-lane' solutions so far for I2S.