Hi Mark/Liam, I think there is really a bug in spi and i2c dual buses codecs drivers, for example, for any codec with two buses, if you config kernel like this:
SPI MASTER built-in I2C module Codec built-in
You will get a link error like this: sound/built-in.o: In function `i2c_add_driver': include/linux/i2c.h:423: undefined reference to `i2c_register_driver' sound/built-in.o: In function `ad193x_modexit': sound/soc/codecs/ad193x.c:537: undefined reference to `i2c_del_driver' make: *** [.tmp_vmlinux1] Error 1
I remember that is also one reason why we have splitted this kind of driver into three parts(codec core, i2c bus, spi bus).
In fact, if any bus is compiled as module and code is built-in, link error will be reported. Thanks Barry