• Vadim Pasternak's avatar
    platform/mellanox: mlxreg-lc: Add initial support for Nvidia line card devices · 62f9529b
    Vadim Pasternak authored
    Provide support for the Nvidia MSN4800-XX line cards for MSN4800
    Ethernet modular switch system, providing a high performance switching
    solution for Enterprise Data Centers (EDC) for building Ethernet based
    clusters, High-Performance Computing (HPC) and embedded environments.
    Initial version provides support for line card type MSN4800-C16. This
    type of line card is equipped with:
    - Lattice CPLD device, used for system and ports control.
    - four Nvidia gearbox devices, used for port splitting.
    - FPGA device, used for gearboxes management.
    - 16x100G QSFP28 ports.
    - hotpswap controllers, voltage regulators, analog-to-digital
      convertors, nvram devices.
    - status LED.
    
    During initialization driver creates:
    - line card's I2C tree through "i2c-mux-mlxcpd" driver.
    - line card's LED objects through "leds-mlxreg" driver.
    - line card's CPLD register space input / output "hwmon" attributes for
      line control and monitoring through "mlxreg-io" driver. These
      attributes provide CPLD and FPAG versioning, control for upgradable
      components burning, NVRAM devices write protection, line card
      revision, line card power consuming, line card reset cause
      indication, etcetera.
    
    Lattice CPLD device and nvram devices are feeding from auxiliary power
    domain and accessible, when line card is powered off. These devices
    are connected by line card driver probing routine, invoked after line
    card security verification is done by hardware and event lc#n_verified
    is received for line card located in slot #n.
    
    Gearboxes, FPGA, hotpswap controllers, voltage regulators,
    analog-to-digital convertors are feeding from main power domain. These
    devices are connected after power good event "lc#n_powered" is received
    for line card located in slot #n.
    
    The driver 'mlxreg-lc' is driven by 'mlxreg-hotplug' driver following
    relevant "hotplug" events.
    Signed-off-by: default avatarVadim Pasternak <vadimp@nvidia.com>
    Reviewed-by: default avatarMichael Shych <michaelsh@nvidia.com>
    Link: https://lore.kernel.org/r/20211002093238.3771419-8-vadimp@nvidia.comSigned-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    62f9529b
Makefile 382 Bytes