• Shubhrajyoti D's avatar
    i2c: omap: Fix the revision register read · 47dcd016
    Shubhrajyoti D authored
    The revision register on OMAP4 is a 16-bit lo and a 16-bit
    hi. Currently the driver reads only the lower 8-bits.
    Fix the same by preventing the truncating of the rev register
    for OMAP4.
    
    Also use the scheme bit ie bit-14 of the hi register to know if it
    is OMAP_I2C_IP_VERSION_2.
    
    On platforms previous to OMAP4 the offset 0x04 is IE register whose
    bit-14 reset value is 0, the code uses the same to its advantage.
    
    Also since the omap_i2c_read_reg uses reg_map_ip_* a raw_readw is done
    to fetch the revision register.
    
    The dev->regs is populated after reading the rev_hi. A NULL check
    has been added in the resume handler to prevent the access before
    the setting of the regs.
    Signed-off-by: default avatarShubhrajyoti D <shubhrajyoti@ti.com>
    Reviewed-by: default avatarFelipe Balbi <balbi@ti.com>
    Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
    47dcd016
i2c-omap.c 35.9 KB