[PATCH 4/4] pmdomain: mediatek: Add support for MT8196 HFRP DirectCTL domains
Matthias Brugger
mbrugger at suse.com
Mon Jul 6 08:21:30 PDT 2026
On 01/07/2026 14:19, AngeloGioacchino Del Regno wrote:
> Add support for the power domains provided by the HFRPSYS Power
> Controller of the MT8196 SoC.
> Those control power to the eDP and DP Transmitter IPs.
>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
Reviewed-by: Matthias Brugger <matthias.bgg at gmail.com>
> ---
> drivers/pmdomain/mediatek/mt8196-pm-domains.h | 27 +++++++++++++++++++
> drivers/pmdomain/mediatek/mtk-pm-domains.c | 4 +++
> 2 files changed, 31 insertions(+)
>
> diff --git a/drivers/pmdomain/mediatek/mt8196-pm-domains.h b/drivers/pmdomain/mediatek/mt8196-pm-domains.h
> index 2e4b28720659..d704c9fa9337 100644
> --- a/drivers/pmdomain/mediatek/mt8196-pm-domains.h
> +++ b/drivers/pmdomain/mediatek/mt8196-pm-domains.h
> @@ -602,6 +602,27 @@ static const struct scpsys_hwv_domain_data hfrpsys_hwv_domain_data_mt8196[] = {
> },
> };
>
> +static const struct scpsys_domain_data hfrpsys_domain_data_mt8196[] = {
> + [MT8196_POWER_DOMAIN_EDPTX] = {
> + .name = "edp-tx",
> + .sta_mask = MT8196_PWR_ACK,
> + .sta2nd_mask = MT8196_PWR_ACK_2ND,
> + .ctl_offs = 0x74,
> + .pwr_sta_offs = 0x74,
> + .pwr_sta2nd_offs = 0x74,
> + .caps = MTK_SCPD_SIMPLE_PWRSEQ,
> + },
> + [MT8196_POWER_DOMAIN_DPTX] = {
> + .name = "dp-tx",
> + .sta_mask = MT8196_PWR_ACK,
> + .sta2nd_mask = MT8196_PWR_ACK_2ND,
> + .ctl_offs = 0x78,
> + .pwr_sta_offs = 0x78,
> + .pwr_sta2nd_offs = 0x78,
> + .caps = MTK_SCPD_SIMPLE_PWRSEQ,
> + },
> +};
> +
> static const struct scpsys_soc_data mt8196_scpsys_data = {
> .domains_data = scpsys_domain_data_mt8196,
> .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8196),
> @@ -616,6 +637,12 @@ static const struct scpsys_soc_data mt8196_scpsys_hwv_data = {
> .type = SCPSYS_MTCMOS_TYPE_HW_VOTER,
> };
>
> +static const struct scpsys_soc_data mt8196_hfrpsys_data = {
> + .domains_data = hfrpsys_domain_data_mt8196,
> + .num_domains = ARRAY_SIZE(hfrpsys_domain_data_mt8196),
> + .type = SCPSYS_MTCMOS_TYPE_DIRECT_CTL,
> +};
> +
> static const struct scpsys_soc_data mt8196_hfrpsys_hwv_data = {
> .hwv_domains_data = hfrpsys_hwv_domain_data_mt8196,
> .num_hwv_domains = ARRAY_SIZE(hfrpsys_hwv_domain_data_mt8196),
> diff --git a/drivers/pmdomain/mediatek/mtk-pm-domains.c b/drivers/pmdomain/mediatek/mtk-pm-domains.c
> index 5276adea1d04..f69cf69ba0f6 100644
> --- a/drivers/pmdomain/mediatek/mtk-pm-domains.c
> +++ b/drivers/pmdomain/mediatek/mtk-pm-domains.c
> @@ -1252,6 +1252,10 @@ static const struct of_device_id scpsys_of_match[] = {
> .compatible = "mediatek,mt8196-power-controller",
> .data = &mt8196_scpsys_data,
> },
> + {
> + .compatible = "mediatek,mt8196-hfrp-power-controller",
> + .data = &mt8196_hfrpsys_data,
> + },
> {
> .compatible = "mediatek,mt8196-hwv-hfrp-power-controller",
> .data = &mt8196_hfrpsys_hwv_data,
More information about the linux-arm-kernel
mailing list