Re: ASoC: cs4271: init/timing problem

Austin, Brian
2015-04-01T14:48:01Z

On Apr 1, 2015, at 5:52 AM, Pascal Huerst <pascal.huerst@gmail.com> wrote:

> Hey Brian,
>
> On 01.04.2015 11:57, Pascal Huerst wrote:
>> Hey Brian,
>>
>> On 31.03.2015 23:01, Brian Austin wrote:
>>> On Tue, 31 Mar 2015, Pascal Huerst wrote:
>>>
>>>> Hey all,
>>>>
>>>> We have a custom built hw, based on am335x and from time to time we need
>>>> to rmmod/modprobe the ASoC machine driver. Depending on the hw, the
>>>> first call to regmap_update_bits(..) in cs4271_codec_probe(..) fails
>>>> with -EREMOTEIO.
>>>>
>>>> The error is originated in:
>>>>
>>>> drivers/i2c/busses/i2c-omap.c
>>>>
>>>> and happens if no i2c package acknowledge is received by the host.
>>>>
>>>> I think this is a timing issue and on some devices, the codec is just
>>>> not ready yet, for communication.
>>>>
>>>> What is the right way to fix that? My attempt would be something like this:
>>>
>>> The error you are referring to is a NACK from a device (CODEC). That is
>>> usually seen when you dont have it hooked up correctly. Could also be that
>>> the I2C bus is too fast. How fast are you running the bus?
>>
>> clock-frequency is set to 100000, hence 100 kHz, which should be ok,
>> according to the datasheet.
>
> 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.
OK?

Thanks,
Brian