Message ID | 20220401171035.1096670-1-krzysztof.kozlowski@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | dt-bindings: soc: qcom,smp2p: convert to dtschema | expand |
On 01/04/2022 19:10, Krzysztof Kozlowski wrote: > Convert the Qualcomm Shared Memory Point 2 Point 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> > --- > .../bindings/soc/qcom/qcom,smp2p.txt | 110 ------------- > .../bindings/soc/qcom/qcom,smp2p.yaml | 145 ++++++++++++++++++ > 2 files changed, 145 insertions(+), 110 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml > > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt > deleted file mode 100644 > index 49e1d72d3648..000000000000 > --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt > +++ /dev/null > @@ -1,110 +0,0 @@ > -Qualcomm Shared Memory Point 2 Point binding > - > -The Shared Memory Point to Point (SMP2P) protocol facilitates communication of > -a single 32-bit value between two processors. Each value has a single writer > -(the local side) and a single reader (the remote side). Values are uniquely > -identified in the system by the directed edge (local processor ID to remote > -processor ID) and a string identifier. > - > -- compatible: > - Usage: required > - Value type: <string> > - Definition: must be one of: > - "qcom,smp2p" > - > -- interrupts: > - Usage: required > - Value type: <prop-encoded-array> > - Definition: one entry specifying the smp2p notification interrupt > - > -- 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 end of the smp2p edge: > - - 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,smem: > - Usage: required > - Value type: <u32 array> > - Definition: two identifiers of the inbound and outbound smem items used > - for this edge > - > -- qcom,local-pid: > - Usage: required > - Value type: <u32> > - Definition: specifies the identifier of the local endpoint of this edge > - > -- qcom,remote-pid: > - Usage: required > - Value type: <u32> > - Definition: specifies the identifier of the remote endpoint of this edge > - > -= SUBNODES > -Each SMP2P pair contain a set of inbound and outbound entries, these are > -described in subnodes of the smp2p device node. The node names are not > -important. > - > -- qcom,entry-name: > - Usage: required > - Value type: <string> > - Definition: specifies the name of this entry, for inbound entries this > - will be used to match against the remotely allocated entry > - and for outbound entries this name is used for allocating > - entries > - > -- interrupt-controller: > - Usage: required for incoming entries > - Value type: <empty> > - Definition: marks the entry as inbound; the node should be specified > - as a two cell interrupt-controller as defined in > - "../interrupt-controller/interrupts.txt" > - If not specified this node will denote the outgoing entry > - > -- #interrupt-cells: > - Usage: required for incoming entries > - Value type: <u32> > - Definition: must be 2 - denoting the bit in the entry and IRQ flags > - > -- #qcom,smem-state-cells: > - Usage: required for outgoing entries > - Value type: <u32> > - Definition: must be 1 - denoting the bit in the entry > - > -= EXAMPLE > -The following example shows the SMP2P setup with the wireless processor, > -defined from the 8974 apps processor's point-of-view. It encompasses one > -inbound and one outbound entry: > - > -wcnss-smp2p { > - compatible = "qcom,smp2p"; > - qcom,smem = <431>, <451>; > - > - interrupts = <0 143 1>; > - > - qcom,ipc = <&apcs 8 18>; > - > - qcom,local-pid = <0>; > - qcom,remote-pid = <4>; > - > - wcnss_smp2p_out: master-kernel { > - qcom,entry-name = "master-kernel"; > - > - #qcom,smem-state-cells = <1>; > - }; > - > - wcnss_smp2p_in: slave-kernel { > - qcom,entry-name = "slave-kernel"; > - > - interrupt-controller; > - #interrupt-cells = <2>; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml > new file mode 100644 > index 000000000000..8c362ce3c05b > --- /dev/null > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml > @@ -0,0 +1,145 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/soc/qcom/qcom,smp2p.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Shared Memory Point 2 Point > + > +maintainers: > + - Andy Gross <agross@kernel.org> > + - Bjorn Andersson <bjorn.andersson@linaro.org> > + - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > + > +description: > + The Shared Memory Point to Point (SMP2P) protocol facilitates communication > + of a single 32-bit value between two processors. Each value has a single > + writer (the local side) and a single reader (the remote side). Values are > + uniquely identified in the system by the directed edge (local processor ID to > + remote processor ID) and a string identifier. > + > +properties: > + compatible: > + const: qcom,smp2p > + > + interrupts: > + maxItems: 1 > + > + 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 end of the smp2p edge. > + > + qcom,local-pid: > + $ref: /schemas/types.yaml#/definitions/uint32-array While converting the next schema (SMD) I found here a mistake. This is not an array, but one number. I'll send a v2. Best regards, Krzysztof
On Fri, 01 Apr 2022 19:10:35 +0200, Krzysztof Kozlowski wrote: > Convert the Qualcomm Shared Memory Point 2 Point 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> > --- > .../bindings/soc/qcom/qcom,smp2p.txt | 110 ------------- > .../bindings/soc/qcom/qcom,smp2p.yaml | 145 ++++++++++++++++++ > 2 files changed, 145 insertions(+), 110 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/net/qcom,ipa.example.dt.yaml: smp2p-mpss: 'qcom,local-pid' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/net/qcom,ipa.example.dt.yaml: smp2p-mpss: 'qcom,remote-pid' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/net/qcom,ipa.example.dt.yaml: smp2p-mpss: 'qcom,smem' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/net/qcom,ipa.example.dt.yaml: smp2p-mpss: 'oneOf' conditional failed, one must be fixed: 'mboxes' is a required property 'qcom,ipc' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/net/qcom,ipa.example.dt.yaml: smp2p-mpss: 'oneOf' conditional failed, one must be fixed: 'interrupts' is a required property 'interrupts-extended' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/qcom-ipcc.example.dt.yaml: smp2p-modem: 'qcom,local-pid' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/qcom-ipcc.example.dt.yaml: smp2p-modem: 'qcom,remote-pid' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/qcom-ipcc.example.dt.yaml: smp2p-modem: 'qcom,smem' is a required property From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/patch/ This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit.
On 02/04/2022 15:46, Rob Herring wrote: > On Fri, 01 Apr 2022 19:10:35 +0200, Krzysztof Kozlowski wrote: >> Convert the Qualcomm Shared Memory Point 2 Point 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> >> --- >> .../bindings/soc/qcom/qcom,smp2p.txt | 110 ------------- >> .../bindings/soc/qcom/qcom,smp2p.yaml | 145 ++++++++++++++++++ >> 2 files changed, 145 insertions(+), 110 deletions(-) >> delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt >> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml >> I'll fix it in separate commits. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt deleted file mode 100644 index 49e1d72d3648..000000000000 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt +++ /dev/null @@ -1,110 +0,0 @@ -Qualcomm Shared Memory Point 2 Point binding - -The Shared Memory Point to Point (SMP2P) protocol facilitates communication of -a single 32-bit value between two processors. Each value has a single writer -(the local side) and a single reader (the remote side). Values are uniquely -identified in the system by the directed edge (local processor ID to remote -processor ID) and a string identifier. - -- compatible: - Usage: required - Value type: <string> - Definition: must be one of: - "qcom,smp2p" - -- interrupts: - Usage: required - Value type: <prop-encoded-array> - Definition: one entry specifying the smp2p notification interrupt - -- 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 end of the smp2p edge: - - 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,smem: - Usage: required - Value type: <u32 array> - Definition: two identifiers of the inbound and outbound smem items used - for this edge - -- qcom,local-pid: - Usage: required - Value type: <u32> - Definition: specifies the identifier of the local endpoint of this edge - -- qcom,remote-pid: - Usage: required - Value type: <u32> - Definition: specifies the identifier of the remote endpoint of this edge - -= SUBNODES -Each SMP2P pair contain a set of inbound and outbound entries, these are -described in subnodes of the smp2p device node. The node names are not -important. - -- qcom,entry-name: - Usage: required - Value type: <string> - Definition: specifies the name of this entry, for inbound entries this - will be used to match against the remotely allocated entry - and for outbound entries this name is used for allocating - entries - -- interrupt-controller: - Usage: required for incoming entries - Value type: <empty> - Definition: marks the entry as inbound; the node should be specified - as a two cell interrupt-controller as defined in - "../interrupt-controller/interrupts.txt" - If not specified this node will denote the outgoing entry - -- #interrupt-cells: - Usage: required for incoming entries - Value type: <u32> - Definition: must be 2 - denoting the bit in the entry and IRQ flags - -- #qcom,smem-state-cells: - Usage: required for outgoing entries - Value type: <u32> - Definition: must be 1 - denoting the bit in the entry - -= EXAMPLE -The following example shows the SMP2P setup with the wireless processor, -defined from the 8974 apps processor's point-of-view. It encompasses one -inbound and one outbound entry: - -wcnss-smp2p { - compatible = "qcom,smp2p"; - qcom,smem = <431>, <451>; - - interrupts = <0 143 1>; - - qcom,ipc = <&apcs 8 18>; - - qcom,local-pid = <0>; - qcom,remote-pid = <4>; - - wcnss_smp2p_out: master-kernel { - qcom,entry-name = "master-kernel"; - - #qcom,smem-state-cells = <1>; - }; - - wcnss_smp2p_in: slave-kernel { - qcom,entry-name = "slave-kernel"; - - interrupt-controller; - #interrupt-cells = <2>; - }; -}; diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml new file mode 100644 index 000000000000..8c362ce3c05b --- /dev/null +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml @@ -0,0 +1,145 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/qcom/qcom,smp2p.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Shared Memory Point 2 Point + +maintainers: + - Andy Gross <agross@kernel.org> + - Bjorn Andersson <bjorn.andersson@linaro.org> + - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> + +description: + The Shared Memory Point to Point (SMP2P) protocol facilitates communication + of a single 32-bit value between two processors. Each value has a single + writer (the local side) and a single reader (the remote side). Values are + uniquely identified in the system by the directed edge (local processor ID to + remote processor ID) and a string identifier. + +properties: + compatible: + const: qcom,smp2p + + interrupts: + maxItems: 1 + + 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 end of the smp2p edge. + + qcom,local-pid: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + The identifier of the local endpoint of this edge. + + qcom,remote-pid: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + The identifier of the remote endpoint of this edge. + + qcom,smem: + $ref: /schemas/types.yaml#/definitions/uint32-array + items: + maxItems: 2 + description: + Two identifiers of the inbound and outbound smem items used for this edge. + +patternProperties: + "^master-kernel|slave-kernel|ipa-ap-to-modem|ipa-modem-to-ap$": + type: object + description: + Each SMP2P pair contain a set of inbound and outbound entries, these are + described in subnodes of the smp2p device node. The node names are not + important. + + properties: + interrupt-controller: + description: + Marks the entry as inbound; the node should be specified as a two + cell interrupt-controller. If not specified this node will denote + the outgoing entry. + + '#interrupt-cells': + const: 2 + + qcom,entry-name: + $ref: /schemas/types.yaml#/definitions/string + description: + The name of this entry, for inbound entries this will be used to + match against the remotely allocated entry and for outbound entries + this name is used for allocating entries. + + '#qcom,smem-state-cells': + $ref: /schemas/types.yaml#/definitions/uint32 + const: 1 + description: + Required for outgoing entries. + + required: + - qcom,entry-name + + oneOf: + - required: + - interrupt-controller + - '#interrupt-cells' + - required: + - '#qcom,smem-state-cells' + + additionalProperties: false + +required: + - compatible + - interrupts + - qcom,local-pid + - qcom,remote-pid + - qcom,smem + +oneOf: + - required: + - mboxes + - required: + - qcom,ipc + +additionalProperties: false + +examples: + # The following example shows the SMP2P setup with the wireless processor, + # defined from the 8974 apps processor's point-of-view. It encompasses one + # inbound and one outbound entry. + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + + shared-memory { + compatible = "qcom,smp2p"; + qcom,smem = <431>, <451>; + interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>; + qcom,ipc = <&apcs 8 18>; + qcom,local-pid = <0>; + qcom,remote-pid = <4>; + + wcnss_smp2p_out: master-kernel { + qcom,entry-name = "master-kernel"; + #qcom,smem-state-cells = <1>; + }; + + wcnss_smp2p_in: slave-kernel { + qcom,entry-name = "slave-kernel"; + interrupt-controller; + #interrupt-cells = <2>; + }; + };
Convert the Qualcomm Shared Memory Point 2 Point 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> --- .../bindings/soc/qcom/qcom,smp2p.txt | 110 ------------- .../bindings/soc/qcom/qcom,smp2p.yaml | 145 ++++++++++++++++++ 2 files changed, 145 insertions(+), 110 deletions(-) delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml