xref: /freebsd/sys/dev/firmware/arm/scmi_if.m (revision 397e83df75e0fcd0d3fcb95ae4d794cb7600fc89)
1#-
2# SPDX-License-Identifier: BSD-2-Clause
3#
4# Copyright (c) 2023 Arm Ltd
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice unmodified, this list of conditions, and the following
11#    disclaimer.
12# 2. Redistributions in binary form must reproduce the above copyright
13#    notice, this list of conditions and the following disclaimer in the
14#    documentation and/or other materials provided with the distribution.
15#
16# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26#
27
28INTERFACE scmi;
29
30HEADER {
31	struct scmi_msg;
32};
33
34METHOD int transport_init {
35	device_t dev;
36};
37
38METHOD void transport_cleanup {
39	device_t dev;
40};
41
42METHOD int xfer_msg {
43	device_t dev;
44	struct scmi_msg *msg;
45};
46
47METHOD int poll_msg {
48	device_t dev;
49	struct scmi_msg *msg;
50	unsigned int tmo;
51};
52
53METHOD int collect_reply {
54	device_t dev;
55	struct scmi_msg *msg;
56};
57
58METHOD void tx_complete {
59	device_t dev;
60	void *chan;
61};
62
63METHOD void clear_channel {
64	device_t dev;
65	void *chan;
66};
67