Message ID | 20221124184333.133911-9-krzysztof.kozlowski@linaro.org |
---|---|
State | Accepted |
Commit | db292776589f1fcbcf2fc6eaebe40a3a2abb4521 |
Headers | show |
Series | dt-bindings: remoteproc: qcom: split and reorganize PAS/PIL | expand |
On Thu, 24 Nov 2022 19:43:26 +0100, Krzysztof Kozlowski wrote: > Split SM8150 and SM8250 remote processor Peripheral Authentication > Service bindings into their own file to reduce complexity and make > maintenance easier. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > --- > > Changes since v2: > 1. Drop if:then: for the clock and put it directly under properties. > 2. Merge two if:then: clauses for setting interrupts. > > Changes since v1: > 1. Add qcom,qmp (not part of qcom,pas-common.yaml# anymore). > 2. Add firmware-name to example. > --- > .../bindings/remoteproc/qcom,adsp.yaml | 27 --- > .../bindings/remoteproc/qcom,sm8150-pas.yaml | 166 ++++++++++++++++++ > 2 files changed, 166 insertions(+), 27 deletions(-) > create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml > Acked-by: Rob Herring <robh@kernel.org>
On Thu, Nov 24, 2022 at 07:43:26PM +0100, Krzysztof Kozlowski wrote: > Split SM8150 and SM8250 remote processor Peripheral Authentication > Service bindings into their own file to reduce complexity and make > maintenance easier. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > --- > > Changes since v2: > 1. Drop if:then: for the clock and put it directly under properties. > 2. Merge two if:then: clauses for setting interrupts. > > Changes since v1: > 1. Add qcom,qmp (not part of qcom,pas-common.yaml# anymore). > 2. Add firmware-name to example. > --- > .../bindings/remoteproc/qcom,adsp.yaml | 27 --- > .../bindings/remoteproc/qcom,sm8150-pas.yaml | 166 ++++++++++++++++++ > 2 files changed, 166 insertions(+), 27 deletions(-) > create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml > > diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml > index 67941e79a4a0..e8d66eefd522 100644 > --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml > +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml > @@ -40,13 +40,6 @@ properties: > - qcom,sm6350-adsp-pas > - qcom,sm6350-cdsp-pas > - qcom,sm6350-mpss-pas > - - qcom,sm8150-adsp-pas > - - qcom,sm8150-cdsp-pas > - - qcom,sm8150-mpss-pas > - - qcom,sm8150-slpi-pas > - - qcom,sm8250-adsp-pas > - - qcom,sm8250-cdsp-pas > - - qcom,sm8250-slpi-pas > > reg: > maxItems: 1 > @@ -94,13 +87,6 @@ allOf: > - qcom,sm6350-adsp-pas > - qcom,sm6350-cdsp-pas > - qcom,sm6350-mpss-pas > - - qcom,sm8150-adsp-pas > - - qcom,sm8150-cdsp-pas > - - qcom,sm8150-mpss-pas > - - qcom,sm8150-slpi-pas > - - qcom,sm8250-adsp-pas > - - qcom,sm8250-cdsp-pas > - - qcom,sm8250-slpi-pas > then: > properties: > clocks: > @@ -150,12 +136,6 @@ allOf: > - qcom,sdm845-cdsp-pas > - qcom,sm6350-adsp-pas > - qcom,sm6350-cdsp-pas > - - qcom,sm8150-adsp-pas > - - qcom,sm8150-cdsp-pas > - - qcom,sm8150-slpi-pas > - - qcom,sm8250-adsp-pas > - - qcom,sm8250-cdsp-pas > - - qcom,sm8250-slpi-pas > then: > properties: > interrupts: > @@ -173,7 +153,6 @@ allOf: > - qcom,sc8180x-mpss-pas > - qcom,sdx55-mpss-pas > - qcom,sm6350-mpss-pas > - - qcom,sm8150-mpss-pas > then: > properties: > interrupts: > @@ -199,8 +178,6 @@ allOf: > - qcom,msm8226-adsp-pil > - qcom,msm8996-adsp-pil > - qcom,msm8998-adsp-pas > - - qcom,sm8150-adsp-pas > - - qcom,sm8150-cdsp-pas > then: > properties: > power-domains: > @@ -272,7 +249,6 @@ allOf: > - qcom,sc7280-mpss-pas > - qcom,sdx55-mpss-pas > - qcom,sm6350-mpss-pas > - - qcom,sm8150-mpss-pas > then: > properties: > power-domains: > @@ -293,9 +269,6 @@ allOf: > - qcom,sc8180x-cdsp-pas > - qcom,sc8280xp-adsp-pas > - qcom,sm6350-adsp-pas > - - qcom,sm8150-slpi-pas > - - qcom,sm8250-adsp-pas > - - qcom,sm8250-slpi-pas > then: > properties: > power-domains: > diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml > new file mode 100644 > index 000000000000..b934252cf02b > --- /dev/null > +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml > @@ -0,0 +1,166 @@ > +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/remoteproc/qcom,sm8150-pas.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm SM8150/SM8250 Peripheral Authentication Service > + > +maintainers: > + - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > + > +description: > + Qualcomm SM8150/SM8250 SoC Peripheral Authentication Service loads and boots > + firmware on the Qualcomm DSP Hexagon cores. > + > +properties: > + compatible: > + enum: > + - qcom,sm8150-adsp-pas > + - qcom,sm8150-cdsp-pas > + - qcom,sm8150-mpss-pas > + - qcom,sm8150-slpi-pas > + - qcom,sm8250-adsp-pas > + - qcom,sm8250-cdsp-pas > + - qcom,sm8250-slpi-pas > + > + reg: > + maxItems: 1 > + > + clocks: > + items: > + - description: XO clock > + > + clock-names: > + items: > + - const: xo > + > + qcom,qmp: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: Reference to the AOSS side-channel message RAM. Not ideal that we are defining the type here multiple times. Otherwise, Acked-by: Rob Herring <robh@kernel.org>
On 05/12/2022 20:49, Rob Herring wrote: Hi Rob, >> + clocks: >> + items: >> + - description: XO clock >> + >> + clock-names: >> + items: >> + - const: xo >> + >> + qcom,qmp: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: Reference to the AOSS side-channel message RAM. > > Not ideal that we are defining the type here multiple times. I was thinking to add it to the common file (qcom,pas-common.yaml, created in patch 6/15) and just disallow it for other variants, but that does not work that good: Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml: properties:qcom,qmp: False is not of type 'object' hint: Vendor specific properties must have a type and description unless they have a defined, common suffix. from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml# Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml: properties:qcom,qmp: More than one condition true in oneOf schema: {'description': 'Vendor specific properties must have a type and ' 'description unless they have a defined, common ' 'suffix.', qcom,qcs404-pas.yaml has "com,qmp: false" and it references "qcom,pas-common.yaml" which has the definition of the property. However it seems it is treated as new bool property. ---------------------------- diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml index 007349ef51ed..62126e96d2f5 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,qcs404-pas.yaml @@ -39,6 +39,7 @@ properties: power-domains: false power-domain-names: false + qcom,qmp: false smd-edge: false required: diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml index 1d5e01c8d8bc..72cdcc2b157d 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml @@ -60,6 +60,10 @@ properties: maxItems: 1 description: Reference to the reserved-memory for the Hexagon core + qcom,qmp: + $ref: /schemas/types.yaml#/definitions/phandle + description: Reference to the AOSS side-channel message RAM. + qcom,smem-states: $ref: /schemas/types.yaml#/definitions/phandle-array description: States used by the AP to signal the Hexagon core ---------------------------- Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml index 67941e79a4a0..e8d66eefd522 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml @@ -40,13 +40,6 @@ properties: - qcom,sm6350-adsp-pas - qcom,sm6350-cdsp-pas - qcom,sm6350-mpss-pas - - qcom,sm8150-adsp-pas - - qcom,sm8150-cdsp-pas - - qcom,sm8150-mpss-pas - - qcom,sm8150-slpi-pas - - qcom,sm8250-adsp-pas - - qcom,sm8250-cdsp-pas - - qcom,sm8250-slpi-pas reg: maxItems: 1 @@ -94,13 +87,6 @@ allOf: - qcom,sm6350-adsp-pas - qcom,sm6350-cdsp-pas - qcom,sm6350-mpss-pas - - qcom,sm8150-adsp-pas - - qcom,sm8150-cdsp-pas - - qcom,sm8150-mpss-pas - - qcom,sm8150-slpi-pas - - qcom,sm8250-adsp-pas - - qcom,sm8250-cdsp-pas - - qcom,sm8250-slpi-pas then: properties: clocks: @@ -150,12 +136,6 @@ allOf: - qcom,sdm845-cdsp-pas - qcom,sm6350-adsp-pas - qcom,sm6350-cdsp-pas - - qcom,sm8150-adsp-pas - - qcom,sm8150-cdsp-pas - - qcom,sm8150-slpi-pas - - qcom,sm8250-adsp-pas - - qcom,sm8250-cdsp-pas - - qcom,sm8250-slpi-pas then: properties: interrupts: @@ -173,7 +153,6 @@ allOf: - qcom,sc8180x-mpss-pas - qcom,sdx55-mpss-pas - qcom,sm6350-mpss-pas - - qcom,sm8150-mpss-pas then: properties: interrupts: @@ -199,8 +178,6 @@ allOf: - qcom,msm8226-adsp-pil - qcom,msm8996-adsp-pil - qcom,msm8998-adsp-pas - - qcom,sm8150-adsp-pas - - qcom,sm8150-cdsp-pas then: properties: power-domains: @@ -272,7 +249,6 @@ allOf: - qcom,sc7280-mpss-pas - qcom,sdx55-mpss-pas - qcom,sm6350-mpss-pas - - qcom,sm8150-mpss-pas then: properties: power-domains: @@ -293,9 +269,6 @@ allOf: - qcom,sc8180x-cdsp-pas - qcom,sc8280xp-adsp-pas - qcom,sm6350-adsp-pas - - qcom,sm8150-slpi-pas - - qcom,sm8250-adsp-pas - - qcom,sm8250-slpi-pas then: properties: power-domains: diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml new file mode 100644 index 000000000000..b934252cf02b --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml @@ -0,0 +1,166 @@ +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/qcom,sm8150-pas.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm SM8150/SM8250 Peripheral Authentication Service + +maintainers: + - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> + +description: + Qualcomm SM8150/SM8250 SoC Peripheral Authentication Service loads and boots + firmware on the Qualcomm DSP Hexagon cores. + +properties: + compatible: + enum: + - qcom,sm8150-adsp-pas + - qcom,sm8150-cdsp-pas + - qcom,sm8150-mpss-pas + - qcom,sm8150-slpi-pas + - qcom,sm8250-adsp-pas + - qcom,sm8250-cdsp-pas + - qcom,sm8250-slpi-pas + + reg: + maxItems: 1 + + clocks: + items: + - description: XO clock + + clock-names: + items: + - const: xo + + qcom,qmp: + $ref: /schemas/types.yaml#/definitions/phandle + description: Reference to the AOSS side-channel message RAM. + + smd-edge: false + +required: + - compatible + - reg + +allOf: + - $ref: /schemas/remoteproc/qcom,pas-common.yaml# + - if: + properties: + compatible: + enum: + - qcom,sm8150-adsp-pas + - qcom,sm8150-cdsp-pas + - qcom,sm8150-slpi-pas + - qcom,sm8250-adsp-pas + - qcom,sm8250-cdsp-pas + - qcom,sm8250-slpi-pas + then: + properties: + interrupts: + maxItems: 5 + interrupt-names: + maxItems: 5 + else: + properties: + interrupts: + minItems: 6 + interrupt-names: + minItems: 6 + + - if: + properties: + compatible: + enum: + - qcom,sm8150-adsp-pas + - qcom,sm8150-cdsp-pas + - qcom,sm8250-cdsp-pas + then: + properties: + power-domains: + items: + - description: CX power domain + power-domain-names: + items: + - const: cx + + - if: + properties: + compatible: + enum: + - qcom,sm8150-mpss-pas + then: + properties: + power-domains: + items: + - description: CX power domain + - description: MSS power domain + power-domain-names: + items: + - const: cx + - const: mss + + - if: + properties: + compatible: + enum: + - qcom,sm8150-slpi-pas + - qcom,sm8250-adsp-pas + - qcom,sm8250-slpi-pas + then: + properties: + power-domains: + items: + - description: LCX power domain + - description: LMX power domain + power-domain-names: + items: + - const: lcx + - const: lmx + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/clock/qcom,rpmh.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/interrupt-controller/irq.h> + #include <dt-bindings/power/qcom-rpmpd.h> + + remoteproc@17300000 { + compatible = "qcom,sm8150-adsp-pas"; + reg = <0x17300000 0x4040>; + + clocks = <&rpmhcc RPMH_CXO_CLK>; + clock-names = "xo"; + + firmware-name = "qcom/sm8150/adsp.mbn"; + + interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>, + <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal", "ready", + "handover", "stop-ack"; + + memory-region = <&adsp_mem>; + + power-domains = <&rpmhpd SM8150_CX>; + + qcom,qmp = <&aoss_qmp>; + qcom,smem-states = <&adsp_smp2p_out 0>; + qcom,smem-state-names = "stop"; + + glink-edge { + interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>; + label = "lpass"; + qcom,remote-pid = <2>; + mboxes = <&apss_shared 8>; + + /* ... */ + + }; + };
Split SM8150 and SM8250 remote processor Peripheral Authentication Service bindings into their own file to reduce complexity and make maintenance easier. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- Changes since v2: 1. Drop if:then: for the clock and put it directly under properties. 2. Merge two if:then: clauses for setting interrupts. Changes since v1: 1. Add qcom,qmp (not part of qcom,pas-common.yaml# anymore). 2. Add firmware-name to example. --- .../bindings/remoteproc/qcom,adsp.yaml | 27 --- .../bindings/remoteproc/qcom,sm8150-pas.yaml | 166 ++++++++++++++++++ 2 files changed, 166 insertions(+), 27 deletions(-) create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sm8150-pas.yaml