mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-02 16:44:59 +00:00
dt-bindings: soc: qcom,smd: convert to dtschema
Convert the Qualcomm Shared Memory Driver bindings to DT Schema. Changes against original bindings: enforce only specific names of child nodes, instead of any names. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Link: https://lore.kernel.org/r/20220401201035.189106-9-krzysztof.kozlowski@linaro.org
This commit is contained in:
parent
34128350b8
commit
375eed5f51
@ -12,7 +12,7 @@ description:
|
|||||||
resides as a subnode of the SMD. As such, the SMD-RPM regulator requires
|
resides as a subnode of the SMD. As such, the SMD-RPM regulator requires
|
||||||
that the SMD and RPM nodes be present.
|
that the SMD and RPM nodes be present.
|
||||||
|
|
||||||
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt for
|
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml for
|
||||||
information pertaining to the SMD node.
|
information pertaining to the SMD node.
|
||||||
|
|
||||||
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml
|
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml
|
||||||
|
@ -250,7 +250,7 @@ the memory regions used by the Hexagon firmware. Each sub-node must contain:
|
|||||||
|
|
||||||
The Hexagon node may also have an subnode named either "smd-edge" or
|
The Hexagon node may also have an subnode named either "smd-edge" or
|
||||||
"glink-edge" that describes the communication edge, channels and devices
|
"glink-edge" that describes the communication edge, channels and devices
|
||||||
related to the Hexagon. See ../soc/qcom/qcom,smd.txt and
|
related to the Hexagon. See ../soc/qcom/qcom,smd.yaml and
|
||||||
../soc/qcom/qcom,glink.txt for details on how to describe these.
|
../soc/qcom/qcom,glink.txt for details on how to describe these.
|
||||||
|
|
||||||
= EXAMPLE
|
= EXAMPLE
|
||||||
|
@ -111,7 +111,7 @@ and its resource dependencies. It is described by the following properties:
|
|||||||
|
|
||||||
The wcnss node can also have an subnode named "smd-edge" that describes the SMD
|
The wcnss node can also have an subnode named "smd-edge" that describes the SMD
|
||||||
edge, channels and devices related to the WCNSS.
|
edge, channels and devices related to the WCNSS.
|
||||||
See ../soc/qcom/qcom,smd.txt for details on how to describe the SMD edge.
|
See ../soc/qcom/qcom,smd.yaml for details on how to describe the SMD edge.
|
||||||
|
|
||||||
= EXAMPLE
|
= EXAMPLE
|
||||||
The following example describes the resources needed to boot control the WCNSS,
|
The following example describes the resources needed to boot control the WCNSS,
|
||||||
|
@ -12,7 +12,7 @@ description: |
|
|||||||
to vote for state of the system resources, such as clocks, regulators and bus
|
to vote for state of the system resources, such as clocks, regulators and bus
|
||||||
frequencies.
|
frequencies.
|
||||||
|
|
||||||
The SMD information for the RPM edge should be filled out. See qcom,smd.txt
|
The SMD information for the RPM edge should be filled out. See qcom,smd.yaml
|
||||||
for the required edge properties. All SMD related properties will reside
|
for the required edge properties. All SMD related properties will reside
|
||||||
within the RPM node itself.
|
within the RPM node itself.
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ examples:
|
|||||||
qcom,ipc = <&apcs 8 0>;
|
qcom,ipc = <&apcs 8 0>;
|
||||||
qcom,smd-edge = <15>;
|
qcom,smd-edge = <15>;
|
||||||
|
|
||||||
rpm_requests {
|
rpm-requests {
|
||||||
compatible = "qcom,rpm-msm8974";
|
compatible = "qcom,rpm-msm8974";
|
||||||
qcom,smd-channels = "rpm_requests";
|
qcom,smd-channels = "rpm_requests";
|
||||||
|
|
||||||
|
@ -1,98 +0,0 @@
|
|||||||
Qualcomm Shared Memory Driver (SMD) binding
|
|
||||||
|
|
||||||
This binding describes the Qualcomm Shared Memory Driver, a fifo based
|
|
||||||
communication channel for sending data between the various subsystems in
|
|
||||||
Qualcomm platforms.
|
|
||||||
|
|
||||||
- compatible:
|
|
||||||
Usage: required
|
|
||||||
Value type: <stringlist>
|
|
||||||
Definition: must be "qcom,smd"
|
|
||||||
|
|
||||||
= EDGES
|
|
||||||
|
|
||||||
Each subnode of the SMD node represents a remote subsystem or a remote
|
|
||||||
processor of some sort - or in SMD language an "edge". The name of the edges
|
|
||||||
are not important.
|
|
||||||
The edge is described by the following properties:
|
|
||||||
|
|
||||||
- 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 updates
|
|
||||||
|
|
||||||
- mboxes:
|
|
||||||
Usage: required
|
|
||||||
Value type: <prop-encoded-array>
|
|
||||||
Definition: reference to the associated doorbell in APCS, as described
|
|
||||||
in mailbox/mailbox.txt
|
|
||||||
|
|
||||||
- qcom,ipc:
|
|
||||||
Usage: required, unless mboxes is specified
|
|
||||||
Value type: <prop-encoded-array>
|
|
||||||
Definition: three entries specifying the outgoing ipc bit used for
|
|
||||||
signaling the remote processor:
|
|
||||||
- phandle to a syscon node representing the apcs registers
|
|
||||||
- u32 representing offset to the register within the syscon
|
|
||||||
- u32 representing the ipc bit within the register
|
|
||||||
|
|
||||||
- qcom,smd-edge:
|
|
||||||
Usage: required
|
|
||||||
Value type: <u32>
|
|
||||||
Definition: the identifier of the remote processor in the smd channel
|
|
||||||
allocation table
|
|
||||||
|
|
||||||
- qcom,remote-pid:
|
|
||||||
Usage: optional
|
|
||||||
Value type: <u32>
|
|
||||||
Definition: the identifier for the remote processor as known by the rest
|
|
||||||
of the system.
|
|
||||||
|
|
||||||
- label:
|
|
||||||
Usage: optional
|
|
||||||
Value type: <string>
|
|
||||||
Definition: name of the edge, used for debugging and identification
|
|
||||||
purposes. The node name will be used if this is not
|
|
||||||
present.
|
|
||||||
|
|
||||||
= SMD DEVICES
|
|
||||||
|
|
||||||
In turn, subnodes of the "edges" represent devices tied to SMD channels on that
|
|
||||||
"edge". The names of the devices are not important. The properties of these
|
|
||||||
nodes are defined by the individual bindings for the SMD devices - but must
|
|
||||||
contain the following property:
|
|
||||||
|
|
||||||
- qcom,smd-channels:
|
|
||||||
Usage: required
|
|
||||||
Value type: <stringlist>
|
|
||||||
Definition: a list of channels tied to this device, used for matching
|
|
||||||
the device to channels
|
|
||||||
|
|
||||||
= EXAMPLE
|
|
||||||
|
|
||||||
The following example represents a smd node, with one edge representing the
|
|
||||||
"rpm" subsystem. For the "rpm" subsystem we have a device tied to the
|
|
||||||
"rpm_request" channel.
|
|
||||||
|
|
||||||
apcs: syscon@f9011000 {
|
|
||||||
compatible = "syscon";
|
|
||||||
reg = <0xf9011000 0x1000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
smd {
|
|
||||||
compatible = "qcom,smd";
|
|
||||||
|
|
||||||
rpm {
|
|
||||||
interrupts = <0 168 1>;
|
|
||||||
qcom,ipc = <&apcs 8 0>;
|
|
||||||
qcom,smd-edge = <15>;
|
|
||||||
|
|
||||||
rpm_requests {
|
|
||||||
compatible = "qcom,rpm-msm8974";
|
|
||||||
qcom,smd-channels = "rpm_requests";
|
|
||||||
|
|
||||||
...
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
137
Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
Normal file
137
Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/soc/qcom/qcom,smd.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Qualcomm Shared Memory Driver
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Andy Gross <agross@kernel.org>
|
||||||
|
- Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Qualcomm Shared Memory Driver is a FIFO based communication channel for
|
||||||
|
sending data between the various subsystems in Qualcomm platforms.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: qcom,smd
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
"^.*-edge|rpm$":
|
||||||
|
type: object
|
||||||
|
description:
|
||||||
|
Each subnode of the SMD node represents a remote subsystem or a remote
|
||||||
|
processor of some sort - or in SMD language an "edge". The name of the
|
||||||
|
edges are not important.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
mboxes:
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
Reference to the mailbox representing the outgoing doorbell in APCS for
|
||||||
|
this client.
|
||||||
|
|
||||||
|
qcom,ipc:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||||
|
items:
|
||||||
|
- items:
|
||||||
|
- description: phandle to a syscon node representing the APCS registers
|
||||||
|
- description: u32 representing offset to the register within the syscon
|
||||||
|
- description: u32 representing the ipc bit within the register
|
||||||
|
description:
|
||||||
|
Three entries specifying the outgoing ipc bit used for signaling the
|
||||||
|
remote processor.
|
||||||
|
|
||||||
|
qcom,smd-edge:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description:
|
||||||
|
The identifier of the remote processor in the smd channel allocation
|
||||||
|
table.
|
||||||
|
|
||||||
|
qcom,remote-pid:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description:
|
||||||
|
The identifier for the remote processor as known by the rest of the
|
||||||
|
system.
|
||||||
|
|
||||||
|
# Binding for edge subnodes is not complete
|
||||||
|
patternProperties:
|
||||||
|
"^rpm-requests$":
|
||||||
|
type: object
|
||||||
|
description:
|
||||||
|
In turn, subnodes of the "edges" represent devices tied to SMD
|
||||||
|
channels on that "edge". The names of the devices are not
|
||||||
|
important. The properties of these nodes are defined by the
|
||||||
|
individual bindings for the SMD devices.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
qcom,smd-channels:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 32
|
||||||
|
description:
|
||||||
|
A list of channels tied to this device, used for matching the
|
||||||
|
device to channels.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- qcom,smd-channels
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- interrupts
|
||||||
|
- qcom,smd-edge
|
||||||
|
|
||||||
|
oneOf:
|
||||||
|
- required:
|
||||||
|
- mboxes
|
||||||
|
- required:
|
||||||
|
- qcom,ipc
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
# The following example represents a smd node, with one edge representing the
|
||||||
|
# "rpm" subsystem. For the "rpm" subsystem we have a device tied to the
|
||||||
|
# "rpm_request" channel.
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
shared-memory {
|
||||||
|
compatible = "qcom,smd";
|
||||||
|
|
||||||
|
rpm {
|
||||||
|
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
qcom,ipc = <&apcs 8 0>;
|
||||||
|
qcom,smd-edge = <15>;
|
||||||
|
|
||||||
|
rpm-requests {
|
||||||
|
compatible = "qcom,rpm-msm8974";
|
||||||
|
qcom,smd-channels = "rpm_requests";
|
||||||
|
|
||||||
|
clock-controller {
|
||||||
|
compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user