# HG changeset patch # User Mychaela Falconia # Date 1694126633 0 # Node ID fce3d4baa2b45c961d878a69af228fc4bae9fd21 # Parent 2e21b551b9712cc7486b7c96b0d16d9a6e9e7f76 libftmini: implement EEPROM write diff -r 2e21b551b971 -r fce3d4baa2b4 libftmini/Makefile --- a/libftmini/Makefile Thu Sep 07 08:58:16 2023 +0000 +++ b/libftmini/Makefile Thu Sep 07 22:43:53 2023 +0000 @@ -1,6 +1,6 @@ CC= gcc CFLAGS= -O2 -OBJS= eeprom_rd.o +OBJS= eeprom_rd.o eeprom_wr.o LIB= libftmini.a all: ${LIB} diff -r 2e21b551b971 -r fce3d4baa2b4 libftmini/eeprom_wr.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libftmini/eeprom_wr.c Thu Sep 07 22:43:53 2023 +0000 @@ -0,0 +1,24 @@ +/* elementary FTDI EEPROM write function */ + +#include +#include +#include +#include +#include "ftdi_defs.h" +#include "ftdi_tune.h" +#include "eeprom_func.h" + +void ftmini_write_eeprom_loc(usb_dev_handle *usbh, u_short addr, u_short val) +{ + int rc; + + rc = usb_control_msg(usbh, FTDI_DEVICE_OUT_REQTYPE, + SIO_WRITE_EEPROM_REQUEST, val, addr, NULL, 0, + USB_WRITE_TIMEOUT); + if (rc != 0) { + fprintf(stderr, + "EEPROM write error: usb_control_msg() returned %d\n", + rc); + exit(1); + } +} diff -r 2e21b551b971 -r fce3d4baa2b4 libftmini/ftdi_tune.h --- a/libftmini/ftdi_tune.h Thu Sep 07 08:58:16 2023 +0000 +++ b/libftmini/ftdi_tune.h Thu Sep 07 22:43:53 2023 +0000 @@ -1,7 +1,9 @@ /* * 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. + * and never changed in practice. Ditto for ftdi->usb_write_timeout. + * Replicate these magic definitions. */ #define USB_READ_TIMEOUT 5000 +#define USB_WRITE_TIMEOUT 5000