On Wed, Sep 07, 2022 at 12:15:51PM +0200, Krzysztof Kozlowski wrote: > Convert Qualcomm Audio Stream Manager (Q6ASM) bindings to DT schema. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> > > --- > > Expected warning because the qcom,apr.yaml is being fixed in next commit: > > Documentation/devicetree/bindings/sound/qcom,q6asm.example.dtb: apr: service@7: 'dais' does not match any of the regexes: '^.*@[0-9a-f]+$', 'pinctrl-[0-9]+' > From schema: /home/krzk/dev/linux/linux/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml > > Changes since v1: > 1. New patch. > --- > .../devicetree/bindings/sound/qcom,q6asm.txt | 70 ----------- > .../devicetree/bindings/sound/qcom,q6asm.yaml | 112 ++++++++++++++++++ > 2 files changed, 112 insertions(+), 70 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/sound/qcom,q6asm.txt > create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6asm.yaml Should be qcom,q6asm-dais.yaml or you need to add qcom,q6asm compatible? > > diff --git a/Documentation/devicetree/bindings/sound/qcom,q6asm.txt b/Documentation/devicetree/bindings/sound/qcom,q6asm.txt > deleted file mode 100644 > index 0d0075125243..000000000000 > --- a/Documentation/devicetree/bindings/sound/qcom,q6asm.txt > +++ /dev/null > @@ -1,70 +0,0 @@ > -Qualcomm Audio Stream Manager (Q6ASM) binding > - > -Q6ASM is one of the APR audio service on Q6DSP. > -Please refer to qcom,apr.txt for details of the common apr service bindings > -used by the apr service device. > - > -- but must contain the following property: > - > -- compatible: > - Usage: required > - Value type: <stringlist> > - Definition: must be "qcom,q6asm-v<MAJOR-NUMBER>.<MINOR-NUMBER>". > - Or "qcom,q6asm" where the version number can be queried > - from DSP. > - example "qcom,q6asm-v2.0" Where is this compatible handled now? > - > -= ASM DAIs (Digital Audio Interface) > -"dais" subnode of the ASM node represents dai specific configuration > - > -- compatible: > - Usage: required > - Value type: <stringlist> > - Definition: must be "qcom,q6asm-dais". > - > -- #sound-dai-cells > - Usage: required > - Value type: <u32> > - Definition: Must be 1 > - > -== ASM DAI is subnode of "dais" and represent a dai, it includes board specific > -configuration of each dai. Must contain the following properties. > - > -- reg > - Usage: required > - Value type: <u32> > - Definition: Must be dai id > - > -- direction: > - Usage: Required for Compress offload dais > - Value type: <u32> > - Definition: Specifies the direction of the dai stream > - Q6ASM_DAI_TX_RX (0) for both tx and rx > - Q6ASM_DAI_TX (1) for only tx (Capture/Encode) > - Q6ASM_DAI_RX (2) for only rx (Playback/Decode) > - > -- is-compress-dai: > - Usage: Required for Compress offload dais > - Value type: <boolean> > - Definition: present for Compress offload dais > - > - > -= EXAMPLE > -#include <dt-bindings/sound/qcom,q6asm.h> > - > -apr-service@7 { > - compatible = "qcom,q6asm"; > - reg = <APR_SVC_ASM>; > - q6asmdai: dais { > - compatible = "qcom,q6asm-dais"; > - #address-cells = <1>; > - #size-cells = <0>; > - #sound-dai-cells = <1>; > - > - dai@0 { > - reg = <0>; > - direction = <Q6ASM_DAI_RX>; > - is-compress-dai; > - }; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/sound/qcom,q6asm.yaml b/Documentation/devicetree/bindings/sound/qcom,q6asm.yaml > new file mode 100644 > index 000000000000..505bd64a0717 > --- /dev/null > +++ b/Documentation/devicetree/bindings/sound/qcom,q6asm.yaml > @@ -0,0 +1,112 @@ > +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/sound/qcom,q6asm.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Audio Stream Manager (Q6ASM) > + > +maintainers: > + - Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> > + - Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> > + > +description: > + Q6ASM is one of the APR audio services on Q6DSP. Each of its subnodes > + represent a dai with board specific configuration. > + > +properties: > + compatible: > + enum: > + - qcom,q6asm-dais > + > + iommus: > + maxItems: 1 > + > + '#sound-dai-cells': > + const: 1 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > +patternProperties: > + '^dai@[0-9]+$': > + type: object > + description: > + Q6ASM Digital Audio Interface > + > + properties: > + reg: > + maxItems: 1 > + > + direction: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 1, 2] > + description: | > + The direction of the dai stream:: > + - Q6ASM_DAI_TX_RX (0) for both tx and rx > + - Q6ASM_DAI_TX (1) for only tx (Capture/Encode) > + - Q6ASM_DAI_RX (2) for only rx (Playback/Decode) > + > + is-compress-dai: > + type: boolean > + description: > + Compress offload dai. > + > + dependencies: > + is-compress-dai: ['direction'] > + > + required: > + - reg > + > + additionalProperties: false > + > +required: > + - compatible > + - "#sound-dai-cells" > + - "#address-cells" > + - "#size-cells" > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/soc/qcom,apr.h> > + #include <dt-bindings/sound/qcom,q6asm.h> > + > + apr { > + compatible = "qcom,apr-v2"; > + qcom,domain = <APR_DOMAIN_ADSP>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + service@7 { > + compatible = "qcom,q6asm"; > + reg = <APR_SVC_ASM>; > + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; > + > + dais { > + compatible = "qcom,q6asm-dais"; > + iommus = <&apps_smmu 0x1821 0x0>; > + #address-cells = <1>; > + #size-cells = <0>; > + #sound-dai-cells = <1>; > + > + dai@0 { > + reg = <0>; > + }; > + > + dai@1 { > + reg = <1>; > + }; > + > + dai@2 { > + reg = <2>; > + is-compress-dai; > + direction = <1>; > + }; > + }; > + }; > + }; > -- > 2.34.1 > >