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