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
mmc
core
core.h
Go to the documentation of this file.
1
/*
2
* linux/drivers/mmc/core/core.h
3
*
4
* Copyright (C) 2003 Russell King, All Rights Reserved.
5
* Copyright 2007 Pierre Ossman
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 2 as
9
* published by the Free Software Foundation.
10
*/
11
#ifndef _MMC_CORE_CORE_H
12
#define _MMC_CORE_CORE_H
13
14
#include <
linux/delay.h
>
15
16
#define MMC_CMD_RETRIES 3
17
18
struct
mmc_bus_ops
{
19
int
(*
awake
)(
struct
mmc_host
*);
20
int
(*
sleep
)(
struct
mmc_host
*);
21
void
(*
remove
)(
struct
mmc_host
*);
22
void
(*
detect
)(
struct
mmc_host
*);
23
int
(*
suspend
)(
struct
mmc_host
*);
24
int
(*
resume
)(
struct
mmc_host
*);
25
int
(*
power_save
)(
struct
mmc_host
*);
26
int
(*
power_restore
)(
struct
mmc_host
*);
27
int
(*
alive
)(
struct
mmc_host
*);
28
};
29
30
void
mmc_attach_bus
(
struct
mmc_host
*
host
,
const
struct
mmc_bus_ops
*
ops
);
31
void
mmc_detach_bus
(
struct
mmc_host
*
host
);
32
33
void
mmc_init_erase
(
struct
mmc_card
*
card
);
34
35
void
mmc_set_chip_select
(
struct
mmc_host
*
host
,
int
mode
);
36
void
mmc_set_clock
(
struct
mmc_host
*
host
,
unsigned
int
hz);
37
void
mmc_gate_clock
(
struct
mmc_host
*
host
);
38
void
mmc_ungate_clock
(
struct
mmc_host
*
host
);
39
void
mmc_set_ungated
(
struct
mmc_host
*
host
);
40
void
mmc_set_bus_mode
(
struct
mmc_host
*
host
,
unsigned
int
mode
);
41
void
mmc_set_bus_width
(
struct
mmc_host
*
host
,
unsigned
int
width
);
42
u32
mmc_select_voltage
(
struct
mmc_host
*
host
,
u32
ocr
);
43
int
mmc_set_signal_voltage
(
struct
mmc_host
*
host
,
int
signal_voltage,
44
bool
cmd11);
45
void
mmc_set_timing
(
struct
mmc_host
*
host
,
unsigned
int
timing
);
46
void
mmc_set_driver_type
(
struct
mmc_host
*
host
,
unsigned
int
drv_type);
47
void
mmc_power_off
(
struct
mmc_host
*
host
);
48
49
static
inline
void
mmc_delay(
unsigned
int
ms
)
50
{
51
if
(ms < 1000 /
HZ
) {
52
cond_resched
();
53
mdelay
(ms);
54
}
else
{
55
msleep
(ms);
56
}
57
}
58
59
void
mmc_rescan
(
struct
work_struct
*
work
);
60
void
mmc_start_host
(
struct
mmc_host
*
host
);
61
void
mmc_stop_host
(
struct
mmc_host
*
host
);
62
63
int
_mmc_detect_card_removed
(
struct
mmc_host
*
host
);
64
65
int
mmc_attach_mmc
(
struct
mmc_host
*
host
);
66
int
mmc_attach_sd
(
struct
mmc_host
*
host
);
67
int
mmc_attach_sdio
(
struct
mmc_host
*
host
);
68
69
/* Module parameters */
70
extern
bool
use_spi_crc
;
71
72
/* Debugfs information for hosts and cards */
73
void
mmc_add_host_debugfs
(
struct
mmc_host
*
host
);
74
void
mmc_remove_host_debugfs
(
struct
mmc_host
*
host
);
75
76
void
mmc_add_card_debugfs
(
struct
mmc_card
*
card
);
77
void
mmc_remove_card_debugfs
(
struct
mmc_card
*
card
);
78
79
#endif
80
Generated on Thu Jan 10 2013 12:58:08 for Linux Kernel by
1.8.2