• Shyam Sundar S K's avatar
    i2c: designware: add a new bit check for IC_CON control · 60a1f9f2
    Shyam Sundar S K authored
    On some AMD platforms, based on the new designware datasheet,
    BIOS sets the BIT(11) within the IC_CON register to advertise
    the "bus clear feature capability".
    
    AMD/Designware datasheet says:
    
    Bit(11) BUS_CLEAR_FEATURE_CTRL. Read-write,Volatile. Reset: 0.
    Description: In Master mode:
    - 1'b1: Bus Clear Feature is enabled.
    - 1'b0: Bus Clear Feature is Disabled.
    In Slave mode, this register bit is not applicable.
    
    On AMD platform designs:
    1. BIOS programs the BUS_CLEAR_FEATURE_CTRL and enables the detection
    of SCL/SDA stuck low.
    2. Whenever the stuck low is detected, the SMU FW shall do the bus
    recovery procedure.
    
    Currently, the way in which the "master_cfg" is built in the driver, it
    overrides the BUS_CLEAR_FEATURE_CTRL advertised by BIOS and the SMU FW
    cannot initiate the bus recovery if the stuck low is detected.
    
    Hence add a check in i2c_dw_probe_master() that if the BIOS
    advertises the bus clear feature, let driver not ignore it and
    adapt accordingly.
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarShyam Sundar S K <Shyam-sundar.S-k@amd.com>
    Acked-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
    60a1f9f2
i2c-designware-master.c 25.1 KB