From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
There are no compatible for "reg/reg-names" and "clock-name" between previous R-Car series and R-Car Gen4.
"reg/reg-names" needs 3 categorize (for Gen1, for Gen2/Gen3, for Gen4), therefore, use 3 if-then to avoid nested if-then-else.
Move "clock-name" detail properties to under allOf to use if-then-else for Gen4 or others.
Link: https://lore.kernel.org/all/87zg9vk0ex.wl-kuninori.morimoto.gx@renesas.com/#... Link: https://lore.kernel.org/all/87r0v2uvm7.wl-kuninori.morimoto.gx@renesas.com/#... Link: https://lore.kernel.org/all/87r0v1t02h.wl-kuninori.morimoto.gx@renesas.com/#... Link: https://lore.kernel.org/all/87y1p7bpma.wl-kuninori.morimoto.gx@renesas.com/#... Reported-by: Geert Uytterhoeven geert+renesas@glider.be Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- .../bindings/sound/renesas,rsnd.yaml | 76 ++++++++++++++++--- 1 file changed, 64 insertions(+), 12 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml index 12ccf29338d9..55e5213b90a1 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml @@ -101,17 +101,7 @@ properties:
clock-names: description: List of necessary clock names. - minItems: 1 - maxItems: 31 - items: - oneOf: - - const: ssi-all - - pattern: '^ssi.[0-9]$' - - pattern: '^src.[0-9]$' - - pattern: '^mix.[0-1]$' - - pattern: '^ctu.[0-1]$' - - pattern: '^dvc.[0-1]$' - - pattern: '^clk_(a|b|c|i)$' + # details are defined below
ports: $ref: audio-graph-port.yaml#/definitions/port-base @@ -288,6 +278,11 @@ required:
allOf: - $ref: dai-common.yaml# + + #-------------------- + # reg/reg-names + #-------------------- + # for Gen1 - if: properties: compatible: @@ -303,7 +298,15 @@ allOf: - scu - ssi - adg - else: + # for Gen2/Gen3 + - if: + properties: + compatible: + contains: + enum: + - renesas,rcar_sound-gen2 + - renesas,rcar_sound-gen3 + then: properties: reg: minItems: 5 @@ -315,6 +318,55 @@ allOf: - ssiu - ssi - audmapp + # for Gen4 + - if: + properties: + compatible: + contains: + const: renesas,rcar_sound-gen4 + then: + properties: + reg: + maxItems: 4 + reg-names: + items: + enum: + - adg + - ssiu + - ssi + - sdmc + + #-------------------- + # clock-names + #-------------------- + - if: + properties: + compatible: + contains: + const: renesas,rcar_sound-gen4 + then: + properties: + clock-names: + maxItems: 3 + items: + enum: + - ssi.0 + - ssiu.0 + - clkin + else: + properties: + clock-names: + minItems: 1 + maxItems: 31 + items: + oneOf: + - const: ssi-all + - pattern: '^ssi.[0-9]$' + - pattern: '^src.[0-9]$' + - pattern: '^mix.[0-1]$' + - pattern: '^ctu.[0-1]$' + - pattern: '^dvc.[0-1]$' + - pattern: '^clk_(a|b|c|i)$'
unevaluatedProperties: false