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