1704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner/****************************************************************************
2704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ****************************************************************************
3704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ***
4704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ***   This header was automatically generated from a Linux kernel header
5704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ***   of the same name, to make information necessary for userspace to
6704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ***   call into the kernel available to libc.  It contains only constants,
7704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ***   structures, and macros generated from the original header, and thus,
8704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ***   contains no copyrightable information.
9704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ***
10704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ****************************************************************************
11704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner ****************************************************************************/
12704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner#ifndef _PLATFORM_DEVICE_H_
13704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner#define _PLATFORM_DEVICE_H_
14704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner
15704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner#include <linux/device.h>
16704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner
17704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turnerstruct platform_device {
18704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner const char * name;
19704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner u32 id;
20704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner struct device dev;
21704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner u32 num_resources;
22704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner struct resource * resource;
23704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner};
24704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner
25704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner#define to_platform_device(x) container_of((x), struct platform_device, dev)
26704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner
27704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turnerstruct platform_driver {
28704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner int (*probe)(struct platform_device *);
29704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner int (*remove)(struct platform_device *);
30704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner void (*shutdown)(struct platform_device *);
31704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner int (*suspend)(struct platform_device *, pm_message_t state);
32704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner int (*resume)(struct platform_device *);
33704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner struct device_driver driver;
34704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner};
35704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner
36704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner#define platform_get_drvdata(_dev) dev_get_drvdata(&(_dev)->dev)
37704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner#define platform_set_drvdata(_dev,data) dev_set_drvdata(&(_dev)->dev, (data))
38704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner
39704614245e9bed17f68574bc9686c02c43923292David 'Digit' Turner#endif
40