FreeCalypso > hg > fc-usbser-tools
changeset 18:fce3d4baa2b4
libftmini: implement EEPROM write
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 07 Sep 2023 22:43:53 +0000 |
parents | 2e21b551b971 |
children | d420375243c9 |
files | libftmini/Makefile libftmini/eeprom_wr.c libftmini/ftdi_tune.h |
diffstat | 3 files changed, 28 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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}
--- /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 <sys/types.h> +#include <stdio.h> +#include <stdlib.h> +#include <usb.h> +#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); + } +}
--- 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