dt-bindings: arm: qcom-soc: Validate nodes with fallbacks

The schema checking for expected naming patterns for SoC IP block nodes
was really incomplete and was checking only nodes with single
compatible.

Fix this by changing "select:" to "contains:" so every
node, except root nodes, having at least one matching compatible will be
evaluated.

This however will evaluate nodes which have some generic fallbacks (e.g.
syscon), thus the schema for expected compatible should also have
"contains:" (with "anyOf:").

These two above are the only functional changes in this commit and the
rest of the diff is indentation change.  None of the patterns are
changed (neither in "Preferred naming style" group nor in "Legacy
namings"), none of the compatibles are affected.  Basically the second
part of the diff is (simplifying):

 properties:
   compatible:
-    oneOf:
-      ......
+    contains:
+      anyOf:
+        ......

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260721-dt-bindings-qcom-soc-naming-v3-3-8f275c9d3412@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Krzysztof Kozlowski 2026-07-21 17:51:05 +02:00 committed by Bjorn Andersson
parent d00d265688
commit 8ed9b7baf4

View File

@ -22,59 +22,65 @@ description: |
select:
properties:
# Select all nodes which have SoC-based compatibles, but not the root
# "/" node, because its front compatibles do not follow any SoC patterns
$nodename:
pattern: "[^/]"
compatible:
oneOf:
- pattern: "^qcom,.*(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sar|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,.*(eliza|kaanapali|glymur|hawi|mahua|maili|milos|nord|shikra).*$"
contains:
oneOf:
- pattern: "^qcom,.*(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sar|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,.*(eliza|kaanapali|glymur|hawi|mahua|maili|milos|nord|shikra).*$"
required:
- compatible
properties:
compatible:
oneOf:
# Preferred naming style for compatibles of SoC components:
- pattern: "^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+(pro)?-.*$"
- pattern: "^qcom,sar[0-9]+[a-z]?-.*$"
- pattern: "^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$"
- pattern: "^qcom,(eliza|kaanapali|glymur|hawi|mahua|maili|milos|nord|shikra)-.*$"
contains:
anyOf:
# Preferred naming style for compatibles of SoC components:
- pattern: "^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+(pro)?-.*$"
- pattern: "^qcom,sar[0-9]+[a-z]?-.*$"
- pattern: "^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$"
- pattern: "^qcom,(eliza|kaanapali|glymur|hawi|mahua|maili|milos|nord|shikra)-.+$"
# Legacy namings - variations of existing patterns/compatibles are OK,
# but do not add completely new entries to these:
- pattern: "^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,apss-wdt-[a-z]+$" # Codenames variant
- pattern: "^qcom,kpss-gcc-(apq|ipq|mdm|msm)[0-9]+.*$"
- pattern: "^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,rpmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,rpm(cc)?-[a-z]+$" # Codenames variant
- pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sar?|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,scm-[a-z]+$" # Codenames variant
- pattern: "^qcom,tcsr-(apq|ipq|mdm|msm)[0-9]+.*$"
- pattern: "^qcom,usb-hs-phy-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- enum:
- qcom,dsi-ctrl-6g-qcm2290
- qcom,gpucc-sdm630
- qcom,gpucc-sdm660
- qcom,lcc-apq8064
- qcom,lcc-ipq8064
- qcom,lcc-mdm9615
- qcom,lcc-msm8960
- qcom,lpass-cpu-apq8016
- qcom,usb-hs-ipq4019-phy
- qcom,usb-hsic-phy-mdm9615
- qcom,usb-hsic-phy-msm8974
- qcom,usb-ss-ipq4019-phy
- qcom,vqmmc-ipq4019-regulator
# Legacy namings - variations of existing patterns/compatibles are OK,
# but do not add completely new entries to these:
- pattern: "^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,apss-wdt-[a-z]+$" # Codenames variant
- pattern: "^qcom,kpss-gcc-(apq|ipq|mdm|msm)[0-9]+.*$"
- pattern: "^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,rpmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
- pattern: "^qcom,rpm(cc)?-[a-z]+$" # Codenames variant
- pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sar?|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- pattern: "^qcom,scm-[a-z]+$" # Codenames variant
- pattern: "^qcom,tcsr-(apq|ipq|mdm|msm)[0-9]+.*$"
- pattern: "^qcom,usb-hs-phy-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
- enum:
- qcom,dsi-ctrl-6g-qcm2290
- qcom,gpucc-sdm630
- qcom,gpucc-sdm660
- qcom,lcc-apq8064
- qcom,lcc-ipq8064
- qcom,lcc-mdm9615
- qcom,lcc-msm8960
- qcom,lpass-cpu-apq8016
- qcom,usb-hs-ipq4019-phy
- qcom,usb-hsic-phy-mdm9615
- qcom,usb-hsic-phy-msm8974
- qcom,usb-ss-ipq4019-phy
- qcom,vqmmc-ipq4019-regulator
# Legacy compatibles with wild-cards - list cannot grow with new bindings:
- enum:
- qcom,ipq806x-ahci
- qcom,ipq806x-gmac
- qcom,ipq806x-nand
- qcom,ipq806x-sata-phy
- qcom,ipq806x-usb-phy-ss
- qcom,ipq806x-usb-phy-hs
# Legacy compatibles with wild-cards - list cannot grow with new bindings:
- enum:
- qcom,ipq806x-ahci
- qcom,ipq806x-gmac
- qcom,ipq806x-nand
- qcom,ipq806x-sata-phy
- qcom,ipq806x-usb-phy-ss
- qcom,ipq806x-usb-phy-hs
additionalProperties: true