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