Hi Mark,
On Fri, May 3, 2013 at 7:36 PM, Mark Brown broonie@sirena.org.uk wrote:
On Fri, May 03, 2013 at 04:49:09PM -0300, Fabio Estevam wrote:
.set_bias_level = sgtl5000_set_bias_level,
.reg_cache_size = ARRAY_SIZE(sgtl5000_regs),
.reg_word_size = sizeof(u16),
.reg_cache_step = 2,
.reg_cache_default = sgtl5000_regs,
So, the most obvious thing here is to convert the driver to regmap. It has a much more baked in idea of sparse register maps which should help if nothing else, and will allow the device initialisation to be moved to the normal device probe which is better practice.
Thanks for your suggestion.
I have just sent a patch converting sgtl5000 to use regmap.
Unfortunately the result is the same: the codec cannot probe after a reset.
Otherwise the normal issue with this sort of thing is a failure to power down the device properly, the LDO workaround looks suspicous here as does the fact that the driver doesn't restore the register cache when powering on the device in resume (nor does it makr the device as cache only).
I will try to investigate the power down and LDO workaround as suggested.
Thanks,
Fabio Estevam