#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/firmware.h>
#include <linux/ihex.h>
#include <linux/usb/ezusb.h>
struct ezusb_fx_type { … };
static const struct ezusb_fx_type ezusb_fx1 = …;
#define WRITE_INT_RAM …
#define WRITE_EXT_RAM …
static int ezusb_writememory(struct usb_device *dev, int address,
unsigned char *data, int length, __u8 request)
{ … }
static int ezusb_set_reset(struct usb_device *dev, unsigned short cpucs_reg,
unsigned char reset_bit)
{ … }
int ezusb_fx1_set_reset(struct usb_device *dev, unsigned char reset_bit)
{ … }
EXPORT_SYMBOL_GPL(…);
static int ezusb_ihex_firmware_download(struct usb_device *dev,
struct ezusb_fx_type fx,
const char *firmware_path)
{ … }
int ezusb_fx1_ihex_firmware_download(struct usb_device *dev,
const char *firmware_path)
{ … }
EXPORT_SYMBOL_GPL(…);
#if 0
static struct ezusb_fx_type ezusb_fx2 = {
.cpucs_reg = 0xE600,
.max_internal_adress = 0x3FFF,
};
int ezusb_fx2_set_reset(struct usb_device *dev, unsigned char reset_bit)
{
return ezusb_set_reset(dev, ezusb_fx2.cpucs_reg, reset_bit);
}
EXPORT_SYMBOL_GPL(ezusb_fx2_set_reset);
int ezusb_fx2_ihex_firmware_download(struct usb_device *dev,
const char *firmware_path)
{
return ezusb_ihex_firmware_download(dev, ezusb_fx2, firmware_path);
}
EXPORT_SYMBOL_GPL(ezusb_fx2_ihex_firmware_download);
#endif
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;