.../devicetree/bindings/arm/qcom-soc.yaml | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/qcom-soc.yaml
Compatibles can come in two formats. Either "vendor,ip-soc" or
"vendor,soc-ip". Qualcomm bindings were mixing both of usages, so add a
DT schema file documenting preferred policy and enforcing it for all new
compatibles, except few existing patterns.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Changes since v3:
1. Add qcom,kpss-wdt-xxx to pattern for exceptions.
2. Add ipq806x entries to list of exceptions.
Changes since v2:
1. Narrow the expected pattern to be followed by dash '-' after model
number (msm8996-) or by two letters and a dash (sc8280xp-).
2. Add qcom,apss-wdt-xxx to list of exceptions.
3. Use comment instead of description in the oneOf list.
Changes since v1:
1. Add schema instead of readme (Rob).
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: Alex Elder <elder@linaro.org>
Cc: Robert Foss <robert.foss@linaro.org>
Cc: Bhupesh Sharma <bhupesh.sharma@linaro.org>
---
.../devicetree/bindings/arm/qcom-soc.yaml | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/qcom-soc.yaml
diff --git a/Documentation/devicetree/bindings/arm/qcom-soc.yaml b/Documentation/devicetree/bindings/arm/qcom-soc.yaml
new file mode 100644
index 000000000000..0be18c1d2961
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/qcom-soc.yaml
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/qcom-soc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SoC compatibles naming convention
+
+maintainers:
+ - Bjorn Andersson <bjorn.andersson@linaro.org>
+
+description: |
+ Guidelines for new compatibles for SoC blocks/components.
+ When adding new compatibles in new bindings, use the format::
+ qcom,SoC-IP
+
+ For example::
+ qcom,sdm845-llcc-bwmon
+
+ When adding new compatibles to existing bindings, use the format in the
+ existing binding, even if it contradicts the above.
+
+select:
+ properties:
+ compatible:
+ pattern: "^qcom,.*(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+ required:
+ - compatible
+
+properties:
+ compatible:
+ oneOf:
+ # Preferred naming style for compatibles of SoC components:
+ - pattern: "^qcom,(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+-.*$"
+ - pattern: "^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$"
+
+ # 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|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+ - pattern: "^qcom,gcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+ - pattern: "^qcom,mmcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+ - pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+ - pattern: "^qcom,rpm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+ - pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$"
+ - enum:
+ - 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
+
+ # Legacy compatibles with wild-cards - list cannot grow with new bindings:
+ - enum:
+ - qcom,ipq806x-nand
+ - qcom,ipq806x-usb-phy-ss
+ - qcom,ipq806x-usb-phy-hs
+
+additionalProperties: true
--
2.34.1
On Tue, 05 Jul 2022 18:13:01 +0200, Krzysztof Kozlowski wrote: > Compatibles can come in two formats. Either "vendor,ip-soc" or > "vendor,soc-ip". Qualcomm bindings were mixing both of usages, so add a > DT schema file documenting preferred policy and enforcing it for all new > compatibles, except few existing patterns. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > --- > > Changes since v3: > 1. Add qcom,kpss-wdt-xxx to pattern for exceptions. > 2. Add ipq806x entries to list of exceptions. > > Changes since v2: > 1. Narrow the expected pattern to be followed by dash '-' after model > number (msm8996-) or by two letters and a dash (sc8280xp-). > 2. Add qcom,apss-wdt-xxx to list of exceptions. > 3. Use comment instead of description in the oneOf list. > > Changes since v1: > 1. Add schema instead of readme (Rob). > > Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Cc: Vinod Koul <vkoul@kernel.org> > Cc: Alex Elder <elder@linaro.org> > Cc: Robert Foss <robert.foss@linaro.org> > Cc: Bhupesh Sharma <bhupesh.sharma@linaro.org> > --- > .../devicetree/bindings/arm/qcom-soc.yaml | 63 +++++++++++++++++++ > 1 file changed, 63 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/qcom-soc.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.example.dtb: /: compatible: 'oneOf' conditional failed, one must be fixed: 'qcom,qcs404' does not match '^qcom,(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+-.*$' 'qcom,qcs404' does not match '^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$' 'qcom,qcs404' does not match '^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' 'qcom,qcs404' does not match '^qcom,gcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' 'qcom,qcs404' does not match '^qcom,mmcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' 'qcom,qcs404' does not match '^qcom,pcie-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' 'qcom,qcs404' does not match '^qcom,rpm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' 'qcom,qcs404' does not match '^qcom,scm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' 'qcom,qcs404' is not one of ['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,qcs404' is not one of ['qcom,ipq806x-nand', 'qcom,ipq806x-usb-phy-ss', 'qcom,ipq806x-usb-phy-hs'] From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/arm/qcom-soc.yaml doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/patch/ This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. 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.
On 05/07/2022 21:18, Rob Herring wrote: > On Tue, 05 Jul 2022 18:13:01 +0200, Krzysztof Kozlowski wrote: >> Compatibles can come in two formats. Either "vendor,ip-soc" or >> "vendor,soc-ip". Qualcomm bindings were mixing both of usages, so add a >> DT schema file documenting preferred policy and enforcing it for all new >> compatibles, except few existing patterns. >> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> >> >> --- >> >> Changes since v3: >> 1. Add qcom,kpss-wdt-xxx to pattern for exceptions. >> 2. Add ipq806x entries to list of exceptions. >> >> Changes since v2: >> 1. Narrow the expected pattern to be followed by dash '-' after model >> number (msm8996-) or by two letters and a dash (sc8280xp-). >> 2. Add qcom,apss-wdt-xxx to list of exceptions. >> 3. Use comment instead of description in the oneOf list. >> >> Changes since v1: >> 1. Add schema instead of readme (Rob). >> >> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> >> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> Cc: Vinod Koul <vkoul@kernel.org> >> Cc: Alex Elder <elder@linaro.org> >> Cc: Robert Foss <robert.foss@linaro.org> >> Cc: Bhupesh Sharma <bhupesh.sharma@linaro.org> >> --- >> .../devicetree/bindings/arm/qcom-soc.yaml | 63 +++++++++++++++++++ >> 1 file changed, 63 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/arm/qcom-soc.yaml >> > > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' > on your patch (DT_CHECKER_FLAGS is new in v5.13): > > yamllint warnings/errors: > > dtschema/dtc warnings/errors: > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.example.dtb: /: compatible: 'oneOf' conditional failed, one must be fixed: > 'qcom,qcs404' does not match '^qcom,(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+-.*$' > 'qcom,qcs404' does not match '^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$' > 'qcom,qcs404' does not match '^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > 'qcom,qcs404' does not match '^qcom,gcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > 'qcom,qcs404' does not match '^qcom,mmcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > 'qcom,qcs404' does not match '^qcom,pcie-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > 'qcom,qcs404' does not match '^qcom,rpm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > 'qcom,qcs404' does not match '^qcom,scm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > 'qcom,qcs404' is not one of ['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,qcs404' is not one of ['qcom,ipq806x-nand', 'qcom,ipq806x-usb-phy-ss', 'qcom,ipq806x-usb-phy-hs'] > From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/arm/qcom-soc.yaml > This is fixed by: https://lore.kernel.org/all/20220627143340.477120-1-krzysztof.kozlowski@linaro.org/ https://lore.kernel.org/all/20220628092253.21905-1-krzysztof.kozlowski@linaro.org/ Best regards, Krzysztof
On Wed, Jul 06, 2022 at 08:55:18AM +0200, Krzysztof Kozlowski wrote: > On 05/07/2022 21:18, Rob Herring wrote: > > On Tue, 05 Jul 2022 18:13:01 +0200, Krzysztof Kozlowski wrote: > >> Compatibles can come in two formats. Either "vendor,ip-soc" or > >> "vendor,soc-ip". Qualcomm bindings were mixing both of usages, so add a > >> DT schema file documenting preferred policy and enforcing it for all new > >> compatibles, except few existing patterns. > >> > >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > >> > >> --- > >> > >> Changes since v3: > >> 1. Add qcom,kpss-wdt-xxx to pattern for exceptions. > >> 2. Add ipq806x entries to list of exceptions. > >> > >> Changes since v2: > >> 1. Narrow the expected pattern to be followed by dash '-' after model > >> number (msm8996-) or by two letters and a dash (sc8280xp-). > >> 2. Add qcom,apss-wdt-xxx to list of exceptions. > >> 3. Use comment instead of description in the oneOf list. > >> > >> Changes since v1: > >> 1. Add schema instead of readme (Rob). > >> > >> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > >> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >> Cc: Vinod Koul <vkoul@kernel.org> > >> Cc: Alex Elder <elder@linaro.org> > >> Cc: Robert Foss <robert.foss@linaro.org> > >> Cc: Bhupesh Sharma <bhupesh.sharma@linaro.org> > >> --- > >> .../devicetree/bindings/arm/qcom-soc.yaml | 63 +++++++++++++++++++ > >> 1 file changed, 63 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/arm/qcom-soc.yaml > >> > > > > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' > > on your patch (DT_CHECKER_FLAGS is new in v5.13): > > > > yamllint warnings/errors: > > > > dtschema/dtc warnings/errors: > > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.example.dtb: /: compatible: 'oneOf' conditional failed, one must be fixed: > > 'qcom,qcs404' does not match '^qcom,(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+-.*$' > > 'qcom,qcs404' does not match '^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$' > > 'qcom,qcs404' does not match '^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > > 'qcom,qcs404' does not match '^qcom,gcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > > 'qcom,qcs404' does not match '^qcom,mmcc-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > > 'qcom,qcs404' does not match '^qcom,pcie-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > > 'qcom,qcs404' does not match '^qcom,rpm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > > 'qcom,qcs404' does not match '^qcom,scm-(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$' > > 'qcom,qcs404' is not one of ['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,qcs404' is not one of ['qcom,ipq806x-nand', 'qcom,ipq806x-usb-phy-ss', 'qcom,ipq806x-usb-phy-hs'] > > From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/arm/qcom-soc.yaml > > > > This is fixed by: > https://lore.kernel.org/all/20220627143340.477120-1-krzysztof.kozlowski@linaro.org/ > https://lore.kernel.org/all/20220628092253.21905-1-krzysztof.kozlowski@linaro.org/ Okay, as long as those are applied together: Reviewed-by: Rob Herring <robh@kernel.org>
On Tue, Jul 05, 2022 at 06:13:01PM +0200, Krzysztof Kozlowski wrote: > Compatibles can come in two formats. Either "vendor,ip-soc" or > "vendor,soc-ip". Qualcomm bindings were mixing both of usages, so add a > DT schema file documenting preferred policy and enforcing it for all new > compatibles, except few existing patterns. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> [...] > diff --git a/Documentation/devicetree/bindings/arm/qcom-soc.yaml b/Documentation/devicetree/bindings/arm/qcom-soc.yaml > new file mode 100644 > index 000000000000..0be18c1d2961 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/qcom-soc.yaml [...] > + pattern: "^qcom,.*(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$" FWIW: There is also the "qcm" prefix, used e.g. in "qcom,qcm2290-tlmm". Also, the APQ equivalent of "sdm" would be "sda", e.g. SDA845 which is used in the DB845c. (Not sure if someone will ever use the SDA variant in a compatible though.) Thanks, Stephan
On 05/07/2022 19:19, Stephan Gerhold wrote: > On Tue, Jul 05, 2022 at 06:13:01PM +0200, Krzysztof Kozlowski wrote: >> Compatibles can come in two formats. Either "vendor,ip-soc" or >> "vendor,soc-ip". Qualcomm bindings were mixing both of usages, so add a >> DT schema file documenting preferred policy and enforcing it for all new >> compatibles, except few existing patterns. >> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > [...] >> diff --git a/Documentation/devicetree/bindings/arm/qcom-soc.yaml b/Documentation/devicetree/bindings/arm/qcom-soc.yaml >> new file mode 100644 >> index 000000000000..0be18c1d2961 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/arm/qcom-soc.yaml > [...] >> + pattern: "^qcom,.*(apq|ipq|mdm|msm|qcs|sa|sc|sdm|sdx|sm)[0-9]+.*$" > > FWIW: There is also the "qcm" prefix, used e.g. in "qcom,qcm2290-tlmm". > > Also, the APQ equivalent of "sdm" would be "sda", e.g. SDA845 which is > used in the DB845c. (Not sure if someone will ever use the SDA variant > in a compatible though.) I expect the list/pattern to grow, but of course I can add these now. Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.