[PATCH 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro

Srinivas Kandagatla posted 2 patches 3 years, 4 months ago
There is a newer version of this series
[PATCH 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
Posted by Srinivas Kandagatla 3 years, 4 months ago
LPASS VA Macro now has soundwire master to deal with access to
analog mic in low power island use cases. This also means that VA macro
now needs to get hold of the npl clock too. Add clock bindings required
for this.

As part of adding this bindings, also update bindings to be able to
specific and associate the clock names specific to the SoC.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 .../bindings/sound/qcom,lpass-va-macro.yaml   | 72 ++++++++++++++++---
 1 file changed, 64 insertions(+), 8 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
index c36caf90b837..848e34111df1 100644
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
@@ -27,16 +27,13 @@ properties:
     const: 0
 
   clocks:
-    maxItems: 3
+    minItems: 1
+    maxItems: 4
+
 
   clock-names:
-    oneOf:
-      - items:   #for ADSP based platforms
-          - const: mclk
-          - const: core
-          - const: dcodec
-      - items:   #for ADSP bypass based platforms
-          - const: mclk
+    minItems: 1
+    maxItems: 4
 
   clock-output-names:
     maxItems: 1
@@ -61,6 +58,65 @@ required:
   - reg
   - "#sound-dai-cells"
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,sc7280-lpass-va-macro
+    then:
+      properties:
+        clocks:
+          minItems: 1
+          maxItems: 1
+        clock-names:
+          items:
+            - const: mclk
+      required:
+        - clock-names
+        - clocks
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,sm8250-lpass-va-macro
+    then:
+      properties:
+        clocks:
+          minItems: 3
+          maxItems: 3
+        clock-names:
+          items:
+            - const: mclk
+            - const: core
+            - const: dcodec
+      required:
+        - clock-names
+        - clocks
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc8280xp-lpass-va-macro
+              - qcom,sm8450-lpass-va-macro
+    then:
+      properties:
+        clocks:
+          minItems: 4
+          maxItems: 4
+        clock-names:
+          items:
+            - const: mclk
+            - const: npl
+            - const: core
+            - const: dcodec
+      required:
+        - clock-names
+        - clocks
+
 additionalProperties: false
 
 examples:
-- 
2.25.1
Re: [PATCH 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
Posted by Krzysztof Kozlowski 3 years, 4 months ago
On 15/11/2022 11:55, Srinivas Kandagatla wrote:
> LPASS VA Macro now has soundwire master to deal with access to
> analog mic in low power island use cases. This also means that VA macro
> now needs to get hold of the npl clock too. Add clock bindings required
> for this.
> 
> As part of adding this bindings, also update bindings to be able to
> specific and associate the clock names specific to the SoC.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  .../bindings/sound/qcom,lpass-va-macro.yaml   | 72 ++++++++++++++++---
>  1 file changed, 64 insertions(+), 8 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
> index c36caf90b837..848e34111df1 100644
> --- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
> +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
> @@ -27,16 +27,13 @@ properties:
>      const: 0
>  
>    clocks:
> -    maxItems: 3
> +    minItems: 1
> +    maxItems: 4
> +
>  
>    clock-names:
> -    oneOf:
> -      - items:   #for ADSP based platforms
> -          - const: mclk
> -          - const: core
> -          - const: dcodec
> -      - items:   #for ADSP bypass based platforms
> -          - const: mclk
> +    minItems: 1
> +    maxItems: 4
>  
>    clock-output-names:
>      maxItems: 1
> @@ -61,6 +58,65 @@ required:
>    - reg
>    - "#sound-dai-cells"
>  
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: qcom,sc7280-lpass-va-macro
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 1

You can skip minItems here.

> +          maxItems: 1
> +        clock-names:
> +          items:
> +            - const: mclk
> +      required:
> +        - clock-names
> +        - clocks

IIUC, all variants require now clocks, so these two lines should be part
of top level "required:".

> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: qcom,sm8250-lpass-va-macro
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 3
> +          maxItems: 3
> +        clock-names:
> +          items:
> +            - const: mclk
> +            - const: core
> +            - const: dcodec
> +      required:
> +        - clock-names
> +        - clocks
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - qcom,sc8280xp-lpass-va-macro
> +              - qcom,sm8450-lpass-va-macro
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 4
> +          maxItems: 4
> +        clock-names:
> +          items:
> +            - const: mclk
> +            - const: npl

How about making it the last clock so the order matches with sm8250?


Best regards,
Krzysztof
Re: [PATCH 1/2] ASoC: dt-bindings: lpass-va: add npl clock for new VA macro
Posted by Srinivas Kandagatla 3 years, 4 months ago
Thanks Krzystof,

On 15/11/2022 14:21, Krzysztof Kozlowski wrote:
> On 15/11/2022 11:55, Srinivas Kandagatla wrote:
>> LPASS VA Macro now has soundwire master to deal with access to
>> analog mic in low power island use cases. This also means that VA macro
>> now needs to get hold of the npl clock too. Add clock bindings required
>> for this.
>>
>> As part of adding this bindings, also update bindings to be able to
>> specific and associate the clock names specific to the SoC.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
>>   .../bindings/sound/qcom,lpass-va-macro.yaml   | 72 ++++++++++++++++---
>>   1 file changed, 64 insertions(+), 8 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
>> index c36caf90b837..848e34111df1 100644
>> --- a/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
>> +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
>> @@ -27,16 +27,13 @@ properties:
>>       const: 0
>>   
>>     clocks:
>> -    maxItems: 3
>> +    minItems: 1
>> +    maxItems: 4
>> +
>>   
>>     clock-names:
>> -    oneOf:
>> -      - items:   #for ADSP based platforms
>> -          - const: mclk
>> -          - const: core
>> -          - const: dcodec
>> -      - items:   #for ADSP bypass based platforms
>> -          - const: mclk
>> +    minItems: 1
>> +    maxItems: 4
>>   
>>     clock-output-names:
>>       maxItems: 1
>> @@ -61,6 +58,65 @@ required:
>>     - reg
>>     - "#sound-dai-cells"
>>   
>> +allOf:
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: qcom,sc7280-lpass-va-macro
>> +    then:
>> +      properties:
>> +        clocks:
>> +          minItems: 1
> 
> You can skip minItems here.

I have addressed all the comments including this, will send a v2 with 
these changes.

--srini
> 
>> +          maxItems: 1
>> +        clock-names:
>> +          items:
>> +            - const: mclk
>> +      required:
>> +        - clock-names
>> +        - clocks
> 
> IIUC, all variants require now clocks, so these two lines should be part
> of top level "required:".
> 
>> +
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: qcom,sm8250-lpass-va-macro
>> +    then:
>> +      properties:
>> +        clocks:
>> +          minItems: 3
>> +          maxItems: 3
>> +        clock-names:
>> +          items:
>> +            - const: mclk
>> +            - const: core
>> +            - const: dcodec
>> +      required:
>> +        - clock-names
>> +        - clocks
>> +
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - qcom,sc8280xp-lpass-va-macro
>> +              - qcom,sm8450-lpass-va-macro
>> +    then:
>> +      properties:
>> +        clocks:
>> +          minItems: 4
>> +          maxItems: 4
>> +        clock-names:
>> +          items:
>> +            - const: mclk
>> +            - const: npl
> 
> How about making it the last clock so the order matches with sm8250?
> 
> 
> Best regards,
> Krzysztof
>