Merge tag 'drm-next-2020-12-24' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / memory-controllers / mediatek,smi-larb.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 # Copyright (c) 2020 MediaTek Inc.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: SMI (Smart Multimedia Interface) Local Arbiter
9
10 maintainers:
11   - Yong Wu <yong.wu@mediatek.com>
12
13 description: |
14   The hardware block diagram please check bindings/iommu/mediatek,iommu.yaml
15
16 properties:
17   compatible:
18     oneOf:
19       - enum:
20           - mediatek,mt2701-smi-larb
21           - mediatek,mt2712-smi-larb
22           - mediatek,mt6779-smi-larb
23           - mediatek,mt8167-smi-larb
24           - mediatek,mt8173-smi-larb
25           - mediatek,mt8183-smi-larb
26           - mediatek,mt8192-smi-larb
27
28       - description: for mt7623
29         items:
30           - const: mediatek,mt7623-smi-larb
31           - const: mediatek,mt2701-smi-larb
32
33   reg:
34     maxItems: 1
35
36   clocks:
37     description: |
38       apb and smi are mandatory. gals(global async local sync) is optional.
39     minItems: 2
40     maxItems: 3
41     items:
42       - description: apb is Advanced Peripheral Bus clock, It's the clock for
43           setting the register.
44       - description: smi is the clock for transfer data and command.
45       - description: the clock for gals.
46
47   clock-names:
48     minItems: 2
49     maxItems: 3
50
51   power-domains:
52     maxItems: 1
53
54   mediatek,smi:
55     $ref: /schemas/types.yaml#/definitions/phandle-array
56     description: a phandle to the smi_common node.
57
58   mediatek,larb-id:
59     $ref: /schemas/types.yaml#/definitions/uint32
60     minimum: 0
61     maximum: 31
62     description: the hardware id of this larb. It's only required when this
63       hardward id is not consecutive from its M4U point of view.
64
65 required:
66   - compatible
67   - reg
68   - clocks
69   - clock-names
70   - power-domains
71
72 allOf:
73   - if:  # HW has gals
74       properties:
75         compatible:
76           enum:
77             - mediatek,mt8183-smi-larb
78
79     then:
80       properties:
81         clock:
82           items:
83             minItems: 3
84             maxItems: 3
85         clock-names:
86           items:
87             - const: apb
88             - const: smi
89             - const: gals
90
91     else:
92       properties:
93         clock:
94           items:
95             minItems: 2
96             maxItems: 2
97         clock-names:
98           items:
99             - const: apb
100             - const: smi
101
102   - if:
103       properties:
104         compatible:
105           contains:
106             enum:
107               - mediatek,mt2701-smi-larb
108               - mediatek,mt2712-smi-larb
109               - mediatek,mt6779-smi-larb
110               - mediatek,mt8167-smi-larb
111               - mediatek,mt8192-smi-larb
112
113     then:
114       required:
115         - mediatek,larb-id
116
117 additionalProperties: false
118
119 examples:
120   - |+
121     #include <dt-bindings/clock/mt8173-clk.h>
122     #include <dt-bindings/power/mt8173-power.h>
123
124     larb1: larb@16010000 {
125       compatible = "mediatek,mt8173-smi-larb";
126       reg = <0x16010000 0x1000>;
127       mediatek,smi = <&smi_common>;
128       power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
129       clocks = <&vdecsys CLK_VDEC_CKEN>,
130                <&vdecsys CLK_VDEC_LARB_CKEN>;
131       clock-names = "apb", "smi";
132     };