Commit b114f135 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Jassi Brar
Browse files

dt-bindings: remoteproc: qcom,glink-rpm-edge: convert to DT schema



Convert Qualcomm G-Link RPM edge binding to DT schema.  Move it to
remoteproc as it better suits the purpose - communication channel with
remote processor.

Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
parent adb239f3
Loading
Loading
Loading
Loading
+99 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/qcom,glink-rpm-edge.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm G-Link RPM edge

description: |
  Qualcomm G-Link edge, a FIFO based mechanism for communication with Resource
  Power Manager (RPM) on various Qualcomm platforms.

maintainers:
  - Bjorn Andersson <andersson@kernel.org>

properties:
  compatible:
    const: qcom,glink-rpm

  label:
    $ref: /schemas/types.yaml#/definitions/string
    description:
      Name of the edge, used for debugging and identification purposes. The
      node name will be used if this is not present.

  interrupts:
    maxItems: 1

  mboxes:
    items:
      - description: rpm_hlos mailbox in APCS

  qcom,remote-pid:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The identifier for the remote processor as known by the rest of the
      system.

  qcom,rpm-msg-ram:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: |
      RPM message memory resource (compatible: qcom,rpm-msg-ram).

  rpm-requests:
    type: object
    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
    unevaluatedProperties: false
    description:
      Qualcomm Resource Power Manager (RPM) over G-Link

    properties:
      qcom,intents:
        $ref: /schemas/types.yaml#/definitions/uint32-matrix
        minItems: 1
        maxItems: 32
        items:
          items:
            - description: size of each intent to preallocate
            - description: amount of intents to preallocate
              minimum: 1
        description:
          List of (size, amount) pairs describing what intents should be
          preallocated for this virtual channel. This can be used to tweak the
          default intents available for the channel to meet expectations of the
          remote.

    required:
      - qcom,glink-channels

required:
  - compatible
  - interrupts
  - mboxes

anyOf:
  - required:
      - qcom,remote-pid
  - required:
      - qcom,rpm-msg-ram

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    rpm-glink {
        compatible = "qcom,glink-rpm";
        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
        mboxes = <&apcs_glb 0>;
        qcom,rpm-msg-ram = <&rpm_msg_ram>;

        rpm-requests {
            compatible = "qcom,rpm-msm8996";
            qcom,glink-channels = "rpm_requests";

            /* ... */
        };
    };
+0 −94
Original line number Diff line number Diff line
Qualcomm GLINK edge binding

This binding describes a Qualcomm GLINK edge, a fifo based mechanism for
communication between subsystem-pairs on various Qualcomm platforms. Two types
of edges can be described by the binding; the GLINK RPM edge and a SMEM based
edge.

- compatible:
	Usage: required for glink-rpm
	Value type: <stringlist>
	Definition: must be "qcom,glink-rpm"

- label:
	Usage: optional
	Value type: <string>
	Definition: should specify the subsystem name this edge corresponds to.

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: should specify the IRQ used by the remote processor to
		    signal this processor about communication related events

- qcom,remote-pid:
	Usage: required for glink-smem
	Value type: <u32>
	Definition: specifies the identifier of the remote endpoint of this edge

- qcom,rpm-msg-ram:
	Usage: required for glink-rpm
	Value type: <prop-encoded-array>
	Definition: handle to RPM message memory resource

- mboxes:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to the "rpm_hlos" mailbox in APCS, as described
		    in mailbox/mailbox.txt

= GLINK DEVICES
Each subnode of the GLINK node represent function tied to a virtual
communication channel. The name of the nodes are not important. The properties
of these nodes are defined by the individual bindings for the specific function
- but must contain the following property:

- qcom,glink-channels:
	Usage: required
	Value type: <stringlist>
	Definition: a list of channels tied to this function, used for matching
		    the function to a set of virtual channels

- qcom,intents:
	Usage: optional
	Value type: <prop-encoded-array>
	Definition: a list of size,amount pairs describing what intents should
		    be preallocated for this virtual channel. This can be used
		    to tweak the default intents available for the channel to
		    meet expectations of the remote.

= EXAMPLE
The following example represents the GLINK RPM node on a MSM8996 device, with
the function for the "rpm_request" channel defined, which is used for
regulators and root clocks.

	apcs_glb: mailbox@9820000 {
		compatible = "qcom,msm8996-apcs-hmss-global";
		reg = <0x9820000 0x1000>;

		#mbox-cells = <1>;
	};

	rpm_msg_ram: memory@68000 {
		compatible = "qcom,rpm-msg-ram";
		reg = <0x68000 0x6000>;
	};

	rpm-glink {
		compatible = "qcom,glink-rpm";

		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;

		qcom,rpm-msg-ram = <&rpm_msg_ram>;

		mboxes = <&apcs_glb 0>;

		rpm-requests {
			compatible = "qcom,rpm-msm8996";
			qcom,glink-channels = "rpm_requests";

			qcom,intents = <0x400 5
					0x800 1>;
			...
		};
	};