Mark Brown wrote:
- u8 reg_cache[CS4270_NUMREGS];
- struct snd_soc_codec_driver codec_drv;
Having a driver per device is pretty icky and off the top of my head I'd expect it to cause problems if there are two cs4270 in the system. It would be much nicer and more maintainable to avoid bodging around the API like this.
The problem is that I need a distinct default register cache for each CS4270 in the system, so I don't know how to reconcile the idea that there is supposed to be only one snd_soc_codec_driver for all devices.
What do I do if there are two CS4270s in a system, and they each have different power-on default values for the registers? Granted, it's a contrived example, but this could happen if the first CS4270 is a rev1 chip, and the second is a rev2 chip.
And even if this example is contrived, it's conceivable that there can be codecs where the power-on defaults are set by pin configuration. Perhaps codec #1 is muted by default and codec #2 isn't.