# SPDX-License-Identifier: GPL-2.0 %YAML 1.2 --- $id: http://devicetree.org/schemas/arm/qcom.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: QCOM device tree bindings maintainers: - Stephen Boyd description: | Some qcom based bootloaders identify the dtb blob based on a set of device properties like SoC and platform and revisions of those components. To support this scheme, we encode this information into the board compatible string. Each board must specify a top-level board compatible string with the following format: compatible = "qcom,[-][-]-[/][-]" The 'SoC' and 'board' elements are required. All other elements are optional. The 'SoC' element must be one of the following strings: apq8016 apq8074 apq8084 apq8096 ipq6018 ipq8074 mdm9615 msm8916 msm8974 msm8992 msm8994 msm8996 sa8155p sa8540p sc7180 sc7280 sc8180x sc8280xp sdm630 sdm660 sdm845 sdx55 sm8150 sm8250 sm8350 The 'board' element must be one of the following strings: adp cdp cp01-c1 dragonboard hk01 hk10-c1 hk10-c2 idp liquid mtp qrd sbc The 'soc_version' and 'board_version' elements take the form of v. where the minor number may be omitted when it's zero, i.e. v1.0 is the same as v1. If all versions of the 'board_version' elements match, then a wildcard '*' should be used, e.g. 'v*'. The 'foundry_id' and 'subtype' elements are one or more digits from 0 to 9. Examples: "qcom,msm8916-v1-cdp-pm8916-v2.1" A CDP board with an msm8916 SoC, version 1 paired with a pm8916 PMIC of version 2.1. "qcom,apq8074-v2.0-2-dragonboard/1-v0.1" A dragonboard board v0.1 of subtype 1 with an apq8074 SoC version 2, made in foundry 2. properties: $nodename: const: "/" compatible: oneOf: - items: - enum: - qcom,apq8016-sbc - const: qcom,apq8016 - items: - enum: - qcom,apq8064-cm-qs600 - qcom,apq8064-ifc6410 - const: qcom,apq8064 - items: - enum: - qcom,apq8074-dragonboard - const: qcom,apq8074 - items: - enum: - qcom,apq8060-dragonboard - qcom,msm8660-surf - const: qcom,msm8660 - items: - enum: - qcom,apq8084-mtp - qcom,apq8084-sbc - const: qcom,apq8084 - items: - enum: - qcom,msm8960-cdp - const: qcom,msm8960 - items: - enum: - fairphone,fp2 - lge,hammerhead - sony,xperia-amami - sony,xperia-castor - sony,xperia-honami - const: qcom,msm8974 - items: - enum: - alcatel,idol347 - const: qcom,msm8916-mtp/1 - const: qcom,msm8916-mtp - const: qcom,msm8916 - items: - enum: - longcheer,l8150 - samsung,a3u-eur - samsung,a5u-eur - const: qcom,msm8916 - items: - enum: - sony,karin_windy - sony,karin-row - sony,satsuki-row - sony,sumire-row - sony,suzuran-row - qcom,msm8994 - const: qcom,apq8094 - items: - const: qcom,msm8996-mtp - items: - enum: - qcom,ipq4019-ap-dk04.1-c3 - qcom,ipq4019-ap-dk07.1-c1 - qcom,ipq4019-ap-dk07.1-c2 - qcom,ipq4019-dk04.1-c1 - const: qcom,ipq4019 - items: - enum: - qcom,ipq8064-ap148 - const: qcom,ipq8064 - items: - enum: - qcom,ipq8074-hk01 - qcom,ipq8074-hk10-c1 - qcom,ipq8074-hk10-c2 - const: qcom,ipq8074 - items: - enum: - qcom,sc7180-idp - const: qcom,sc7180 - items: - enum: - qcom,sc7280-idp - google,senor - const: qcom,sc7280 - items: - enum: - lenovo,flex-5g - microsoft,surface-prox - qcom,sc8180x-primus - const: qcom,sc8180x - items: - enum: - lenovo,thinkpad-x13s - qcom,sc8280xp-crd - qcom,sc8280xp-qrd - const: qcom,sc8280xp - items: - enum: - xiaomi,lavender - const: qcom,sdm660 - items: - enum: - qcom,sdx55-mtp - qcom,sdx55-telit-fn980-tlb - qcom,sdx55-t55 - const: qcom,sdx55 - items: - enum: - qcom,ipq6018-cp01 - qcom,ipq6018-cp01-c1 - const: qcom,ipq6018 - items: - enum: - qcom,sa8155p-adp - const: qcom,sa8155p - items: - enum: - qcom,sa8295p-adp - qcom,sa8540p-ride - const: qcom,sa8540p - items: - enum: - qcom,sm8150-mtp - const: qcom,sm8150 - items: - enum: - qcom,qrb5165-rb5 - qcom,sm8250-mtp - const: qcom,sm8250 - items: - enum: - qcom,sm8350-hdk - qcom,sm8350-mtp - const: qcom,sm8350 # Board compatibles go above qcom,msm-id: $ref: /schemas/types.yaml#/definitions/uint32-matrix minItems: 1 maxItems: 8 items: items: - description: | MSM chipset ID - an exact match value consisting of two bitfields:: - bits 0-15 - The unique MSM chipset ID - bits 16-31 - Reserved; should be 0 - description: | Hardware revision ID - a chipset specific 32-bit ID representing the version of the chipset. It is best a match value - the bootloader will look for the closest possible match. deprecated: true description: The MSM chipset and hardware revision used Qualcomm bootloaders. It can optionally be an array of these to indicate multiple hardware that use the same device tree. It is expected that the bootloader will use this information at boot-up to decide which device tree to use when given multiple device trees, some of which may not be compatible with the actual hardware. It is the bootloader's responsibility to pass the correct device tree to the kernel. The property is deprecated. qcom,board-id: $ref: /schemas/types.yaml#/definitions/uint32-matrix minItems: 1 maxItems: 8 oneOf: - items: - items: - description: | Board ID consisting of three bitfields:: - bits 31-24 - Unused - bits 23-16 - Platform Version Major - bits 15-8 - Platform Version Minor - bits 7-0 - Platform Type Platform Type field is an exact match value. The Platform Major/Minor field is a best match. The bootloader will look for the closest possible match. - description: | Subtype ID unique to a Platform Type/Chipset ID. For a given Platform Type, there will typically only be a single board and the subtype_id will be 0. However in some cases board variants may need to be distinguished by different subtype_id values. - items: # OnePlus uses a variant of board-id with four elements: - items: - const: 8 - const: 0 - description: OnePlus board ID - description: OnePlus subtype ID deprecated: true description: The board type and revision information. It can optionally be an array of these to indicate multiple boards that use the same device tree. It is expected that the bootloader will use this information at boot-up to decide which device tree to use when given multiple device trees, some of which may not be compatible with the actual hardware. It is the bootloader's responsibility to pass the correct device tree to the kernel The property is deprecated. allOf: # Explicit allow-list for older SoCs. The legacy properties are not allowed # on newer SoCs. - if: properties: compatible: contains: enum: - qcom,apq8026 - qcom,apq8094 - qcom,apq8096 - qcom,msm8992 - qcom,msm8994 - qcom,msm8996 - qcom,msm8998 - qcom,sdm630 - qcom,sdm632 - qcom,sdm845 - qcom,sdx55 - qcom,sdx65 - qcom,sm6125 - qcom,sm6350 - qcom,sm7225 - qcom,sm8150 - qcom,sm8250 then: properties: qcom,board-id: true qcom,msm-id: true else: properties: qcom,board-id: false qcom,msm-id: false - if: properties: compatible: contains: enum: - oneplus,cheeseburger - oneplus,dumpling - oneplus,enchilada - oneplus,fajita then: properties: qcom,board-id: items: minItems: 4 else: properties: qcom,board-id: items: maxItems: 2 additionalProperties: true ...