diff options
Diffstat (limited to 'drivers/net/irda/ep7211_ir.c')
-rw-r--r-- | drivers/net/irda/ep7211_ir.c | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/drivers/net/irda/ep7211_ir.c b/drivers/net/irda/ep7211_ir.c deleted file mode 100644 index 4cba38f7e4a..00000000000 --- a/drivers/net/irda/ep7211_ir.c +++ /dev/null @@ -1,125 +0,0 @@ -/* - * IR port driver for the Cirrus Logic EP7211 processor. - * - * Copyright 2001, Blue Mug Inc. All rights reserved. - */ - -#include <linux/module.h> -#include <linux/delay.h> -#include <linux/tty.h> -#include <linux/init.h> -#include <linux/spinlock.h> - -#include <net/irda/irda.h> -#include <net/irda/irda_device.h> - -#include <asm/io.h> -#include <asm/hardware.h> - -#define MIN_DELAY 25 /* 15 us, but wait a little more to be sure */ -#define MAX_DELAY 10000 /* 1 ms */ - -static void ep7211_ir_open(dongle_t *self, struct qos_info *qos); -static void ep7211_ir_close(dongle_t *self); -static int ep7211_ir_change_speed(struct irda_task *task); -static int ep7211_ir_reset(struct irda_task *task); - -static DEFINE_SPINLOCK(ep7211_lock); - -static struct dongle_reg dongle = { - .type = IRDA_EP7211_IR, - .open = ep7211_ir_open, - .close = ep7211_ir_close, - .reset = ep7211_ir_reset, - .change_speed = ep7211_ir_change_speed, - .owner = THIS_MODULE, -}; - -static void ep7211_ir_open(dongle_t *self, struct qos_info *qos) -{ - unsigned int syscon1, flags; - - spin_lock_irqsave(&ep7211_lock, flags); - - /* Turn on the SIR encoder. */ - syscon1 = clps_readl(SYSCON1); - syscon1 |= SYSCON1_SIREN; - clps_writel(syscon1, SYSCON1); - - /* XXX: We should disable modem status interrupts on the first - UART (interrupt #14). */ - - spin_unlock_irqrestore(&ep7211_lock, flags); -} - -static void ep7211_ir_close(dongle_t *self) -{ - unsigned int syscon1, flags; - - spin_lock_irqsave(&ep7211_lock, flags); - - /* Turn off the SIR encoder. */ - syscon1 = clps_readl(SYSCON1); - syscon1 &= ~SYSCON1_SIREN; - clps_writel(syscon1, SYSCON1); - - /* XXX: If we've disabled the modem status interrupts, we should - reset them back to their original state. */ - - spin_unlock_irqrestore(&ep7211_lock, flags); -} - -/* - * Function ep7211_ir_change_speed (task) - * - * Change speed of the EP7211 I/R port. We don't really have to do anything - * for the EP7211 as long as the rate is being changed at the serial port - * level. - */ -static int ep7211_ir_change_speed(struct irda_task *task) -{ - irda_task_next_state(task, IRDA_TASK_DONE); - return 0; -} - -/* - * Function ep7211_ir_reset (task) - * - * Reset the EP7211 I/R. We don't really have to do anything. - * - */ -static int ep7211_ir_reset(struct irda_task *task) -{ - irda_task_next_state(task, IRDA_TASK_DONE); - return 0; -} - -/* - * Function ep7211_ir_init(void) - * - * Initialize EP7211 I/R module - * - */ -static int __init ep7211_ir_init(void) -{ - return irda_device_register_dongle(&dongle); -} - -/* - * Function ep7211_ir_cleanup(void) - * - * Cleanup EP7211 I/R module - * - */ -static void __exit ep7211_ir_cleanup(void) -{ - irda_device_unregister_dongle(&dongle); -} - -MODULE_AUTHOR("Jon McClintock <jonm@bluemug.com>"); -MODULE_DESCRIPTION("EP7211 I/R driver"); -MODULE_LICENSE("GPL"); -MODULE_ALIAS("irda-dongle-8"); /* IRDA_EP7211_IR */ - -module_init(ep7211_ir_init); -module_exit(ep7211_ir_cleanup); |