From: "Rob Herring (Arm)" <robh@kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Cc: Bjorn Andersson <andersson@kernel.org>,
linux-arm-msm@vger.kernel.org,
Konrad Dybcio <konradybcio@kernel.org>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
Conor Dooley <conor+dt@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>
Subject: Re: [PATCH 3/3] dt-bindings: arm: qcom-soc: Validate nodes with fallbacks
Date: Tue, 19 May 2026 18:56:16 -0500 [thread overview]
Message-ID: <177923497620.3650559.15856076545077851448.robh@kernel.org> (raw)
In-Reply-To: <20260519-dt-bindings-qcom-soc-naming-v1-3-005d29d261ae@oss.qualcomm.com>
On Tue, 19 May 2026 22:03:20 +0200, Krzysztof Kozlowski wrote:
> The schema checking for expected naming patterns for SoC IP block nodes
> was really incomplete and was checking only nodes with single
> compatible. Fixing this and applying schema for nodes with fallbacks is
> not trivial, because obvious solution like:
>
> minItems: 1
> items:
> - oneOf:
> - pattern: ...
> - pattern: ...
> - {}
> - {}
>
> is not allowed by dtschema. The binding should also skip root nodes,
> which have SoC-based fallback, but completely random front compatibles.
>
> Solve this all by:
> 1. Extending the select pattern to match all nodes except root node.
> 2. Apply schema to all items of "compatible" property, which means it
> will be evaluating also all sorts of generic compatibles like
> "syscon". List them all and let's hope that fallback list will not
> grow too much, because generic compatible fallbacks are discouraged.
>
> The benefit is that this schema is finally very specific and evaluates
> all nodes for desired naming.
>
> Diff is a bit obfuscated, due to indentation change so briefly
> explaining:
> 1. None of the patterns are changed (neither in "Preferred naming style"
> group nor in "Legacy namings").
> 2. None of the enums with "Legacy namings" and "Legacy compatibles with
> wild-cards" are changed.
> 3. Add pattern for sound cards.
> 4. Add list with all used generic fallbacks.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> ---
> .../devicetree/bindings/arm/qcom-soc.yaml | 182 ++++++++++++++++-----
> 1 file changed, 137 insertions(+), 45 deletions(-)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/phy/qcom,usb-hsic-phy.example.dtb: phy (qcom,usb-hsic-phy-msm8974): compatible:0: 'anyOf' conditional failed, one must be fixed:
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+(pro)?-.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,sar[0-9]+[a-z]?-.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,(eliza|kaanapali|glymur|hawi|mahua|milos|shikra)-.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,apss-wdt-[a-z]+$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,kpss-gcc-(apq|ipq|mdm|msm)[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,rpmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sar?|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,scm-[a-z]+$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,tcsr-(apq|ipq|mdm|msm)[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' does not match '^qcom,usb-hs-phy-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy-msm8974' is not one of ['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-ss-ipq4019-phy', 'qcom,usb-hs-ipq4019-phy', 'qcom,vqmmc-ipq4019-regulator']
'qcom,usb-hsic-phy-msm8974' is not one of ['qcom,ipq806x-ahci', 'qcom,ipq806x-gmac', 'qcom,ipq806x-nand', 'qcom,ipq806x-sata-phy', 'qcom,ipq806x-usb-phy-ss', 'qcom,ipq806x-usb-phy-hs']
'qcom,usb-hsic-phy-msm8974' does not match '^.*,.*sndcard$'
'qcom,usb-hsic-phy-msm8974' is not one of ['arm,gic-v3', 'arm,mmu-500', 'generic-ahci', 'jedec,ufs-2.0', 'mmio-sram', 'qcom,adreno-smmu', 'qcom,aoss-qmp', 'qcom,cpr', 'qcom,cpufreq-epss', 'qcom,cpufreq-hw', 'qcom,dcc', 'qcom,dwc3', 'qcom,epss-l3', 'qcom,eud', 'qcom,glink-smd-rpm', 'qcom,inline-crypto-engine', 'qcom,ipcc', 'qcom,kpss-gcc', 'qcom,kpss-timer', 'qcom,kpss-wdt', 'qcom,mdp5', 'qcom,mdss-dsi-ctrl', 'qcom,msm-iommu-v1', 'qcom,msm-iommu-v2', 'qcom,msm-timer', 'qcom,osm-l3', 'qcom,pcie2-phy', 'qcom,pdc', 'qcom,pmic-glink', 'qcom,qce', 'qcom,qfprom', 'qcom,qspi-v1', 'qcom,qusb2-v2-phy', 'qcom,rpm-proc', 'qcom,rpmh-rsc', 'qcom,rpmcc', 'qcom,saw2', 'qcom,scm', 'qcom,sdhci-msm-v4', 'qcom,sdhci-msm-v5', 'qcom,sec-qfprom', 'qcom,smd-rpm', 'qcom,smmu-500', 'qcom,smmu-v2', 'qcom,snps-dwc3', 'qcom,ssc-block-bus', 'qcom,tcsr-mutex', 'qcom,trng', 'qcom,tsens-v0_1', 'qcom,tsens-v1', 'qcom,tsens-v2', 'qcom,ufshc', 'qcom,usb-hs-phy', 'qcom,usb-snps-hs-5nm-phy', 'qcom,usb-snps-hs-7nm-phy',
'simple-mfd', 'snps,dwmac', 'syscon']
from schema $id: http://devicetree.org/schemas/arm/qcom-soc.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/phy/qcom,usb-hsic-phy.example.dtb: phy (qcom,usb-hsic-phy-msm8974): compatible:1: 'anyOf' conditional failed, one must be fixed:
'qcom,usb-hsic-phy' does not match '^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+(pro)?-.*$'
'qcom,usb-hsic-phy' does not match '^qcom,sar[0-9]+[a-z]?-.*$'
'qcom,usb-hsic-phy' does not match '^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$'
'qcom,usb-hsic-phy' does not match '^qcom,(eliza|kaanapali|glymur|hawi|mahua|milos|shikra)-.*$'
'qcom,usb-hsic-phy' does not match '^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,apss-wdt-[a-z]+$'
'qcom,usb-hsic-phy' does not match '^qcom,kpss-gcc-(apq|ipq|mdm|msm)[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,rpmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sar?|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,scm-[a-z]+$'
'qcom,usb-hsic-phy' does not match '^qcom,tcsr-(apq|ipq|mdm|msm)[0-9]+.*$'
'qcom,usb-hsic-phy' does not match '^qcom,usb-hs-phy-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$'
'qcom,usb-hsic-phy' is not one of ['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-ss-ipq4019-phy', 'qcom,usb-hs-ipq4019-phy', 'qcom,vqmmc-ipq4019-regulator']
'qcom,usb-hsic-phy' is not one of ['qcom,ipq806x-ahci', 'qcom,ipq806x-gmac', 'qcom,ipq806x-nand', 'qcom,ipq806x-sata-phy', 'qcom,ipq806x-usb-phy-ss', 'qcom,ipq806x-usb-phy-hs']
'qcom,usb-hsic-phy' does not match '^.*,.*sndcard$'
'qcom,usb-hsic-phy' is not one of ['arm,gic-v3', 'arm,mmu-500', 'generic-ahci', 'jedec,ufs-2.0', 'mmio-sram', 'qcom,adreno-smmu', 'qcom,aoss-qmp', 'qcom,cpr', 'qcom,cpufreq-epss', 'qcom,cpufreq-hw', 'qcom,dcc', 'qcom,dwc3', 'qcom,epss-l3', 'qcom,eud', 'qcom,glink-smd-rpm', 'qcom,inline-crypto-engine', 'qcom,ipcc', 'qcom,kpss-gcc', 'qcom,kpss-timer', 'qcom,kpss-wdt', 'qcom,mdp5', 'qcom,mdss-dsi-ctrl', 'qcom,msm-iommu-v1', 'qcom,msm-iommu-v2', 'qcom,msm-timer', 'qcom,osm-l3', 'qcom,pcie2-phy', 'qcom,pdc', 'qcom,pmic-glink', 'qcom,qce', 'qcom,qfprom', 'qcom,qspi-v1', 'qcom,qusb2-v2-phy', 'qcom,rpm-proc', 'qcom,rpmh-rsc', 'qcom,rpmcc', 'qcom,saw2', 'qcom,scm', 'qcom,sdhci-msm-v4', 'qcom,sdhci-msm-v5', 'qcom,sec-qfprom', 'qcom,smd-rpm', 'qcom,smmu-500', 'qcom,smmu-v2', 'qcom,snps-dwc3', 'qcom,ssc-block-bus', 'qcom,tcsr-mutex', 'qcom,trng', 'qcom,tsens-v0_1', 'qcom,tsens-v1', 'qcom,tsens-v2', 'qcom,ufshc', 'qcom,usb-hs-phy', 'qcom,usb-snps-hs-5nm-phy', 'qcom,usb-snps-hs-7nm-phy', 'simple-
mfd', 'snps,dwmac', 'syscon']
from schema $id: http://devicetree.org/schemas/arm/qcom-soc.yaml
doc reference errors (make refcheckdocs):
See https://patchwork.kernel.org/project/devicetree/patch/20260519-dt-bindings-qcom-soc-naming-v1-3-005d29d261ae@oss.qualcomm.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
next prev parent reply other threads:[~2026-05-19 23:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-19 20:03 [PATCH 0/3] dt-bindings: arm: qcom-soc: Improve validation of expected SoC naming Krzysztof Kozlowski
2026-05-19 20:03 ` [PATCH 1/3] dt-bindings: arm: qcoms-c: Include Eliza, Kaanapali and others in SoC names Krzysztof Kozlowski
2026-05-20 10:05 ` Konrad Dybcio
2026-05-20 10:53 ` Krzysztof Kozlowski
2026-05-19 20:03 ` [PATCH 2/3] dt-bindings: arm: qcom-soc: Document more of existing legacy style compatibles Krzysztof Kozlowski
2026-05-20 10:04 ` Konrad Dybcio
2026-05-20 10:55 ` Krzysztof Kozlowski
2026-05-19 20:03 ` [PATCH 3/3] dt-bindings: arm: qcom-soc: Validate nodes with fallbacks Krzysztof Kozlowski
2026-05-19 23:56 ` Rob Herring (Arm) [this message]
2026-05-20 10:05 ` [PATCH 0/3] dt-bindings: arm: qcom-soc: Improve validation of expected SoC naming Konrad Dybcio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=177923497620.3650559.15856076545077851448.robh@kernel.org \
--to=robh@kernel.org \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzysztof.kozlowski@oss.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®