atp
static int atp_geyser_init(struct atp *dev)
struct atp *dev = container_of(work, struct atp, work);
static int atp_calculate_abs(struct atp *dev, int offset, int nb_sensors,
struct atp *dev = urb->context;
static void atp_detect_size(struct atp *dev)
struct atp *dev = urb->context;
struct atp *dev = urb->context;
struct atp *dev = input_get_drvdata(input);
struct atp *dev = input_get_drvdata(input);
static int atp_handle_geyser(struct atp *dev)
struct atp *dev;
struct atp *dev = usb_get_intfdata(iface);
static int atp_recover(struct atp *dev)
struct atp *dev = usb_get_intfdata(iface);
struct atp *dev = usb_get_intfdata(iface);
struct atp *dev = usb_get_intfdata(iface);
return inw(atp->ioport[channel] + reg);
static inline u8 atp_readb_pci(struct atp_unit *atp, u8 channel, u8 reg)
return inb(atp->pciport[channel] + reg);
static inline bool is880(struct atp_unit *atp)
return atp->pdev->device == ATP880_DEVID1 ||
atp->pdev->device == ATP880_DEVID2;
static inline bool is885(struct atp_unit *atp)
return atp->pdev->device == ATP885_DEVID;
static void atp_set_host_id(struct atp_unit *atp, u8 c, u8 host_id)
atp_writeb_io(atp, c, 0, host_id | 0x08);
atp_writeb_io(atp, c, 0x18, 0);
while ((atp_readb_io(atp, c, 0x1f) & 0x80) == 0)
atp_readb_io(atp, c, 0x17);
atp_writeb_io(atp, c, 1, 8);
atp_writeb_io(atp, c, 2, 0x7f);
atp_writeb_io(atp, c, 0x11, 0x20);
static inline void atp_writeb_base(struct atp_unit *atp, u8 reg, u8 val)
outb(val, atp->baseport + reg);
static inline void atp_writew_base(struct atp_unit *atp, u8 reg, u16 val)
outw(val, atp->baseport + reg);
static inline void atp_writeb_io(struct atp_unit *atp, u8 channel, u8 reg, u8 val)
outb(val, atp->ioport[channel] + reg);
static inline void atp_writew_io(struct atp_unit *atp, u8 channel, u8 reg, u16 val)
outw(val, atp->ioport[channel] + reg);
static inline void atp_writeb_pci(struct atp_unit *atp, u8 channel, u8 reg, u8 val)
outb(val, atp->pciport[channel] + reg);
static inline void atp_writel_pci(struct atp_unit *atp, u8 channel, u8 reg, u32 val)
outl(val, atp->pciport[channel] + reg);
static inline u8 atp_readb_base(struct atp_unit *atp, u8 reg)
return inb(atp->baseport + reg);
static inline u16 atp_readw_base(struct atp_unit *atp, u8 reg)
return inw(atp->baseport + reg);
static inline u32 atp_readl_base(struct atp_unit *atp, u8 reg)
return inl(atp->baseport + reg);
static inline u8 atp_readb_io(struct atp_unit *atp, u8 channel, u8 reg)
return inb(atp->ioport[channel] + reg);
static inline u16 atp_readw_io(struct atp_unit *atp, u8 channel, u8 reg)