Message ID | 20211110105922.217895-4-bhupesh.sharma@linaro.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Enable Qualcomm Crypto Engine on sm8150 & sm8250 | expand |
On Wed, 10 Nov 2021 16:29:03 +0530, Bhupesh Sharma wrote: > Convert Qualcomm BAM DMA devicetree binding to YAML. > > Cc: Thara Gopinath <thara.gopinath@linaro.org> > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > Cc: Rob Herring <robh+dt@kernel.org> > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > --- > .../devicetree/bindings/dma/qcom_bam_dma.txt | 50 ---------- > .../devicetree/bindings/dma/qcom_bam_dma.yaml | 91 +++++++++++++++++++ > 2 files changed, 91 insertions(+), 50 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > Running 'make dtbs_check' with the schema in this patch gives the following warnings. Consider if they are expected or the schema is incorrect. These may not be new warnings. Note that it is not yet a requirement to have 0 warnings for dtbs_check. This will change in the future. Full log is available here: https://patchwork.ozlabs.org/patch/1553369 dma@12142000: $nodename:0: 'dma@12142000' does not match '^dma-controller(@.*)?$' arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dt.yaml dma@12182000: $nodename:0: 'dma@12182000' does not match '^dma-controller(@.*)?$' arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml arch/arm/boot/dts/qcom-ipq8064-ap148.dt.yaml arch/arm/boot/dts/qcom-ipq8064-rb3011.dt.yaml arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dt.yaml dma@121c2000: $nodename:0: 'dma@121c2000' does not match '^dma-controller(@.*)?$' arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml dma@12402000: $nodename:0: 'dma@12402000' does not match '^dma-controller(@.*)?$' arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml arch/arm/boot/dts/qcom-ipq8064-ap148.dt.yaml arch/arm/boot/dts/qcom-ipq8064-rb3011.dt.yaml dma@1dc4000: $nodename:0: 'dma@1dc4000' does not match '^dma-controller(@.*)?$' arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml dma@1dc4000: 'iommus' does not match any of the regexes: 'pinctrl-[0-9]+' arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml dma@1dc4000: qcom,controlled-remotely: 'oneOf' conditional failed, one must be fixed: arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml dma@704000: $nodename:0: 'dma@704000' does not match '^dma-controller(@.*)?$' arch/arm64/boot/dts/qcom/ipq8074-hk01.dt.yaml arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dt.yaml arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dt.yaml dma@704000: qcom,controlled-remotely: 'oneOf' conditional failed, one must be fixed: arch/arm64/boot/dts/qcom/ipq8074-hk01.dt.yaml arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dt.yaml arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dt.yaml dma@7544000: $nodename:0: 'dma@7544000' does not match '^dma-controller(@.*)?$' arch/arm64/boot/dts/qcom/apq8096-db820c.dt.yaml arch/arm64/boot/dts/qcom/apq8096-ifc6640.dt.yaml arch/arm64/boot/dts/qcom/msm8996-mtp.dt.yaml arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dt.yaml arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dt.yaml arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dt.yaml arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dt.yaml arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dt.yaml arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dt.yaml dma@7584000: $nodename:0: 'dma@7584000' does not match '^dma-controller(@.*)?$' arch/arm64/boot/dts/qcom/apq8096-db820c.dt.yaml arch/arm64/boot/dts/qcom/apq8096-ifc6640.dt.yaml arch/arm64/boot/dts/qcom/msm8996-mtp.dt.yaml arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dt.yaml arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dt.yaml arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dt.yaml arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dt.yaml arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dt.yaml arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dt.yaml dma@7884000: $nodename:0: 'dma@7884000' does not match '^dma-controller(@.*)?$' arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dt.yaml arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dt.yaml arch/arm/boot/dts/qcom-ipq4018-jalapeno.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dt.yaml dma@7984000: $nodename:0: 'dma@7984000' does not match '^dma-controller(@.*)?$' arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dt.yaml arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dt.yaml arch/arm/boot/dts/qcom-ipq4018-jalapeno.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dt.yaml dma@8e04000: $nodename:0: 'dma@8e04000' does not match '^dma-controller(@.*)?$' arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dt.yaml arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dt.yaml arch/arm/boot/dts/qcom-ipq4018-jalapeno.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dt.yaml arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dt.yaml dma@c184000: $nodename:0: 'dma@c184000' does not match '^dma-controller(@.*)?$' arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dt.yaml arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dt.yaml arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dt.yaml arch/arm64/boot/dts/qcom/msm8998-mtp.dt.yaml arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dt.yaml arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dt.yaml dma-controller@17184000: 'iommus' does not match any of the regexes: 'pinctrl-[0-9]+' arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml dma-controller@704000: 'qcom,config-pipe-trust-reg' does not match any of the regexes: 'pinctrl-[0-9]+' arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml dma-controller@704000: qcom,controlled-remotely: 'oneOf' conditional failed, one must be fixed: arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml dma-controller@7984000: clock-names:0: 'bam_clk' was expected arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml dma-controller@7984000: clock-names: Additional items are not allowed ('bam_clk' was unexpected) arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml dma-controller@7984000: clock-names: ['iface_clk', 'bam_clk'] is too long arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml dma-controller@7984000: clocks: [[9, 138], [9, 137]] is too long arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml
Hi Bhupesh, On 11/10/21 12:59 PM, Bhupesh Sharma wrote: > Convert Qualcomm BAM DMA devicetree binding to YAML. > > Cc: Thara Gopinath <thara.gopinath@linaro.org> > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > Cc: Rob Herring <robh+dt@kernel.org> > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > --- > .../devicetree/bindings/dma/qcom_bam_dma.txt | 50 ---------- > .../devicetree/bindings/dma/qcom_bam_dma.yaml | 91 +++++++++++++++++++ > 2 files changed, 91 insertions(+), 50 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > deleted file mode 100644 > index cf5b9e44432c..000000000000 > --- a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > +++ /dev/null > @@ -1,50 +0,0 @@ > -QCOM BAM DMA controller > - > -Required properties: > -- compatible: must be one of the following: > - * "qcom,bam-v1.4.0" for MSM8974, APQ8074 and APQ8084 > - * "qcom,bam-v1.3.0" for APQ8064, IPQ8064 and MSM8960 > - * "qcom,bam-v1.7.0" for MSM8916 > -- reg: Address range for DMA registers > -- interrupts: Should contain the one interrupt shared by all channels > -- #dma-cells: must be <1>, the cell in the dmas property of the client device > - represents the channel number > -- clocks: required clock > -- clock-names: must contain "bam_clk" entry > -- qcom,ee : indicates the active Execution Environment identifier (0-7) used in > - the secure world. > -- qcom,controlled-remotely : optional, indicates that the bam is controlled by > - remote proccessor i.e. execution environment. > -- num-channels : optional, indicates supported number of DMA channels in a > - remotely controlled bam. > -- qcom,num-ees : optional, indicates supported number of Execution Environments > - in a remotely controlled bam. > - > -Example: > - > - uart-bam: dma@f9984000 = { > - compatible = "qcom,bam-v1.4.0"; > - reg = <0xf9984000 0x15000>; > - interrupts = <0 94 0>; > - clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > - clock-names = "bam_clk"; > - #dma-cells = <1>; > - qcom,ee = <0>; > - }; > - > -DMA clients must use the format described in the dma.txt file, using a two cell > -specifier for each channel. > - > -Example: > - serial@f991e000 { > - compatible = "qcom,msm-uart"; > - reg = <0xf991e000 0x1000> > - <0xf9944000 0x19000>; > - interrupts = <0 108 0>; > - clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, > - <&gcc GCC_BLSP1_AHB_CLK>; > - clock-names = "core", "iface"; > - > - dmas = <&uart-bam 0>, <&uart-bam 1>; > - dma-names = "rx", "tx"; > - }; > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > new file mode 100644 > index 000000000000..3ca222bd10bd > --- /dev/null > +++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > @@ -0,0 +1,91 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/dma/qcom_bam_dma.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: QCOM BAM DMA controller binding > + > +maintainers: > + - Bhupesh Sharma <bhupesh.sharma@linaro.org> > + > +description: | > + This document defines the binding for the BAM DMA controller > + found on Qualcomm parts. > + > +allOf: > + - $ref: "dma-controller.yaml#" > + > +properties: > + compatible: > + enum: > + - qcom,bam-v1.3.0 # for APQ8064, IPQ8064 and MSM8960 > + - qcom,bam-v1.4.0 # for MSM8974, APQ8074 and APQ8084 > + - qcom,bam-v1.7.0 # for MSM8916 > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + clock-names: > + const: bam_clk > + > + interrupts: > + minItems: 1 > + maxItems: 31 > + > + num-channels: > + maximum: 31 > + description: > + Indicates supported number of DMA channels in a remotely controlled bam. > + > + "#dma-cells": > + const: 1 > + description: The single cell represents the channel index. > + > + qcom,ee: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 7 > + description: > + Indicates the active Execution Environment identifier (0-7) > + used in the secure world. > + > + qcom,controlled-remotely: > + $ref: /schemas/types.yaml#/definitions/flag > + description: > + Indicates that the bam is controlled by remote proccessor i.e. > + execution environment. > + > + qcom,num-ees: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 31 > + default: 2 > + description: > + Indicates supported number of Execution Environments in a > + remotely controlled bam. > + > +required: > + - compatible > + - reg > + - interrupts > + - "#dma-cells" > + - qcom,ee > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/qcom,gcc-msm8974.h> > + dma-controller@f9984000 { > + compatible = "qcom,bam-v1.4.0"; > + reg = <0xf9984000 0x15000>; > + interrupts = <0 94 0>; > + clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > + clock-names = "bam_clk"; > + #dma-cells = <1>; > + qcom,ee = <0>; > + }; > this change should be rebased on top of the upstream commit 37aef53f5cc ("dt-bindings: dmaengine: bam_dma: Add "powered remotely" mode"), which adds 'qcom,powered-remotely' property description. -- Best wishes, Vladimir
On Wed 10 Nov 04:59 CST 2021, Bhupesh Sharma wrote: > Convert Qualcomm BAM DMA devicetree binding to YAML. > > Cc: Thara Gopinath <thara.gopinath@linaro.org> > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > Cc: Rob Herring <robh+dt@kernel.org> > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > --- > .../devicetree/bindings/dma/qcom_bam_dma.txt | 50 ---------- > .../devicetree/bindings/dma/qcom_bam_dma.yaml | 91 +++++++++++++++++++ > 2 files changed, 91 insertions(+), 50 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > deleted file mode 100644 > index cf5b9e44432c..000000000000 > --- a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > +++ /dev/null > @@ -1,50 +0,0 @@ > -QCOM BAM DMA controller > - > -Required properties: > -- compatible: must be one of the following: > - * "qcom,bam-v1.4.0" for MSM8974, APQ8074 and APQ8084 > - * "qcom,bam-v1.3.0" for APQ8064, IPQ8064 and MSM8960 > - * "qcom,bam-v1.7.0" for MSM8916 > -- reg: Address range for DMA registers > -- interrupts: Should contain the one interrupt shared by all channels > -- #dma-cells: must be <1>, the cell in the dmas property of the client device > - represents the channel number > -- clocks: required clock > -- clock-names: must contain "bam_clk" entry > -- qcom,ee : indicates the active Execution Environment identifier (0-7) used in > - the secure world. > -- qcom,controlled-remotely : optional, indicates that the bam is controlled by > - remote proccessor i.e. execution environment. > -- num-channels : optional, indicates supported number of DMA channels in a > - remotely controlled bam. > -- qcom,num-ees : optional, indicates supported number of Execution Environments > - in a remotely controlled bam. > - > -Example: > - > - uart-bam: dma@f9984000 = { > - compatible = "qcom,bam-v1.4.0"; > - reg = <0xf9984000 0x15000>; > - interrupts = <0 94 0>; > - clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > - clock-names = "bam_clk"; > - #dma-cells = <1>; > - qcom,ee = <0>; > - }; > - > -DMA clients must use the format described in the dma.txt file, using a two cell > -specifier for each channel. > - > -Example: > - serial@f991e000 { > - compatible = "qcom,msm-uart"; > - reg = <0xf991e000 0x1000> > - <0xf9944000 0x19000>; > - interrupts = <0 108 0>; > - clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, > - <&gcc GCC_BLSP1_AHB_CLK>; > - clock-names = "core", "iface"; > - > - dmas = <&uart-bam 0>, <&uart-bam 1>; > - dma-names = "rx", "tx"; > - }; > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > new file mode 100644 > index 000000000000..3ca222bd10bd > --- /dev/null > +++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > @@ -0,0 +1,91 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/dma/qcom_bam_dma.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: QCOM BAM DMA controller binding > + > +maintainers: > + - Bhupesh Sharma <bhupesh.sharma@linaro.org> > + > +description: | > + This document defines the binding for the BAM DMA controller > + found on Qualcomm parts. > + > +allOf: > + - $ref: "dma-controller.yaml#" > + > +properties: > + compatible: > + enum: > + - qcom,bam-v1.3.0 # for APQ8064, IPQ8064 and MSM8960 > + - qcom,bam-v1.4.0 # for MSM8974, APQ8074 and APQ8084 > + - qcom,bam-v1.7.0 # for MSM8916 > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + clock-names: > + const: bam_clk > + > + interrupts: > + minItems: 1 > + maxItems: 31 The old binding uses the wording "the one interrupt" and at least the Linux implementation indicates that there's only a single interrupt. So I think this should just be maxItems: 1 > + > + num-channels: > + maximum: 31 > + description: > + Indicates supported number of DMA channels in a remotely controlled bam. > + > + "#dma-cells": > + const: 1 > + description: The single cell represents the channel index. > + > + qcom,ee: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 7 > + description: > + Indicates the active Execution Environment identifier (0-7) > + used in the secure world. > + > + qcom,controlled-remotely: > + $ref: /schemas/types.yaml#/definitions/flag > + description: > + Indicates that the bam is controlled by remote proccessor i.e. > + execution environment. > + > + qcom,num-ees: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 31 > + default: 2 > + description: > + Indicates supported number of Execution Environments in a > + remotely controlled bam. > + > +required: > + - compatible > + - reg > + - interrupts > + - "#dma-cells" > + - qcom,ee > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/qcom,gcc-msm8974.h> > + dma-controller@f9984000 { > + compatible = "qcom,bam-v1.4.0"; > + reg = <0xf9984000 0x15000>; > + interrupts = <0 94 0>; While the txt->yaml conversion should retain the original content, I think it's okay to fix this line up while you're at it; and make it: interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; Regards, Bjorn > + clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > + clock-names = "bam_clk"; > + #dma-cells = <1>; > + qcom,ee = <0>; > + }; > -- > 2.31.1 >
Hi Vladimir, On Fri, 12 Nov 2021 at 14:11, Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> wrote: > > Hi Bhupesh, > > On 11/10/21 12:59 PM, Bhupesh Sharma wrote: > > Convert Qualcomm BAM DMA devicetree binding to YAML. > > > > Cc: Thara Gopinath <thara.gopinath@linaro.org> > > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > > Cc: Rob Herring <robh+dt@kernel.org> > > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > > --- > > .../devicetree/bindings/dma/qcom_bam_dma.txt | 50 ---------- > > .../devicetree/bindings/dma/qcom_bam_dma.yaml | 91 +++++++++++++++++++ > > 2 files changed, 91 insertions(+), 50 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > > create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > > > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > > deleted file mode 100644 > > index cf5b9e44432c..000000000000 > > --- a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > > +++ /dev/null > > @@ -1,50 +0,0 @@ > > -QCOM BAM DMA controller > > - > > -Required properties: > > -- compatible: must be one of the following: > > - * "qcom,bam-v1.4.0" for MSM8974, APQ8074 and APQ8084 > > - * "qcom,bam-v1.3.0" for APQ8064, IPQ8064 and MSM8960 > > - * "qcom,bam-v1.7.0" for MSM8916 > > -- reg: Address range for DMA registers > > -- interrupts: Should contain the one interrupt shared by all channels > > -- #dma-cells: must be <1>, the cell in the dmas property of the client device > > - represents the channel number > > -- clocks: required clock > > -- clock-names: must contain "bam_clk" entry > > -- qcom,ee : indicates the active Execution Environment identifier (0-7) used in > > - the secure world. > > -- qcom,controlled-remotely : optional, indicates that the bam is controlled by > > - remote proccessor i.e. execution environment. > > -- num-channels : optional, indicates supported number of DMA channels in a > > - remotely controlled bam. > > -- qcom,num-ees : optional, indicates supported number of Execution Environments > > - in a remotely controlled bam. > > - > > -Example: > > - > > - uart-bam: dma@f9984000 = { > > - compatible = "qcom,bam-v1.4.0"; > > - reg = <0xf9984000 0x15000>; > > - interrupts = <0 94 0>; > > - clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > > - clock-names = "bam_clk"; > > - #dma-cells = <1>; > > - qcom,ee = <0>; > > - }; > > - > > -DMA clients must use the format described in the dma.txt file, using a two cell > > -specifier for each channel. > > - > > -Example: > > - serial@f991e000 { > > - compatible = "qcom,msm-uart"; > > - reg = <0xf991e000 0x1000> > > - <0xf9944000 0x19000>; > > - interrupts = <0 108 0>; > > - clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, > > - <&gcc GCC_BLSP1_AHB_CLK>; > > - clock-names = "core", "iface"; > > - > > - dmas = <&uart-bam 0>, <&uart-bam 1>; > > - dma-names = "rx", "tx"; > > - }; > > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > new file mode 100644 > > index 000000000000..3ca222bd10bd > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > @@ -0,0 +1,91 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/dma/qcom_bam_dma.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: QCOM BAM DMA controller binding > > + > > +maintainers: > > + - Bhupesh Sharma <bhupesh.sharma@linaro.org> > > + > > +description: | > > + This document defines the binding for the BAM DMA controller > > + found on Qualcomm parts. > > + > > +allOf: > > + - $ref: "dma-controller.yaml#" > > + > > +properties: > > + compatible: > > + enum: > > + - qcom,bam-v1.3.0 # for APQ8064, IPQ8064 and MSM8960 > > + - qcom,bam-v1.4.0 # for MSM8974, APQ8074 and APQ8084 > > + - qcom,bam-v1.7.0 # for MSM8916 > > + > > + reg: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + > > + clock-names: > > + const: bam_clk > > + > > + interrupts: > > + minItems: 1 > > + maxItems: 31 > > + > > + num-channels: > > + maximum: 31 > > + description: > > + Indicates supported number of DMA channels in a remotely controlled bam. > > + > > + "#dma-cells": > > + const: 1 > > + description: The single cell represents the channel index. > > + > > + qcom,ee: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + minimum: 0 > > + maximum: 7 > > + description: > > + Indicates the active Execution Environment identifier (0-7) > > + used in the secure world. > > + > > + qcom,controlled-remotely: > > + $ref: /schemas/types.yaml#/definitions/flag > > + description: > > + Indicates that the bam is controlled by remote proccessor i.e. > > + execution environment. > > + > > + qcom,num-ees: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + minimum: 0 > > + maximum: 31 > > + default: 2 > > + description: > > + Indicates supported number of Execution Environments in a > > + remotely controlled bam. > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - "#dma-cells" > > + - qcom,ee > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/clock/qcom,gcc-msm8974.h> > > + dma-controller@f9984000 { > > + compatible = "qcom,bam-v1.4.0"; > > + reg = <0xf9984000 0x15000>; > > + interrupts = <0 94 0>; > > + clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > > + clock-names = "bam_clk"; > > + #dma-cells = <1>; > > + qcom,ee = <0>; > > + }; > > > > this change should be rebased on top of the upstream commit 37aef53f5cc ("dt-bindings: > dmaengine: bam_dma: Add "powered remotely" mode"), which adds 'qcom,powered-remotely' > property description. Indeed. Seems there was some confusion, as we had earlier agreed that Stephan's change would be part of my v5 series (see [1]), but I see that the change has anyway being picked up for Linus's tree (in the .txt version of the bindings). No problem, I will fix the same in v6. [1]. https://www.spinics.net/lists/linux-arm-msm/msg97143.html Regards, Bhupesh
Hi Rob, On Thu, 11 Nov 2021 at 01:14, Rob Herring <robh@kernel.org> wrote: > > On Wed, 10 Nov 2021 16:29:03 +0530, Bhupesh Sharma wrote: > > Convert Qualcomm BAM DMA devicetree binding to YAML. > > > > Cc: Thara Gopinath <thara.gopinath@linaro.org> > > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > > Cc: Rob Herring <robh+dt@kernel.org> > > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > > --- > > .../devicetree/bindings/dma/qcom_bam_dma.txt | 50 ---------- > > .../devicetree/bindings/dma/qcom_bam_dma.yaml | 91 +++++++++++++++++++ > > 2 files changed, 91 insertions(+), 50 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > > create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > > > Running 'make dtbs_check' with the schema in this patch gives the > following warnings. Consider if they are expected or the schema is > incorrect. These may not be new warnings. > > Note that it is not yet a requirement to have 0 warnings for dtbs_check. > This will change in the future. > > Full log is available here: https://patchwork.ozlabs.org/patch/1553369 > > > dma@12142000: $nodename:0: 'dma@12142000' does not match '^dma-controller(@.*)?$' > arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dt.yaml > > dma@12182000: $nodename:0: 'dma@12182000' does not match '^dma-controller(@.*)?$' > arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml > arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml > arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml > arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml > arch/arm/boot/dts/qcom-ipq8064-ap148.dt.yaml > arch/arm/boot/dts/qcom-ipq8064-rb3011.dt.yaml > arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dt.yaml > > dma@121c2000: $nodename:0: 'dma@121c2000' does not match '^dma-controller(@.*)?$' > arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml > arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml > arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml > arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml > > dma@12402000: $nodename:0: 'dma@12402000' does not match '^dma-controller(@.*)?$' > arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml > arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml > arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml > arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml > arch/arm/boot/dts/qcom-ipq8064-ap148.dt.yaml > arch/arm/boot/dts/qcom-ipq8064-rb3011.dt.yaml > > dma@1dc4000: $nodename:0: 'dma@1dc4000' does not match '^dma-controller(@.*)?$' > arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml > arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml > > dma@1dc4000: 'iommus' does not match any of the regexes: 'pinctrl-[0-9]+' > arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml > arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml > > dma@1dc4000: qcom,controlled-remotely: 'oneOf' conditional failed, one must be fixed: > arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml > arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml > > dma@704000: $nodename:0: 'dma@704000' does not match '^dma-controller(@.*)?$' > arch/arm64/boot/dts/qcom/ipq8074-hk01.dt.yaml > arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dt.yaml > arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dt.yaml > > dma@704000: qcom,controlled-remotely: 'oneOf' conditional failed, one must be fixed: > arch/arm64/boot/dts/qcom/ipq8074-hk01.dt.yaml > arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dt.yaml > arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dt.yaml > > dma@7544000: $nodename:0: 'dma@7544000' does not match '^dma-controller(@.*)?$' > arch/arm64/boot/dts/qcom/apq8096-db820c.dt.yaml > arch/arm64/boot/dts/qcom/apq8096-ifc6640.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-mtp.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dt.yaml > > dma@7584000: $nodename:0: 'dma@7584000' does not match '^dma-controller(@.*)?$' > arch/arm64/boot/dts/qcom/apq8096-db820c.dt.yaml > arch/arm64/boot/dts/qcom/apq8096-ifc6640.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-mtp.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dt.yaml > arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dt.yaml > > dma@7884000: $nodename:0: 'dma@7884000' does not match '^dma-controller(@.*)?$' > arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dt.yaml > arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dt.yaml > arch/arm/boot/dts/qcom-ipq4018-jalapeno.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dt.yaml > > dma@7984000: $nodename:0: 'dma@7984000' does not match '^dma-controller(@.*)?$' > arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dt.yaml > arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dt.yaml > arch/arm/boot/dts/qcom-ipq4018-jalapeno.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dt.yaml > > dma@8e04000: $nodename:0: 'dma@8e04000' does not match '^dma-controller(@.*)?$' > arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dt.yaml > arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dt.yaml > arch/arm/boot/dts/qcom-ipq4018-jalapeno.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dt.yaml > arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dt.yaml > > dma@c184000: $nodename:0: 'dma@c184000' does not match '^dma-controller(@.*)?$' > arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dt.yaml > arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dt.yaml > arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dt.yaml > arch/arm64/boot/dts/qcom/msm8998-mtp.dt.yaml > arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dt.yaml > arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dt.yaml > > dma-controller@17184000: 'iommus' does not match any of the regexes: 'pinctrl-[0-9]+' > arch/arm64/boot/dts/qcom/sdm845-cheza-r1.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-db845c.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-mtp.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dt.yaml > arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dt.yaml > arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml > > dma-controller@704000: 'qcom,config-pipe-trust-reg' does not match any of the regexes: 'pinctrl-[0-9]+' > arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml > > dma-controller@704000: qcom,controlled-remotely: 'oneOf' conditional failed, one must be fixed: > arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml > > dma-controller@7984000: clock-names:0: 'bam_clk' was expected > arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml > > dma-controller@7984000: clock-names: Additional items are not allowed ('bam_clk' was unexpected) > arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml > > dma-controller@7984000: clock-names: ['iface_clk', 'bam_clk'] is too long > arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml > > dma-controller@7984000: clocks: [[9, 138], [9, 137]] is too long > arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dt.yaml As noted with v4 review as well, all the errors reported above are fixed via other patches in this patchset, for e.g.: [PATCH v5 01/22] arm64: dts: qcom: msm8996: Fix qcom,controlled-remotely property [PATCH v5 02/22] arm64: dts: qcom: msm8996: Fix 'dma' nodes in dts [PATCH v5 04/22] dt-bindings: qcom-bam: Add 'interconnects' & 'interconnect-names' to optional properties [PATCH v5 05/22] dt-bindings: qcom-bam: Add 'iommus' to optional properties Regards, Bhupesh
Hi Bjorn, On Sun, 14 Nov 2021 at 00:43, Bjorn Andersson <bjorn.andersson@linaro.org> wrote: > > On Wed 10 Nov 04:59 CST 2021, Bhupesh Sharma wrote: > > > Convert Qualcomm BAM DMA devicetree binding to YAML. > > > > Cc: Thara Gopinath <thara.gopinath@linaro.org> > > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > > Cc: Rob Herring <robh+dt@kernel.org> > > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > > --- > > .../devicetree/bindings/dma/qcom_bam_dma.txt | 50 ---------- > > .../devicetree/bindings/dma/qcom_bam_dma.yaml | 91 +++++++++++++++++++ > > 2 files changed, 91 insertions(+), 50 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > > create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > > > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > > deleted file mode 100644 > > index cf5b9e44432c..000000000000 > > --- a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt > > +++ /dev/null > > @@ -1,50 +0,0 @@ > > -QCOM BAM DMA controller > > - > > -Required properties: > > -- compatible: must be one of the following: > > - * "qcom,bam-v1.4.0" for MSM8974, APQ8074 and APQ8084 > > - * "qcom,bam-v1.3.0" for APQ8064, IPQ8064 and MSM8960 > > - * "qcom,bam-v1.7.0" for MSM8916 > > -- reg: Address range for DMA registers > > -- interrupts: Should contain the one interrupt shared by all channels > > -- #dma-cells: must be <1>, the cell in the dmas property of the client device > > - represents the channel number > > -- clocks: required clock > > -- clock-names: must contain "bam_clk" entry > > -- qcom,ee : indicates the active Execution Environment identifier (0-7) used in > > - the secure world. > > -- qcom,controlled-remotely : optional, indicates that the bam is controlled by > > - remote proccessor i.e. execution environment. > > -- num-channels : optional, indicates supported number of DMA channels in a > > - remotely controlled bam. > > -- qcom,num-ees : optional, indicates supported number of Execution Environments > > - in a remotely controlled bam. > > - > > -Example: > > - > > - uart-bam: dma@f9984000 = { > > - compatible = "qcom,bam-v1.4.0"; > > - reg = <0xf9984000 0x15000>; > > - interrupts = <0 94 0>; > > - clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > > - clock-names = "bam_clk"; > > - #dma-cells = <1>; > > - qcom,ee = <0>; > > - }; > > - > > -DMA clients must use the format described in the dma.txt file, using a two cell > > -specifier for each channel. > > - > > -Example: > > - serial@f991e000 { > > - compatible = "qcom,msm-uart"; > > - reg = <0xf991e000 0x1000> > > - <0xf9944000 0x19000>; > > - interrupts = <0 108 0>; > > - clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, > > - <&gcc GCC_BLSP1_AHB_CLK>; > > - clock-names = "core", "iface"; > > - > > - dmas = <&uart-bam 0>, <&uart-bam 1>; > > - dma-names = "rx", "tx"; > > - }; > > diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > new file mode 100644 > > index 000000000000..3ca222bd10bd > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml > > @@ -0,0 +1,91 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/dma/qcom_bam_dma.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: QCOM BAM DMA controller binding > > + > > +maintainers: > > + - Bhupesh Sharma <bhupesh.sharma@linaro.org> > > + > > +description: | > > + This document defines the binding for the BAM DMA controller > > + found on Qualcomm parts. > > + > > +allOf: > > + - $ref: "dma-controller.yaml#" > > + > > +properties: > > + compatible: > > + enum: > > + - qcom,bam-v1.3.0 # for APQ8064, IPQ8064 and MSM8960 > > + - qcom,bam-v1.4.0 # for MSM8974, APQ8074 and APQ8084 > > + - qcom,bam-v1.7.0 # for MSM8916 > > + > > + reg: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + > > + clock-names: > > + const: bam_clk > > + > > + interrupts: > > + minItems: 1 > > + maxItems: 31 > > The old binding uses the wording "the one interrupt" and at least the > Linux implementation indicates that there's only a single interrupt. > > So I think this should just be maxItems: 1 > > > + > > + num-channels: > > + maximum: 31 > > + description: > > + Indicates supported number of DMA channels in a remotely controlled bam. > > + > > + "#dma-cells": > > + const: 1 > > + description: The single cell represents the channel index. > > + > > + qcom,ee: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + minimum: 0 > > + maximum: 7 > > + description: > > + Indicates the active Execution Environment identifier (0-7) > > + used in the secure world. > > + > > + qcom,controlled-remotely: > > + $ref: /schemas/types.yaml#/definitions/flag > > + description: > > + Indicates that the bam is controlled by remote proccessor i.e. > > + execution environment. > > + > > + qcom,num-ees: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + minimum: 0 > > + maximum: 31 > > + default: 2 > > + description: > > + Indicates supported number of Execution Environments in a > > + remotely controlled bam. > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - "#dma-cells" > > + - qcom,ee > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/clock/qcom,gcc-msm8974.h> > > + dma-controller@f9984000 { > > + compatible = "qcom,bam-v1.4.0"; > > + reg = <0xf9984000 0x15000>; > > + interrupts = <0 94 0>; > > While the txt->yaml conversion should retain the original content, I > think it's okay to fix this line up while you're at it; and make it: > > interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; Sure, will do this in v6. Regards, Bhupesh > > + clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; > > + clock-names = "bam_clk"; > > + #dma-cells = <1>; > > + qcom,ee = <0>; > > + }; > > -- > > 2.31.1 > >
diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt b/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt deleted file mode 100644 index cf5b9e44432c..000000000000 --- a/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt +++ /dev/null @@ -1,50 +0,0 @@ -QCOM BAM DMA controller - -Required properties: -- compatible: must be one of the following: - * "qcom,bam-v1.4.0" for MSM8974, APQ8074 and APQ8084 - * "qcom,bam-v1.3.0" for APQ8064, IPQ8064 and MSM8960 - * "qcom,bam-v1.7.0" for MSM8916 -- reg: Address range for DMA registers -- interrupts: Should contain the one interrupt shared by all channels -- #dma-cells: must be <1>, the cell in the dmas property of the client device - represents the channel number -- clocks: required clock -- clock-names: must contain "bam_clk" entry -- qcom,ee : indicates the active Execution Environment identifier (0-7) used in - the secure world. -- qcom,controlled-remotely : optional, indicates that the bam is controlled by - remote proccessor i.e. execution environment. -- num-channels : optional, indicates supported number of DMA channels in a - remotely controlled bam. -- qcom,num-ees : optional, indicates supported number of Execution Environments - in a remotely controlled bam. - -Example: - - uart-bam: dma@f9984000 = { - compatible = "qcom,bam-v1.4.0"; - reg = <0xf9984000 0x15000>; - interrupts = <0 94 0>; - clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; - clock-names = "bam_clk"; - #dma-cells = <1>; - qcom,ee = <0>; - }; - -DMA clients must use the format described in the dma.txt file, using a two cell -specifier for each channel. - -Example: - serial@f991e000 { - compatible = "qcom,msm-uart"; - reg = <0xf991e000 0x1000> - <0xf9944000 0x19000>; - interrupts = <0 108 0>; - clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, - <&gcc GCC_BLSP1_AHB_CLK>; - clock-names = "core", "iface"; - - dmas = <&uart-bam 0>, <&uart-bam 1>; - dma-names = "rx", "tx"; - }; diff --git a/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml new file mode 100644 index 000000000000..3ca222bd10bd --- /dev/null +++ b/Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml @@ -0,0 +1,91 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/dma/qcom_bam_dma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: QCOM BAM DMA controller binding + +maintainers: + - Bhupesh Sharma <bhupesh.sharma@linaro.org> + +description: | + This document defines the binding for the BAM DMA controller + found on Qualcomm parts. + +allOf: + - $ref: "dma-controller.yaml#" + +properties: + compatible: + enum: + - qcom,bam-v1.3.0 # for APQ8064, IPQ8064 and MSM8960 + - qcom,bam-v1.4.0 # for MSM8974, APQ8074 and APQ8084 + - qcom,bam-v1.7.0 # for MSM8916 + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + clock-names: + const: bam_clk + + interrupts: + minItems: 1 + maxItems: 31 + + num-channels: + maximum: 31 + description: + Indicates supported number of DMA channels in a remotely controlled bam. + + "#dma-cells": + const: 1 + description: The single cell represents the channel index. + + qcom,ee: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 7 + description: + Indicates the active Execution Environment identifier (0-7) + used in the secure world. + + qcom,controlled-remotely: + $ref: /schemas/types.yaml#/definitions/flag + description: + Indicates that the bam is controlled by remote proccessor i.e. + execution environment. + + qcom,num-ees: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 31 + default: 2 + description: + Indicates supported number of Execution Environments in a + remotely controlled bam. + +required: + - compatible + - reg + - interrupts + - "#dma-cells" + - qcom,ee + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/qcom,gcc-msm8974.h> + dma-controller@f9984000 { + compatible = "qcom,bam-v1.4.0"; + reg = <0xf9984000 0x15000>; + interrupts = <0 94 0>; + clocks = <&gcc GCC_BAM_DMA_AHB_CLK>; + clock-names = "bam_clk"; + #dma-cells = <1>; + qcom,ee = <0>; + };
Convert Qualcomm BAM DMA devicetree binding to YAML. Cc: Thara Gopinath <thara.gopinath@linaro.org> Cc: Bjorn Andersson <bjorn.andersson@linaro.org> Cc: Rob Herring <robh+dt@kernel.org> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> --- .../devicetree/bindings/dma/qcom_bam_dma.txt | 50 ---------- .../devicetree/bindings/dma/qcom_bam_dma.yaml | 91 +++++++++++++++++++ 2 files changed, 91 insertions(+), 50 deletions(-) delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt create mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.yaml