[PATCH v4 09/15] dt-bindings: soc: qcom: apr: correct service children

From: Krzysztof Kozlowski
Date: Sat Sep 10 2022 - 05:15:30 EST


The APR bindings were not describing properly children nodes for DAIs.
None of the DTSes use unit addresses for the children, so correct the
nodes and reference their schema: clock-controller, dais and routing.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Reviewed-by: Rob Herring <robh@xxxxxxxxxx>

---

Changes since v3:
1. Re-order patches, so the qcom,q6asm-dais.yaml is used later. Helps in
bisectability.

Changes since v1:
1. Correct also sound/qcom,q6apm-dai.yaml (Rob)
---
.../bindings/soc/qcom/qcom,apr.yaml | 64 +++++++++++++++----
.../bindings/sound/qcom,q6apm-dai.yaml | 10 +--
.../sound/qcom,q6dsp-lpass-clocks.yaml | 16 ++---
.../sound/qcom,q6dsp-lpass-ports.yaml | 16 ++---
4 files changed, 62 insertions(+), 44 deletions(-)

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
index 028c5d105adb..ac508622dc04 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
@@ -97,6 +97,21 @@ patternProperties:
3 = AMDB Service.
4 = Voice processing manager.

+ clock-controller:
+ $ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
+ description: Qualcomm DSP LPASS clock controller
+ unevaluatedProperties: false
+
+ dais:
+ # TODO: Waiting for Documentation/devicetree/bindings/sound/qcom,q6asm.txt
+ type: object
+ description: Qualcomm DSP audio ports
+
+ routing:
+ # TODO: Waiting for Documentation/devicetree/bindings/sound/qcom,q6adm.txt
+ type: object
+ description: Qualcomm DSP LPASS audio routing
+
qcom,protection-domain:
$ref: /schemas/types.yaml#/definitions/string-array
description: protection domain service name and path for apr service
@@ -107,17 +122,44 @@ patternProperties:
"tms/servreg", "msm/modem/wlan_pd".
"tms/servreg", "msm/slpi/sensor_pd".

- '#address-cells':
- const: 1
-
- '#size-cells':
- const: 0
-
- patternProperties:
- "^.*@[0-9a-f]+$":
- type: object
- description:
- Service based devices like clock controllers or digital audio interfaces.
+ allOf:
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,q6afe
+ then:
+ properties:
+ dais:
+ properties:
+ compatible:
+ const: qcom,q6afe-dais
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,q6apm
+ then:
+ properties:
+ dais:
+ properties:
+ compatible:
+ enum:
+ - qcom,q6apm-dais
+ - qcom,q6apm-lpass-dais
+
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,q6asm
+ then:
+ properties:
+ dais:
+ properties:
+ compatible:
+ const: qcom,q6asm-dais

additionalProperties: false

diff --git a/Documentation/devicetree/bindings/sound/qcom,q6apm-dai.yaml b/Documentation/devicetree/bindings/sound/qcom,q6apm-dai.yaml
index 5d972784321d..844d72b30969 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6apm-dai.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,q6apm-dai.yaml
@@ -16,16 +16,12 @@ properties:
compatible:
const: qcom,q6apm-dais

- reg:
- maxItems: 1
-
iommus:
maxItems: 1

required:
- compatible
- iommus
- - reg

additionalProperties: false

@@ -41,13 +37,9 @@ examples:
compatible = "qcom,q6apm";
reg = <1>;

- #address-cells = <1>;
- #size-cells = <0>;
-
- apm-dai@1 {
+ dais {
compatible = "qcom,q6apm-dais";
iommus = <&apps_smmu 0x1801 0x0>;
- reg = <1>;
};
};
};
diff --git a/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-clocks.yaml b/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-clocks.yaml
index f83f00737a2f..604861d84ffa 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-clocks.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-clocks.yaml
@@ -18,9 +18,6 @@ properties:
- qcom,q6afe-clocks
- qcom,q6prm-lpass-clocks

- reg:
- maxItems: 1
-
'#clock-cells':
const: 2
description:
@@ -32,7 +29,6 @@ properties:

required:
- compatible
- - reg
- "#clock-cells"

additionalProperties: false
@@ -46,11 +42,9 @@ examples:
#size-cells = <0>;
apr-service@4 {
reg = <APR_SVC_AFE>;
- #address-cells = <1>;
- #size-cells = <0>;
- clock-controller@2 {
+
+ clock-controller {
compatible = "qcom,q6afe-clocks";
- reg = <2>;
#clock-cells = <2>;
};
};
@@ -66,11 +60,9 @@ examples:
service@2 {
reg = <GPR_PRM_MODULE_IID>;
compatible = "qcom,q6prm";
- #address-cells = <1>;
- #size-cells = <0>;
- clock-controller@2 {
+
+ clock-controller {
compatible = "qcom,q6prm-lpass-clocks";
- reg = <2>;
#clock-cells = <2>;
};
};
diff --git a/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml b/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml
index dc7fba7b92d5..5e666d9fb388 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml
@@ -18,9 +18,6 @@ properties:
- qcom,q6afe-dais
- qcom,q6apm-lpass-dais

- reg:
- maxItems: 1
-
'#sound-dai-cells':
const: 1

@@ -145,7 +142,6 @@ patternProperties:

required:
- compatible
- - reg
- "#sound-dai-cells"
- "#address-cells"
- "#size-cells"
@@ -161,11 +157,9 @@ examples:
#size-cells = <0>;
apr-service@4 {
reg = <APR_SVC_AFE>;
- #address-cells = <1>;
- #size-cells = <0>;
- q6afedai@1 {
+
+ dais {
compatible = "qcom,q6afe-dais";
- reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
@@ -187,11 +181,9 @@ examples:
service@1 {
compatible = "qcom,q6apm";
reg = <GPR_APM_MODULE_IID>;
- #address-cells = <1>;
- #size-cells = <0>;
- q6apmdai@1 {
+
+ dais {
compatible = "qcom,q6apm-lpass-dais";
- reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
--
2.34.1