From: Peng Fan <peng.fan@xxxxxxx> Add bbm_info hook to let BBM protocol users could query the how many RTCs and GPRs are supported by SCMI platform. Signed-off-by: Peng Fan <peng.fan@xxxxxxx> --- drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c | 15 +++++++++++++++ include/linux/scmi_imx_protocol.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c b/drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c index 86fadfe8e3560b1cab5876a1029e38d91d938e2f..9d40ea817f4bdd2304c932bf3f52b7673a35eaff 100644 --- a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c +++ b/drivers/firmware/arm_scmi/vendors/imx/imx-sm-bbm.c @@ -246,6 +246,20 @@ static const struct scmi_protocol_events scmi_imx_bbm_protocol_events = { .num_events = ARRAY_SIZE(scmi_imx_bbm_events), }; +static int scmi_imx_bbm_info(const struct scmi_protocol_handle *ph, u32 *nr_rtc, + u32 *nr_gpr) +{ + struct scmi_imx_bbm_info *pi = ph->get_priv(ph); + + if (nr_rtc) + *nr_rtc = pi->nr_rtc; + + if (nr_gpr) + *nr_gpr = pi->nr_gpr; + + return 0; +} + static int scmi_imx_bbm_rtc_time_set(const struct scmi_protocol_handle *ph, u32 rtc_id, u64 sec) { @@ -351,6 +365,7 @@ static int scmi_imx_bbm_button_get(const struct scmi_protocol_handle *ph, u32 *s } static const struct scmi_imx_bbm_proto_ops scmi_imx_bbm_proto_ops = { + .bbm_info = scmi_imx_bbm_info, .rtc_time_get = scmi_imx_bbm_rtc_time_get, .rtc_time_set = scmi_imx_bbm_rtc_time_set, .rtc_alarm_set = scmi_imx_bbm_rtc_alarm_set, diff --git a/include/linux/scmi_imx_protocol.h b/include/linux/scmi_imx_protocol.h index 53b356a26414279f4aaaa8287c32209ed1ad57b4..a0e7e99c4f43ba3e735f50b9eadbfa07a7803947 100644 --- a/include/linux/scmi_imx_protocol.h +++ b/include/linux/scmi_imx_protocol.h @@ -20,6 +20,8 @@ #define SCMI_IMX_SUBVENDOR "IMX" struct scmi_imx_bbm_proto_ops { + int (*bbm_info)(const struct scmi_protocol_handle *ph, u32 *nr_rtc, + u32 *nr_gpr); int (*rtc_time_set)(const struct scmi_protocol_handle *ph, u32 id, uint64_t sec); int (*rtc_time_get)(const struct scmi_protocol_handle *ph, u32 id, -- 2.37.1