Skip to content
  • Vadim Pasternak's avatar
    i2c: mux: mellanox: add driver · c02b7bf5
    Vadim Pasternak authored
    
    
    This driver allows I2C routing controlled through CPLD select registers on
    a wide range of Mellanox systems (CPLD Lattice device).
    MUX selection is provided by digital and analog HW. Analog part is not
    under SW control.
    Digital part is under CPLD control (channel selection/de-selection).
    
    Connectivity schema.
    .---.             .-------------.
    | l |             |             |-- i2cx1 -- i2cx8
    | i |-- i2cn --+--| mlxcpld mux |
    | n |          |  |             |-- i2cy1 -- i2cy8
    | u |          |  '-------------'
    | x |          |         |
    '---'          '---------'
    
    i2c-mux-mlxpcld does not necessarily require i2c-mlxcpld. It can be used
    along with another bus driver, and still control i2c routing through CPLD
    mux selection, in case the system is equipped with CPLD capable of mux
    selection control.
    
    The Kconfig currently controlling compilation of this code is:
    drivers/i2c/muxes/Kconfig:config I2C_MUX_MLXCPLD
    
    Signed-off-by: default avatarMichael Shych <michaelsh@mellanox.com>
    Signed-off-by: default avatarVadim Pasternak <vadimp@mellanox.com>
    Reviewed-by: default avatarJiri Pirko <jiri@mellanox.com>
    Acked-by: default avatarPeter Rosin <peda@axentia.se>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    c02b7bf5