xref: /linux/Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
13be51a3bSJohnson Wang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
23be51a3bSJohnson Wang%YAML 1.2
33be51a3bSJohnson Wang---
43be51a3bSJohnson Wang$id: http://devicetree.org/schemas/interconnect/mediatek,cci.yaml#
53be51a3bSJohnson Wang$schema: http://devicetree.org/meta-schemas/core.yaml#
63be51a3bSJohnson Wang
73be51a3bSJohnson Wangtitle: MediaTek Cache Coherent Interconnect (CCI) frequency and voltage scaling
83be51a3bSJohnson Wang
93be51a3bSJohnson Wangmaintainers:
103be51a3bSJohnson Wang  - Jia-Wei Chang <jia-wei.chang@mediatek.com>
113be51a3bSJohnson Wang  - Johnson Wang <johnson.wang@mediatek.com>
123be51a3bSJohnson Wang
133be51a3bSJohnson Wangdescription: |
143be51a3bSJohnson Wang  MediaTek Cache Coherent Interconnect (CCI) is a hardware engine used by
153be51a3bSJohnson Wang  MT8183 and MT8186 SoCs to scale the frequency and adjust the voltage in
163be51a3bSJohnson Wang  hardware. It can also optimize the voltage to reduce the power consumption.
173be51a3bSJohnson Wang
183be51a3bSJohnson Wangproperties:
193be51a3bSJohnson Wang  compatible:
203be51a3bSJohnson Wang    enum:
213be51a3bSJohnson Wang      - mediatek,mt8183-cci
223be51a3bSJohnson Wang      - mediatek,mt8186-cci
233be51a3bSJohnson Wang
243be51a3bSJohnson Wang  clocks:
253be51a3bSJohnson Wang    items:
263be51a3bSJohnson Wang      - description:
273be51a3bSJohnson Wang          The multiplexer for clock input of the bus.
283be51a3bSJohnson Wang      - description:
293be51a3bSJohnson Wang          A parent of "bus" clock which is used as an intermediate clock source
303be51a3bSJohnson Wang          when the original clock source (PLL) is under transition and not
313be51a3bSJohnson Wang          stable yet.
323be51a3bSJohnson Wang
333be51a3bSJohnson Wang  clock-names:
343be51a3bSJohnson Wang    items:
353be51a3bSJohnson Wang      - const: cci
363be51a3bSJohnson Wang      - const: intermediate
373be51a3bSJohnson Wang
383be51a3bSJohnson Wang  operating-points-v2: true
39*c8973737SKrzysztof Kozlowski  opp-table:
40*c8973737SKrzysztof Kozlowski    type: object
413be51a3bSJohnson Wang
423be51a3bSJohnson Wang  proc-supply:
433be51a3bSJohnson Wang    description:
443be51a3bSJohnson Wang      Phandle of the regulator for CCI that provides the supply voltage.
453be51a3bSJohnson Wang
463be51a3bSJohnson Wang  sram-supply:
473be51a3bSJohnson Wang    description:
483be51a3bSJohnson Wang      Phandle of the regulator for sram of CCI that provides the supply
493be51a3bSJohnson Wang      voltage. When it is present, the implementation needs to do
503be51a3bSJohnson Wang      "voltage tracking" to step by step scale up/down Vproc and Vsram to fit
513be51a3bSJohnson Wang      SoC specific needs. When absent, the voltage scaling flow is handled by
523be51a3bSJohnson Wang      hardware, hence no software "voltage tracking" is needed.
533be51a3bSJohnson Wang
543be51a3bSJohnson Wangrequired:
553be51a3bSJohnson Wang  - compatible
563be51a3bSJohnson Wang  - clocks
573be51a3bSJohnson Wang  - clock-names
583be51a3bSJohnson Wang  - operating-points-v2
593be51a3bSJohnson Wang  - proc-supply
603be51a3bSJohnson Wang
613be51a3bSJohnson WangadditionalProperties: false
623be51a3bSJohnson Wang
633be51a3bSJohnson Wangexamples:
643be51a3bSJohnson Wang  - |
653be51a3bSJohnson Wang    #include <dt-bindings/clock/mt8183-clk.h>
663be51a3bSJohnson Wang    cci: cci {
673be51a3bSJohnson Wang        compatible = "mediatek,mt8183-cci";
683be51a3bSJohnson Wang        clocks = <&mcucfg CLK_MCU_BUS_SEL>,
693be51a3bSJohnson Wang                 <&topckgen CLK_TOP_ARMPLL_DIV_PLL1>;
703be51a3bSJohnson Wang        clock-names = "cci", "intermediate";
713be51a3bSJohnson Wang        operating-points-v2 = <&cci_opp>;
723be51a3bSJohnson Wang        proc-supply = <&mt6358_vproc12_reg>;
733be51a3bSJohnson Wang    };
743be51a3bSJohnson Wang
753be51a3bSJohnson Wang    cci_opp: opp-table-cci {
763be51a3bSJohnson Wang        compatible = "operating-points-v2";
773be51a3bSJohnson Wang        opp-shared;
783be51a3bSJohnson Wang        opp2_00: opp-273000000 {
793be51a3bSJohnson Wang            opp-hz = /bits/ 64 <273000000>;
803be51a3bSJohnson Wang            opp-microvolt = <650000>;
813be51a3bSJohnson Wang        };
823be51a3bSJohnson Wang        opp2_01: opp-338000000 {
833be51a3bSJohnson Wang            opp-hz = /bits/ 64 <338000000>;
843be51a3bSJohnson Wang            opp-microvolt = <687500>;
853be51a3bSJohnson Wang        };
863be51a3bSJohnson Wang        opp2_02: opp-403000000 {
873be51a3bSJohnson Wang            opp-hz = /bits/ 64 <403000000>;
883be51a3bSJohnson Wang            opp-microvolt = <718750>;
893be51a3bSJohnson Wang        };
903be51a3bSJohnson Wang        opp2_03: opp-463000000 {
913be51a3bSJohnson Wang            opp-hz = /bits/ 64 <463000000>;
923be51a3bSJohnson Wang            opp-microvolt = <756250>;
933be51a3bSJohnson Wang        };
943be51a3bSJohnson Wang        opp2_04: opp-546000000 {
953be51a3bSJohnson Wang            opp-hz = /bits/ 64 <546000000>;
963be51a3bSJohnson Wang            opp-microvolt = <800000>;
973be51a3bSJohnson Wang        };
983be51a3bSJohnson Wang        opp2_05: opp-624000000 {
993be51a3bSJohnson Wang            opp-hz = /bits/ 64 <624000000>;
1003be51a3bSJohnson Wang            opp-microvolt = <818750>;
1013be51a3bSJohnson Wang        };
1023be51a3bSJohnson Wang        opp2_06: opp-689000000 {
1033be51a3bSJohnson Wang            opp-hz = /bits/ 64 <689000000>;
1043be51a3bSJohnson Wang            opp-microvolt = <850000>;
1053be51a3bSJohnson Wang        };
1063be51a3bSJohnson Wang        opp2_07: opp-767000000 {
1073be51a3bSJohnson Wang            opp-hz = /bits/ 64 <767000000>;
1083be51a3bSJohnson Wang            opp-microvolt = <868750>;
1093be51a3bSJohnson Wang        };
1103be51a3bSJohnson Wang        opp2_08: opp-845000000 {
1113be51a3bSJohnson Wang            opp-hz = /bits/ 64 <845000000>;
1123be51a3bSJohnson Wang            opp-microvolt = <893750>;
1133be51a3bSJohnson Wang        };
1143be51a3bSJohnson Wang        opp2_09: opp-871000000 {
1153be51a3bSJohnson Wang            opp-hz = /bits/ 64 <871000000>;
1163be51a3bSJohnson Wang            opp-microvolt = <906250>;
1173be51a3bSJohnson Wang        };
1183be51a3bSJohnson Wang        opp2_10: opp-923000000 {
1193be51a3bSJohnson Wang            opp-hz = /bits/ 64 <923000000>;
1203be51a3bSJohnson Wang            opp-microvolt = <931250>;
1213be51a3bSJohnson Wang        };
1223be51a3bSJohnson Wang        opp2_11: opp-962000000 {
1233be51a3bSJohnson Wang            opp-hz = /bits/ 64 <962000000>;
1243be51a3bSJohnson Wang            opp-microvolt = <943750>;
1253be51a3bSJohnson Wang        };
1263be51a3bSJohnson Wang        opp2_12: opp-1027000000 {
1273be51a3bSJohnson Wang            opp-hz = /bits/ 64 <1027000000>;
1283be51a3bSJohnson Wang            opp-microvolt = <975000>;
1293be51a3bSJohnson Wang        };
1303be51a3bSJohnson Wang        opp2_13: opp-1092000000 {
1313be51a3bSJohnson Wang            opp-hz = /bits/ 64 <1092000000>;
1323be51a3bSJohnson Wang            opp-microvolt = <1000000>;
1333be51a3bSJohnson Wang        };
1343be51a3bSJohnson Wang        opp2_14: opp-1144000000 {
1353be51a3bSJohnson Wang            opp-hz = /bits/ 64 <1144000000>;
1363be51a3bSJohnson Wang            opp-microvolt = <1025000>;
1373be51a3bSJohnson Wang        };
1383be51a3bSJohnson Wang        opp2_15: opp-1196000000 {
1393be51a3bSJohnson Wang            opp-hz = /bits/ 64 <1196000000>;
1403be51a3bSJohnson Wang            opp-microvolt = <1050000>;
1413be51a3bSJohnson Wang        };
1423be51a3bSJohnson Wang    };
143