[PATCH v1 00/13] pmdomain: Partial refactor, add MT8196 support

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Mon Jun 23 05:01:41 PDT 2025


This series refactors the bus protection regmaps retrieval to avoid
searching in all power domain devicetree subnodes for vendor properties
to get syscons for different busses, and adds a new property which is
located in the power controller root node containing handles to the same.

Retrocompatibility is retained and was tested on multiple SoCs in the
Collabora lab - specifically, on Genio 350/510/700/1200, and manually
on MT6795 Helio (Xperia M5 Smartphone), MT8186, MT8192 and MT8195
Chromebooks.

This was tested *three times*:
 - Before the per-SoC conversion in drivers/pmdomain/mediatek
 - With per-SoC conversion code but with *legacy* devicetree
 - With per-SoC conversion code and with *new* devicetree conversion

All of those tests were successful on all of the aforementioned SoCs.

This also adds support for:
 - Modem power domain for both old and new MediaTek SoCs, useful for
   bringing up the GSM/3G/4G/5G modem for both laptop and smartphone use
 - RTFF MCU HW, as found in MT8196 Chromebooks and MT6991 Dimensity 9400
 - Hardware Voter (MT8196/MT6991), allowing ATF, remote processors and
   the AP (Linux) to manage the same power domains through a voter MCU,
   avoiding power racing
 - Directly controlled power domains for MT8196
 - Voted power domains for MT8196
 - Multimedia (voted) power domains for MT8196.

Note that all of the power domains for MT8196 should also work on MT6991
but since I have no Dimensity 9400 boards, even though I'm 99.5% sure that
it will simply work as those are the same, I avoided to add compatibles
for 6991 as it's impossible for me to test.

AngeloGioacchino Del Regno (13):
  dt-bindings: power: mediatek: Document mediatek,bus-protection
  pmdomain: mediatek: Refactor bus protection regmaps retrieval
  pmdomain: mediatek: Handle SoCs with inverted SRAM power-down bits
  pmdomain: mediatek: Move ctl sequences out of power_on/off functions
  pmdomain: mediatek: Add support for modem power sequences
  pmdomain: mediatek: Add support for RTFF Hardware in MT8196/MT6991
  pmdomain: mediatek: Add support for Hardware Voter power domains
  pmdomain: mediatek: Add support for secure HWCCF infra power on
  pmdomain: mediatek: Convert all SoCs to new style regmap retrieval
  arm64: dts: mediatek: Convert all SoCs to use mediatek,bus-protection
  dt-bindings: power: Add support for MT8196 power controllers
  pmdomain: mediatek: Add support for MT8196 SCPSYS power domains
  pmdomain: mediatek: Add support for MT8196 HFRPSYS power domains

 .../power/mediatek,power-controller.yaml      |  44 ++
 arch/arm64/boot/dts/mediatek/mt6795.dtsi      |   4 +-
 arch/arm64/boot/dts/mediatek/mt6893.dtsi      |  11 +-
 arch/arm64/boot/dts/mediatek/mt8167.dtsi      |   5 +-
 arch/arm64/boot/dts/mediatek/mt8173.dtsi      |   3 +-
 arch/arm64/boot/dts/mediatek/mt8183.dtsi      |  15 +-
 arch/arm64/boot/dts/mediatek/mt8186.dtsi      |  11 +-
 arch/arm64/boot/dts/mediatek/mt8188.dtsi      |  22 +-
 arch/arm64/boot/dts/mediatek/mt8192.dtsi      |  12 +-
 arch/arm64/boot/dts/mediatek/mt8195.dtsi      |  21 +-
 arch/arm64/boot/dts/mediatek/mt8365.dtsi      |  14 +-
 drivers/pmdomain/mediatek/mt6795-pm-domains.h |   5 +
 drivers/pmdomain/mediatek/mt8167-pm-domains.h |   5 +
 drivers/pmdomain/mediatek/mt8173-pm-domains.h |   5 +
 drivers/pmdomain/mediatek/mt8183-pm-domains.h |   5 +
 drivers/pmdomain/mediatek/mt8186-pm-domains.h |   5 +
 drivers/pmdomain/mediatek/mt8188-pm-domains.h |   6 +
 drivers/pmdomain/mediatek/mt8192-pm-domains.h |   5 +
 drivers/pmdomain/mediatek/mt8195-pm-domains.h |   5 +
 drivers/pmdomain/mediatek/mt8196-pm-domains.h | 625 ++++++++++++++++
 drivers/pmdomain/mediatek/mt8365-pm-domains.h |  14 +-
 drivers/pmdomain/mediatek/mtk-pm-domains.c    | 694 +++++++++++++++---
 drivers/pmdomain/mediatek/mtk-pm-domains.h    | 123 +++-
 .../dt-bindings/power/mediatek,mt8196-power.h |  58 ++
 24 files changed, 1500 insertions(+), 217 deletions(-)
 create mode 100644 drivers/pmdomain/mediatek/mt8196-pm-domains.h
 create mode 100644 include/dt-bindings/power/mediatek,mt8196-power.h

-- 
2.49.0




More information about the Linux-mediatek mailing list