ep7211-sir.c
来自「linux 内核源代码」· C语言 代码 · 共 90 行
C
90 行
/* * IR port driver for the Cirrus Logic EP7211 processor. * * Copyright 2001, Blue Mug Inc. All rights reserved. * Copyright 2007, Samuel Ortiz <samuel@sortiz.org> */#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>#include "sir-dev.h"#define MIN_DELAY 25 /* 15 us, but wait a little more to be sure */#define MAX_DELAY 10000 /* 1 ms */static int ep7211_open(struct sir_dev *dev);static int ep7211_close(struct sir_dev *dev);static int ep7211_change_speed(struct sir_dev *dev, unsigned speed);static int ep7211_reset(struct sir_dev *dev);static struct dongle_driver ep7211 = { .owner = THIS_MODULE, .driver_name = "EP7211 IR driver", .type = IRDA_EP7211_DONGLE, .open = ep7211_open, .close = ep7211_close, .reset = ep7211_reset, .set_speed = ep7211_change_speed,};static int __init ep7211_sir_init(void){ return irda_register_dongle(&ep7211);}static void __exit ep7211_sir_cleanup(void){ irda_unregister_dongle(&ep7211);}static int ep7211_open(struct sir_dev *dev){ unsigned int syscon; /* Turn on the SIR encoder. */ syscon = clps_readl(SYSCON1); syscon |= SYSCON1_SIREN; clps_writel(syscon, SYSCON1); return 0;}static int ep7211_close(struct sir_dev *dev){ unsigned int syscon; /* Turn off the SIR encoder. */ syscon = clps_readl(SYSCON1); syscon &= ~SYSCON1_SIREN; clps_writel(syscon, SYSCON1); return 0;}static int ep7211_change_speed(struct sir_dev *dev, unsigned speed){ return 0;}static int ep7211_reset(struct sir_dev *dev){ return 0;}MODULE_AUTHOR("Samuel Ortiz <samuel@sortiz.org>");MODULE_DESCRIPTION("EP7211 IR dongle driver");MODULE_LICENSE("GPL");MODULE_ALIAS("irda-dongle-13"); /* IRDA_EP7211_DONGLE */module_init(ep7211_sir_init);module_exit(ep7211_sir_cleanup);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?