xref: /linux/Documentation/devicetree/bindings/soc/mediatek/mtk-svs.yaml (revision 06d07429858317ded2db7986113a9e0129cd599b)
1d969f217SRoger Lu# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2d969f217SRoger Lu%YAML 1.2
3d969f217SRoger Lu---
4d969f217SRoger Lu$id: http://devicetree.org/schemas/soc/mediatek/mtk-svs.yaml#
5d969f217SRoger Lu$schema: http://devicetree.org/meta-schemas/core.yaml#
6d969f217SRoger Lu
7a612130cSKrzysztof Kozlowskititle: MediaTek Smart Voltage Scaling (SVS)
8d969f217SRoger Lu
9d969f217SRoger Lumaintainers:
10d969f217SRoger Lu  - Roger Lu <roger.lu@mediatek.com>
11d969f217SRoger Lu  - Matthias Brugger <matthias.bgg@gmail.com>
12d969f217SRoger Lu  - Kevin Hilman <khilman@kernel.org>
13d969f217SRoger Lu
14d969f217SRoger Ludescription: |+
15d969f217SRoger Lu  The SVS engine is a piece of hardware which has several
16d969f217SRoger Lu  controllers(banks) for calculating suitable voltage to
17d969f217SRoger Lu  different power domains(CPU/GPU/CCI) according to
18d969f217SRoger Lu  chip process corner, temperatures and other factors. Then DVFS
19d969f217SRoger Lu  driver could apply SVS bank voltage to PMIC/Buck.
20d969f217SRoger Lu
21d969f217SRoger Luproperties:
22d969f217SRoger Lu  compatible:
23d969f217SRoger Lu    enum:
24d969f217SRoger Lu      - mediatek,mt8183-svs
25*a37edd20SMark Tseng      - mediatek,mt8186-svs
266b841f34SMark Tseng      - mediatek,mt8188-svs
275ed6605fSRoger Lu      - mediatek,mt8192-svs
28*a37edd20SMark Tseng      - mediatek,mt8195-svs
29d969f217SRoger Lu
30d969f217SRoger Lu  reg:
31d969f217SRoger Lu    maxItems: 1
32d969f217SRoger Lu    description: Address range of the MTK SVS controller.
33d969f217SRoger Lu
34d969f217SRoger Lu  interrupts:
35d969f217SRoger Lu    maxItems: 1
36d969f217SRoger Lu
37d969f217SRoger Lu  clocks:
38d969f217SRoger Lu    maxItems: 1
39d969f217SRoger Lu    description: Main clock for MTK SVS controller to work.
40d969f217SRoger Lu
41d969f217SRoger Lu  clock-names:
42d969f217SRoger Lu    const: main
43d969f217SRoger Lu
44d969f217SRoger Lu  nvmem-cells:
45d969f217SRoger Lu    minItems: 1
46d969f217SRoger Lu    description:
47d969f217SRoger Lu      Phandle to the calibration data provided by a nvmem device.
48d969f217SRoger Lu    items:
49d969f217SRoger Lu      - description: SVS efuse for SVS controller
50d969f217SRoger Lu      - description: Thermal efuse for SVS controller
51d969f217SRoger Lu
52d969f217SRoger Lu  nvmem-cell-names:
53d969f217SRoger Lu    items:
54d969f217SRoger Lu      - const: svs-calibration-data
55d969f217SRoger Lu      - const: t-calibration-data
56d969f217SRoger Lu
575ed6605fSRoger Lu  resets:
585ed6605fSRoger Lu    maxItems: 1
595ed6605fSRoger Lu
605ed6605fSRoger Lu  reset-names:
615ed6605fSRoger Lu    items:
625ed6605fSRoger Lu      - const: svs_rst
635ed6605fSRoger Lu
64d969f217SRoger Lurequired:
65d969f217SRoger Lu  - compatible
66d969f217SRoger Lu  - reg
67d969f217SRoger Lu  - interrupts
68d969f217SRoger Lu  - clocks
69d969f217SRoger Lu  - clock-names
70d969f217SRoger Lu  - nvmem-cells
71d969f217SRoger Lu  - nvmem-cell-names
72d969f217SRoger Lu
73d969f217SRoger LuadditionalProperties: false
74d969f217SRoger Lu
75d969f217SRoger Luexamples:
76d969f217SRoger Lu  - |
77d969f217SRoger Lu    #include <dt-bindings/clock/mt8183-clk.h>
78d969f217SRoger Lu    #include <dt-bindings/interrupt-controller/arm-gic.h>
79d969f217SRoger Lu    #include <dt-bindings/interrupt-controller/irq.h>
80d969f217SRoger Lu
81d969f217SRoger Lu    soc {
82d969f217SRoger Lu        #address-cells = <2>;
83d969f217SRoger Lu        #size-cells = <2>;
84d969f217SRoger Lu
85d969f217SRoger Lu        svs@1100b000 {
86d969f217SRoger Lu            compatible = "mediatek,mt8183-svs";
87d969f217SRoger Lu            reg = <0 0x1100b000 0 0x1000>;
88d969f217SRoger Lu            interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
89d969f217SRoger Lu            clocks = <&infracfg CLK_INFRA_THERM>;
90d969f217SRoger Lu            clock-names = "main";
91d969f217SRoger Lu            nvmem-cells = <&svs_calibration>, <&thermal_calibration>;
92d969f217SRoger Lu            nvmem-cell-names = "svs-calibration-data", "t-calibration-data";
93d969f217SRoger Lu        };
94d969f217SRoger Lu    };
95