mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-05-01 15:16:21 -04:00
There is a bit of mess between cros-ec mfd includes and platform
includes. For example, we have a linux/mfd/cros_ec.h include that
exports the interface implemented in platform/chrome/cros_ec_proto.c. Or
we have a linux/mfd/cros_ec_commands.h file that is non related to the
multifunction device (in the sense that is not exporting any function of
the mfd device). This causes crossed includes between mfd and
platform/chrome subsystems and makes the code difficult to read, apart
from creating 'curious' situations where a platform/chrome driver includes
a linux/mfd/cros_ec.h file just to get the exported functions that are
implemented in another platform/chrome driver.
In order to have a better separation on what the cros-ec multifunction
driver does and what the cros-ec core provides move and rework the
affected includes doing:
- Move cros_ec_commands.h to include/linux/platform_data/cros_ec_commands.h
- Get rid of the parts that are implemented in the platform/chrome/cros_ec_proto.c
driver from include/linux/mfd/cros_ec.h to a new file
include/linux/platform_data/cros_ec_proto.h
- Update all the drivers with the new includes, so
- Drivers that only need to know about the protocol include
- linux/platform_data/cros_ec_proto.h
- linux/platform_data/cros_ec_commands.h
- Drivers that need to know about the cros-ec mfd device also include
- linux/mfd/cros_ec.h
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Series changes: 3
- Fix dereferencing pointer to incomplete type 'struct cros_ec_dev' (lkp)
Signed-off-by: Lee Jones <lee.jones@linaro.org>
38 lines
1.0 KiB
C
38 lines
1.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* ChromeOS EC device interface.
|
|
*
|
|
* Copyright (C) 2014 Google, Inc.
|
|
*/
|
|
|
|
#ifndef _UAPI_LINUX_CROS_EC_DEV_H_
|
|
#define _UAPI_LINUX_CROS_EC_DEV_H_
|
|
|
|
#include <linux/bits.h>
|
|
#include <linux/ioctl.h>
|
|
#include <linux/types.h>
|
|
|
|
#include <linux/platform_data/cros_ec_commands.h>
|
|
|
|
#define CROS_EC_DEV_VERSION "1.0.0"
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
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_ */
|