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