def METHOD_NAME(self, port_num):
    sfp_data = {}
    try:
        file = open("/sys/devices/platform/delta-agc032-cpupld.0/cpu_i2c_mux_sel", 'r+')
    except IOError as e:
        print("Error: unable to open file: %s" % str(e))
        return False
    # Switch CPLD to FRONT-PORT EEPROM MUX
    file.seek(0)
    file.write('3')
    file.close()
    eeprom_ifraw = self.get_eeprom_raw(port_num)
    eeprom_domraw = self.get_eeprom_dom_raw(port_num)
    try:
        file = open("/sys/devices/platform/delta-agc032-cpupld.0/cpu_i2c_mux_sel", 'r+')
    except IOError as e:
        print("Error: unable to open file: %s" % str(e))
        return False
    # Switch CPLD to FRONT-PORT EEPROM MUX
    file.seek(0)
    file.write('1')
    file.close()
    if eeprom_ifraw is None:
        return None
    if port_num in self.osfp_ports:
        sfpi_obj = inf8628InterfaceId(eeprom_ifraw)
        if sfpi_obj is not None:
            sfp_data['interface'] = sfpi_obj.get_data_pretty()
        return sfp_data
    elif port_num in self.qsfp_ports:
        sfpi_obj = sff8436InterfaceId(eeprom_ifraw)
        if sfpi_obj is not None:
            sfp_data['interface'] = sfpi_obj.get_data_pretty()
        # For Qsfp's the dom data is part of eeprom_if_raw
        # The first 128 bytes
        sfpd_obj = sff8436Dom(eeprom_ifraw)
        if sfpd_obj is not None:
            sfp_data['dom'] = sfpd_obj.get_data_pretty()
        return sfp_data
    else:
        sfpi_obj = sff8472InterfaceId(eeprom_ifraw)
        if sfpi_obj is not None:
            sfp_data['interface'] = sfpi_obj.get_data_pretty()
            cal_type = sfpi_obj.get_calibration_type()
        if eeprom_domraw is not None:
            sfpd_obj = sff8472Dom(eeprom_domraw, cal_type)
            if sfpd_obj is not None:
                sfp_data['dom'] = sfpd_obj.get_data_pretty()
        return sfp_data