blob: 61c784ef7b5190f034ffe5b52347e7cee10a1c94 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sram/qcom,ocmem.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: On Chip Memory (OCMEM) that is present on some Qualcomm Snapdragon SoCs.
8
9maintainers:
10 - Brian Masney <masneyb@onstation.org>
11
12description: |
13 The On Chip Memory (OCMEM) is typically used by the GPU, camera/video, and
14 audio components on some Snapdragon SoCs.
15
16properties:
17 compatible:
18 enum:
19 - qcom,msm8226-ocmem # v1.1.0
20 - qcom,msm8974-ocmem # v1.4.0
21
22 reg:
23 items:
24 - description: Control registers
25 - description: OCMEM address range
26
27 reg-names:
28 items:
29 - const: ctrl
30 - const: mem
31
32 clocks:
33 minItems: 1
34 items:
35 - description: Core clock
36 - description: Interface clock
37
38 clock-names:
39 minItems: 1
40 items:
41 - const: core
42 - const: iface
43
44 '#address-cells':
45 const: 1
46
47 '#size-cells':
48 const: 1
49
50 ranges:
51 maxItems: 1
52
53required:
54 - compatible
55 - reg
56 - reg-names
57 - clocks
58 - clock-names
59 - '#address-cells'
60 - '#size-cells'
61 - ranges
62
63additionalProperties: false
64
65allOf:
66 - if:
67 properties:
68 compatible:
69 contains:
70 enum:
71 - qcom,msm8974-ocmem
72 then:
73 properties:
74 clocks:
75 minItems: 2
76 clock-names:
77 minItems: 2
78 else:
79 properties:
80 clocks:
81 minItems: 1
82 clock-names:
83 minItems: 1
84
85patternProperties:
86 "-sram@[0-9a-f]+$":
87 type: object
88 additionalProperties: false
89 description: A region of reserved memory.
90
91 properties:
92 reg:
93 maxItems: 1
94
95 required:
96 - reg
97
98examples:
99 - |
100 #include <dt-bindings/clock/qcom,rpmcc.h>
101 #include <dt-bindings/clock/qcom,mmcc-msm8974.h>
102
103 sram@fdd00000 {
104 compatible = "qcom,msm8974-ocmem";
105
106 reg = <0xfdd00000 0x2000>,
107 <0xfec00000 0x180000>;
108 reg-names = "ctrl",
109 "mem";
110
111 clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
112 <&mmcc OCMEMCX_OCMEMNOC_CLK>;
113 clock-names = "core",
114 "iface";
115
116 #address-cells = <1>;
117 #size-cells = <1>;
118 ranges = <0 0xfec00000 0x100000>;
119
120 gmu-sram@0 {
121 reg = <0x0 0x100000>;
122 };
123 };