On Tue, Jul 21, 2009 at 7:08 PM, Mark Brownbroonie@opensource.wolfsonmicro.com wrote:
On Tue, Jul 21, 2009 at 01:24:04PM -0700, John Bonesio wrote:
Reset was failing with the original udelay(50) between the code in psc_ac97_cold_reset() and the call to psc_ac97_warm_reset(). Through testing it was found that a delay of 1ms was necessary for the cold_reset code to consistently complete successfully.
Something is funky between the mpc5200 and the wm9712 when doing a cold reset. Increasing this delay seems to fix it but it shouldn't be needed per the wm9712 datasheet. The only way to know 100% for sure what is going on is to put a scope (I don't have one) on the reset line and the SDATAOUT or SYNC lines. Maybe SDATAOUT or SYNC initially bounce around and delaying for 1ms waits until after the balancing stops. Datasheet says pulse only needs to be 1us.
But if the 1ms delays fixes things I'm all for it.