提交 686fe63b 编写于 作者: J Julius Werner 提交者: Krzysztof Kozlowski

dt-bindings: memory: Add numeric LPDDR compatible string variant

This patch allows a new kind of compatible string for LPDDR parts in the
device tree bindings, in addition to the existing hardcoded
<vendor>,<part-number> strings. The new format contains manufacturer and
part (revision) information in numerical form, such as lpddr3-ff,0201
for an LPDDR3 part with manufacturer ID ff and revision ID 0201. This
helps cases where LPDDR parts are probed at runtime by boot firmware and
cannot be matched to hardcoded part numbers, such as the firmware on the
qcom/sc7280-herobrine boards does (which supports 4 different memory
configurations at the moment, and more are expected to be added later at
a point where the boot firmware can no longer be updated to specifically
accommodate them).
Signed-off-by: NJulius Werner <jwerner@chromium.org>
Acked-by: NRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220930220606.303395-2-jwerner@chromium.orgSigned-off-by: NKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
上级 b7178cd5
...@@ -15,6 +15,16 @@ maintainers: ...@@ -15,6 +15,16 @@ maintainers:
- Krzysztof Kozlowski <krzk@kernel.org> - Krzysztof Kozlowski <krzk@kernel.org>
properties: properties:
compatible:
description:
Compatible strings can be either explicit vendor names and part numbers
(e.g. elpida,ECB240ABACN), or generated strings of the form
lpddrX-YY,ZZZZ where X is the LPDDR version, YY is the manufacturer ID
(from MR5) and ZZZZ is the revision ID (from MR6 and MR7). Both IDs are
formatted in lower case hexadecimal representation with leading zeroes.
The latter form can be useful when LPDDR nodes are created at runtime by
boot firmware that doesn't have access to static part number information.
revision-id: revision-id:
$ref: /schemas/types.yaml#/definitions/uint32-array $ref: /schemas/types.yaml#/definitions/uint32-array
description: description:
......
...@@ -20,13 +20,15 @@ properties: ...@@ -20,13 +20,15 @@ properties:
- elpida,ECB240ABACN - elpida,ECB240ABACN
- elpida,B8132B2PB-6D-F - elpida,B8132B2PB-6D-F
- enum: - enum:
- jedec,lpddr2-s4 - jedec,lpddr2-nvm
- items:
- enum:
- jedec,lpddr2-s2 - jedec,lpddr2-s2
- jedec,lpddr2-s4
- items: - items:
- pattern: "^lpddr2-[0-9a-f]{2},[0-9a-f]{4}$"
- enum: - enum:
- jedec,lpddr2-nvm - jedec,lpddr2-nvm
- jedec,lpddr2-s2
- jedec,lpddr2-s4
revision-id1: revision-id1:
$ref: /schemas/types.yaml#/definitions/uint32 $ref: /schemas/types.yaml#/definitions/uint32
......
...@@ -14,10 +14,14 @@ allOf: ...@@ -14,10 +14,14 @@ allOf:
properties: properties:
compatible: compatible:
items: oneOf:
- items:
- enum: - enum:
- samsung,K3QF2F20DB - samsung,K3QF2F20DB
- const: jedec,lpddr3 - const: jedec,lpddr3
- items:
- pattern: "^lpddr3-[0-9a-f]{2},[0-9a-f]{4}$"
- const: jedec,lpddr3
'#address-cells': '#address-cells':
const: 1 const: 1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册