[PATCH v3 0/2] clean up dt_binding_check and dtbs_check warnings of renesas, rsnd.yaml
v2 --> v3: Modified based on Rob's review comments. For example, "ports" and "port" are not allowed at the same time.
For the details, please refer: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2539753.html
v1 --> v2: The analysis was not clear in the previous version, "$ref: audio-graph.yaml#" is not required.
It was then adjusted based on the following patch series: [1] https://lore.kernel.org/r/20210323163634.877511-1-robh@kernel.org/
v1: When I do dt_binding_check for all YAML files, below warning is reported: /root/mainline/Documentation/devicetree/bindings/sound/renesas,rsnd.example.dt.yaml: sound@ec500000: 'dais' is a required property From schema: /root/mainline/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
make dt_binding_check -j24 2>err.txt Before: cat err.txt | wc -l 2
After: cat err.txt | wc -l 0
make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/sound/renesas,rsnd.yaml -j24 2>err.txt Before: cat err.txt | wc -l 130
After: cat err.txt | wc -l 0
Zhen Lei (2): ASoC: dt-bindings: renesas, rsnd: Clear warning 'dais' is a required property ASoC: dt-bindings: renesas, rsnd: Clear warning 'ports' does not match any of the regexes
.../devicetree/bindings/sound/renesas,rsnd.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
When I do dt_binding_check, below warning is reported: Documentation/devicetree/bindings/sound/renesas,rsnd.example.dt.yaml: \ sound@ec500000: 'dais' is a required property
I looked at all the dts files in the "arch/arm64/boot/dts/renesas/" directory. However, the dts node of this driver does not reference any property in file audio-graph.yaml. This can be proved to be true, because after I deleted "$ref: audio-graph.yaml#", the old 'dais' warnings are cleared, and no new warning are generated.
Signed-off-by: Zhen Lei thunder.leizhen@huawei.com --- Documentation/devicetree/bindings/sound/renesas,rsnd.yaml | 1 - 1 file changed, 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml index 1e0e14e889133b8..384191ee497f534 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml @@ -258,7 +258,6 @@ required: - "#sound-dai-cells"
allOf: - - $ref: audio-graph.yaml# - if: properties: compatible:
On Mon, 12 Apr 2021 18:06:37 +0800, Zhen Lei wrote:
When I do dt_binding_check, below warning is reported: Documentation/devicetree/bindings/sound/renesas,rsnd.example.dt.yaml: \ sound@ec500000: 'dais' is a required property
I looked at all the dts files in the "arch/arm64/boot/dts/renesas/" directory. However, the dts node of this driver does not reference any property in file audio-graph.yaml. This can be proved to be true, because after I deleted "$ref: audio-graph.yaml#", the old 'dais' warnings are cleared, and no new warning are generated.
Signed-off-by: Zhen Lei thunder.leizhen@huawei.com
Documentation/devicetree/bindings/sound/renesas,rsnd.yaml | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Rob Herring robh@kernel.org
Currently, if there are more than two ports, or if there is only one port but other properties(such as "#address-cells") is required, these ports are placed under the "ports" node. So add the schema of property "ports".
Otherwise, warnings similar to the following will be reported: arch/arm64/boot/dts/renesas/r8a774a1-beacon-rzg2m-kit.dt.yaml: \ sound@ec500000: 'ports' does not match any of the regexes: \ '^rcar_sound,ctu$', '^rcar_sound,dai$', '^rcar_sound,dvc$', ...
A given binding should just use 'ports' or 'port' depending on it's need. Both are not allowed at the same time. The check is done in "allOf".
Signed-off-by: Zhen Lei thunder.leizhen@huawei.com --- .../devicetree/bindings/sound/renesas,rsnd.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml index 384191ee497f534..32b10fc3789eeac 100644 --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml @@ -115,6 +115,12 @@ properties: $ref: audio-graph-port.yaml# unevaluatedProperties: false
+ ports: + $ref: /schemas/graph.yaml#/properties/ports + patternProperties: + '^port@[0-9]': + $ref: audio-graph-port.yaml# + # use patternProperties to avoid naming "xxx,yyy" issue patternProperties: "^rcar_sound,dvc$": @@ -258,6 +264,12 @@ required: - "#sound-dai-cells"
allOf: + - if: + required: + - ports + then: + properties: + port: false - if: properties: compatible:
On Mon, 12 Apr 2021 18:06:38 +0800, Zhen Lei wrote:
Currently, if there are more than two ports, or if there is only one port but other properties(such as "#address-cells") is required, these ports are placed under the "ports" node. So add the schema of property "ports".
Otherwise, warnings similar to the following will be reported: arch/arm64/boot/dts/renesas/r8a774a1-beacon-rzg2m-kit.dt.yaml: \ sound@ec500000: 'ports' does not match any of the regexes: \ '^rcar_sound,ctu$', '^rcar_sound,dai$', '^rcar_sound,dvc$', ...
A given binding should just use 'ports' or 'port' depending on it's need. Both are not allowed at the same time. The check is done in "allOf".
Signed-off-by: Zhen Lei thunder.leizhen@huawei.com
.../devicetree/bindings/sound/renesas,rsnd.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+)
Reviewed-by: Rob Herring robh@kernel.org
participants (2)
-
Rob Herring
-
Zhen Lei