Re: [PATCH 00/12] soc: mediatek: pm-domains: Add new driver for SCPSYS power domains controller
From: Weiyi Lu <hidden>
Date: 2020-09-25 10:06:07
Also in:
linux-arm-kernel, linux-mediatek, lkml
On Thu, 2020-09-10 at 19:28 +0200, Enric Balletbo i Serra wrote:
Dear all, This is a new driver with the aim to deprecate the mtk-scpsys driver. The problem with that driver is that, in order to support more Mediatek SoCs you need to add some logic to handle properly the power-up sequence of newer Mediatek SoCs, doesn't handle parent-child power domains and need to hardcode all the clocks in the driver itself. The result is that the driver is getting bigger and bigger every time a new SoC needs to be supported.
Hi Enric and Matthias, First of all, thank you for the patch. But I'm worried the problem you mentioned won't be solved even if we work on this new driver in the future. My work on the MT8183 scpsys(now v17) is to implement the new hardware logic. Here, I also see related patches, which means that these new logics are necessary. Why can't we work on the original driver? Meanwhile, I thought maybe we should separate the driver into general control and platform data for each SoC, otherwise it'll keep getting bigger and bigger if it need to be support new SoC. And consider DVFSRC (dynamic voltage and frequency scaling resource collector), should we keep the original driver name "scpsys" instead of "pm-domains" because it may provide more functions than power domains?
All this information can be getted from a properly defined binding, so
can be cleaner and smaller, hence, we implemented a new driver. For
now, only MT8173 and MT8183 is supported but should be fairly easy to
add support for new SoCs.
Best regards,
Enric
Enric Balletbo i Serra (4):
dt-bindings: power: Add bindings for the Mediatek SCPSYS power domains
controller
soc: mediatek: Add MediaTek SCPSYS power domains
arm64: dts: mediatek: Add mt8173 power domain controller
dt-bindings: power: Add MT8183 power domains
Matthias Brugger (8):
soc: mediatek: pm-domains: Add bus protection protocol
soc: mediatek: pm_domains: Make bus protection generic
soc: mediatek: pm-domains: Add SMI block as bus protection block
soc: mediatek: pm-domains: Add extra sram control
soc: mediatek: pm-domains: Add subsystem clocks
soc: mediatek: pm-domains: Allow bus protection to ignore clear ack
soc: mediatek: pm-domains: Add support for mt8183
arm64: dts: mediatek: Add mt8183 power domains controller
.../power/mediatek,power-controller.yaml | 173 ++++
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 78 +-
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 160 +++
drivers/soc/mediatek/Kconfig | 13 +
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mtk-infracfg.c | 5 -
drivers/soc/mediatek/mtk-pm-domains.c | 952 ++++++++++++++++++
include/dt-bindings/power/mt8183-power.h | 26 +
include/linux/soc/mediatek/infracfg.h | 39 +
9 files changed, 1433 insertions(+), 14 deletions(-)
create mode 100644 Documentation/devicetree/bindings/power/mediatek,power-controller.yaml
create mode 100644 drivers/soc/mediatek/mtk-pm-domains.c
create mode 100644 include/dt-bindings/power/mt8183-power.h