Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / remoteproc / qcom,smd-edge.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/remoteproc/qcom,smd-edge.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm SMD Edge communication channel nodes
8
9 maintainers:
10   - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12 description:
13   Qualcomm SMD subnode represents a remote subsystem or a remote processor of
14   some sort - or in SMD language an "edge". The name of the edges are not
15   important.
16
17   In turn, subnodes of the "edges" represent devices tied to SMD channels on
18   that "edge". The names of the devices are not important. The properties of
19   these nodes are defined by the individual bindings for the SMD devices.
20   See also Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
21
22 properties:
23   $nodename:
24     const: smd-edge
25
26   apr:
27     $ref: /schemas/soc/qcom/qcom,apr.yaml#
28     required:
29       - qcom,smd-channels
30     description:
31       Qualcomm APR/GPR (Asynchronous/Generic Packet Router)
32
33   fastrpc:
34     $ref: /schemas/misc/qcom,fastrpc.yaml#
35     required:
36       - qcom,smd-channels
37     description:
38       Qualcomm FastRPC
39
40   interrupts:
41     maxItems: 1
42
43   label:
44     description:
45       Name of the edge, used for debugging and identification purposes. The
46       node name will be used if this is not present.
47
48   mboxes:
49     maxItems: 1
50     description:
51       Reference to the mailbox representing the outgoing doorbell in APCS for
52       this client.
53
54   qcom,ipc:
55     $ref: /schemas/types.yaml#/definitions/phandle-array
56     items:
57       - items:
58           - description: phandle to a syscon node representing the APCS registers
59           - description: u32 representing offset to the register within the syscon
60           - description: u32 representing the ipc bit within the register
61     description:
62       Three entries specifying the outgoing ipc bit used for signaling the
63       remote processor.
64
65   qcom,smd-edge:
66     $ref: /schemas/types.yaml#/definitions/uint32
67     description:
68       The identifier of the remote processor in the smd channel allocation
69       table.
70
71   qcom,remote-pid:
72     $ref: /schemas/types.yaml#/definitions/uint32
73     description:
74       The identifier for the remote processor as known by the rest of the
75       system.
76
77   rpm-requests:
78     $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
79     required:
80       - qcom,smd-channels
81     description:
82       Qualcomm Resource Power Manager (RPM) over SMD.
83
84   wcnss:
85     $ref: /schemas/soc/qcom/qcom,wcnss.yaml
86     required:
87       - qcom,smd-channels
88     description:
89       Qualcomm WCNSS for Bluetooth, WiFi and FM radio.
90
91 required:
92   - interrupts
93   - qcom,smd-edge
94
95 oneOf:
96   - required:
97       - mboxes
98   - required:
99       - qcom,ipc
100
101 additionalProperties: false
102
103 examples:
104   - |
105     #include <dt-bindings/interrupt-controller/arm-gic.h>
106     #include <dt-bindings/mailbox/qcom-ipcc.h>
107
108     remoteproc {
109         // ...
110
111         smd-edge {
112             interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
113
114             qcom,ipc = <&apcs 8 8>;
115             qcom,smd-edge = <1>;
116         };
117     };