Merge branch 'for-linus-3.6' of git://dev.laptop.org/users/dilinger/linux-olpc
Pull OLPC platform updates from Andres Salomon: "These move the OLPC Embedded Controller driver out of arch/x86/platform and into drivers/platform/olpc. OLPC machines are now ARM-based (which means lots of x86 and ARM changes), but are typically pretty self-contained.. so it makes more sense to go through a separate OLPC tree after getting the appropriate review/ACKs." * 'for-linus-3.6' of git://dev.laptop.org/users/dilinger/linux-olpc: x86: OLPC: move s/r-related EC cmds to EC driver Platform: OLPC: move global variables into priv struct Platform: OLPC: move debugfs support from x86 EC driver x86: OLPC: switch over to using new EC driver on x86 Platform: OLPC: add a suspended flag to the EC driver Platform: OLPC: turn EC driver into a platform_driver Platform: OLPC: allow EC cmd to be overridden, and create a workqueue to call it drivers: OLPC: update various drivers to include olpc-ec.h Platform: OLPC: add a stub to drivers/platform/ for the OLPC EC driver
This commit is contained in:
commit
fc6bdb59a5
13 changed files with 451 additions and 164 deletions
41
include/linux/olpc-ec.h
Normal file
41
include/linux/olpc-ec.h
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#ifndef _LINUX_OLPC_EC_H
|
||||
#define _LINUX_OLPC_EC_H
|
||||
|
||||
/* XO-1 EC commands */
|
||||
#define EC_FIRMWARE_REV 0x08
|
||||
#define EC_WRITE_SCI_MASK 0x1b
|
||||
#define EC_WAKE_UP_WLAN 0x24
|
||||
#define EC_WLAN_LEAVE_RESET 0x25
|
||||
#define EC_READ_EB_MODE 0x2a
|
||||
#define EC_SET_SCI_INHIBIT 0x32
|
||||
#define EC_SET_SCI_INHIBIT_RELEASE 0x34
|
||||
#define EC_WLAN_ENTER_RESET 0x35
|
||||
#define EC_WRITE_EXT_SCI_MASK 0x38
|
||||
#define EC_SCI_QUERY 0x84
|
||||
#define EC_EXT_SCI_QUERY 0x85
|
||||
|
||||
struct platform_device;
|
||||
|
||||
struct olpc_ec_driver {
|
||||
int (*probe)(struct platform_device *);
|
||||
int (*suspend)(struct platform_device *);
|
||||
int (*resume)(struct platform_device *);
|
||||
|
||||
int (*ec_cmd)(u8, u8 *, size_t, u8 *, size_t, void *);
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OLPC
|
||||
|
||||
extern void olpc_ec_driver_register(struct olpc_ec_driver *drv, void *arg);
|
||||
|
||||
extern int olpc_ec_cmd(u8 cmd, u8 *inbuf, size_t inlen, u8 *outbuf,
|
||||
size_t outlen);
|
||||
|
||||
#else
|
||||
|
||||
static inline int olpc_ec_cmd(u8 cmd, u8 *inbuf, size_t inlen, u8 *outbuf,
|
||||
size_t outlen) { return -ENODEV; }
|
||||
|
||||
#endif /* CONFIG_OLPC */
|
||||
|
||||
#endif /* _LINUX_OLPC_EC_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue