#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/delay.h>
#include <linux/firmware.h>
#include <linux/ihex.h>
#define EMI26_VENDOR_ID …
#define EMI26_PRODUCT_ID …
#define EMI26B_PRODUCT_ID …
#define ANCHOR_LOAD_INTERNAL …
#define ANCHOR_LOAD_EXTERNAL …
#define ANCHOR_LOAD_FPGA …
#define MAX_INTERNAL_ADDRESS …
#define CPUCS_REG …
#define INTERNAL_RAM(address) …
static int emi26_writememory( struct usb_device *dev, int address,
const unsigned char *data, int length,
__u8 bRequest);
static int emi26_set_reset(struct usb_device *dev, unsigned char reset_bit);
static int emi26_load_firmware (struct usb_device *dev);
static int emi26_probe(struct usb_interface *intf, const struct usb_device_id *id);
static void emi26_disconnect(struct usb_interface *intf);
static int emi26_writememory (struct usb_device *dev, int address,
const unsigned char *data, int length,
__u8 request)
{ … }
static int emi26_set_reset (struct usb_device *dev, unsigned char reset_bit)
{ … }
#define FW_LOAD_SIZE …
static int emi26_load_firmware (struct usb_device *dev)
{ … }
static const struct usb_device_id id_table[] = …;
MODULE_DEVICE_TABLE (usb, id_table);
static int emi26_probe(struct usb_interface *intf, const struct usb_device_id *id)
{ … }
static void emi26_disconnect(struct usb_interface *intf)
{ … }
static struct usb_driver emi26_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;