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
include
linux
c2port.h
Go to the documentation of this file.
1
/*
2
* Silicon Labs C2 port Linux support
3
*
4
* Copyright (c) 2007 Rodolfo Giometti <
[email protected]
>
5
* Copyright (c) 2007 Eurotech S.p.A. <
[email protected]
>
6
*
7
* This program is free software; you can redistribute it and/or modify it
8
* under the terms of the GNU General Public License version 2 as published by
9
* the Free Software Foundation
10
*/
11
12
#include <
linux/kmemcheck.h
>
13
14
#define C2PORT_NAME_LEN 32
15
16
struct
device
;
17
18
/*
19
* C2 port basic structs
20
*/
21
22
/* Main struct */
23
struct
c2port_ops
;
24
struct
c2port_device
{
25
kmemcheck_bitfield_begin
(
flags
);
26
unsigned
int
access
:1;
27
unsigned
int
flash_access
:1;
28
kmemcheck_bitfield_end
(
flags
);
29
30
int
id
;
31
char
name
[
C2PORT_NAME_LEN
];
32
struct
c2port_ops
*
ops
;
33
struct
mutex
mutex
;
/* prevent races during read/write */
34
35
struct
device
*
dev
;
36
37
void
*
private_data
;
38
};
39
40
/* Basic operations */
41
struct
c2port_ops
{
42
/* Flash layout */
43
unsigned
short
block_size
;
/* flash block size in bytes */
44
unsigned
short
blocks_num
;
/* flash blocks number */
45
46
/* Enable or disable the access to C2 port */
47
void
(*
access
)(
struct
c2port_device
*
dev
,
int
status
);
48
49
/* Set C2D data line as input/output */
50
void
(*
c2d_dir
)(
struct
c2port_device
*
dev
,
int
dir
);
51
52
/* Read/write C2D data line */
53
int
(*
c2d_get
)(
struct
c2port_device
*
dev
);
54
void
(*
c2d_set
)(
struct
c2port_device
*
dev
,
int
status
);
55
56
/* Write C2CK clock line */
57
void
(*
c2ck_set
)(
struct
c2port_device
*
dev
,
int
status
);
58
};
59
60
/*
61
* Exported functions
62
*/
63
64
extern
struct
c2port_device
*
c2port_device_register
(
char
*
name
,
65
struct
c2port_ops
*
ops
,
void
*devdata);
66
extern
void
c2port_device_unregister
(
struct
c2port_device
*
dev
);
Generated on Thu Jan 10 2013 14:51:07 for Linux Kernel by
1.8.2