lkml.org 
[lkml]   [2022]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 08/12] dt-bindings: remoteproc: qcom,smd-edge: define re-usable schema for smd-edge
    Date
    'smd-edge' property appears in multiple bindings, so split it into one
    place which can be re-used. This reduces code duplication and adds
    strict schema matching for smd-edge nodes (instead of just
    "type:object").

    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Reviewed-by: Rob Herring <robh@kernel.org>

    ---

    Changes since v1:
    1. Remove ref from label (Rob)
    2. Add tags
    3. Remove too many blank lines in schema description
    ---
    .../bindings/remoteproc/qcom,adsp.yaml | 2 +-
    .../bindings/remoteproc/qcom,smd-edge.yaml | 85 +++++++++++++++++++
    .../bindings/soc/qcom/qcom,smd.yaml | 53 +-----------
    3 files changed, 88 insertions(+), 52 deletions(-)
    create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,smd-edge.yaml

    diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
    index 4dfbfece1ec7..3072af5f9d79 100644
    --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
    +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
    @@ -148,7 +148,7 @@ properties:
    three offsets within syscon for q6, modem and nc halt registers.

    smd-edge:
    - type: object
    + $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
    description:
    Qualcomm Shared Memory subnode which represents communication edge,
    channels and devices related to the ADSP.
    diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,smd-edge.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,smd-edge.yaml
    new file mode 100644
    index 000000000000..06eebf791e32
    --- /dev/null
    +++ b/Documentation/devicetree/bindings/remoteproc/qcom,smd-edge.yaml
    @@ -0,0 +1,85 @@
    +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    +%YAML 1.2
    +---
    +$id: http://devicetree.org/schemas/remoteproc/qcom,smd-edge.yaml#
    +$schema: http://devicetree.org/meta-schemas/core.yaml#
    +
    +title: Qualcomm SMD Edge communication channel nodes
    +
    +maintainers:
    + - Bjorn Andersson <bjorn.andersson@linaro.org>
    +
    +description:
    + Qualcomm SMD subnode 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.
    + See also Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
    +
    +properties:
    + $nodename:
    + const: "smd-edge"
    +
    + interrupts:
    + maxItems: 1
    +
    + label:
    + 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.
    +
    +required:
    + - interrupts
    + - qcom,smd-edge
    +
    +oneOf:
    + - required:
    + - mboxes
    + - required:
    + - qcom,ipc
    +
    +additionalProperties: true
    +
    +examples:
    + - |
    + #include <dt-bindings/interrupt-controller/arm-gic.h>
    + #include <dt-bindings/mailbox/qcom-ipcc.h>
    +
    + remoteproc {
    + // ...
    +
    + smd-edge {
    + interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
    +
    + qcom,ipc = <&apcs 8 8>;
    + qcom,smd-edge = <1>;
    + };
    + };
    diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
    index e6f9ffa1c0ea..a609c3425816 100644
    --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
    +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
    @@ -21,51 +21,12 @@ properties:

    patternProperties:
    "^.*-edge|rpm$":
    - type: object
    + $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
    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$":
    @@ -91,17 +52,7 @@ patternProperties:

    additionalProperties: true

    - required:
    - - interrupts
    - - qcom,smd-edge
    -
    - oneOf:
    - - required:
    - - mboxes
    - - required:
    - - qcom,ipc
    -
    - additionalProperties: false
    + unevaluatedProperties: false

    required:
    - compatible
    --
    2.32.0
    \
     
     \ /
      Last update: 2022-05-17 09:04    [W:3.095 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site