xref: /linux/Documentation/devicetree/bindings/arm/qcom-soc.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/arm/qcom-soc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SoC compatibles naming convention
8
9maintainers:
10  - Bjorn Andersson <andersson@kernel.org>
11
12description: |
13  Guidelines for new compatibles for SoC blocks/components.
14  When adding new compatibles in new bindings, use the format:
15    qcom,SoC-IP
16
17  For example:
18   qcom,sdm845-llcc-bwmon
19
20  When adding new compatibles to existing bindings, use the format in the
21  existing binding, even if it contradicts the above.
22
23select:
24  properties:
25    # Select all nodes which have SoC-based compatibles, but not the root
26    # "/" node, because its front compatibles do not follow any SoC patterns
27    $nodename:
28      pattern: "[^/]"
29    compatible:
30      contains:
31        oneOf:
32          - pattern: "^qcom,.*(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sar|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
33          - pattern: "^qcom,.*(eliza|kaanapali|glymur|hawi|mahua|maili|milos|nord|shikra).*$"
34  required:
35    - compatible
36
37properties:
38  compatible:
39    contains:
40      anyOf:
41        # Preferred naming style for compatibles of SoC components:
42        - pattern: "^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+(pro)?-.*$"
43        - pattern: "^qcom,sar[0-9]+[a-z]?-.*$"
44        - pattern: "^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$"
45        - pattern: "^qcom,(eliza|kaanapali|glymur|hawi|mahua|maili|milos|nord|shikra)-.+$"
46
47        # Legacy namings - variations of existing patterns/compatibles are OK,
48        # but do not add completely new entries to these:
49        - pattern: "^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
50        - pattern: "^qcom,apss-wdt-[a-z]+$" # Codenames variant
51        - pattern: "^qcom,kpss-gcc-(apq|ipq|mdm|msm)[0-9]+.*$"
52        - pattern: "^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
53        - pattern: "^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
54        - pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
55        - pattern: "^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
56        - pattern: "^qcom,rpmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
57        - pattern: "^qcom,rpm(cc)?-[a-z]+$" # Codenames variant
58        - pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sar?|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
59        - pattern: "^qcom,scm-[a-z]+$" # Codenames variant
60        - pattern: "^qcom,tcsr-(apq|ipq|mdm|msm)[0-9]+.*$"
61        - pattern: "^qcom,usb-hs-phy-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
62        - enum:
63            - qcom,dsi-ctrl-6g-qcm2290
64            - qcom,gpucc-sdm630
65            - qcom,gpucc-sdm660
66            - qcom,lcc-apq8064
67            - qcom,lcc-ipq8064
68            - qcom,lcc-mdm9615
69            - qcom,lcc-msm8960
70            - qcom,lpass-cpu-apq8016
71            - qcom,usb-hs-ipq4019-phy
72            - qcom,usb-hsic-phy-mdm9615
73            - qcom,usb-hsic-phy-msm8974
74            - qcom,usb-ss-ipq4019-phy
75            - qcom,vqmmc-ipq4019-regulator
76
77        # Legacy compatibles with wild-cards - list cannot grow with new bindings:
78        - enum:
79            - qcom,ipq806x-ahci
80            - qcom,ipq806x-gmac
81            - qcom,ipq806x-nand
82            - qcom,ipq806x-sata-phy
83            - qcom,ipq806x-usb-phy-ss
84            - qcom,ipq806x-usb-phy-hs
85
86        # In general non-SoC Qualcomm devices do not need to be listed here,
87        # however in a few cases they got selected by patterns in "select":
88        - pattern: "^qcom,wsa[0-9]+$"
89
90additionalProperties: true
91