18c2ecf20Sopenharmony_ciMediaTek SCPSYS 28c2ecf20Sopenharmony_ci=============== 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciThe System Control Processor System (SCPSYS) has several power management 58c2ecf20Sopenharmony_cirelated tasks in the system. The tasks include thermal measurement, dynamic 68c2ecf20Sopenharmony_civoltage frequency scaling (DVFS), interrupt filter and lowlevel sleep control. 78c2ecf20Sopenharmony_ciThe System Power Manager (SPM) inside the SCPSYS is for the MTCMOS power 88c2ecf20Sopenharmony_cidomain control. 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciThe driver implements the Generic PM domain bindings described in 118c2ecf20Sopenharmony_cipower/power-domain.yaml. It provides the power domains defined in 128c2ecf20Sopenharmony_ci- include/dt-bindings/power/mt8173-power.h 138c2ecf20Sopenharmony_ci- include/dt-bindings/power/mt6797-power.h 148c2ecf20Sopenharmony_ci- include/dt-bindings/power/mt6765-power.h 158c2ecf20Sopenharmony_ci- include/dt-bindings/power/mt2701-power.h 168c2ecf20Sopenharmony_ci- include/dt-bindings/power/mt2712-power.h 178c2ecf20Sopenharmony_ci- include/dt-bindings/power/mt7622-power.h 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciRequired properties: 208c2ecf20Sopenharmony_ci- compatible: Should be one of: 218c2ecf20Sopenharmony_ci - "mediatek,mt2701-scpsys" 228c2ecf20Sopenharmony_ci - "mediatek,mt2712-scpsys" 238c2ecf20Sopenharmony_ci - "mediatek,mt6765-scpsys" 248c2ecf20Sopenharmony_ci - "mediatek,mt6797-scpsys" 258c2ecf20Sopenharmony_ci - "mediatek,mt7622-scpsys" 268c2ecf20Sopenharmony_ci - "mediatek,mt7623-scpsys", "mediatek,mt2701-scpsys": For MT7623 SoC 278c2ecf20Sopenharmony_ci - "mediatek,mt7623a-scpsys": For MT7623A SoC 288c2ecf20Sopenharmony_ci - "mediatek,mt7629-scpsys", "mediatek,mt7622-scpsys": For MT7629 SoC 298c2ecf20Sopenharmony_ci - "mediatek,mt8173-scpsys" 308c2ecf20Sopenharmony_ci- #power-domain-cells: Must be 1 318c2ecf20Sopenharmony_ci- reg: Address range of the SCPSYS unit 328c2ecf20Sopenharmony_ci- infracfg: must contain a phandle to the infracfg controller 338c2ecf20Sopenharmony_ci- clock, clock-names: clocks according to the common clock binding. 348c2ecf20Sopenharmony_ci These are clocks which hardware needs to be 358c2ecf20Sopenharmony_ci enabled before enabling certain power domains. 368c2ecf20Sopenharmony_ci Required clocks for MT2701 or MT7623: "mm", "mfg", "ethif" 378c2ecf20Sopenharmony_ci Required clocks for MT2712: "mm", "mfg", "venc", "jpgdec", "audio", "vdec" 388c2ecf20Sopenharmony_ci Required clocks for MT6765: MUX: "mm", "mfg" 398c2ecf20Sopenharmony_ci CG: "mm-0", "mm-1", "mm-2", "mm-3", "isp-0", 408c2ecf20Sopenharmony_ci "isp-1", "cam-0", "cam-1", "cam-2", 418c2ecf20Sopenharmony_ci "cam-3","cam-4" 428c2ecf20Sopenharmony_ci Required clocks for MT6797: "mm", "mfg", "vdec" 438c2ecf20Sopenharmony_ci Required clocks for MT7622 or MT7629: "hif_sel" 448c2ecf20Sopenharmony_ci Required clocks for MT7623A: "ethif" 458c2ecf20Sopenharmony_ci Required clocks for MT8173: "mm", "mfg", "venc", "venc_lt" 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciOptional properties: 488c2ecf20Sopenharmony_ci- vdec-supply: Power supply for the vdec power domain 498c2ecf20Sopenharmony_ci- venc-supply: Power supply for the venc power domain 508c2ecf20Sopenharmony_ci- isp-supply: Power supply for the isp power domain 518c2ecf20Sopenharmony_ci- mm-supply: Power supply for the mm power domain 528c2ecf20Sopenharmony_ci- venc_lt-supply: Power supply for the venc_lt power domain 538c2ecf20Sopenharmony_ci- audio-supply: Power supply for the audio power domain 548c2ecf20Sopenharmony_ci- usb-supply: Power supply for the usb power domain 558c2ecf20Sopenharmony_ci- mfg_async-supply: Power supply for the mfg_async power domain 568c2ecf20Sopenharmony_ci- mfg_2d-supply: Power supply for the mfg_2d power domain 578c2ecf20Sopenharmony_ci- mfg-supply: Power supply for the mfg power domain 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ciExample: 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci scpsys: scpsys@10006000 { 628c2ecf20Sopenharmony_ci #power-domain-cells = <1>; 638c2ecf20Sopenharmony_ci compatible = "mediatek,mt8173-scpsys"; 648c2ecf20Sopenharmony_ci reg = <0 0x10006000 0 0x1000>; 658c2ecf20Sopenharmony_ci infracfg = <&infracfg>; 668c2ecf20Sopenharmony_ci clocks = <&clk26m>, 678c2ecf20Sopenharmony_ci <&topckgen CLK_TOP_MM_SEL>; 688c2ecf20Sopenharmony_ci <&topckgen CLK_TOP_VENC_SEL>, 698c2ecf20Sopenharmony_ci <&topckgen CLK_TOP_VENC_LT_SEL>; 708c2ecf20Sopenharmony_ci clock-names = "mfg", "mm", "venc", "venc_lt"; 718c2ecf20Sopenharmony_ci }; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ciExample consumer: 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci afe: mt8173-afe-pcm@11220000 { 768c2ecf20Sopenharmony_ci compatible = "mediatek,mt8173-afe-pcm"; 778c2ecf20Sopenharmony_ci power-domains = <&scpsys MT8173_POWER_DOMAIN_AUDIO>; 788c2ecf20Sopenharmony_ci }; 79