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-sx1-mmc.c
Go to the documentation of this file.
1
/*
2
* linux/arch/arm/mach-omap1/board-sx1-mmc.c
3
*
4
* Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
5
* Author: Carlos Eduardo Aguiar <
[email protected]
>
6
*
7
* This code is based on linux/arch/arm/mach-omap1/board-h2-mmc.c, which is:
8
* Copyright (C) 2007 Instituto Nokia de Tecnologia - INdT
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
15
#include <
linux/gpio.h
>
16
#include <
linux/platform_device.h
>
17
18
#include <mach/hardware.h>
19
#include <
plat/mmc.h
>
20
#include <
mach/board-sx1.h
>
21
22
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
23
24
static
int
mmc_set_power(
struct
device
*
dev
,
int
slot
,
int
power_on,
25
int
vdd)
26
{
27
int
err
;
28
u8
dat
= 0;
29
30
err =
sx1_i2c_read_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
, &dat);
31
if
(err < 0)
32
return
err
;
33
34
if
(power_on)
35
dat |=
SOFIA_MMC_POWER
;
36
else
37
dat &= ~
SOFIA_MMC_POWER
;
38
39
return
sx1_i2c_write_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
, dat);
40
}
41
42
/* Cover switch is at OMAP_MPUIO(3) */
43
static
struct
omap_mmc_platform_data
mmc1_data = {
44
.
nr_slots
= 1,
45
.slots[0] = {
46
.set_power = mmc_set_power,
47
.ocr_mask =
MMC_VDD_32_33
|
MMC_VDD_33_34
,
48
.name =
"mmcblk"
,
49
},
50
};
51
52
static
struct
omap_mmc_platform_data
*
mmc_data
[
OMAP15XX_NR_MMC
];
53
54
void
__init
sx1_mmc_init
(
void
)
55
{
56
mmc_data[0] = &mmc1_data;
57
omap1_init_mmc(mmc_data,
OMAP15XX_NR_MMC
);
58
}
59
60
#else
61
62
void
__init
sx1_mmc_init
(
void
)
63
{
64
}
65
66
#endif
Generated on Thu Jan 10 2013 13:00:08 for Linux Kernel by
1.8.2