Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / include / linux / scmi_imx_protocol.h
blob066216f1357aac21d00f92ae601d072bfe06193e
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * SCMI Message Protocol driver NXP extension header
5 * Copyright 2024 NXP.
6 */
8 #ifndef _LINUX_SCMI_NXP_PROTOCOL_H
9 #define _LINUX_SCMI_NXP_PROTOCOL_H
11 #include <linux/bitfield.h>
12 #include <linux/device.h>
13 #include <linux/notifier.h>
14 #include <linux/types.h>
16 enum scmi_nxp_protocol {
17 SCMI_PROTOCOL_IMX_BBM = 0x81,
18 SCMI_PROTOCOL_IMX_MISC = 0x84,
21 struct scmi_imx_bbm_proto_ops {
22 int (*rtc_time_set)(const struct scmi_protocol_handle *ph, u32 id,
23 uint64_t sec);
24 int (*rtc_time_get)(const struct scmi_protocol_handle *ph, u32 id,
25 u64 *val);
26 int (*rtc_alarm_set)(const struct scmi_protocol_handle *ph, u32 id,
27 bool enable, u64 sec);
28 int (*button_get)(const struct scmi_protocol_handle *ph, u32 *state);
31 enum scmi_nxp_notification_events {
32 SCMI_EVENT_IMX_BBM_RTC = 0x0,
33 SCMI_EVENT_IMX_BBM_BUTTON = 0x1,
34 SCMI_EVENT_IMX_MISC_CONTROL = 0x0,
37 struct scmi_imx_bbm_notif_report {
38 bool is_rtc;
39 bool is_button;
40 ktime_t timestamp;
41 unsigned int rtc_id;
42 unsigned int rtc_evt;
45 struct scmi_imx_misc_ctrl_notify_report {
46 ktime_t timestamp;
47 unsigned int ctrl_id;
48 unsigned int flags;
51 struct scmi_imx_misc_proto_ops {
52 int (*misc_ctrl_set)(const struct scmi_protocol_handle *ph, u32 id,
53 u32 num, u32 *val);
54 int (*misc_ctrl_get)(const struct scmi_protocol_handle *ph, u32 id,
55 u32 *num, u32 *val);
56 int (*misc_ctrl_req_notify)(const struct scmi_protocol_handle *ph,
57 u32 ctrl_id, u32 evt_id, u32 flags);
59 #endif