From debf36a01e83fa4dfe4bbbe3f1fb45c01e3275aa Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Mon, 18 Jul 2022 22:26:39 -0700 Subject: [PATCH] modules/mqnic: Add driver support for 250-SoC Signed-off-by: Alex Forencich --- modules/mqnic/mqnic_board.c | 41 +++++++++++++++++++++++++++++++++++++ modules/mqnic/mqnic_hw.h | 1 + 2 files changed, 42 insertions(+) diff --git a/modules/mqnic/mqnic_board.c b/modules/mqnic/mqnic_board.c index 38d6d2b98..aefffff1b 100644 --- a/modules/mqnic/mqnic_board.c +++ b/modules/mqnic/mqnic_board.c @@ -430,6 +430,47 @@ static int mqnic_generic_board_init(struct mqnic_dev *mqnic) // read MACs from EEPROM init_mac_list_from_eeprom_base(mqnic, mqnic->eeprom_i2c_client, 0x20, MQNIC_MAX_IF); + break; + case MQNIC_BOARD_ID_250SOC: + // FPGA I2C + // TCA9548 U28 0x72 + // CH0: J6 (OCuLink ch 0) A + // CH1: J6 (OCuLink ch 0) B + // CH2: J7 (OCuLink ch 1) A + // CH3: J8 (OCuLink ch 2) A + // CH4: J9 (OCuLink ch 3) A + // CH5: J9 (OCuLink ch 3) B + // CH6: QSFP0 + // CH7: QSFP1 + // FPGA SMBUS + // AT24C16C U51 0x54 + // TMP431C U52 0x4C + + request_module("at24"); + + // I2C adapter + adapter = mqnic_i2c_adapter_create(mqnic, 0); + + // U34 TCA9548 I2C MUX + mux = create_i2c_client(adapter, "pca9548", 0x70, i2c_mux_props); + + // QSFP0 + mqnic->mod_i2c_client[0] = create_i2c_client(get_i2c_mux_channel(mux, 6), "24c02", 0x50, NULL); + + // QSFP1 + mqnic->mod_i2c_client[1] = create_i2c_client(get_i2c_mux_channel(mux, 7), "24c02", 0x50, NULL); + + mqnic->mod_i2c_client_count = 2; + + // I2C adapter + adapter = mqnic_i2c_adapter_create(mqnic, 1); + + // I2C adapter + adapter = mqnic_i2c_adapter_create(mqnic, 2); + + // I2C EEPROM + mqnic->eeprom_i2c_client = create_i2c_client(adapter, "24c16", 0x50, NULL); + break; case MQNIC_BOARD_ID_XUPP3R: diff --git a/modules/mqnic/mqnic_hw.h b/modules/mqnic/mqnic_hw.h index d14cfe712..7b90ae85e 100644 --- a/modules/mqnic/mqnic_hw.h +++ b/modules/mqnic/mqnic_hw.h @@ -64,6 +64,7 @@ #define MQNIC_BOARD_ID_VCU1525 0x10ee95f5 #define MQNIC_BOARD_ID_ZCU106 0x10ee906a #define MQNIC_BOARD_ID_XUPP3R 0x12ba9823 +#define MQNIC_BOARD_ID_250SOC 0x198a250e #define MQNIC_BOARD_ID_FB2CG_KU15P 0x1c2ca00e #define MQNIC_BOARD_ID_NEXUS_K35_S 0x1ce40003 #define MQNIC_BOARD_ID_NEXUS_K3P_S 0x1ce40009