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
of_platform.h
Go to the documentation of this file.
1
#ifndef _LINUX_OF_PLATFORM_H
2
#define _LINUX_OF_PLATFORM_H
3
/*
4
* Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
5
* <
[email protected]
>
6
*
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU General Public License
9
* as published by the Free Software Foundation; either version
10
* 2 of the License, or (at your option) any later version.
11
*
12
*/
13
14
#ifdef CONFIG_OF_DEVICE
15
#include <linux/device.h>
16
#include <
linux/mod_devicetable.h
>
17
#include <
linux/pm.h
>
18
#include <
linux/of_device.h
>
19
#include <
linux/platform_device.h
>
20
43
struct
of_dev_auxdata {
44
char
*
compatible
;
45
resource_size_t
phys_addr
;
46
char
*
name
;
47
void
*
platform_data
;
48
};
49
50
/* Macro to simplify populating a lookup table */
51
#define OF_DEV_AUXDATA(_compat,_phys,_name,_pdata) \
52
{ .compatible = _compat, .phys_addr = _phys, .name = _name, \
53
.platform_data = _pdata }
54
61
struct
of_platform_driver
62
{
63
int
(*probe)(
struct
platform_device
*
dev
,
64
const
struct
of_device_id
*
match
);
65
int
(*
remove
)(
struct
platform_device
*
dev
);
66
67
int
(*
suspend
)(
struct
platform_device
*
dev
,
pm_message_t
state
);
68
int
(*
resume
)(
struct
platform_device
*
dev
);
69
int
(*shutdown)(
struct
platform_device
*
dev
);
70
71
struct
device_driver
driver
;
72
};
73
#define to_of_platform_driver(drv) \
74
container_of(drv,struct of_platform_driver, driver)
75
76
extern
const
struct
of_device_id
of_default_bus_match_table
[];
77
78
/* Platform drivers register/unregister */
79
extern
struct
platform_device
*of_device_alloc(
struct
device_node
*np,
80
const
char
*bus_id,
81
struct
device
*parent);
82
extern
struct
platform_device
*
of_find_device_by_node
(
struct
device_node
*np);
83
84
#ifdef CONFIG_OF_ADDRESS
/* device reg helpers depend on OF_ADDRESS */
85
/* Platform devices and busses creation */
86
extern
struct
platform_device
*of_platform_device_create(
struct
device_node
*np,
87
const
char
*bus_id,
88
struct
device
*parent);
89
90
extern
int
of_platform_bus_probe(
struct
device_node
*root,
91
const
struct
of_device_id
*matches,
92
struct
device
*parent);
93
extern
int
of_platform_populate(
struct
device_node
*root,
94
const
struct
of_device_id
*matches,
95
const
struct
of_dev_auxdata *
lookup
,
96
struct
device
*parent);
97
#endif
/* CONFIG_OF_ADDRESS */
98
99
#endif
/* CONFIG_OF_DEVICE */
100
101
#if !defined(CONFIG_OF_ADDRESS)
102
struct
of_dev_auxdata;
103
static
inline
int
of_platform_populate(
struct
device_node
*root,
104
const
struct
of_device_id
*matches,
105
const
struct
of_dev_auxdata *
lookup
,
106
struct
device
*parent)
107
{
108
return
-
ENODEV
;
109
}
110
#endif
/* !CONFIG_OF_ADDRESS */
111
112
#endif
/* _LINUX_OF_PLATFORM_H */
Generated on Thu Jan 10 2013 14:52:15 for Linux Kernel by
1.8.2