xref: /freebsd/sys/contrib/device-tree/Bindings/remoteproc/qcom,smd-edge.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/remoteproc/qcom,smd-edge.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: Qualcomm SMD Edge communication channel nodes
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotmaintainers:
10b97ee269SEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
11b97ee269SEmmanuel Vadot
12b97ee269SEmmanuel Vadotdescription:
13b97ee269SEmmanuel Vadot  Qualcomm SMD subnode represents a remote subsystem or a remote processor of
14b97ee269SEmmanuel Vadot  some sort - or in SMD language an "edge". The name of the edges are not
15b97ee269SEmmanuel Vadot  important.
167ef62cebSEmmanuel Vadot
177ef62cebSEmmanuel Vadot  In turn, subnodes of the "edges" represent devices tied to SMD channels on
187ef62cebSEmmanuel Vadot  that "edge". The names of the devices are not important. The properties of
197ef62cebSEmmanuel Vadot  these nodes are defined by the individual bindings for the SMD devices.
20b97ee269SEmmanuel Vadot  See also Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
21b97ee269SEmmanuel Vadot
22b97ee269SEmmanuel Vadotproperties:
23b97ee269SEmmanuel Vadot  $nodename:
24*fac71e4eSEmmanuel Vadot    const: smd-edge
25b97ee269SEmmanuel Vadot
267ef62cebSEmmanuel Vadot  apr:
277ef62cebSEmmanuel Vadot    $ref: /schemas/soc/qcom/qcom,apr.yaml#
287ef62cebSEmmanuel Vadot    required:
297ef62cebSEmmanuel Vadot      - qcom,smd-channels
307ef62cebSEmmanuel Vadot    description:
317ef62cebSEmmanuel Vadot      Qualcomm APR/GPR (Asynchronous/Generic Packet Router)
327ef62cebSEmmanuel Vadot
337ef62cebSEmmanuel Vadot  fastrpc:
347ef62cebSEmmanuel Vadot    $ref: /schemas/misc/qcom,fastrpc.yaml#
357ef62cebSEmmanuel Vadot    required:
367ef62cebSEmmanuel Vadot      - qcom,smd-channels
377ef62cebSEmmanuel Vadot    description:
387ef62cebSEmmanuel Vadot      Qualcomm FastRPC
397ef62cebSEmmanuel Vadot
40b97ee269SEmmanuel Vadot  interrupts:
41b97ee269SEmmanuel Vadot    maxItems: 1
42b97ee269SEmmanuel Vadot
43b97ee269SEmmanuel Vadot  label:
44b97ee269SEmmanuel Vadot    description:
45b97ee269SEmmanuel Vadot      Name of the edge, used for debugging and identification purposes. The
46b97ee269SEmmanuel Vadot      node name will be used if this is not present.
47b97ee269SEmmanuel Vadot
48b97ee269SEmmanuel Vadot  mboxes:
49b97ee269SEmmanuel Vadot    maxItems: 1
50b97ee269SEmmanuel Vadot    description:
51b97ee269SEmmanuel Vadot      Reference to the mailbox representing the outgoing doorbell in APCS for
52b97ee269SEmmanuel Vadot      this client.
53b97ee269SEmmanuel Vadot
54b97ee269SEmmanuel Vadot  qcom,ipc:
55b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
56b97ee269SEmmanuel Vadot    items:
57b97ee269SEmmanuel Vadot      - items:
58b97ee269SEmmanuel Vadot          - description: phandle to a syscon node representing the APCS registers
59b97ee269SEmmanuel Vadot          - description: u32 representing offset to the register within the syscon
60b97ee269SEmmanuel Vadot          - description: u32 representing the ipc bit within the register
61b97ee269SEmmanuel Vadot    description:
62b97ee269SEmmanuel Vadot      Three entries specifying the outgoing ipc bit used for signaling the
63b97ee269SEmmanuel Vadot      remote processor.
64b97ee269SEmmanuel Vadot
65b97ee269SEmmanuel Vadot  qcom,smd-edge:
66b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
67b97ee269SEmmanuel Vadot    description:
68b97ee269SEmmanuel Vadot      The identifier of the remote processor in the smd channel allocation
69b97ee269SEmmanuel Vadot      table.
70b97ee269SEmmanuel Vadot
71b97ee269SEmmanuel Vadot  qcom,remote-pid:
72b97ee269SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
73b97ee269SEmmanuel Vadot    description:
74b97ee269SEmmanuel Vadot      The identifier for the remote processor as known by the rest of the
75b97ee269SEmmanuel Vadot      system.
76b97ee269SEmmanuel Vadot
777ef62cebSEmmanuel Vadot  rpm-requests:
787ef62cebSEmmanuel Vadot    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
797ef62cebSEmmanuel Vadot    required:
807ef62cebSEmmanuel Vadot      - qcom,smd-channels
817ef62cebSEmmanuel Vadot    description:
827ef62cebSEmmanuel Vadot      Qualcomm Resource Power Manager (RPM) over SMD.
837ef62cebSEmmanuel Vadot
847ef62cebSEmmanuel Vadot  wcnss:
857ef62cebSEmmanuel Vadot    $ref: /schemas/soc/qcom/qcom,wcnss.yaml
867ef62cebSEmmanuel Vadot    required:
877ef62cebSEmmanuel Vadot      - qcom,smd-channels
887ef62cebSEmmanuel Vadot    description:
897ef62cebSEmmanuel Vadot      Qualcomm WCNSS for Bluetooth, WiFi and FM radio.
907ef62cebSEmmanuel Vadot
91b97ee269SEmmanuel Vadotrequired:
92b97ee269SEmmanuel Vadot  - interrupts
93b97ee269SEmmanuel Vadot  - qcom,smd-edge
94b97ee269SEmmanuel Vadot
95b97ee269SEmmanuel VadotoneOf:
96b97ee269SEmmanuel Vadot  - required:
97b97ee269SEmmanuel Vadot      - mboxes
98b97ee269SEmmanuel Vadot  - required:
99b97ee269SEmmanuel Vadot      - qcom,ipc
100b97ee269SEmmanuel Vadot
1017ef62cebSEmmanuel VadotadditionalProperties: false
102b97ee269SEmmanuel Vadot
103b97ee269SEmmanuel Vadotexamples:
104b97ee269SEmmanuel Vadot  - |
105b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
106b97ee269SEmmanuel Vadot    #include <dt-bindings/mailbox/qcom-ipcc.h>
107b97ee269SEmmanuel Vadot
108b97ee269SEmmanuel Vadot    remoteproc {
109b97ee269SEmmanuel Vadot        // ...
110b97ee269SEmmanuel Vadot
111b97ee269SEmmanuel Vadot        smd-edge {
112b97ee269SEmmanuel Vadot            interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
113b97ee269SEmmanuel Vadot
114b97ee269SEmmanuel Vadot            qcom,ipc = <&apcs 8 8>;
115b97ee269SEmmanuel Vadot            qcom,smd-edge = <1>;
116b97ee269SEmmanuel Vadot        };
117b97ee269SEmmanuel Vadot    };
118