mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 08:56:48 +07:00
Platform: OLPC: add a stub to drivers/platform/ for the OLPC EC driver
The OLPC EC driver has outgrown arch/x86/platform/. It's time to both share common code amongst different architectures, as well as move it out of arch/x86/. The XO-1.75 is ARM-based, and the EC driver shares a lot of code with the x86 code. Signed-off-by: Andres Salomon <dilinger@queued.net> Acked-by: Paul Fox <pgf@laptop.org> Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
08843b79fb
commit
392a325c43
@ -4,6 +4,7 @@
|
||||
#define _ASM_X86_OLPC_H
|
||||
|
||||
#include <asm/geode.h>
|
||||
#include <linux/olpc-ec.h>
|
||||
|
||||
struct olpc_platform_t {
|
||||
int flags;
|
||||
@ -102,22 +103,8 @@ extern int pci_olpc_init(void);
|
||||
|
||||
/* EC related functions */
|
||||
|
||||
extern int olpc_ec_cmd(unsigned char cmd, unsigned char *inbuf, size_t inlen,
|
||||
unsigned char *outbuf, size_t outlen);
|
||||
|
||||
/* 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
|
||||
extern int olpc_ec_cmd_x86(unsigned char cmd, unsigned char *inbuf,
|
||||
size_t inlen, unsigned char *outbuf, size_t outlen);
|
||||
|
||||
/* SCI source values */
|
||||
|
||||
|
@ -125,7 +125,7 @@ static int __wait_on_obf(unsigned int line, unsigned int port, int desired)
|
||||
* <http://wiki.laptop.org/go/Ec_specification>. Unfortunately, while
|
||||
* OpenFirmware's source is available, the EC's is not.
|
||||
*/
|
||||
int olpc_ec_cmd(unsigned char cmd, unsigned char *inbuf, size_t inlen,
|
||||
int olpc_ec_cmd_x86(unsigned char cmd, unsigned char *inbuf, size_t inlen,
|
||||
unsigned char *outbuf, size_t outlen)
|
||||
{
|
||||
unsigned long flags;
|
||||
@ -201,7 +201,7 @@ int olpc_ec_cmd(unsigned char cmd, unsigned char *inbuf, size_t inlen,
|
||||
spin_unlock_irqrestore(&ec_lock, flags);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(olpc_ec_cmd);
|
||||
EXPORT_SYMBOL_GPL(olpc_ec_cmd_x86);
|
||||
|
||||
void olpc_ec_wakeup_set(u16 value)
|
||||
{
|
||||
|
@ -3,3 +3,4 @@
|
||||
#
|
||||
|
||||
obj-$(CONFIG_X86) += x86/
|
||||
obj-$(CONFIG_OLPC) += olpc/
|
||||
|
4
drivers/platform/olpc/Makefile
Normal file
4
drivers/platform/olpc/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
#
|
||||
# OLPC XO platform-specific drivers
|
||||
#
|
||||
obj-$(CONFIG_OLPC) += olpc-ec.o
|
16
drivers/platform/olpc/olpc-ec.c
Normal file
16
drivers/platform/olpc/olpc-ec.c
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Generic driver for the OLPC Embedded Controller.
|
||||
*
|
||||
* Copyright (C) 2011-2012 One Laptop per Child Foundation.
|
||||
*
|
||||
* Licensed under the GPL v2 or later.
|
||||
*/
|
||||
#include <linux/module.h>
|
||||
#include <asm/olpc.h>
|
||||
|
||||
int olpc_ec_cmd(u8 cmd, u8 *inbuf, size_t inlen, u8 *outbuf, size_t outlen)
|
||||
{
|
||||
/* Currently a stub; this will be expanded upon later. */
|
||||
return olpc_ec_cmd_x86(cmd, inbuf, inlen, outbuf, outlen);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(olpc_ec_cmd);
|
29
include/linux/olpc-ec.h
Normal file
29
include/linux/olpc-ec.h
Normal file
@ -0,0 +1,29 @@
|
||||
#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
|
||||
|
||||
#ifdef CONFIG_OLPC
|
||||
|
||||
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…
Reference in New Issue
Block a user