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
7title: Qualcomm SMD Edge communication channel nodes
8
9maintainers:
10  - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12description:
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
22properties:
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    deprecated: true
65
66  qcom,smd-edge:
67    $ref: /schemas/types.yaml#/definitions/uint32
68    description:
69      The identifier of the remote processor in the smd channel allocation
70      table.
71
72  qcom,remote-pid:
73    $ref: /schemas/types.yaml#/definitions/uint32
74    description:
75      The identifier for the remote processor as known by the rest of the
76      system.
77
78  rpm-requests:
79    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
80    required:
81      - qcom,smd-channels
82    description:
83      Qualcomm Resource Power Manager (RPM) over SMD.
84
85  wcnss:
86    $ref: /schemas/soc/qcom/qcom,wcnss.yaml
87    required:
88      - qcom,smd-channels
89    description:
90      Qualcomm WCNSS for Bluetooth, WiFi and FM radio.
91
92required:
93  - interrupts
94  - qcom,smd-edge
95
96oneOf:
97  - required:
98      - mboxes
99  - required:
100      - qcom,ipc
101
102additionalProperties: false
103
104examples:
105  - |
106    #include <dt-bindings/interrupt-controller/arm-gic.h>
107    #include <dt-bindings/mailbox/qcom-ipcc.h>
108
109    remoteproc {
110        // ...
111
112        smd-edge {
113            interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
114
115            mboxes = <&apcs 8>;
116            qcom,smd-edge = <1>;
117        };
118    };
119