• Lothar Waßmann's avatar
    i2c: mxs: fix broken timing calculation · 869c6a3e
    Lothar Waßmann authored
    The timing calculation is rather bogus and gives extremely wrong
    results for higher frequencies (on an i.MX28). E.g. instead of 400 kHz
    I measured 770 kHz.
    
    Implement a calculation that adheres to the I2C spec and gives exact
    results for I2C frequencies from 12.56 kHz to 960 kHz.
    
    Also the bus_free and leadin parameters are programmed according to
    the I2C spec for standard and fast mode.
    
    This was tested on a Ka-Ro TX28 module with a DS1339, TSC2007, PCA9554
    and SGTL5000 client.
    Signed-off-by: default avatarLothar Waßmann <LW@KARO-electronics.de>
    Acked-by: default avatarMarek Vasut <marex@denx.de>
    [wsa: patch fixes whitespace issue, too]
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    869c6a3e
i2c-mxs.c 20.6 KB