# HG changeset patch # User Mychaela Falconia # Date 1694073549 0 # Node ID 67ecb394b24fd88fccf99510d5341faf354e32f4 # Parent c53dee063cddd176161b29cedebd73015e538be4 libftmini: starting with EEPROM read diff -r c53dee063cdd -r 67ecb394b24f libftmini/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libftmini/Makefile Thu Sep 07 07:59:09 2023 +0000 @@ -0,0 +1,13 @@ +CC= gcc +CFLAGS= -O2 +OBJS= eeprom_rd.o +LIB= libftmini.a + +all: ${LIB} + +${LIB}: ${OBJS} + ar rcu $@ ${OBJS} + ranlib $@ + +clean: + rm -f *.[oa] errs diff -r c53dee063cdd -r 67ecb394b24f libftmini/eeprom_func.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libftmini/eeprom_func.h Thu Sep 07 07:59:09 2023 +0000 @@ -0,0 +1,5 @@ +/* declarations for libftmini EEPROM operation functions */ + +u_short ftmini_read_eeprom_loc(usb_dev_handle *usbh, u_short addr); +void ftmini_write_eeprom_loc(usb_dev_handle *usbh, u_short addr, u_short val); +void ftmini_erase_eeprom(usb_dev_handle *usbh); diff -r c53dee063cdd -r 67ecb394b24f libftmini/eeprom_rd.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libftmini/eeprom_rd.c Thu Sep 07 07:59:09 2023 +0000 @@ -0,0 +1,26 @@ +/* elementary FTDI EEPROM read function */ + +#include +#include +#include +#include +#include "ftdi_defs.h" +#include "ftdi_tune.h" +#include "eeprom_func.h" + +u_short ftmini_read_eeprom_loc(usb_dev_handle *usbh, u_short addr) +{ + u_char buf[2]; + int rc; + + rc = usb_control_msg(usbh, FTDI_DEVICE_IN_REQTYPE, + SIO_READ_EEPROM_REQUEST, 0, addr, (char *) buf, 2, + USB_READ_TIMEOUT); + if (rc != 2) { + fprintf(stderr, + "EEPROM read error: usb_control_msg() returned %d\n", + rc); + exit(1); + } + return buf[0] | (buf[1] << 8); +} diff -r c53dee063cdd -r 67ecb394b24f libftmini/ftdi_tune.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libftmini/ftdi_tune.h Thu Sep 07 07:59:09 2023 +0000 @@ -0,0 +1,7 @@ +/* + * libftdi-0.20 passes ftdi->usb_read_timeout as the last argument to + * usb_control_msg(); this setting is initialized to 5000 in ftdi_init() + * and never changed in practice. Replicate this magic definition. + */ + +#define USB_READ_TIMEOUT 5000