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
arch
arm
mach-omap1
board-h2-mmc.c
Go to the documentation of this file.
1
/*
2
* linux/arch/arm/mach-omap1/board-h2-mmc.c
3
*
4
* Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
5
* Author: Felipe Balbi <
[email protected]
>
6
*
7
* This code is based on linux/arch/arm/mach-omap2/board-n800-mmc.c, which is:
8
* Copyright (C) 2006 Nokia Corporation
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License version 2 as
12
* published by the Free Software Foundation.
13
*/
14
#include <
linux/gpio.h
>
15
#include <
linux/platform_device.h
>
16
17
#include <
linux/i2c/tps65010.h
>
18
19
#include <
plat/mmc.h
>
20
21
#include "
board-h2.h
"
22
23
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
24
25
static
int
mmc_set_power(
struct
device
*
dev
,
int
slot
,
int
power_on,
26
int
vdd)
27
{
28
gpio_set_value
(
H2_TPS_GPIO_MMC_PWR_EN
, power_on);
29
return
0;
30
}
31
32
static
int
mmc_late_init(
struct
device
*
dev
)
33
{
34
int
ret
=
gpio_request
(
H2_TPS_GPIO_MMC_PWR_EN
,
"MMC power"
);
35
if
(ret < 0)
36
return
ret
;
37
38
gpio_direction_output
(
H2_TPS_GPIO_MMC_PWR_EN
, 0);
39
40
return
ret
;
41
}
42
43
static
void
mmc_cleanup(
struct
device
*dev)
44
{
45
gpio_free
(
H2_TPS_GPIO_MMC_PWR_EN
);
46
}
47
48
/*
49
* H2 could use the following functions tested:
50
* - mmc_get_cover_state that uses OMAP_MPUIO(1)
51
* - mmc_get_wp that uses OMAP_MPUIO(3)
52
*/
53
static
struct
omap_mmc_platform_data
mmc1_data = {
54
.
nr_slots
= 1,
55
.init = mmc_late_init,
56
.cleanup = mmc_cleanup,
57
.slots[0] = {
58
.set_power = mmc_set_power,
59
.ocr_mask =
MMC_VDD_32_33
|
MMC_VDD_33_34
,
60
.name =
"mmcblk"
,
61
},
62
};
63
64
static
struct
omap_mmc_platform_data
*
mmc_data
[
OMAP16XX_NR_MMC
];
65
66
void
__init
h2_mmc_init
(
void
)
67
{
68
mmc_data[0] = &mmc1_data;
69
omap1_init_mmc(mmc_data,
OMAP16XX_NR_MMC
);
70
}
71
72
#else
73
74
void
__init
h2_mmc_init
(
void
)
75
{
76
}
77
78
#endif
Generated on Thu Jan 10 2013 13:00:07 for Linux Kernel by
1.8.2