-----Original Message----- From: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> Sent: Tuesday, April 03, 2018 15:41 To: Alexander Monakov <amonakov@xxxxxxxxx> Cc: linux-i2c@xxxxxxxxxxxxxxx; Ben Gardner <gardner.ben@xxxxxxxxx>; José Roberto de Souza <jose.souza@xxxxxxxxx>; Luis Oliveira <Luis.Oliveira@xxxxxxxxxxxx> Subject: Re: [bug] some versions of designware i2c lack enable status register On 03/26/2018 12:05 PM, Alexander Monakov wrote: > On Mon, 19 Mar 2018, Jarkko Nikula wrote: >> I see specification mentions that for older IP versions have to >> monitor two registers IC_STATUS and IC_RAW_INTR_STAT but don't say exactly how. >> >> Luis: Do you know can the availability of IC_ENABLE_STATUS register >> 0x9c be seen from DW_IC_COMP_VERSION and how to find the same enabled >> status from those two registers? > > Ping? The change introduced a regression for (at least) ARM Berlin and SPEAr. > Luis? Sorry for the late reply. I couldn't find a solution for what you are asking internally. > Is there confidence that that was the right fix? Various sources > quoting what appears to be the DW_apb_i2c databook (e.g. alt_i2c.h in > RTEMS) only say that checking IC_ENABLE_STATUS is needed when disabling, not enabling. > Hard to say, at least it fixed the issue Ben saw while keeping the benefit of 2702ea7dbec5 ("i2c: designware: wait for disable/enable only if necessary") by not waiting for disable status at the end of transfer. -- Jarkko