We have a mechanism to choose the PCM configuration of given topology path via amixer control. That way we can include both 2ch and 4ch DMIC configurations in one topology file and simply change DMIC pipeline configuration on runtime.
Unfortunately this mechanism is not currently available on upstream.
As said before, this is a reference topology, if needed I can also upload modified version with 4ch DMIC path.
I don't understand the concept of 'reference topology'. It's not like anyone is going to modify this file, which is seriously cryptic, so it's got to be a 'usable topology', turn-key really.
You would need three files, with no dmic, with 2 dmic with 4 dmic and a driver level code selection. Today the code loads the topology name coming from NHLT or dfw_sst.bin, you'd need a more elaborate logic to deal with the hardware variants and without requiring any fiddling, rename or edits of topology files.
I prepared 3 different topology .conf files and sent them in patch set. These topologies cover all three cases (no DMIC, 2ch DMIC capture and 4ch DMIC capture). I also prepared and sent kernel patch adding third way of selecting topology binary file so that its name depends on used machine driver.
Thanks, Mateusz