#define pr_fmt(fmt) …
#include <linux/bits.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/scmi_protocol.h>
#include <linux/scmi_imx_protocol.h>
#include "../../protocols.h"
#include "../../notify.h"
#define SCMI_PROTOCOL_SUPPORTED_VERSION …
#define MAX_MISC_CTRL_SOURCES …
enum scmi_imx_misc_protocol_cmd { … };
struct scmi_imx_misc_info { … };
struct scmi_msg_imx_misc_protocol_attributes { … };
#define GET_BRD_CTRLS_NR(x) …
#define GET_REASONS_NR(x) …
#define GET_DEV_CTRLS_NR(x) …
#define BRD_CTRL_START_ID …
struct scmi_imx_misc_ctrl_set_in { … };
struct scmi_imx_misc_ctrl_notify_in { … };
struct scmi_imx_misc_ctrl_notify_payld { … };
struct scmi_imx_misc_ctrl_get_out { … };
static int scmi_imx_misc_attributes_get(const struct scmi_protocol_handle *ph,
struct scmi_imx_misc_info *mi)
{ … }
static int scmi_imx_misc_ctrl_validate_id(const struct scmi_protocol_handle *ph,
u32 ctrl_id)
{ … }
static int scmi_imx_misc_ctrl_notify(const struct scmi_protocol_handle *ph,
u32 ctrl_id, u32 evt_id, u32 flags)
{ … }
static int
scmi_imx_misc_ctrl_set_notify_enabled(const struct scmi_protocol_handle *ph,
u8 evt_id, u32 src_id, bool enable)
{ … }
static void *
scmi_imx_misc_ctrl_fill_custom_report(const struct scmi_protocol_handle *ph,
u8 evt_id, ktime_t timestamp,
const void *payld, size_t payld_sz,
void *report, u32 *src_id)
{ … }
static const struct scmi_event_ops scmi_imx_misc_event_ops = …;
static const struct scmi_event scmi_imx_misc_events[] = …;
static struct scmi_protocol_events scmi_imx_misc_protocol_events = …;
static int scmi_imx_misc_ctrl_get(const struct scmi_protocol_handle *ph,
u32 ctrl_id, u32 *num, u32 *val)
{ … }
static int scmi_imx_misc_ctrl_set(const struct scmi_protocol_handle *ph,
u32 ctrl_id, u32 num, u32 *val)
{ … }
static const struct scmi_imx_misc_proto_ops scmi_imx_misc_proto_ops = …;
static int scmi_imx_misc_protocol_init(const struct scmi_protocol_handle *ph)
{ … }
static const struct scmi_protocol scmi_imx_misc = …;
module_scmi_protocol(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;