1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2b97ee269SEmmanuel Vadot%YAML 1.2 3b97ee269SEmmanuel Vadot--- 4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/interconnect/mediatek,cci.yaml# 5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6b97ee269SEmmanuel Vadot 7b97ee269SEmmanuel Vadottitle: MediaTek Cache Coherent Interconnect (CCI) frequency and voltage scaling 8b97ee269SEmmanuel Vadot 9b97ee269SEmmanuel Vadotmaintainers: 10b97ee269SEmmanuel Vadot - Jia-Wei Chang <jia-wei.chang@mediatek.com> 11b97ee269SEmmanuel Vadot - Johnson Wang <johnson.wang@mediatek.com> 12b97ee269SEmmanuel Vadot 13b97ee269SEmmanuel Vadotdescription: | 14b97ee269SEmmanuel Vadot MediaTek Cache Coherent Interconnect (CCI) is a hardware engine used by 15b97ee269SEmmanuel Vadot MT8183 and MT8186 SoCs to scale the frequency and adjust the voltage in 16b97ee269SEmmanuel Vadot hardware. It can also optimize the voltage to reduce the power consumption. 17b97ee269SEmmanuel Vadot 18b97ee269SEmmanuel Vadotproperties: 19b97ee269SEmmanuel Vadot compatible: 20b97ee269SEmmanuel Vadot enum: 21b97ee269SEmmanuel Vadot - mediatek,mt8183-cci 22b97ee269SEmmanuel Vadot - mediatek,mt8186-cci 23b97ee269SEmmanuel Vadot 24b97ee269SEmmanuel Vadot clocks: 25b97ee269SEmmanuel Vadot items: 26b97ee269SEmmanuel Vadot - description: 27b97ee269SEmmanuel Vadot The multiplexer for clock input of the bus. 28b97ee269SEmmanuel Vadot - description: 29b97ee269SEmmanuel Vadot A parent of "bus" clock which is used as an intermediate clock source 30b97ee269SEmmanuel Vadot when the original clock source (PLL) is under transition and not 31b97ee269SEmmanuel Vadot stable yet. 32b97ee269SEmmanuel Vadot 33b97ee269SEmmanuel Vadot clock-names: 34b97ee269SEmmanuel Vadot items: 35b97ee269SEmmanuel Vadot - const: cci 36b97ee269SEmmanuel Vadot - const: intermediate 37b97ee269SEmmanuel Vadot 38b97ee269SEmmanuel Vadot operating-points-v2: true 39*7ef62cebSEmmanuel Vadot opp-table: 40*7ef62cebSEmmanuel Vadot type: object 41b97ee269SEmmanuel Vadot 42b97ee269SEmmanuel Vadot proc-supply: 43b97ee269SEmmanuel Vadot description: 44b97ee269SEmmanuel Vadot Phandle of the regulator for CCI that provides the supply voltage. 45b97ee269SEmmanuel Vadot 46b97ee269SEmmanuel Vadot sram-supply: 47b97ee269SEmmanuel Vadot description: 48b97ee269SEmmanuel Vadot Phandle of the regulator for sram of CCI that provides the supply 49b97ee269SEmmanuel Vadot voltage. When it is present, the implementation needs to do 50b97ee269SEmmanuel Vadot "voltage tracking" to step by step scale up/down Vproc and Vsram to fit 51b97ee269SEmmanuel Vadot SoC specific needs. When absent, the voltage scaling flow is handled by 52b97ee269SEmmanuel Vadot hardware, hence no software "voltage tracking" is needed. 53b97ee269SEmmanuel Vadot 54b97ee269SEmmanuel Vadotrequired: 55b97ee269SEmmanuel Vadot - compatible 56b97ee269SEmmanuel Vadot - clocks 57b97ee269SEmmanuel Vadot - clock-names 58b97ee269SEmmanuel Vadot - operating-points-v2 59b97ee269SEmmanuel Vadot - proc-supply 60b97ee269SEmmanuel Vadot 61b97ee269SEmmanuel VadotadditionalProperties: false 62b97ee269SEmmanuel Vadot 63b97ee269SEmmanuel Vadotexamples: 64b97ee269SEmmanuel Vadot - | 65b97ee269SEmmanuel Vadot #include <dt-bindings/clock/mt8183-clk.h> 66b97ee269SEmmanuel Vadot cci: cci { 67b97ee269SEmmanuel Vadot compatible = "mediatek,mt8183-cci"; 68b97ee269SEmmanuel Vadot clocks = <&mcucfg CLK_MCU_BUS_SEL>, 69b97ee269SEmmanuel Vadot <&topckgen CLK_TOP_ARMPLL_DIV_PLL1>; 70b97ee269SEmmanuel Vadot clock-names = "cci", "intermediate"; 71b97ee269SEmmanuel Vadot operating-points-v2 = <&cci_opp>; 72b97ee269SEmmanuel Vadot proc-supply = <&mt6358_vproc12_reg>; 73b97ee269SEmmanuel Vadot }; 74b97ee269SEmmanuel Vadot 75b97ee269SEmmanuel Vadot cci_opp: opp-table-cci { 76b97ee269SEmmanuel Vadot compatible = "operating-points-v2"; 77b97ee269SEmmanuel Vadot opp-shared; 78b97ee269SEmmanuel Vadot opp2_00: opp-273000000 { 79b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <273000000>; 80b97ee269SEmmanuel Vadot opp-microvolt = <650000>; 81b97ee269SEmmanuel Vadot }; 82b97ee269SEmmanuel Vadot opp2_01: opp-338000000 { 83b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <338000000>; 84b97ee269SEmmanuel Vadot opp-microvolt = <687500>; 85b97ee269SEmmanuel Vadot }; 86b97ee269SEmmanuel Vadot opp2_02: opp-403000000 { 87b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <403000000>; 88b97ee269SEmmanuel Vadot opp-microvolt = <718750>; 89b97ee269SEmmanuel Vadot }; 90b97ee269SEmmanuel Vadot opp2_03: opp-463000000 { 91b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <463000000>; 92b97ee269SEmmanuel Vadot opp-microvolt = <756250>; 93b97ee269SEmmanuel Vadot }; 94b97ee269SEmmanuel Vadot opp2_04: opp-546000000 { 95b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <546000000>; 96b97ee269SEmmanuel Vadot opp-microvolt = <800000>; 97b97ee269SEmmanuel Vadot }; 98b97ee269SEmmanuel Vadot opp2_05: opp-624000000 { 99b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <624000000>; 100b97ee269SEmmanuel Vadot opp-microvolt = <818750>; 101b97ee269SEmmanuel Vadot }; 102b97ee269SEmmanuel Vadot opp2_06: opp-689000000 { 103b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <689000000>; 104b97ee269SEmmanuel Vadot opp-microvolt = <850000>; 105b97ee269SEmmanuel Vadot }; 106b97ee269SEmmanuel Vadot opp2_07: opp-767000000 { 107b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <767000000>; 108b97ee269SEmmanuel Vadot opp-microvolt = <868750>; 109b97ee269SEmmanuel Vadot }; 110b97ee269SEmmanuel Vadot opp2_08: opp-845000000 { 111b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <845000000>; 112b97ee269SEmmanuel Vadot opp-microvolt = <893750>; 113b97ee269SEmmanuel Vadot }; 114b97ee269SEmmanuel Vadot opp2_09: opp-871000000 { 115b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <871000000>; 116b97ee269SEmmanuel Vadot opp-microvolt = <906250>; 117b97ee269SEmmanuel Vadot }; 118b97ee269SEmmanuel Vadot opp2_10: opp-923000000 { 119b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <923000000>; 120b97ee269SEmmanuel Vadot opp-microvolt = <931250>; 121b97ee269SEmmanuel Vadot }; 122b97ee269SEmmanuel Vadot opp2_11: opp-962000000 { 123b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <962000000>; 124b97ee269SEmmanuel Vadot opp-microvolt = <943750>; 125b97ee269SEmmanuel Vadot }; 126b97ee269SEmmanuel Vadot opp2_12: opp-1027000000 { 127b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <1027000000>; 128b97ee269SEmmanuel Vadot opp-microvolt = <975000>; 129b97ee269SEmmanuel Vadot }; 130b97ee269SEmmanuel Vadot opp2_13: opp-1092000000 { 131b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <1092000000>; 132b97ee269SEmmanuel Vadot opp-microvolt = <1000000>; 133b97ee269SEmmanuel Vadot }; 134b97ee269SEmmanuel Vadot opp2_14: opp-1144000000 { 135b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <1144000000>; 136b97ee269SEmmanuel Vadot opp-microvolt = <1025000>; 137b97ee269SEmmanuel Vadot }; 138b97ee269SEmmanuel Vadot opp2_15: opp-1196000000 { 139b97ee269SEmmanuel Vadot opp-hz = /bits/ 64 <1196000000>; 140b97ee269SEmmanuel Vadot opp-microvolt = <1050000>; 141b97ee269SEmmanuel Vadot }; 142b97ee269SEmmanuel Vadot }; 143