mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 18:45:25 +07:00
840d9f131f
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>
36 lines
994 B
C
36 lines
994 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* ChromeOS EC multi-function device
|
|
*
|
|
* Copyright (C) 2012 Google, Inc
|
|
*/
|
|
|
|
#ifndef __LINUX_MFD_CROS_EC_H
|
|
#define __LINUX_MFD_CROS_EC_H
|
|
|
|
#include <linux/device.h>
|
|
|
|
/**
|
|
* struct cros_ec_dev - ChromeOS EC device entry point.
|
|
* @class_dev: Device structure used in sysfs.
|
|
* @ec_dev: cros_ec_device structure to talk to the physical device.
|
|
* @dev: Pointer to the platform device.
|
|
* @debug_info: cros_ec_debugfs structure for debugging information.
|
|
* @has_kb_wake_angle: True if at least 2 accelerometer are connected to the EC.
|
|
* @cmd_offset: Offset to apply for each command.
|
|
* @features: Features supported by the EC.
|
|
*/
|
|
struct cros_ec_dev {
|
|
struct device class_dev;
|
|
struct cros_ec_device *ec_dev;
|
|
struct device *dev;
|
|
struct cros_ec_debugfs *debug_info;
|
|
bool has_kb_wake_angle;
|
|
u16 cmd_offset;
|
|
u32 features[2];
|
|
};
|
|
|
|
#define to_cros_ec_dev(dev) container_of(dev, struct cros_ec_dev, class_dev)
|
|
|
|
#endif /* __LINUX_MFD_CROS_EC_H */
|