All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
Cc: agross@kernel.org, andersson@kernel.org,
	konrad.dybcio@linaro.org, krzysztof.kozlowski+dt@linaro.org,
	jassisinghbrar@gmail.com, mathieu.poirier@linaro.org,
	mturquette@baylibre.com, sboyd@kernel.org,
	quic_gurus@quicinc.com, loic.poulain@linaro.org,
	quic_eberman@quicinc.com, robimarko@gmail.com,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	linux-clk@vger.kernel.org, quic_srichara@quicinc.com,
	quic_gokulsri@quicinc.com, quic_sjaganat@quicinc.com,
	quic_kathirav@quicinc.com, quic_arajkuma@quicinc.com,
	quic_anusha@quicinc.com, quic_poovendh@quicinc.com
Subject: Re: [PATCH 01/11] dt-bindings: remoteproc: qcom: Add support for multipd model
Date: Tue, 7 Mar 2023 08:26:14 -0600	[thread overview]
Message-ID: <20230307142614.GA2742-robh@kernel.org> (raw)
In-Reply-To: <1678164097-13247-2-git-send-email-quic_mmanikan@quicinc.com>

On Tue, Mar 07, 2023 at 10:11:27AM +0530, Manikanta Mylavarapu wrote:
> Add new binding document for multipd model remoteproc.
> IPQ5018, IPQ9574 follows multipd model.
> 
> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
> ---
>  .../bindings/remoteproc/qcom,multipd-pil.yaml | 282 ++++++++++++++++++
>  1 file changed, 282 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,multipd-pil.yaml
> 
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,multipd-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,multipd-pil.yaml
> new file mode 100644
> index 000000000000..b788607f5abd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,multipd-pil.yaml
> @@ -0,0 +1,282 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/remoteproc/qcom,multipd-pil.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Multipd Secure Peripheral Image Loader
> +
> +maintainers:
> +  - Bjorn Andersson <andersson@kernel.org>
> +  - Mathieu Poirier <mathieu.poirier@linaro.org>
> +
> +description:
> +  Multipd Peripheral Image Loader loads firmware and boots Q6 pd, WCSS pd
> +  remoteproc's on the Qualcomm IPQ5018, IPQ9574 SoC.

What is PD? I don't see it defined anywhere.

> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,ipq5018-q6-mpd
> +      - qcom,ipq9574-q6-mpd
> +
> +  '#address-cells': true

Need to define the size.

> +
> +  '#size-cells': true

ditto

> +
> +  'ranges': true

Don't need quotes

> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts-extended:

Just 'interrupts'. Both forms are always supported.

> +    items:
> +      - description: Watchdog interrupt
> +      - description: Fatal interrupt
> +      - description: Ready interrupt
> +      - description: Handover interrupt
> +      - description: Stop acknowledge interrupt
> +
> +  interrupt-names:
> +    items:
> +      - const: wdog
> +      - const: fatal
> +      - const: ready
> +      - const: handover
> +      - const: stop-ack
> +
> +  clocks:
> +    minItems: 25
> +    maxItems: 25

You need to list out what the clocks are.

> +
> +  clock-names:
> +    minItems: 25
> +    maxItems: 25
> +
> +  assigned-clocks:

You can drop this. Implicitly supported.

> +    minItems: 13
> +    maxItems: 13
> +
> +  assigned-clock-rates:
> +    minItems: 13
> +    maxItems: 13
> +
> +  qcom,smem-states:
> +    $ref: /schemas/types.yaml#/definitions/phandle-array

I believe this already has a type. It should be defined in a common 
schema if not already and then included in this schema.

> +    description: States used by the AP to signal the remoteprocessor
> +    items:
> +      - description: Shutdown Q6
> +      - description: Stop Q6
> +
> +  qcom,smem-state-names:
> +    description:
> +      Names of the states used by the AP to signal the remoteprocessor
> +    items:
> +      - const: shutdown
> +      - const: stop
> +
> +  memory-region:
> +    items:
> +      - description: Q6 pd reserved region
> +
> +  glink-edge:
> +    $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
> +    description:
> +      Qualcomm G-Link subnode which represents communication edge, channels
> +      and devices related to the Modem.
> +
> +patternProperties:
> +  "^remoteproc_pd1|remoteproc_pd2|remoteproc_pd3":
> +    type: object
> +    description:
> +      In Multipd model, WCSS pd depends on Q6 pd i.e Q6 pd should be up before
> +      WCSS. It can be achieved by keeping wcss pd node as subnode of Q6
> +      device node.
> +
> +    properties:
> +      compatible:
> +        enum:
> +          - "qcom,ipq5018-wcss-ahb-mpd"

Don't need quotes.

> +          - "qcom,ipq9574-wcss-ahb-mpd"
> +          - "qcom,ipq5018-wcss-pcie-mpd"
> +
> +      interrupts-extended:

Just interrupts

> +        items:
> +          - description: Fatal interrupt
> +          - description: Ready interrupt
> +          - description: Spawn acknowledge interrupt
> +          - description: Stop acknowledge interrupt
> +
> +      interrupt-names:
> +        items:
> +          - const: fatal
> +          - const: ready
> +          - const: spawn-ack
> +          - const: stop-ack
> +
> +      qcom,smem-states:
> +        $ref: /schemas/types.yaml#/definitions/phandle-array
> +        description: States used by the AP to signal the remoteprocessor
> +        items:
> +          - description: Shutdown WCSS pd
> +          - description: Stop WCSS pd
> +          - description: Spawn WCSS pd
> +
> +      qcom,smem-state-names:
> +        description:
> +          Names of the states used by the AP to signal the remoteprocessor
> +        items:
> +          - const: shutdown
> +          - const: stop
> +          - const: spawn
> +
> +    required:
> +      - compatible
> +
> +    additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts-extended
> +  - interrupt-names
> +  - qcom,smem-states
> +  - qcom,smem-state-names
> +  - memory-region
> +
> +additionalProperties: false
> +
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          enum:
> +            - qcom,ipq9574-q6-mpd
> +    then:
> +      properties:
> +        assigned-clocks:

Don't need to define assigned-clocks

> +          items:
> +            - description: Phandle, clock specifier of GCC_ANOC_WCSS_AXI_M_CLK
> +            - description: Phandle, clock specifier of GCC_WCSS_AHB_S_CLK
> +            - description: Phandle, clock specifier of GCC_WCSS_ECAHB_CLK
> +            - description: Phandle, clock specifier of GCC_WCSS_ACMT_CLK
> +            - description: Phandle, clock specifier of GCC_WCSS_AXI_M_CLK
> +            - description: Phandle, clock specifier of GCC_Q6_AXIM_CLK
> +            - description: Phandle, clock specifier of GCC_Q6_AXIM2_CLK
> +            - description: Phandle, clock specifier of GCC_Q6_AHB_CLK
> +            - description: Phandle, clock specifier of GCC_Q6_AHB_S_CLK
> +            - description: Phandle, clock specifier of GCC_Q6SS_BOOT_CLK
> +            - description: Phandle, clock specifier of GCC_MEM_NOC_Q6_AXI_CLK
> +            - description: Phandle, clock specifier of GCC_WCSS_Q6_TBU_CLK
> +            - description: Phandle, clock specifier of GCC_SYS_NOC_WCSS_AHB_CLK
> +        assigned-clock-rates:
> +          items:
> +            - description: Must be 266666667 HZ
> +            - description: Must be 133333333 HZ
> +            - description: Must be 133333333 HZ
> +            - description: Must be 133333333 HZ
> +            - description: Must be 266666667 HZ
> +            - description: Must be 533000000 HZ
> +            - description: Must be 342857143 HZ
> +            - description: Must be 133333333 HZ
> +            - description: Must be 133333333 HZ
> +            - description: Must be 342857143 HZ
> +            - description: Must be 533000000 HZ
> +            - description: Must be 533000000 HZ
> +            - description: Must be 133333333 HZ
> +
> +examples:
> +  - |
> +        #include <dt-bindings/interrupt-controller/arm-gic.h>
> +        #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
> +        #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
> +
> +        q6v5_wcss: remoteproc@cd00000 {
> +                compatible = "qcom,ipq5018-q6-mpd";
> +                #address-cells = <1>;
> +                #size-cells = <1>;
> +                ranges;
> +                reg = <0x0cd00000 0x4040>;
> +                interrupts-extended = <&intc GIC_SPI 291 IRQ_TYPE_EDGE_RISING>,
> +                                <&wcss_smp2p_in 0 0>,
> +                                <&wcss_smp2p_in 1 0>,
> +                                <&wcss_smp2p_in 2 0>,
> +                                <&wcss_smp2p_in 3 0>;
> +                interrupt-names = "wdog",
> +                                  "fatal",
> +                                  "ready",
> +                                  "handover",
> +                                  "stop-ack";
> +
> +                qcom,smem-states = <&wcss_smp2p_out 0>,
> +                                   <&wcss_smp2p_out 1>;
> +                qcom,smem-state-names = "shutdown",
> +                                        "stop";
> +
> +                memory-region = <&q6_region>;
> +
> +                glink-edge {
> +                        interrupts = <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
> +                        label = "rtr";
> +                        qcom,remote-pid = <1>;
> +                        mboxes = <&apcs_glb 8>;
> +                };
> +
> +                q6_wcss_pd1: remoteproc_pd1 {
> +                        compatible = "qcom,ipq5018-wcss-ahb-mpd";
> +                        interrupts-extended = <&wcss_smp2p_in 8 0>,
> +                                        <&wcss_smp2p_in 9 0>,
> +                                        <&wcss_smp2p_in 12 0>,
> +                                        <&wcss_smp2p_in 11 0>;
> +                        interrupt-names = "fatal",
> +                                          "ready",
> +                                          "spawn-ack",
> +                                          "stop-ack";
> +                        qcom,smem-states = <&wcss_smp2p_out 8>,
> +                                           <&wcss_smp2p_out 9>,
> +                                           <&wcss_smp2p_out 10>;
> +                        qcom,smem-state-names = "shutdown",
> +                                                "stop",
> +                                                "spawn";
> +                };
> +
> +                q6_wcss_pd2: remoteproc_pd2 {
> +                        compatible = "qcom,ipq5018-wcss-pcie-mpd";
> +                        interrupts-extended = <&wcss_smp2p_in 16 0>,
> +                                        <&wcss_smp2p_in 17 0>,
> +                                        <&wcss_smp2p_in 20 0>,
> +                                        <&wcss_smp2p_in 19 0>;
> +                        interrupt-names = "fatal",
> +                                          "ready",
> +                                          "spawn-ack",
> +                                          "stop-ack";
> +
> +                        qcom,smem-states = <&wcss_smp2p_out 16>,
> +                                           <&wcss_smp2p_out 17>,
> +                                           <&wcss_smp2p_out 18>;
> +                        qcom,smem-state-names = "shutdown",
> +                                                "stop",
> +                                                "spawn";
> +                        status = "okay";

Don't need status in examples.

> +                };
> +
> +                q6_wcss_pd3: remoteproc_pd3 {
> +                        compatible = "qcom,ipq5018-wcss-pcie-mpd";
> +                        interrupts-extended = <&wcss_smp2p_in 24 0>,
> +                                        <&wcss_smp2p_in 25 0>,
> +                                        <&wcss_smp2p_in 28 0>,
> +                                        <&wcss_smp2p_in 27 0>;
> +                        interrupt-names = "fatal",
> +                                          "ready",
> +                                          "spawn-ack",
> +                                          "stop-ack";
> +
> +                        qcom,smem-states = <&wcss_smp2p_out 24>,
> +                                           <&wcss_smp2p_out 25>,
> +                                           <&wcss_smp2p_out 26>;
> +                        qcom,smem-state-names = "shutdown",
> +                                                "stop",
> +                                                "spawn";
> +                        status = "okay";
> +                };
> +        };
> -- 
> 2.34.1
> 

  parent reply	other threads:[~2023-03-07 18:19 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-07  4:41 [PATCH 00/11] Add multipd remoteproc support Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 01/11] dt-bindings: remoteproc: qcom: Add support for multipd model Manikanta Mylavarapu
2023-03-07 13:23   ` Rob Herring
2023-05-03 10:59     ` Manikanta Mylavarapu
2023-05-03 16:27       ` Krzysztof Kozlowski
2023-05-21 17:44         ` Manikanta Mylavarapu
2023-03-07 14:26   ` Rob Herring [this message]
2023-05-08 14:04     ` Manikanta Mylavarapu
2023-05-09 16:17     ` Manikanta Mylavarapu
2023-05-19  8:46     ` Manikanta Mylavarapu
2023-03-07 15:17   ` Krzysztof Kozlowski
2023-05-08 13:45     ` Manikanta Mylavarapu
2023-05-09  7:08       ` Krzysztof Kozlowski
2023-05-09 10:34         ` Manikanta Mylavarapu
2023-05-09 13:01           ` Krzysztof Kozlowski
2023-05-09 13:23             ` Manikanta Mylavarapu
2023-05-18 17:22       ` Manikanta Mylavarapu
2023-05-30 10:45         ` Krzysztof Kozlowski
2023-05-09 16:46     ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 02/11] dt-bindings: mailbox: qcom: Add IPQ5018 APCS compatible Manikanta Mylavarapu
2023-03-07  6:05   ` Kathiravan T
2023-05-08 14:13     ` Manikanta Mylavarapu
2023-03-07 15:21   ` Krzysztof Kozlowski
2023-05-08 14:15     ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 03/11] dt-bindings: scm: Add compatible for IPQ5018 Manikanta Mylavarapu
2023-03-07 15:18   ` Krzysztof Kozlowski
2023-03-07  4:41 ` [PATCH 04/11] dt-bindings: arm: qcom: Add ipq5018-mp03.5-c1 Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 05/11] dt-bindings: clock: qcom: gcc-ipq9574: Add Q6 gcc clock control Manikanta Mylavarapu
2023-03-07  6:42   ` Sricharan Ramabadhran
2023-05-04  6:06     ` Manikanta Mylavarapu
2023-03-07 15:19   ` Krzysztof Kozlowski
2023-05-08 14:29     ` Manikanta Mylavarapu
2023-05-21 15:51       ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 06/11] clk: qcom: IPQ9574: Add q6/wcss clocks Manikanta Mylavarapu
2023-03-07  7:28   ` Sricharan Ramabadhran
2023-05-09 17:02     ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 07/11] mailbox: qcom-apcs-ipc: Add IPQ5018 APCS IPC support Manikanta Mylavarapu
2023-03-07  6:07   ` Kathiravan T
2023-05-18 17:44     ` Manikanta Mylavarapu
2023-03-07 15:20   ` Krzysztof Kozlowski
2023-05-18 17:46     ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 08/11] remoteproc: qcom: Add Hexagon based multipd rproc driver Manikanta Mylavarapu
2023-03-07  6:16   ` Varadarajan Narayanan
2023-03-07 13:17   ` Sricharan Ramabadhran
2023-05-21 15:48     ` Manikanta Mylavarapu
2023-05-21 18:10       ` Dmitry Baryshkov
2023-05-21 22:07         ` Manikanta Mylavarapu
2023-03-07 15:39   ` Krzysztof Kozlowski
2023-03-22 10:18     ` Manikanta Mylavarapu
2023-03-22 10:21       ` Robert Marko
2023-03-22 10:51         ` Manikanta Mylavarapu
2023-03-22 10:53           ` Robert Marko
2023-05-21 17:05     ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 09/11] arm64: dtsi: qcom: ipq5018: enable nodes required for multipd Manikanta Mylavarapu
2023-03-07 14:22   ` Kathiravan T
2023-05-19  5:34     ` Manikanta Mylavarapu
2023-03-07 15:41   ` Krzysztof Kozlowski
2023-05-19  5:49     ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 10/11] arm64: dts: qcom: ipq5018: Add MP03.5-c1 board support Manikanta Mylavarapu
2023-03-07  6:25   ` Varadarajan Narayanan
2023-05-21 16:05     ` Manikanta Mylavarapu
2023-03-07 14:15   ` Kathiravan T
2023-05-21 16:09     ` Manikanta Mylavarapu
2023-03-07 15:42   ` Krzysztof Kozlowski
2023-05-21 16:12     ` Manikanta Mylavarapu
2023-03-07  4:41 ` [PATCH 11/11] arm64: dtsi: qcom: ipq9574: Add nodes to bring up multipd Manikanta Mylavarapu
2023-03-07 14:27   ` Kathiravan T
2023-05-21 16:17     ` Manikanta Mylavarapu
2023-03-07 15:44   ` Krzysztof Kozlowski
2023-05-21 16:23     ` Manikanta Mylavarapu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230307142614.GA2742-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=agross@kernel.org \
    --cc=andersson@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jassisinghbrar@gmail.com \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=loic.poulain@linaro.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=mturquette@baylibre.com \
    --cc=quic_anusha@quicinc.com \
    --cc=quic_arajkuma@quicinc.com \
    --cc=quic_eberman@quicinc.com \
    --cc=quic_gokulsri@quicinc.com \
    --cc=quic_gurus@quicinc.com \
    --cc=quic_kathirav@quicinc.com \
    --cc=quic_mmanikan@quicinc.com \
    --cc=quic_poovendh@quicinc.com \
    --cc=quic_sjaganat@quicinc.com \
    --cc=quic_srichara@quicinc.com \
    --cc=robimarko@gmail.com \
    --cc=sboyd@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.