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
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
91required:
92  - interrupts
93  - qcom,smd-edge
94
95oneOf:
96  - required:
97      - mboxes
98  - required:
99      - qcom,ipc
100
101additionalProperties: false
102
103examples:
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    };
118