Re: ASoC: cs4271: init/timing problem

Brian Austin
2015-04-01T17:08:10Z

> >> I just lowered the clock-frequency to 50 kHz and I face the same
> >> problem, but it very much depends on the hardware. On some devices I
> >> don't face the problem at all and on others I can reproduce it very
> >> reliable. If I add a mdelay(20), or use the loop I postet earlier, the
> >> issue is gone on all devices.
> > Are there any other devices on the I2C bus? Lets take this off the ALSA list until there
> > is a determination that it is an ASoC issue which it does not appear to be right now.
>
> Well I think it is. There is a delay needed in sound/soc/codec/cs4271.c
> at line 569, in certain cases, because the call to regmap_update_bits on
> line 570 fails sometimes. If I add a delay of a few us on line 569, the
> call never fails.
>
> But let me just send in a patch so we really know what we are talking
> about, then.
>
can you try something like this?

gpio_direction_output(cs4271->gpio_nreset, 0);
-udelay(1);
gpio_set_value(cs4271->gpio_nreset, 1);
/* Give the codec time to wake up */
-udelay(1);

gpio_direction_output(cs4271->gpio_nreset, 0);
+mdelay(1);
gpio_set_value(cs4271->gpio_nreset, 1);
/* Give the codec time to wake up */
+mdelay(1);

See if that helps instead of adding another delay.