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

AngeloGioacchino Del Regno posted 13 patches 3 months, 2 weeks ago
.../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
[PATCH v1 00/13] pmdomain: Partial refactor, add MT8196 support
Posted by AngeloGioacchino Del Regno 3 months, 2 weeks ago
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
Re: [PATCH v1 00/13] pmdomain: Partial refactor, add MT8196 support
Posted by Nícolas F. R. A. Prado 3 months, 2 weeks ago
On Mon, 2025-06-23 at 14:01 +0200, AngeloGioacchino Del Regno wrote:
> 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

For the entire series,

Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

(as I've reviewed this internally before submission)

-- 
Thanks,

Nícolas