diff mbox series

[v6,2/5] ASoC: dt-bindings: Add dt binding for lpass hdmi

Message ID 1600409084-29093-3-git-send-email-srivasam@codeaurora.org (mailing list archive)
State Superseded
Headers show
Series Qualcomm's lpass-hdmi ASoC driver to support audio over dp port | expand

Commit Message

Srinivasa Rao Mandadapu Sept. 18, 2020, 6:04 a.m. UTC
From: V Sujith Kumar Reddy <vsujithk@codeaurora.org>

Adds bindings for lpass hdmi interface
which can support audio path over dp.

Signed-off-by: Srinivasa Rao <srivasam@codeaurora.org>
Signed-off-by: V Sujith Kumar Reddy <vsujithk@codeaurora.org>
---
 .../devicetree/bindings/sound/qcom,lpass-cpu.yaml  | 74 +++++++++++++++-------
 1 file changed, 52 insertions(+), 22 deletions(-)

Comments

Rob Herring (Arm) Sept. 23, 2020, 8:41 p.m. UTC | #1
On Fri, Sep 18, 2020 at 11:34:41AM +0530, Srinivasa Rao Mandadapu wrote:
> From: V Sujith Kumar Reddy <vsujithk@codeaurora.org>
> 
> Adds bindings for lpass hdmi interface
> which can support audio path over dp.
> 
> Signed-off-by: Srinivasa Rao <srivasam@codeaurora.org>
> Signed-off-by: V Sujith Kumar Reddy <vsujithk@codeaurora.org>
> ---
>  .../devicetree/bindings/sound/qcom,lpass-cpu.yaml  | 74 +++++++++++++++-------
>  1 file changed, 52 insertions(+), 22 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
> index 09c9bd2..f95ef70 100644
> --- a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
> +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
> @@ -24,9 +24,10 @@ properties:
>        - qcom,sc7180-lpass-cpu
>  
>    reg:
> -    maxItems: 1
> +    maxItems: 2
>      description: LPAIF core registers
> -
> +  reg-names:
> +     maxItems: 2
>    clocks:
>      minItems: 3
>      maxItems: 6
> @@ -36,15 +37,16 @@ properties:
>      maxItems: 6
>  
>    interrupts:
> -    maxItems: 1
> +    maxItems: 2
>      description: LPAIF DMA buffer interrupt
> -
> +  interrupt-names:
> +    maxItems: 2
>    qcom,adsp:
>      $ref: /schemas/types.yaml#/definitions/phandle
>      description: Phandle for the audio DSP node
>  
>    iommus:
> -    maxItems: 1
> +    maxItems: 2
>      description: Phandle to apps_smmu node with sid mask
>  
>    power-domains:
> @@ -60,10 +62,12 @@ properties:
>      const: 0
>  
>  patternProperties:
> -  "(^mi2s-[0-9a-f]$|mi2s)":
> +  "^dai-link@[0-9a-f]$":
>      type: object
> -    description: Required properties for each DAI
> -
> +    description: |
> +      LPASS CPU dai node for each I2S device. Bindings of each node
> +      depends on the specific driver providing the functionality and
> +      properties.
>      properties:
>        reg:
>          maxItems: 1
> @@ -85,9 +89,11 @@ patternProperties:
>  required:
>    - compatible
>    - reg
> +  - reg-names
>    - clocks
>    - clock-names
>    - interrupts
> +  - interrupt-names
>    - '#sound-dai-cells'
>  
>  additionalProperties: false
> @@ -134,13 +140,32 @@ allOf:
>      then:
>        properties:
>          clock-names:
> -          items:
> -            - const: pcnoc-sway-clk
> -            - const: audio-core
> -            - const: mclk0
> -            - const: pcnoc-mport-clk
> -            - const: mi2s-bit-clk0
> -            - const: mi2s-bit-clk1
> +          oneOf:
> +           - items:   #for I2S
> +              - const: pcnoc-sway-clk
> +              - const: audio-core
> +              - const: mclk0
> +              - const: pcnoc-mport-clk
> +              - const: mi2s-bit-clk0
> +              - const: mi2s-bit-clk1
> +           - items:   #for HDMI
> +              - const: pcnoc-sway-clk
> +              - const: audio-core
> +              - const: pcnoc-mport-clk
> +        reg-names:
> +          anyOf:
> +            - items:   #for I2S and HDMI
> +              - const: lpass-hdmiif
> +              - const: lpass-lpaif

It would be a bit cleaner if you switch the order. Then you are just 
adding on to the end.

Otherwise,

Reviewed-by: Rob Herring <robh@kernel.org>

> +            - items:   #for I2S
> +              - const: lpass-lpaif
> +        interrupt-names:
> +          anyOf:
> +            - items:   #for I2S and HDMI
> +              - const: lpass-irq-lpaif
> +              - const: lpass-irq-hdmi
> +            - items:   #for I2S
> +              - const: lpass-irq-lpaif
>        required:
>          - iommus
>          - power-domains
> @@ -152,12 +177,15 @@ examples:
>      soc {
>          #address-cells = <2>;
>          #size-cells = <2>;
> -        lpass@62f00000 {
> +        lpass@62d80000 {
>              compatible = "qcom,sc7180-lpass-cpu";
>  
> -            reg = <0 0x62f00000  0 0x29000>;
> -
> -            iommus = <&apps_smmu 0x1020 0>;
> +            reg = <0 0x62d87000 0 0x68000>,
> +                  <0 0x62f00000 0 0x29000>;
> +            reg-names = "lpass-hdmiif",
> +                        "lpass-lpaif";
> +            iommus = <&apps_smmu 0x1020 0>,
> +                     <&apps_smmu 0x1032 0>;
>              power-domains = <&lpass_hm 0>;
>  
>              clocks = <&gcc 131>,
> @@ -171,14 +199,16 @@ examples:
>                            "mclk0", "pcnoc-mport-clk",
>                            "mi2s-bit-clk0", "mi2s-bit-clk1";
>  
> -            interrupts = <0 160 1>;
> -
> +            interrupts = <0 160 1>,
> +                         <0 268 1>;
> +            interrupt-names = "lpass-irq-lpaif",
> +                              "lpass-irq-hdmi";
>              #sound-dai-cells = <1>;
>  
>              #address-cells = <1>;
>              #size-cells = <0>;
>              /* Optional to set different MI2S SD lines */
> -            mi2s-primary@0 {
> +            dai-link@0 {
>                  reg = <MI2S_PRIMARY>;
>                  qcom,playback-sd-lines = <1>;
>                  qcom,capture-sd-lines = <0>;
> -- 
> Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
> is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
index 09c9bd2..f95ef70 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
@@ -24,9 +24,10 @@  properties:
       - qcom,sc7180-lpass-cpu
 
   reg:
-    maxItems: 1
+    maxItems: 2
     description: LPAIF core registers
-
+  reg-names:
+     maxItems: 2
   clocks:
     minItems: 3
     maxItems: 6
@@ -36,15 +37,16 @@  properties:
     maxItems: 6
 
   interrupts:
-    maxItems: 1
+    maxItems: 2
     description: LPAIF DMA buffer interrupt
-
+  interrupt-names:
+    maxItems: 2
   qcom,adsp:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: Phandle for the audio DSP node
 
   iommus:
-    maxItems: 1
+    maxItems: 2
     description: Phandle to apps_smmu node with sid mask
 
   power-domains:
@@ -60,10 +62,12 @@  properties:
     const: 0
 
 patternProperties:
-  "(^mi2s-[0-9a-f]$|mi2s)":
+  "^dai-link@[0-9a-f]$":
     type: object
-    description: Required properties for each DAI
-
+    description: |
+      LPASS CPU dai node for each I2S device. Bindings of each node
+      depends on the specific driver providing the functionality and
+      properties.
     properties:
       reg:
         maxItems: 1
@@ -85,9 +89,11 @@  patternProperties:
 required:
   - compatible
   - reg
+  - reg-names
   - clocks
   - clock-names
   - interrupts
+  - interrupt-names
   - '#sound-dai-cells'
 
 additionalProperties: false
@@ -134,13 +140,32 @@  allOf:
     then:
       properties:
         clock-names:
-          items:
-            - const: pcnoc-sway-clk
-            - const: audio-core
-            - const: mclk0
-            - const: pcnoc-mport-clk
-            - const: mi2s-bit-clk0
-            - const: mi2s-bit-clk1
+          oneOf:
+           - items:   #for I2S
+              - const: pcnoc-sway-clk
+              - const: audio-core
+              - const: mclk0
+              - const: pcnoc-mport-clk
+              - const: mi2s-bit-clk0
+              - const: mi2s-bit-clk1
+           - items:   #for HDMI
+              - const: pcnoc-sway-clk
+              - const: audio-core
+              - const: pcnoc-mport-clk
+        reg-names:
+          anyOf:
+            - items:   #for I2S and HDMI
+              - const: lpass-hdmiif
+              - const: lpass-lpaif
+            - items:   #for I2S
+              - const: lpass-lpaif
+        interrupt-names:
+          anyOf:
+            - items:   #for I2S and HDMI
+              - const: lpass-irq-lpaif
+              - const: lpass-irq-hdmi
+            - items:   #for I2S
+              - const: lpass-irq-lpaif
       required:
         - iommus
         - power-domains
@@ -152,12 +177,15 @@  examples:
     soc {
         #address-cells = <2>;
         #size-cells = <2>;
-        lpass@62f00000 {
+        lpass@62d80000 {
             compatible = "qcom,sc7180-lpass-cpu";
 
-            reg = <0 0x62f00000  0 0x29000>;
-
-            iommus = <&apps_smmu 0x1020 0>;
+            reg = <0 0x62d87000 0 0x68000>,
+                  <0 0x62f00000 0 0x29000>;
+            reg-names = "lpass-hdmiif",
+                        "lpass-lpaif";
+            iommus = <&apps_smmu 0x1020 0>,
+                     <&apps_smmu 0x1032 0>;
             power-domains = <&lpass_hm 0>;
 
             clocks = <&gcc 131>,
@@ -171,14 +199,16 @@  examples:
                           "mclk0", "pcnoc-mport-clk",
                           "mi2s-bit-clk0", "mi2s-bit-clk1";
 
-            interrupts = <0 160 1>;
-
+            interrupts = <0 160 1>,
+                         <0 268 1>;
+            interrupt-names = "lpass-irq-lpaif",
+                              "lpass-irq-hdmi";
             #sound-dai-cells = <1>;
 
             #address-cells = <1>;
             #size-cells = <0>;
             /* Optional to set different MI2S SD lines */
-            mi2s-primary@0 {
+            dai-link@0 {
                 reg = <MI2S_PRIMARY>;
                 qcom,playback-sd-lines = <1>;
                 qcom,capture-sd-lines = <0>;