Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
irda
ep7211-sir.c
Go to the documentation of this file.
1
/*
2
* IR port driver for the Cirrus Logic EP7211 processor.
3
*
4
* Copyright 2001, Blue Mug Inc. All rights reserved.
5
* Copyright 2007, Samuel Ortiz <
[email protected]
>
6
*/
7
#include <linux/module.h>
8
#include <
linux/delay.h
>
9
#include <linux/tty.h>
10
#include <
linux/init.h
>
11
#include <
linux/spinlock.h
>
12
13
#include <
net/irda/irda.h
>
14
#include <
net/irda/irda_device.h
>
15
16
#include <asm/io.h>
17
#include <mach/hardware.h>
18
19
#include "
sir-dev.h
"
20
21
#define MIN_DELAY 25
/* 15 us, but wait a little more to be sure */
22
#define MAX_DELAY 10000
/* 1 ms */
23
24
static
int
ep7211_open(
struct
sir_dev
*
dev
);
25
static
int
ep7211_close(
struct
sir_dev
*
dev
);
26
static
int
ep7211_change_speed(
struct
sir_dev
*
dev
,
unsigned
speed);
27
static
int
ep7211_reset(
struct
sir_dev
*
dev
);
28
29
static
struct
dongle_driver
ep7211 = {
30
.owner =
THIS_MODULE
,
31
.driver_name =
"EP7211 IR driver"
,
32
.type =
IRDA_EP7211_DONGLE
,
33
.open = ep7211_open,
34
.close = ep7211_close,
35
.reset = ep7211_reset,
36
.set_speed = ep7211_change_speed,
37
};
38
39
static
int
__init
ep7211_sir_init(
void
)
40
{
41
return
irda_register_dongle
(&ep7211);
42
}
43
44
static
void
__exit
ep7211_sir_cleanup(
void
)
45
{
46
irda_unregister_dongle
(&ep7211);
47
}
48
49
static
int
ep7211_open(
struct
sir_dev
*
dev
)
50
{
51
unsigned
int
syscon
;
52
53
/* Turn on the SIR encoder. */
54
syscon =
clps_readl
(
SYSCON1
);
55
syscon |=
SYSCON1_SIREN
;
56
clps_writel
(syscon,
SYSCON1
);
57
58
return
0;
59
}
60
61
static
int
ep7211_close(
struct
sir_dev
*
dev
)
62
{
63
unsigned
int
syscon
;
64
65
/* Turn off the SIR encoder. */
66
syscon =
clps_readl
(
SYSCON1
);
67
syscon &= ~
SYSCON1_SIREN
;
68
clps_writel
(syscon,
SYSCON1
);
69
70
return
0;
71
}
72
73
static
int
ep7211_change_speed(
struct
sir_dev
*
dev
,
unsigned
speed)
74
{
75
return
0;
76
}
77
78
static
int
ep7211_reset(
struct
sir_dev
*
dev
)
79
{
80
return
0;
81
}
82
83
MODULE_AUTHOR
(
"Samuel Ortiz <
[email protected]
>"
);
84
MODULE_DESCRIPTION
(
"EP7211 IR dongle driver"
);
85
MODULE_LICENSE
(
"GPL"
);
86
MODULE_ALIAS
(
"irda-dongle-13"
);
/* IRDA_EP7211_DONGLE */
87
88
module_init
(ep7211_sir_init);
89
module_exit
(ep7211_sir_cleanup);
Generated on Thu Jan 10 2013 14:06:44 for Linux Kernel by
1.8.2