Lines Matching refs:ii

59 static int read_i2c(struct i2c_info *ii, uint8_t addr, uint8_t off,
61 static void dump_i2c_data(struct i2c_info *ii, uint8_t addr, uint8_t off,
316 get_sfp_identifier(struct i2c_info *ii, char *buf, size_t size)
320 read_i2c(ii, SFF_8472_BASE, SFF_8472_ID, 1, &data);
325 get_sfp_connector(struct i2c_info *ii, char *buf, size_t size)
329 read_i2c(ii, SFF_8472_BASE, SFF_8472_CONNECTOR, 1, &data);
334 get_qsfp_identifier(struct i2c_info *ii, char *buf, size_t size)
338 read_i2c(ii, SFF_8436_BASE, SFF_8436_ID, 1, &data);
343 get_qsfp_connector(struct i2c_info *ii, char *buf, size_t size)
347 read_i2c(ii, SFF_8436_BASE, SFF_8436_CONNECTOR, 1, &data);
352 printf_sfp_transceiver_descr(struct i2c_info *ii, char *buf, size_t size)
364 read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START, 8, &xbuf[3]);
386 get_sfp_transceiver_class(struct i2c_info *ii, char *buf, size_t size)
392 read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS, 1, &code);
397 read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START, 1, &code);
401 read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START + 3,
414 get_qsfp_transceiver_class(struct i2c_info *ii, char *buf, size_t size)
419 read_i2c(ii, SFF_8436_BASE, SFF_8436_CODE_E1040100G, 1, &code);
423 read_i2c(ii, SFF_8436_BASE, SFF_8436_OPTIONS_START, 1, &code);
459 get_sfp_vendor_name(struct i2c_info *ii, char *buf, size_t size)
464 read_i2c(ii, SFF_8472_BASE, SFF_8472_VENDOR_START, 16, (uint8_t *)xbuf);
469 get_sfp_vendor_pn(struct i2c_info *ii, char *buf, size_t size)
474 read_i2c(ii, SFF_8472_BASE, SFF_8472_PN_START, 16, (uint8_t *)xbuf);
479 get_sfp_vendor_sn(struct i2c_info *ii, char *buf, size_t size)
484 read_i2c(ii, SFF_8472_BASE, SFF_8472_SN_START, 16, (uint8_t *)xbuf);
489 get_sfp_vendor_date(struct i2c_info *ii, char *buf, size_t size)
495 read_i2c(ii, SFF_8472_BASE, SFF_8472_DATE_START, 6, (uint8_t *)xbuf);
500 get_qsfp_vendor_name(struct i2c_info *ii, char *buf, size_t size)
505 read_i2c(ii, SFF_8436_BASE, SFF_8436_VENDOR_START, 16, (uint8_t *)xbuf);
510 get_qsfp_vendor_pn(struct i2c_info *ii, char *buf, size_t size)
515 read_i2c(ii, SFF_8436_BASE, SFF_8436_PN_START, 16, (uint8_t *)xbuf);
520 get_qsfp_vendor_sn(struct i2c_info *ii, char *buf, size_t size)
525 read_i2c(ii, SFF_8436_BASE, SFF_8436_SN_START, 16, (uint8_t *)xbuf);
530 get_qsfp_vendor_date(struct i2c_info *ii, char *buf, size_t size)
535 read_i2c(ii, SFF_8436_BASE, SFF_8436_DATE_START, 6, (uint8_t *)xbuf);
540 print_sfp_vendor(struct i2c_info *ii, char *buf, size_t size)
545 if (ii->qsfp != 0) {
546 get_qsfp_vendor_name(ii, xbuf, 20);
547 get_qsfp_vendor_pn(ii, &xbuf[20], 20);
548 get_qsfp_vendor_sn(ii, &xbuf[40], 20);
549 get_qsfp_vendor_date(ii, &xbuf[60], 20);
551 get_sfp_vendor_name(ii, xbuf, 20);
552 get_sfp_vendor_pn(ii, &xbuf[20], 20);
553 get_sfp_vendor_sn(ii, &xbuf[40], 20);
554 get_sfp_vendor_date(ii, &xbuf[60], 20);
600 convert_sff_power(struct i2c_info *ii, char *buf, size_t size, uint8_t *xbuf)
622 get_sfp_temp(struct i2c_info *ii, char *buf, size_t size)
627 read_i2c(ii, SFF_8472_DIAG, SFF_8472_TEMP, 2, xbuf);
632 get_sfp_voltage(struct i2c_info *ii, char *buf, size_t size)
637 read_i2c(ii, SFF_8472_DIAG, SFF_8472_VCC, 2, xbuf);
642 get_qsfp_temp(struct i2c_info *ii, char *buf, size_t size)
647 read_i2c(ii, SFF_8436_BASE, SFF_8436_TEMP, 2, xbuf);
655 get_qsfp_voltage(struct i2c_info *ii, char *buf, size_t size)
660 read_i2c(ii, SFF_8436_BASE, SFF_8436_VCC, 2, xbuf);
665 get_sfp_rx_power(struct i2c_info *ii, char *buf, size_t size)
670 read_i2c(ii, SFF_8472_DIAG, SFF_8472_RX_POWER, 2, xbuf);
671 convert_sff_power(ii, buf, size, xbuf);
675 get_sfp_tx_power(struct i2c_info *ii, char *buf, size_t size)
680 read_i2c(ii, SFF_8472_DIAG, SFF_8472_TX_POWER, 2, xbuf);
681 convert_sff_power(ii, buf, size, xbuf);
685 get_qsfp_rx_power(struct i2c_info *ii, char *buf, size_t size, int chan)
690 read_i2c(ii, SFF_8436_BASE, SFF_8436_RX_CH1_MSB + (chan-1)*2, 2, xbuf);
691 convert_sff_power(ii, buf, size, xbuf);
695 get_qsfp_tx_power(struct i2c_info *ii, char *buf, size_t size, int chan)
700 read_i2c(ii, SFF_8436_BASE, SFF_8436_TX_CH1_MSB + (chan-1)*2, 2, xbuf);
701 convert_sff_power(ii, buf, size, xbuf);
705 get_qsfp_rev_compliance(struct i2c_info *ii, char *buf, size_t size)
710 read_i2c(ii, SFF_8436_BASE, SFF_8436_STATUS, 1, &xbuf);
715 get_qsfp_br(struct i2c_info *ii)
721 read_i2c(ii, SFF_8436_BASE, SFF_8436_BITRATE, 1, &xbuf);
724 read_i2c(ii, SFF_8436_BASE, SFF_8636_BITRATE, 1, &xbuf);
735 read_i2c(struct i2c_info *ii, uint8_t addr, uint8_t off, uint8_t len,
741 if (ii->error != 0)
742 return (ii->error);
744 ii->ifr->ifr_data = (caddr_t)&req;
756 if (ioctl(ii->fd, SIOCGI2C, ii->ifr) != 0) {
757 ii->error = errno;
771 dump_i2c_data(struct i2c_info *ii, uint8_t addr, uint8_t off, uint8_t len)
779 read_i2c(ii, addr, off, read, buf);
780 if (ii->error != 0) {
795 print_qsfp_status(struct i2c_info *ii, int verbose)
801 ii->qsfp = 1;
804 get_qsfp_identifier(ii, buf, sizeof(buf));
805 get_qsfp_transceiver_class(ii, buf2, sizeof(buf2));
806 get_qsfp_connector(ii, buf3, sizeof(buf3));
807 if (ii->error == 0)
809 print_sfp_vendor(ii, buf, sizeof(buf));
810 if (ii->error == 0)
814 get_qsfp_rev_compliance(ii, buf, sizeof(buf));
815 if (ii->error == 0)
818 bitrate = get_qsfp_br(ii);
819 if (ii->error == 0 && bitrate > 0)
829 if (get_qsfp_temp(ii, buf, sizeof(buf)) == 0) {
830 get_qsfp_voltage(ii, buf2, sizeof(buf2));
833 get_qsfp_rx_power(ii, buf, sizeof(buf), i);
834 get_qsfp_tx_power(ii, buf2, sizeof(buf2), i);
841 dump_i2c_data(ii, SFF_8436_BASE, 128, 128);
843 dump_i2c_data(ii, SFF_8436_BASE, 0, 82);
848 print_sfp_status(struct i2c_info *ii, int verbose)
854 read_i2c(ii, SFF_8472_BASE, SFF_8472_DIAG_TYPE, 1, (caddr_t)&diag_type);
855 if (ii->error != 0)
864 ii->do_diag = 1;
867 get_sfp_identifier(ii, buf, sizeof(buf));
868 get_sfp_transceiver_class(ii, buf2, sizeof(buf2));
869 get_sfp_connector(ii, buf3, sizeof(buf3));
870 if (ii->error == 0)
872 print_sfp_vendor(ii, buf, sizeof(buf));
873 if (ii->error == 0)
877 printf_sfp_transceiver_descr(ii, buf, sizeof(buf));
881 if (ii->do_diag != 0) {
882 get_sfp_temp(ii, buf, sizeof(buf));
883 get_sfp_voltage(ii, buf2, sizeof(buf2));
885 get_sfp_rx_power(ii, buf, sizeof(buf));
886 get_sfp_tx_power(ii, buf2, sizeof(buf2));
892 dump_i2c_data(ii, SFF_8472_BASE, 0, 128);
899 struct i2c_info ii;
903 memset(&ii, 0, sizeof(ii));
904 ii.fd = s;
905 ii.ifr = ifr;
915 read_i2c(&ii, SFF_8472_BASE, SFF_8472_ID, 1, (caddr_t)&id_byte);
916 if (ii.error != 0 || id_byte == 0)
923 print_qsfp_status(&ii, verbose);
926 print_sfp_status(&ii, verbose);