xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/soc/mediatek/scpsys.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunMediaTek SCPSYS
2*4882a593Smuzhiyun===============
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThe System Control Processor System (SCPSYS) has several power management
5*4882a593Smuzhiyunrelated tasks in the system. The tasks include thermal measurement, dynamic
6*4882a593Smuzhiyunvoltage frequency scaling (DVFS), interrupt filter and lowlevel sleep control.
7*4882a593SmuzhiyunThe System Power Manager (SPM) inside the SCPSYS is for the MTCMOS power
8*4882a593Smuzhiyundomain control.
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunThe driver implements the Generic PM domain bindings described in
11*4882a593Smuzhiyunpower/power-domain.yaml. It provides the power domains defined in
12*4882a593Smuzhiyun- include/dt-bindings/power/mt8173-power.h
13*4882a593Smuzhiyun- include/dt-bindings/power/mt6797-power.h
14*4882a593Smuzhiyun- include/dt-bindings/power/mt6765-power.h
15*4882a593Smuzhiyun- include/dt-bindings/power/mt2701-power.h
16*4882a593Smuzhiyun- include/dt-bindings/power/mt2712-power.h
17*4882a593Smuzhiyun- include/dt-bindings/power/mt7622-power.h
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunRequired properties:
20*4882a593Smuzhiyun- compatible: Should be one of:
21*4882a593Smuzhiyun	- "mediatek,mt2701-scpsys"
22*4882a593Smuzhiyun	- "mediatek,mt2712-scpsys"
23*4882a593Smuzhiyun	- "mediatek,mt6765-scpsys"
24*4882a593Smuzhiyun	- "mediatek,mt6797-scpsys"
25*4882a593Smuzhiyun	- "mediatek,mt7622-scpsys"
26*4882a593Smuzhiyun	- "mediatek,mt7623-scpsys", "mediatek,mt2701-scpsys": For MT7623 SoC
27*4882a593Smuzhiyun	- "mediatek,mt7623a-scpsys": For MT7623A SoC
28*4882a593Smuzhiyun	- "mediatek,mt7629-scpsys", "mediatek,mt7622-scpsys": For MT7629 SoC
29*4882a593Smuzhiyun	- "mediatek,mt8173-scpsys"
30*4882a593Smuzhiyun- #power-domain-cells: Must be 1
31*4882a593Smuzhiyun- reg: Address range of the SCPSYS unit
32*4882a593Smuzhiyun- infracfg: must contain a phandle to the infracfg controller
33*4882a593Smuzhiyun- clock, clock-names: clocks according to the common clock binding.
34*4882a593Smuzhiyun                      These are clocks which hardware needs to be
35*4882a593Smuzhiyun                      enabled before enabling certain power domains.
36*4882a593Smuzhiyun	Required clocks for MT2701 or MT7623: "mm", "mfg", "ethif"
37*4882a593Smuzhiyun	Required clocks for MT2712: "mm", "mfg", "venc", "jpgdec", "audio", "vdec"
38*4882a593Smuzhiyun	Required clocks for MT6765: MUX: "mm", "mfg"
39*4882a593Smuzhiyun				    CG: "mm-0", "mm-1", "mm-2", "mm-3", "isp-0",
40*4882a593Smuzhiyun					"isp-1", "cam-0", "cam-1", "cam-2",
41*4882a593Smuzhiyun					"cam-3","cam-4"
42*4882a593Smuzhiyun	Required clocks for MT6797: "mm", "mfg", "vdec"
43*4882a593Smuzhiyun	Required clocks for MT7622 or MT7629: "hif_sel"
44*4882a593Smuzhiyun	Required clocks for MT7623A: "ethif"
45*4882a593Smuzhiyun	Required clocks for MT8173: "mm", "mfg", "venc", "venc_lt"
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunOptional properties:
48*4882a593Smuzhiyun- vdec-supply: Power supply for the vdec power domain
49*4882a593Smuzhiyun- venc-supply: Power supply for the venc power domain
50*4882a593Smuzhiyun- isp-supply: Power supply for the isp power domain
51*4882a593Smuzhiyun- mm-supply: Power supply for the mm power domain
52*4882a593Smuzhiyun- venc_lt-supply: Power supply for the venc_lt power domain
53*4882a593Smuzhiyun- audio-supply: Power supply for the audio power domain
54*4882a593Smuzhiyun- usb-supply: Power supply for the usb power domain
55*4882a593Smuzhiyun- mfg_async-supply: Power supply for the mfg_async power domain
56*4882a593Smuzhiyun- mfg_2d-supply: Power supply for the mfg_2d power domain
57*4882a593Smuzhiyun- mfg-supply: Power supply for the mfg power domain
58*4882a593Smuzhiyun
59*4882a593SmuzhiyunExample:
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	scpsys: scpsys@10006000 {
62*4882a593Smuzhiyun		#power-domain-cells = <1>;
63*4882a593Smuzhiyun		compatible = "mediatek,mt8173-scpsys";
64*4882a593Smuzhiyun		reg = <0 0x10006000 0 0x1000>;
65*4882a593Smuzhiyun		infracfg = <&infracfg>;
66*4882a593Smuzhiyun		clocks = <&clk26m>,
67*4882a593Smuzhiyun			 <&topckgen CLK_TOP_MM_SEL>;
68*4882a593Smuzhiyun			 <&topckgen CLK_TOP_VENC_SEL>,
69*4882a593Smuzhiyun			 <&topckgen CLK_TOP_VENC_LT_SEL>;
70*4882a593Smuzhiyun		clock-names = "mfg", "mm", "venc", "venc_lt";
71*4882a593Smuzhiyun	};
72*4882a593Smuzhiyun
73*4882a593SmuzhiyunExample consumer:
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun	afe: mt8173-afe-pcm@11220000 {
76*4882a593Smuzhiyun		compatible = "mediatek,mt8173-afe-pcm";
77*4882a593Smuzhiyun		power-domains = <&scpsys MT8173_POWER_DOMAIN_AUDIO>;
78*4882a593Smuzhiyun	};
79