2015-02-02 14:26:25 +03:00
/*
* cros_ec_dev - expose the Chrome OS Embedded Controller to userspace
*
* Copyright ( C ) 2014 Google , Inc .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef _CROS_EC_DEV_H_
# define _CROS_EC_DEV_H_
# include <linux/ioctl.h>
# include <linux/types.h>
# include <linux/mfd/cros_ec.h>
# define CROS_EC_DEV_VERSION "1.0.0"
2018-07-18 19:09:56 +03:00
/**
* struct cros_ec_readmem - Struct used to read mapped memory .
* @ offset : Within EC_LPC_ADDR_MEMMAP region .
* @ bytes : Number of bytes to read . Zero means " read a string " ( including ' \0 ' )
* At most only EC_MEMMAP_SIZE bytes can be read .
* @ buffer : Where to store the result . The ioctl returns the number of bytes
* read or negative on error .
2015-02-02 14:26:25 +03:00
*/
struct cros_ec_readmem {
uint32_t offset ;
uint32_t bytes ;
uint8_t buffer [ EC_MEMMAP_SIZE ] ;
} ;
# define CROS_EC_DEV_IOC 0xEC
# define CROS_EC_DEV_IOCXCMD _IOWR(CROS_EC_DEV_IOC, 0, struct cros_ec_command)
# define CROS_EC_DEV_IOCRDMEM _IOWR(CROS_EC_DEV_IOC, 1, struct cros_ec_readmem)
# endif /* _CROS_EC_DEV_H_ */