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-omap2
hwspinlock.c
Go to the documentation of this file.
1
/*
2
* OMAP hardware spinlock device initialization
3
*
4
* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com
5
*
6
* Contact: Simon Que <
[email protected]
>
7
* Hari Kanigeri <
[email protected]
>
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License
11
* version 2 as published by the Free Software Foundation.
12
*
13
* This program is distributed in the hope that it will be useful, but
14
* WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
* General Public License for more details.
17
*/
18
19
#include <linux/kernel.h>
20
#include <
linux/init.h
>
21
#include <
linux/err.h
>
22
#include <
linux/hwspinlock.h
>
23
24
#include <
plat/omap_hwmod.h
>
25
#include <
plat/omap_device.h
>
26
27
static
struct
hwspinlock_pdata
omap_hwspinlock_pdata
__initdata
= {
28
.base_id = 0,
29
};
30
31
static
int
__init
hwspinlocks_init(
void
)
32
{
33
int
retval
= 0;
34
struct
omap_hwmod
*oh;
35
struct
platform_device
*
pdev
;
36
const
char
*oh_name =
"spinlock"
;
37
const
char
*dev_name =
"omap_hwspinlock"
;
38
39
/*
40
* Hwmod lookup will fail in case our platform doesn't support the
41
* hardware spinlock module, so it is safe to run this initcall
42
* on all omaps
43
*/
44
oh =
omap_hwmod_lookup
(oh_name);
45
if
(oh ==
NULL
)
46
return
-
EINVAL
;
47
48
pdev =
omap_device_build
(dev_name, 0, oh, &omap_hwspinlock_pdata,
49
sizeof
(
struct
hwspinlock_pdata
),
50
NULL
, 0,
false
);
51
if
(IS_ERR(pdev)) {
52
pr_err
(
"Can't build omap_device for %s:%s\n"
, dev_name,
53
oh_name);
54
retval = PTR_ERR(pdev);
55
}
56
57
return
retval
;
58
}
59
/* early board code might need to reserve specific hwspinlock instances */
60
postcore_initcall
(hwspinlocks_init);
Generated on Thu Jan 10 2013 13:00:45 for Linux Kernel by
1.8.2