• Marek Vasut's avatar
    i2c: imx: Implement errata ERR007805 or e7805 bus frequency limit · 39c02572
    Marek Vasut authored
    The i.MX8MP Mask Set Errata for Mask 1P33A, Rev. 2.0 has description of
    errata ERR007805 as below. This errata is found on all MX8M{M,N,P,Q},
    MX7{S,D}, MX6{UL{,L,Z},S{,LL,X},S,D,DL,Q,DP,QP} . MX7ULP, MX8Q, MX8X
    are not affected. MX53 and older status is unknown, as the errata
    first appears in MX6 errata sheets from 2016 and the latest errata
    sheet for MX53 is from 2015. Older SoC errata sheets predate the
    MX53 errata sheet. MX8ULP and MX9 status is unknown as the errata
    sheet is not available yet.
    
    "
    ERR007805 I2C: When the I2C clock speed is configured for 400 kHz,
    the SCL low period violates the I2C spec of 1.3 uS min
    
    Description: When the I2C module is programmed to operate at the
    maximum clock speed of 400 kHz (as defined by the I2C spec), the SCL
    clock low period violates the I2C spec of 1.3 uS min. The user must
    reduce the clock speed to obtain the SCL low time to meet the 1.3us
    I2C minimum required. This behavior means the SoC is not compliant
    to the I2C spec at 400kHz.
    
    Workaround: To meet the clock low period requirement in fast speed
    mode, SCL must be configured to 384KHz or less.
    "
    
    Implement the workaround by matching on the affected SoC specific
    compatible strings and by limiting the maximum bus frequency in case
    the SoC is affected.
    Signed-off-by: default avatarMarek Vasut <marex@denx.de>
    To: linux-i2c@vger.kernel.org
    Acked-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
    39c02572
i2c-imx.c 46 KB