···13#include <linux/kernel.h>14#include <linux/errno.h>15#include <linux/module.h>01617/* include interfaces to usb layer */18#include <linux/usb.h>···32#define CMD_I2C_IO_END (1<<1)3334/* i2c bit delay, default is 10us -> 100kHz */35-static int delay = 10;36-module_param(delay, int, 0);37MODULE_PARM_DESC(delay, "bit delay in microseconds, "38 "e.g. 10 for 100kHz (default is 100kHz)");39···110111static u32 usb_func(struct i2c_adapter *adapter)112{113- u32 func;114115 /* get functionality from adapter */116 if (usb_read(adapter, CMD_GET_FUNC, 0, 0, &func, sizeof(func)) !=···119 return 0;120 }121122- return func;123}124125/* This is the actual algorithm we define */···217 "i2c-tiny-usb at bus %03d device %03d",218 dev->usb_dev->bus->busnum, dev->usb_dev->devnum);219220- if (usb_write(&dev->adapter, CMD_SET_DELAY,221- cpu_to_le16(delay), 0, NULL, 0) != 0) {222 dev_err(&dev->adapter.dev,223 "failure setting delay to %dus\n", delay);224 retval = -EIO;
···13#include <linux/kernel.h>14#include <linux/errno.h>15#include <linux/module.h>16+#include <linux/types.h>1718/* include interfaces to usb layer */19#include <linux/usb.h>···31#define CMD_I2C_IO_END (1<<1)3233/* i2c bit delay, default is 10us -> 100kHz */34+static unsigned short delay = 10;35+module_param(delay, ushort, 0);36MODULE_PARM_DESC(delay, "bit delay in microseconds, "37 "e.g. 10 for 100kHz (default is 100kHz)");38···109110static u32 usb_func(struct i2c_adapter *adapter)111{112+ __le32 func;113114 /* get functionality from adapter */115 if (usb_read(adapter, CMD_GET_FUNC, 0, 0, &func, sizeof(func)) !=···118 return 0;119 }120121+ return le32_to_cpu(func);122}123124/* This is the actual algorithm we define */···216 "i2c-tiny-usb at bus %03d device %03d",217 dev->usb_dev->bus->busnum, dev->usb_dev->devnum);218219+ if (usb_write(&dev->adapter, CMD_SET_DELAY, delay, 0, NULL, 0) != 0) {0220 dev_err(&dev->adapter.dev,221 "failure setting delay to %dus\n", delay);222 retval = -EIO;