Lines Matching +full:board +full:- +full:related
1 // SPDX-License-Identifier: GPL-2.0
8 #define pr_fmt(fmt) "SCMI Notifications MISC - " fmt
75 ret = ph->xops->xfer_get_init(ph, PROTOCOL_ATTRIBUTES, 0, in scmi_imx_misc_attributes_get()
80 attr = t->rx.buf; in scmi_imx_misc_attributes_get()
82 ret = ph->xops->do_xfer(ph, t); in scmi_imx_misc_attributes_get()
84 mi->nr_dev_ctrl = GET_DEV_CTRLS_NR(attr->attributes); in scmi_imx_misc_attributes_get()
85 mi->nr_brd_ctrl = GET_BRD_CTRLS_NR(attr->attributes); in scmi_imx_misc_attributes_get()
86 mi->nr_reason = GET_REASONS_NR(attr->attributes); in scmi_imx_misc_attributes_get()
87 dev_info(ph->dev, "i.MX MISC NUM DEV CTRL: %d, NUM BRD CTRL: %d,NUM Reason: %d\n", in scmi_imx_misc_attributes_get()
88 mi->nr_dev_ctrl, mi->nr_brd_ctrl, mi->nr_reason); in scmi_imx_misc_attributes_get()
91 ph->xops->xfer_put(ph, t); in scmi_imx_misc_attributes_get()
99 struct scmi_imx_misc_info *mi = ph->get_priv(ph); in scmi_imx_misc_ctrl_validate_id()
102 * [0, BRD_CTRL_START_ID) is for Dev Ctrl which is SOC related in scmi_imx_misc_ctrl_validate_id()
103 * [BRD_CTRL_START_ID, 0xffff) is for Board Ctrl which is board related in scmi_imx_misc_ctrl_validate_id()
105 if (ctrl_id < BRD_CTRL_START_ID && ctrl_id > mi->nr_dev_ctrl) in scmi_imx_misc_ctrl_validate_id()
106 return -EINVAL; in scmi_imx_misc_ctrl_validate_id()
107 if (ctrl_id >= BRD_CTRL_START_ID + mi->nr_brd_ctrl) in scmi_imx_misc_ctrl_validate_id()
108 return -EINVAL; in scmi_imx_misc_ctrl_validate_id()
124 ret = ph->xops->xfer_get_init(ph, SCMI_IMX_MISC_CTRL_NOTIFY, in scmi_imx_misc_ctrl_notify()
129 in = t->tx.buf; in scmi_imx_misc_ctrl_notify()
130 in->ctrl_id = cpu_to_le32(ctrl_id); in scmi_imx_misc_ctrl_notify()
131 in->flags = cpu_to_le32(flags); in scmi_imx_misc_ctrl_notify()
133 ret = ph->xops->do_xfer(ph, t); in scmi_imx_misc_ctrl_notify()
135 ph->xops->xfer_put(ph, t); in scmi_imx_misc_ctrl_notify()
152 dev_err(ph->dev, "FAIL_ENABLED - evt[%X] src[%d] - ret:%d\n", in scmi_imx_misc_ctrl_set_notify_enabled()
170 r->timestamp = timestamp; in scmi_imx_misc_ctrl_fill_custom_report()
171 r->ctrl_id = le32_to_cpu(p->ctrl_id); in scmi_imx_misc_ctrl_fill_custom_report()
172 r->flags = le32_to_cpu(p->flags); in scmi_imx_misc_ctrl_fill_custom_report()
174 *src_id = r->ctrl_id; in scmi_imx_misc_ctrl_fill_custom_report()
175 dev_dbg(ph->dev, "%s: ctrl_id: %d flags: %d\n", __func__, in scmi_imx_misc_ctrl_fill_custom_report()
176 r->ctrl_id, r->flags); in scmi_imx_misc_ctrl_fill_custom_report()
208 int max_msg_size = ph->hops->get_max_msg_size(ph); in scmi_imx_misc_ctrl_get()
209 int max_num = (max_msg_size - sizeof(*out)) / sizeof(__le32); in scmi_imx_misc_ctrl_get()
215 ret = ph->xops->xfer_get_init(ph, SCMI_IMX_MISC_CTRL_GET, sizeof(u32), in scmi_imx_misc_ctrl_get()
220 put_unaligned_le32(ctrl_id, t->tx.buf); in scmi_imx_misc_ctrl_get()
221 ret = ph->xops->do_xfer(ph, t); in scmi_imx_misc_ctrl_get()
223 out = t->rx.buf; in scmi_imx_misc_ctrl_get()
224 *num = le32_to_cpu(out->num); in scmi_imx_misc_ctrl_get()
227 *num * sizeof(__le32) > t->rx.len - sizeof(__le32)) { in scmi_imx_misc_ctrl_get()
228 ph->xops->xfer_put(ph, t); in scmi_imx_misc_ctrl_get()
229 return -EINVAL; in scmi_imx_misc_ctrl_get()
233 val[i] = le32_to_cpu(out->val[i]); in scmi_imx_misc_ctrl_get()
236 ph->xops->xfer_put(ph, t); in scmi_imx_misc_ctrl_get()
247 int max_msg_size = ph->hops->get_max_msg_size(ph); in scmi_imx_misc_ctrl_set()
248 int max_num = (max_msg_size - sizeof(*in)) / sizeof(__le32); in scmi_imx_misc_ctrl_set()
255 return -EINVAL; in scmi_imx_misc_ctrl_set()
257 ret = ph->xops->xfer_get_init(ph, SCMI_IMX_MISC_CTRL_SET, in scmi_imx_misc_ctrl_set()
262 in = t->tx.buf; in scmi_imx_misc_ctrl_set()
263 in->id = cpu_to_le32(ctrl_id); in scmi_imx_misc_ctrl_set()
264 in->num = cpu_to_le32(num); in scmi_imx_misc_ctrl_set()
266 in->value[i] = cpu_to_le32(val[i]); in scmi_imx_misc_ctrl_set()
268 ret = ph->xops->do_xfer(ph, t); in scmi_imx_misc_ctrl_set()
270 ph->xops->xfer_put(ph, t); in scmi_imx_misc_ctrl_set()
287 ret = ph->xops->version_get(ph, &version); in scmi_imx_misc_protocol_init()
291 dev_info(ph->dev, "NXP SM MISC Version %d.%d\n", in scmi_imx_misc_protocol_init()
294 minfo = devm_kzalloc(ph->dev, sizeof(*minfo), GFP_KERNEL); in scmi_imx_misc_protocol_init()
296 return -ENOMEM; in scmi_imx_misc_protocol_init()
302 return ph->set_priv(ph, minfo, version); in scmi_imx_misc_protocol_init()
317 MODULE_ALIAS("scmi-protocol-" __stringify(SCMI_PROTOCOL_IMX_MISC) "-" SCMI_IMX_VENDOR);